信号实验三 用窗函数设计FIR滤波器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三用窗函数设计FIR滤波器
一、实验目的
1.熟悉FIR滤波器设计的基本方法。
2.掌握用窗函数设计FIR数字滤波器的原理及方法,熟悉相应的计算机高级语言编程。
3.熟悉线性相位FIR滤波器的幅频特性和相位特性。
4.了解各种不同窗函数对滤波器性能的响应。
二、实验内容
1、以下是几种常用的窗函数:
1.矩形窗:
2.Hanning(汉宁)窗:
3.Hamming(海明)窗:
4.Blackman窗:
5.Kaiser窗:
窗函数法设计线性相位FIR滤波器可以按如下步骤进行:
1.确定数字滤波器的性能要求。确定各临界频率{错误!未找到引用源。}和滤波器单位脉冲响应长度N。
2.根据性能要求和N值,合理地选择单位脉冲响应h(n)有奇偶对称性,从而确定理想频率响应H d(Ω)的幅频特性和相位特性。
3.用傅里叶反变换公式,求得理想单位脉冲响应h d(n)。
4.选择适当的窗函数W(n)根据式h(n)=h d(n)w(n)求得所设计的FIR滤波器单位脉冲响应。
5.用傅理叶变换求得其频率响应H(Ω),分析它的幅频特性,若不满足要求,可适当改变窗函数形式或长度N,重复上述过程,直至得到满意的结果。
2. 生成四种窗函数:矩形窗、三角窗、汉宁窗、海明窗,并观察其频率响应。
n=30;
%矩形窗及其频响
window1=rectwin(n);
[h1,w1]=freqz(window1,1);
subplot(4,2,1);
stem(window1);title('矩形窗');subplot(4,2,2);
plot(w1/pi,20*log(abs(h1))/abs(h1(1)));title('矩形窗频响');
%三角窗及其频响
window2=triang(n);
[h2,w2]=freqz(window2,1);
subplot(4,2,3);stem(window2);title('三角窗');
subplot(4,2,4);
plot(w2/pi,20*log(abs(h2))/abs(h2(1)));title('三角窗频响');
%汉宁窗及其频响
window3=hann(n);
[h3,w3]=freqz(window3,1);
subplot(4,2,5);stem(window3);title('汉宁窗');
subplot(4,2,6);
plot(w3/pi,20*log(abs(h3))/abs(h3(1)));title('汉宁窗频响');
%汉明窗频响
window4=hamming(n);
[h4,w4]=freqz(window4,1);
subplot(4,2,7);stem(window4);title('汉明窗');
subplot(4,2,8);
plot(w4/pi,20*log(abs(h4))/abs(h4(1)));title('汉明窗频响');
3、
(1)用Hanning窗设计一个线性相位带通滤波器,其长度N=15,
上下边带宽截止频率分别为ω
=0.3π错误!未找到引用源。,ω
1
=0.5π错误!未找到引用源。,求h(n),绘制它的幅频和相位特2
性曲线,观察它的实际3dB和3dB带宽。如果N=45,重复这个设
计,观察幅频和相位特性的变化,注意长度N变化对结果的影响。答: >> window=hanning(16);
>> b=fir1(15,[0.3 0.5],window);freqz(b,1);
改变N=45:
>> window=hanning(46);
>> b=fir1(45,[0.3 0.5],window);freqz(b,1);
(2)改用矩形窗和Blackman窗,设计步骤(1)中的带通滤波器,
观察并记录窗函数对滤波器幅频和相位特性的影响,比较这三种窗函数的特点。
A、矩形窗:
>> window=boxcar(16);
>> b=fir1(15,[0.3 0.5],window);freqz(b,1);
改变N=45:
>> window=boxcar(46);
>> b=fir1(45,[0.3 0.5],window);freqz(b,1);
B、Blackman窗:
>> window=blackman(16);
>> b=fir1(15,[0.3 0.5],window);freqz(b,1);
改变N=45:
>> window=blackman(46);
>> b=fir1(45,[0.3 0.5],window);freqz(b,1);
(3)用Kaiser窗设计一个专用的线性相位滤波器。N=40,当β值
分别为4,6,8时,设计相应的滤波器,比较它们的幅频和相位特性,观察并分析错误!未找到引用源。值不
同的时候对结果有什么影响。
>> window=kaiser(41,4);
>> b=fir1(40,[0.2 0.4],window);freqz(b,1);
>> window=kaiser(41,6);
>> b=fir1(40,[0.2 0.4],window);freqz(b,1);
>> window=kaiser(41,8);