用matlab实现fir滤波器
- 格式:doc
- 大小:66.50 KB
- 文档页数:6
求用matlab实现fir滤波器(低通、高通,带通)
浏览次数:1059次悬赏分:10|提问时间:2009-3-24 10:39|提问者:linyuchery520
要求输入信号带有噪声,无论用那种设计方法实现,只要滤波效果好就行了。急急急
推荐答案
窗函数设计低通滤波器:
fp=1000;
fc=1200;
as=100;
ap=1;
fs=22000;
wp=2*fp/fs;
wc=2*fc/fs;
N=ceil((as-7.95)/(14.36*(wc-wp)/2))+1;
beta=0.1102*(as-8.7);
window=Kaiser(N+1,beta);
b=fir1(N,wc,window);
freqz(b,1,512,fs);
高通滤波器:
fs=22000;
Wp=2*5000/fs;
Ws=2*4800/fs;
Ap=1;
As=100;
N=ceil(8*pi/(Wp-Ws))+1;
N=N+mod(N+1,2)+1;
Wc=(Wp+Ws)/2/pi;
h=fir1(N,Wc,'high');
omega=linspace(0,pi,512);
freqz(h,1,omega);
带通滤波器:
fs=22000;
Wp1=2*1200/fs;
Wp2=2*3000/fs;
Wc1=2*1000/fs;
Wc2=2*3200/fs;
Ap=1;
As=100;
W1=(Wp1+Wc1)/2;
W2=(Wp2+Wc2)/2;
wdth=min((Wp1-Wc1),(Wc2-Wp2));
N=ceil(11*pi/wdth)+1;
b = fir1(N,[W1 W2]);
freqz(b,1,512,fs)
双线性法设计低通滤波器:
fp=1000;
fc=1200;
as=100;
ap=1;
fs=22000;
wp=2*fp/fs;
wc=2*fc/fs; %归一化截止频率
[n,wn]=ellipord(wp,wc,ap,as);%求数字滤波器的最小阶数和归一化截止频率[b,a]=ellip(n,ap,as,wn);%求传递函数的分子分母系数
freqz(b,a,512,fs);
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
基于MATLAB的FIR数字滤波器的设计与实现
期刊门户-中国期刊网2009-2-11来源:《黑龙江科技信息》2008年9月下供稿文/李洋
洋江亮亮
[导读]简要介绍了FIR滤波器的设计基础和利用窗函数设计FIR滤波器的方法,运用MATLAB语言实现了低通FIR滤波器的设计仿真。
摘要:简要介绍了FIR滤波器的设计基础和利用窗函数设计FIR滤波器的方法,运用MATLAB语言实现了低通FIR滤波器的设计仿真。
关键词:MATLAB;FIR滤波器;窗函数设计
1 MATLAB简介
MATLAB是“矩阵实验室”(MATrix LABoratoy)的缩写,它是由美国Mathworks公司于1984年正式推出的,是一种以矩阵运算为基础的交互式程序语言,专门针对科学、工程计算及绘图的需求[1]。随着版本的不断升级,内容不断扩充,功能更加强大,从而被广泛应用于仿真技术、自动控制和数字信号处理等领域。全球现有超过五十万的企业用户和上千万的个人用户,广泛分布在航空航天、金融财务、机械化工、电信、教育等各个行业[2]。
2 数字滤波器简介
滤波器的种类很多,从功能上可以分为低通、高通、带通和带阻滤波器,上述每种滤波器又可以分为模拟滤波器和数字滤波器。如果滤波器的输入输出都是数字信号,则这样的滤波器称之为数字滤波器,它通常通过一定的运算关系改变输入信号所含频率成分的相对比例或者滤除某些频率成分来实现滤波。根据数字滤波器冲激响应的时域特性,可将数字滤波器分为两种,即无限长冲激响应(IIR)滤波器和有限长冲激响应(FIR)滤波器[3]。有数字信号处理的一般理论可知,IIR滤波器的特征是具有无限持续时间的冲激响应,而FIR滤波器使冲激响应只能持续一定的时间。
3 数字滤波器的设计步骤
3.1确定指标。在设计一个滤波器之前,必须首先确定一些技术指标。这些技术指标需要来制定。在很多实际应用中,例如语音或音频信号处理中,数字滤波器常用来实现选频操作。因此,指标的形式一般确定为频域中幅度和相位的响应。
3.2逼近。确定了滤波器的技术指标后,就可以利用数学和DSP的基本原理提出一个滤波器模型来逼近给定的目标。这一步是滤波器设计的所要研究的主要问题,是整个设计过程的重中之重。
3.3硬件或软件实现。上两步的结果是得到以差分或系统函数或冲激响应描述的滤波器,根据这个描述就可以用硬件或在计算机上用软件实现。
4 窗函数设计法
4.1 窗函数的理论根据。窗函数设计滤波器的基本思想,就是根据给定的滤波器技术指标,选择滤波器的阶数N和合适的窗函数ω(n)。即用一个有限长度的窗口函数序列ω(n)来截取一个无限长的序列hd(n)获得一个有限长序列h(n),即h(n)=w(n)*hd(n),并且要满足以下两个条件:(1)窗谱
主瓣尽可能地窄,以获得较陡的过渡带;(2)尽量减少窗谱的最大旁瓣的相对幅度,也就是能量尽量集中于主瓣,使峰肩和纹波减小,就可增多阻带的衰减。这就给窗函数序列的形状和长度选择提出了严格的要求。
4.2用窗函数设计FIR滤波器的步骤
(1)根据技术要求确定待求滤波器的单位取样响应hd(n)。如果给出待求滤波器的频响为Hd(ejw),那么单位取样响应应用下式求出:
hd(n)=■■Hd(ejw)ejwndw(1)
如果Hd(ejw)较为复杂,或者不能用封闭公式Hd(ejw)表示时,则不能用上式求出hd(n)。我们可以对Hd(ejw)从w=0到w=2π采样M点,采样值为Hd(e■),k=0,1,2,…,M-1并用■代替公式(1)中的dw,公式(1)近似写成:
hM(n)=■■Hd(e■)e■(2)
根据频率采样定理,hM(n)与hd(n)应满足如下关系:hM(n)=■hd(n+rM)因此,如果M选的较大,可以保证在窗口内hM(n)有效逼近hd(n)。实际计算公式(2),可以用Hd(ejw)的M点采样值,进行M点的IDFT(IFFT)得到。
如果给出通带阻代衰减和边界频率要求,可选用理想滤波器作为逼近函数,从而用理想滤波器的特性作傅里叶逆变换,求出hd(n)。例如,理性低通滤波器如公式(3)所示,
Hd(ejw)=ejwa,w?燮wc0,wc 求出单位取样响应hd(n)如下式: hd(n)=■ 为保证线性相位,取a=(N-1)/2。 (2)根据对过渡带及阻带衰减的要求,选择窗函数的形式,并估计窗口长度N。设待求滤波器的长度用Δw来表示,它近似等于窗函数主瓣宽度。因过渡带Δw 近似于窗口长度N成反比,N≈A/Δw,A决定于窗口形式。例如,矩形窗A=4π哈明窗A=8π等。按照过渡带及阻带衰减情况,选择窗函数形式。原则是在保证阻带衰减满足要求的情况下,尽量选择主瓣窄的窗函数。 (3)计算滤波器的单位取样响应h(n),h(n)=w(n)*hd(n)。式中w(n)是上面选择好的窗函数。如果要求线性相位,则要求hd(n)和w(n)均对(N-1)/2对称。如要求h(n)对(N-1)/2奇对称,只要保证hd(n)对(N-1)/2奇对称就可以了。 (4)验算技术指标是否满足要求。设计出的滤波器频率响应应用下式计算:H (ejw)=■h(n)e-jwn 计算上式时可用FFT算法。如果H(ejw)不满足要求,根据具体情况重复(2)(3)(4)步,直到满足要求。 5 用各种窗函数设计FIR数字滤波器实例 [例]分别用矩形窗和Hamming窗设计线性相位FIR低通滤波器。要求通带截止频率wc=π/4,单位脉冲响应h(n)的长度N=21。绘出h(n)及其幅频响应特性曲线。 [设计分析] (1)用窗函数法设计FIR数字滤波器时,先求出相应的理想滤波器(本例应为理想低通)单位脉冲响应hd(n),再根据阻带最小衰减选择合适的窗函数w(n),最后得到FIR滤波器单位脉冲响应h(n)=w(n)*hd(n)。