FIR滤波器设计与实现.docx
- 文档编号:24701102
- 上传时间:2023-05-31
- 格式:DOCX
- 页数:11
- 大小:127.22KB
FIR滤波器设计与实现.docx
《FIR滤波器设计与实现.docx》由会员分享,可在线阅读,更多相关《FIR滤波器设计与实现.docx(11页珍藏版)》请在冰豆网上搜索。
FIR滤波器设计与实现
FIR滤波器设计与实现实验报告
实验时间:
2014年5月29日
专业:
微电子学
实验人员:
12微电子1228402027许一飞、
1228402045祁响、1228402046刘秦华
1.实验目的:
(1)通过实验巩固FIR滤波器的认识和理解。
(2)熟悉掌握FIR低通滤波器的窗函数设计方法。
(3)理解FIR的具体应用。
2.实验内容:
在通信、信息处理以及信号检测等应用领域广泛使用滤波器进行去噪和信号的增强。
FIR滤波器由于可实现线性相位特性以及固有的稳定特征而等到广泛应用,其典型的设计方法是窗函数设计法。
设计流程如下:
(1)设定指标:
截止频率fc,过渡带宽度△f,阻带衰减A。
(2)求理想低通滤波器(LPF)的时域响应hd(n)。
(3)选择窗函数w(n),确定窗长N。
(4)将hd(n)右移(N-1)/2点并加窗获取线性相位FIR滤波器的单位脉冲响应h(n)。
(5)求FIR的频域响应H(ejw),分析是否满足指标。
如不满足,转(3)重新选择,否则继续。
(6)求FIR的系统函数H(z)。
(7)依据差分方程由软件实现FIR滤波器或依据系统函数由硬件实现。
实验要求采用哈明窗设计一个FIR低通滤波器并由软件实现。
哈明窗函数如下:
w(n)=0.54-0.46cos(2πn/(N-1)),0≤n≤N-1; (公式 1)
设采样频率为fs=10kHz。
实验中,窗长度N和截止频率fc应该都能调节。
具体
实验内容如下:
(1)设计FIR低通滤波器(FIR_LPF)(书面进行)。
(2)依据差分方程编程实现FIR低通滤波器。
(3)输入信号x(n)=3.0sin(0.16πn)+cos(0.8πn)到fc=2000Hz,N=65的FIR_LPF,求输出信号y(n),理论计算并画出0≤f≤fs范围输入信号x(n)和输出信号y(n)的幅度谱,标出峰值频率,观察滤波器的实际输出结果,分析其正确性。
(4)输入信号x(n)=1.5sin(0.2nπ)-cos(0.4nπ)+1.2sin(0.9nπ)到fc=1100Hz,N=65的FIR_LPF,求输出信号y(n),理论计算并画出0≤f≤fs范围输入信号x(n)和输出信号y(n)的幅度谱,标出峰值频率,观察滤波器的实际输出结果,分析其正确性。
(5)输入信号x(n)=1.5sin(0.2nπ)-cos(0.4nπ)+1.2sin(0.9nπ)到fc=2100Hz,N=65的FIR_LPF,求输出信号y(n),理论计算并画出0≤f≤fs范围输入信号x(n)和输出信号y(n)的幅度谱,标出峰值频率,观察滤波器的实际输出结果,分析其正确性。
(6)输入信号x(n)=1.5sin(0.2nπ)-cos(0.4nπ)+5.0sin(0.9nπ)到fc=1100Hz,N=65的FIR_LPF,求输出信号y(n),理论计算并画出0≤f≤fs范围输入信号x(n)和输出信号y(n)的幅度谱,标出峰值频率,观察滤波器的实际输出结果,分析其正确性。
(7)输入信号x(n)=1.5sin(0.2nπ)-cos(0.4nπ)+1.2sin(0.9nπ)到fc=1990Hz,N=65的FIR_LPF,求输出信号y(n),理论计算并画出0≤f≤fs范围输入信号x(n)和输出信号y(n)的幅度谱,标出峰值频率,观察滤波器的实际输出结果,分析其正确性。
3.实验程序
functionf=FIR(A,a,B,b,C,c,fc,N,S)
fs=10000;
wc=fc*2*pi/fs;
n=0:
2*N-1;
x=A*sin(a*pi*n)+B*cos(b*pi*n)+C*sin(c*pi*n);
n=0:
(N-1);
w=0.54-0.46*cos(2*pi*n/(N-1));
m=n-(N-1)/2+eps;
hd=(sin(wc*m))./(pi*m);
h=hd.*w;
form=0:
N-1
y(m+1)=0;
fork=0:
N-1
y(m+1)=y(m+1)+h(k+1)*x(m-k+1+N);
end
end
x=x(n+1+N);
s=0:
S-1;
f=fs*s/S;
X=abs(fft(x,S))/(N/2);
H=abs(fft(h,S));
Y=X.*H;
maxim=0;
maxi=0;
maxk=0;
maxl=0;
fork=0:
S-1
ifY(k+1)>maxim
maxim=Y(k+1);
maxk=k;
end
end
forl=0:
S-1
ifX(l+1)>maxi
maxi=X(l+1);
maxl=l;
end
end
fa=maxl/S*fs;
fb=maxk/S*fs;
Ma=max(X);
Mb=max(Y);
figure
(1);
subplot(6,1,1);plot(x,'.-')
title('x(n)');
subplot(6,1,2);plot(n,h,'.-')
title('h(n)');
subplot(6,1,3);plot(y,'.-')
title('y(n)');
subplot(6,1,4);stem(f,X,'.','fill');
xlabel('f');
ylabel('|X|');
X_str=sprintf('\n\n\nk=%d\nf=%.2fHz\nA=%.2f',maxl,fa,Ma);
text(fa+fs/50,Ma,X_str);
subplot(6,1,5);plot(f,H,'.-')
xlabel('f');
ylabel('|H|');
H_str=sprintf('\nfc=%dHz',fc);
text(fa+fs/50,l,H_str);
subplot(6,1,6);stem(f,Y,'.b','fill')
xlabel('f');
ylabel('|Y|');
Y_str=sprintf('\n\n\nk=%d\nf=%.2fHz\nA=%.2f',maxk,fb,Mb);
text(fa+fs/50,Mb,Y_str);
4.实验结果
(1) x(n)=3.0sin(0.16nπ)+cos(0.8nπ)
输入信号是频率为800Hz和4kHz的三角波的叠加,经过截止频率为2KHz的FIR低通滤波器,4kHz频率成分被滤除,800Hz频率成分留下,实验结果下图所示,与理论分析符合。
(2) x(n)=1.5sin(0.2nπ)-cos(0.4nπ)+1.2sin(0.9nπ)
输入信号是频率为1kHz、2kHz和4.5kHz的三角波的叠加,经过截止频率为1.1KHz的FIR低通滤波器,2kHz、4.5kHz频率成分被滤除,1kHz频率成分留下,实验结果如下图所示,与理论分析符合。
(3) x(n)=1.5sin(0.2nπ)-cos(0.4nπ)+1.2sin(0.9nπ)
输入信号是频率为1kHz、2kHz和4.5kHz的三角波的叠加,经过截止频率为2.1KHz的FIR低通滤波器,4.5kHz频率成分被滤除,1kHz、2kHz频率成分留下,实验结果与理论分析符合。
(4) x(n)=1.5sin(0.2nπ)-cos(0.4nπ)+5.0sin(0.9nπ)
输入信号是频率为1kHz、2kHz和4.5kHz的三角波的叠加,经过截止频率为1.1KHz的FIR低通滤波器,2kHz、4.5kHz频率成分被滤除,1kHz频率成分留下,实验结果如下图所示,与理论分析符合。
(5) x(n)=1.5sin(0.2nπ)-cos(0.4nπ)+1.2sin(0.9nπ)
输入信号是频率为1kHz、2kHz和4.5kHz的三角波的叠加,经过截止频率为1.99KHz的FIR低通滤波器,2kHz、4.5kHz频率成分被滤除,1kHz频率成分留下。
但由于截止频率1.99kHz与信号频率2kHz过于接近,使得我们在实验中用哈明窗设计的FIR滤波器没有能够把2kHz的成分滤除掉,导致实验结果(如下图)与理论分析不符合。
五、思考题
(1)当哈明窗长度比65小(32)或大(129)的话,结果如何变化?
以x(n)=1.5sin(0.2nπ)-cos(0.4nπ)+1.2sin(0.9nπ) 为例
N=32
N=129
通过所学知识,我们知道哈明窗的窗长主要影响的是过渡带的宽度,窗长越长,窗函数主瓣宽度越窄,所以过渡带也越窄,而窗长对阻带衰减基本没有影响。
通过实验我们可以发现,使用129窗长的FIR滤波器过渡带明显比32窗长的FIR滤波器过渡带要窄得多,这符合我们理论上的认识。
除此以外我们还发现,实验(7)由于截止频率(1.99kHz)与输入信号频率之一(2kHz)过于接近而导致FIR滤波器无法将其完全滤除,但是输出信号频率(2kHz)在相对幅值上窗长为129的明显比窗长为32的要小得多,说明在一定范围内,窗长越长,滤波的效果越好。
(2)当采用矩形窗的话,实验(3)、(4)的结果是怎样的?
实验(3)
N=32
N=129
实验(4)
N=32
N=129
(3)实验(6)的结果说明了什么?
答:
实验(6)的结果说明:
输入信号频率在FIR滤波器截止频率之内的信号可以通过滤波器,在截止频率之外(与截止频率不是很接近)的信号频率则不能通过滤波器,这些信号无论幅值大小,只要频率远大于FIR滤波器截止频率,输出信号中就不会有其频率成分。
六、实验总结
通过Matlab编程实现了采用哈明窗设计的FIR低通滤波器。
在这次实验中,我们遇到了技术上和系统上的一些问题。
技术上,如何用编程语言实现时域中波形的输出、幅值-频率的输出、以及如何调用不同窗函数设计不同的FIR滤波器并实现其功能,成员之间都进行了大量的讨论与尝试,在程序的整体性上还有待加强。
系统上,我们发现设计出来的低通滤波器,并不是完全和理想滤波器一样。
比如说,我们设计出来的低通滤波器,当信号频率大于截至频率但是两者很接近时,滤波器并不能很好地把信号频率滤除,所以说在实际应用中,我们需要有技术指标来衡量滤波器是否符合要求。
当然,我们在发现问题的同时也更深刻地理解了FIR滤波器的工作原理、窗函数的设计方法、不同窗函数所对应的功能以及FIR滤波器与理想滤波器之间存在的差距。
窗函数的类型和窗长是我们用窗函数设计不同种类FIR滤波器要考虑的两个重要因素。
在对待实际问题中,我们要基于技术指标合理选择滤波器的参数,做到灵活运用。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- FIR 滤波器 设计 实现