实验五 FIR数字滤波器的设计
一、实验目的
1.掌握用窗函数法设计FIR数字滤波器的原理和方法; 2.熟悉线性相位FIR滤波器的幅频特性和相频特性; 3.了解不同窗函数对滤波器性能的影响。
二、实验内容
使用MATLAB编写程序,实现FIR数字滤波器的设计。涉及窗函数法和频率采样法设计FIR数字滤波器的方法、线性相位FIR滤波器的幅频特性和相频特性的特点、窗函数选择及其对滤波器性能的影响等知识点。
三、实验原理与方法和手段
窗函数设计法是一种把一个长序列变成有限长的短序列的设计方法,是在时域进行的。用窗函数法设计FIR数字滤波器时,先根据W c和N 求出相应的的理想滤波器的单位脉冲响应hd(n)。
1hd(n)?2??wc?wcHd(ejw)ejwndw?sin(wc(n?a))?(n?a)
因为hd(n)一般是非因果的,且无限长,物理上是不可实现的。为此可选择适当的窗函数w(n)截取有限长的hd(n), 即h(n)= hd(n)w(n),只要阶数足够长,截取的方法合理,总能够满足频域的要求。
实际中常用的窗函数有矩形(Boxcar)窗、三角(Bartlett)窗、汉宁(Hanning)窗、汉明(Hamming) 窗和布莱克曼(Blackman)窗。这些窗函数各有优缺点,所以要根据实际情况合理选择窗函数类型。
1.窗函数法设计线性相位FIR滤波器的一般步骤为: (1)确定理想滤波器Hd(e(2)由Hd(e
j?j?)的特性;
)求出hd(n);
26
(3)根据过渡带宽度和阻带最小衰减,借助窗函数确定窗的形式及N的大小,即选择适当的窗函数,并根据线性相位条件确定窗函数的长度N;在MATLAB中,可由w=boxcar(N)(矩形窗)、w=hanning(N)(汉宁窗)、w=hamming(N)(汉明窗)、w=Blackman(N)(布莱克曼窗)、w=Kaiser(N,beta)(凯塞窗)等函数来实现窗函数设计法中所需的窗函数。 (4)由h(n)?hd(n)?w(n), 0≤n≤ N-1,得出单位脉冲响应h(n); (5)对h(n)作离散时间傅立叶变换,得到H(ej?)。
2.在MATLAB中,可以用b=fir1(N,Wn,‘ftype’,taper) 等函数辅助设计FIR数字滤波器。N代表滤波器阶数;Wn代表滤波器的截止频率(归化频率),当设计带通和带阻滤波器时,Wn为双元素相量;ftype代表滤波器类型,如‘high’高通,‘stop’带阻等;taper为窗函数,默认为海明窗,窗函数实现需要用窗函数blackman, hamming,hanning chebwin, kaiser产生。
四、实验组织运行要求
1.学生在进行实验前必须进行充分的预习,熟悉实验内容; 2.学生根据实验要求,编写相应的程序;
3.学生严格遵守实验室的各项规章制度,注意人身和设备安全,配合和服从实验室人员管理;
4.教师在学生实验过程中予以必要的辅导,独立完成实验; 5.采用集中授课形式。
五、实验条件
具有WINDOWS 2000/XP操作系统的计算机一台,安装MATLAB软件
六、实验步骤
在“开始--程序”菜单中,找到MATLAB程序,运行启动;
进入MATLAB后 ,在Command Window中输入自己编写的主程序,并执行; 记录运行结果图形,作分析对比。
具体步骤如下:
27
1.用窗函数法设计一线性相位FIR低通滤波器,要求通带截止频率wc=
?, 4(1)选择一个合适的窗函数(如hamming窗),取单位冲击响应h(n)的长度N=15,观察所设计滤波器的幅频特性,记录阻带最小衰减;
(2)取N=45,重复上述设计,观察幅频和相频特性的变化,分析长度N变化的影响; (3)保持N=45不变,改变窗函数(如hamming窗变为blackman窗),观察并记录窗函数对滤波器幅频特性的影响。
2.针对一个含有35Hz、50Hz和70Hz的混和正弦波信号,设计一个FIR带通滤波器。 参数要求:采样频率fs=400Hz,通带下限截止频率fc1=40Hz,通带上限截止频率fc2=60Hz,过渡带宽8Hz,通阻带波动0.01,采用凯塞窗设计。
七、实验报告要求
1.报告中要给出实验的MATLAB程序,了解语句作用; 2.简述实验目的和原理;
3.按实验步骤附上所设计滤波器的h(n)及相应的幅频和相频特性曲线,比较它们的性能,说明不同的窗函数对滤波器性能的影响; 4.收获和建议。
八、MATLAB示例
1.用窗函数法设计一线性相位FIR低通滤波器,要求通带截止频率wc=(n)的长度N=21。绘出h(n)及其幅频响应曲线.
?,单位冲击响应h3sin((n?a))3 设计分析:理想滤波器单位冲击响应为hd(n)?;为了满足线性相位FIR滤?(n?a)N?1波器条件h(n)= h(N-1-n),要求a==10。
2%xh19
N=21;wc=pi/3; %理想低通滤波器参数 n=0:N-1; a=(N-1)/2;
hdn=sin(wc*(n-a))/pi./(n-a); %计算理想低通滤波器单位冲击响应hd(n) if rem(N,2)~=0 hdn(a+1)=wc/pi; end %N为奇数时,处理n=a点的0/0型
28
?
wn=hamming(N); %hamming窗 hn=hdn.*wn';
subplot(121); %绘出h(n)及幅频特性曲线 stem(n,hn,'.');
xlabel('n');ylabel('h(n)'); title('hamming窗设计的h(n)'); grid on; subplot(122); hw=fft(hn,512); w=2*[0:511]/512;
plot(w,20*log10(abs(hw)));
xlabel('w/pi');ylabel('Magnitude(dB)'); title('hamming窗设计的幅频特性'); grid on;
2.针对一个含有5Hz、15Hz和30Hz的混和正弦波信号,设计一个FIR带通滤波器。 参数要求:采样频率fs=100Hz,通带下限截止频率fc1=10Hz,通带上限截止频率fc2=20Hz,过渡带宽6Hz,通阻带波动0.01,采用凯塞窗设计。 %xh20
fs=100; T=1/fs;
[n,wc,beta,ftype]=kaiserord([7 13 17 23],[0 1 0], [0.01 0.01 0.01],fs) wn=kaiser(n+1,beta); %使用kaiser窗函数,(n+1)为窗宽 b=fir1(n,wc,wn); %使用标准频率响应的加窗设计函数fir1 freqz(b,1,512); %数字滤波器频率响应,a=1 t=0:T:1;
s=sin(2*pi*t*5)+sin(2*pi*t*15)+sin(2*pi*t*30); sf=filter(b,1,s); %对信号s进行滤波 figure
subplot(2,1,1); plot(t,s);grid on; subplot(2,1,2); plot(t,sf);grid on
针对一个含有15Hz和40Hz的混和正弦波信号,设计一个FIR高通滤波器。
29
%高通滤波器 fs=200;
[n,Wn,beta,ftype]=kaiserord([27 33],[0 1], [0.01 0.01],200) window=kaiser(n+1,beta); %使用kaiser窗函数,(n+1)为窗宽 b=fir1(n,Wn,'high',window); %使用标准频率响应的加窗设计函数fir1 freqz(b,1,512); %数字滤波器频率响应 t=(0:100)/fs;
s=sin(2*pi*t*15)+sin(2*pi*t*40);
sf=filter(b,1,s); %对信号s进行滤波 figure
subplot(2,1,1); plot(t,s);grid on; subplot(2,1,2); plot(t,sf);grid on
30
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库数字信号处理实验讲义2015-9-6(6)在线全文阅读。
相关推荐: