window指定窗函数,假设不指定,默认为哈明窗。
2.频率取样法设计FIR滤波器
fir2函数可以实现FIR数字滤波器的频率取样法设计。
可设计任意形状频率响应的滤波器。
格式如下:
b=fir2(M,f,m)
b=fir2(M,f,m,window)
输出参数:
b为FIR数字滤波器的M+1个系数构成的矩阵。
输入参数:
M为滤波器的阶数。
f指定归一化的各频带边界频率,从0到1递增,1对应于fsam/2,即数字频率=。
m指定各频带边界频率处的幅度响应,因此f和m的长度相等,即length(f)=length(a)。
window指定窗函数,假设不指定,默认为哈明窗。
3.实验设备及材料
装有Matlab的计算机一台
4.实验方法步骤及考前须知
利用Matlab中的函数分析并绘出常用根本信号的波形。
考前须知:
(1)在使用MATLAB时应注意中英输入法的切换,在中文输入法输入程序时得到的程序是错误的;
(2)MATLAB中两个信号相乘表示为x.*u,中间有个‘.’,同样两个信号相除也是如此;
(3)使用MATLAB编写程序时,应新建一个m文件,而不是直接在andante窗口下编写程序;
在使用MATLAB编程时,应该养成良好的编写习惯。
5.实验数据处理方法
比拟法
画图法
6.参考文献
陈后金,等.?
数字信号处理?
.2版【M】.:
高等教育,2010
X德丰,等.?
MATLAB数值计算与方法?
.:
机械工业,2010
二.实验报告
1.实验现象与结果
1.分别使用矩形窗、汉明窗、汉宁窗设计一个阶数M=9的FIR数字低通滤波器,截频为
=
rad
〔1〕画出各种方法设计的数字滤波器的单位脉冲响应。
〔2〕画出它们的幅频响应,并比拟各滤波器的通带纹波和阻带纹波,有何结论?
〔3〕假设输入为
计算各滤波器的输出并画出其波形。
%Rectangularwindow
b1=fir1(9,1/pi,boxcar(10));
[H1,w]=freqz(b1,1,512);H1_db=20*log10(abs(H1));
%hammingwindow
b2=fir1(9,1/pi,hamming(10));
[H2,w]=freqz(b2,1,512);H2_db=20*log10(abs(H2));
%hanningwindow
b3=fir1(9,1/pi,hanning(10));
[H3,w]=freqz(b3,1,512);H3_db=20*log10(abs(H3));
subplot(3,2,1);stem(b1);
title('矩形窗得到的FIR滤波器脉冲响应')
subplot(3,2,3);stem(b2);
title('哈明窗得到的FIR滤波器脉冲响应')
subplot(3,2,5);stem(b3);
title('汉宁窗得到的FIR滤波器脉冲响应')
subplot(3,2,2);plot(w,H1_db);
title('rectangularwindowFrequencyresponse');gridon
subplot(3,2,4);plot(w,H2_db);
title('hammingwindowFrequencyresponse');gridon
subplot(3,2,6);plot(w,H3_db);
title('hanningwindowFrequencyresponse');gridon
2.利用频率抽样方法设计FIR数字低通滤波器,并绘出衰耗特性。
阶数M=15,给定指标为:
改变Ad[4]的值,观察该FIR低通数字滤波器的衰耗特性的变化。
f=[01/pi1/pi1/pi1/pi1/pi1/pi1];
m=[11110.389000];
b=fir2(15,f,m);[h,w]=freqz(b,1,128);
legend('Ideal','fir2Designed')
figure
(1);plot(f,m,w/pi,abs(h));grid
title('parisonofFrequencyResponseMagnitudes')
figure
(2);H_db=20*log10(abs(h));plot(w,H_db);grid
%改变M的值
m=[11110.589000];
b2=fir2(15,f,m);[h2,w]=freqz(b2,1,128);
legend('Ideal','fir2Designed')
figure(3);plot(f,m,w/pi,abs(h2));grid
title('parisonofFrequencyResponseMagnitudes')
figure(4);H_db=20*log10(abs(h2));plot(w,H_db);gridon
2.实验总结
思考题:
在FIR窗口法设计中,为何采用不同和特性的窗函数?
选用窗函数的依据是什么?
答:
FIR滤波器目前常用的设计方法有窗函数法和频率采样法,窗函数法是从时域进展设计,而频率采样法是从频域进展设计。
窗函数法由于简单、物理意义清晰,因而得到了较为广泛的应用。
窗函数法设计的根本思想是:
首先根据技术指标要求,选取适宜的阶数N和窗函数的类型w(n),使其幅频特性逼近理想滤波器幅频特性。
其次,因为理想滤波器的hd(n)是无限长的,所以需要对hd(n)进展截断,数学上称这种方法为窗函数法。
简而言之,用窗函数法设计FIR滤波器是在时域进展的,先用傅里叶变换求出理想滤波器单位抽样相应hd(n),然后加时间窗w(n)对其进展截断,以求得FIR滤波器的单位抽样响应h(n)。
窗函数有截短和平滑的作用,窗函数选择的好,可以在一样阶次的情况下,提高滤波器的性能,或是在满足设计要求的情况下,减少滤波器阶数。
选窗标准:
1.较低的旁瓣幅度,尤其是第一旁瓣;
2.旁瓣幅度要下降得快,以利于增加阻带衰减;
3.主瓣宽度要窄,这样滤波器过渡带较窄。
但这三点难以同时满足,中选用主瓣宽度较窄时,虽然得到的幅频特性较陡峭,但通带、阻带波动会明显增加;中选用较低的旁瓣幅度时,虽然得到的幅频特性较平缓匀滑,但过渡带变宽。
因此,实际的选择往往是取折衷。
一般选这几个窗之一:
矩形窗、三角窗、汉宁窗、海明窗、布拉克曼窗、凯塞窗,可以查查资料比拟他们的旁瓣幅度,过渡带宽度和阻带最小衰减后再进展选择。
结论:
本实验应当注意,在设计高通和带阻滤波器时,阶数N只能取偶数(h(n)长度N+1为奇数)。
不过,当用户将N设置为奇数时,fir1会自动对N加1。
hn=fir1(N,wc,window)可以指定窗函数向量window。
如果缺省window参数,那么fir1默认为hamming窗。
可用的其他窗函数有Boxcar,Hanning,Bartlett,Blackman,Kaiser和Chebwin窗。
其关键环节是理解理论上的知识,再把它应用到matlab的实现中,这个过程,相对其他环节来说稍微难些。
带限信号即是带宽有限的信号,采样定理要求采样频率必须是信号最高频率的2倍以上,否那么会出现频率混叠。
如果是非带限〔无限带宽〕,最高采样频率理论上要求无穷大,这是做不到的。
典型的无限带宽信号有白噪声。
一般需要在采样前面加抗混叠滤波器。
加低通滤波器,调节滤波器的截止频率等于你希望保存的的信号的最高频率即可。
总结:
通过本次实验使我了解到FIR数字滤波器的设计可以采用两种方法来做,频率取样法和窗函数法。
频率取样法的优点是可以从频域直接处理,并且适合于最优化设计,缺点是频率控制点的位置受限于频率周上的N个采样点,因此滤波器的截止频率不易随意控制。
窗口法设计的主要优点是简单,使用起来方便。
窗函数大多都有封闭的公式可循,性能、参数都已有表格、资料可供参考,计算程序简便,所以很实用。
采用FIR滤波器可以有效地对数字信号进展各种期望的处理。
例如,一个采集的实际信号,希望从中提取不同频率的信号分量;或者采集的实际信号含有噪声分量,需要滤除噪声等。
上述对数字信号的处理可以通过使用不同的滤波器来实现。
利用MATLAB进展设计和仿真,可得到适宜的滤波器。
教师评语及评分:
签名:
年月日