电子科技大学生命科学与技术学院
标准实验报告
2013-2014-第2学期
电子科技大学教务处制表
电子科技大学
实验报告
学生姓名 |
| 学 号 |
|
指导教师 |
| 实验时间 | 2014 年月日 |
一、实验室名称:清水河校区,实验大楼 A406 机房二、实验名称:FIR数字滤波器的设计与应用
三、实验学时:2学时
四、实验原理:
五、实验目的:(详细填写)
利用加窗傅立叶级数(即对时间域的无限长冲激响应进行加窗截短) |
六、实验内容:(详细填写)
加载有用信号(EEGdata2.txt);分析信号的幅度谱,确定低通FIR数字滤波器的指标;分别利用3种窗函数(Rectangular,Hamming, Kaiser)设计此FIR滤波器;对信号加随机噪声,并用设计的滤波器对含噪声信号进行滤波。
要求:
1) 画出滤波器幅度谱及其增益图;分析设计的滤波器是否达到指标要求; |
2)画出滤波器的相位谱,是否是线性相位?
3)分析滤波器的阶数;
4)利用设计的三种滤波器对加载的信号分别进行滤波,对比分析滤
波结果(时间域及频谱)。
七、实验器材(设备、元器件):
八、实验步骤:
九、实验数据及结果分析:(详细填写)(包括程序、图、结果等)
程序:
%%载入EEGdata2.txt并分析其信号谱和幅度谱,并分析基本指标data=load('EEGdata2.txt');n=length(data);
x0=x0/n*2;
figure(1); x0=1:n;
subplot(2,1,1),plot(x0,data,'r');title('原信号时间域信号谱');subplot(2,1,2),plot(x0,f0,'b');title('原信号幅度谱');
%%
%噪声信号添加
noise=20*rand(n,1)-10;
yy=data+noise;
f1=abs(fft(yy));
figure(2);
subplot(2,1,1),plot(x0,yy,'r');title('叠加信号谱');
subplot(2,1,2),plot(x0,f1,'b');title('叠加信号幅度谱');%%
%输入数字指标,确定FIR滤波器阶数
wp=0.23*pi;ws=0.28*pi;Rs=50;Rsm=10^(-Rs/20);
transWidth= ws-wp;
M=[0.92*pi | 3.32*pi]; | Hamming ] |
|
M=M/transWidth;%[Rectangular | |||
N=ceil(2*M+1); |
| ||
fpts=[0.23 0.27];
mag=[1 0];
dev=[Rsm Rsm];
[N(3),Wn0,beta,ftype]=kaiserord(fpts,mag,dev);
disp(N);
%%
%设计给定阶数的窗函数
L=N+1;
w1=rectwin(L(1));
w2=hamming(L(2));
w3=kaiser(L(3),beta);
%%确定滤波器的传输函数,矩形窗滤波器幅度谱相位谱分析
Wn=(wp+ws)/2/pi;
b1=fir1(N(1),Wn,'low',w1);
[h1,ww1]=freqz(b1,1,512);
ww1=ww1/pi;
ff1=abs(h1);db1=20*log10(ff1);
pha1=angle(h1);pha1=unwrap(pha1);
figure(3);subplot(1,3,1),plot(ww1,ff1,'b');title('Rectangular滤 波器幅度谱');
subplot(1,3,2),plot(ww1,db1,'b');title('Rectangular滤波器增益谱');%幅度谱和增益谱subplot(1,3,3),plot(ww1,pha1,'b');title('Rectangular滤波器相位谱');%
%% 相位谱
[h2,ww2]=freqz(b2,1,512);ww2=ww2/pi;
ff2=abs(h2);db2=20*log10(ff2);
pha2=angle(h2);pha2=unwrap(pha2);
figure(4);subplot(1,3,1),plot(ww2,ff2,'b');title('Hamming滤波器幅度谱');
subplot(1,3,2),plot(ww2,db2,'b');title('Hamming滤波器增益谱');%幅度谱和增益谱
subplot(1,3,3),plot(ww2,pha2,'b');title('Hamming滤波器相位谱');%相位谱
%%
%Kaiser滤波器幅度谱相位谱分析
b3=fir1(N(3),Wn0,'low',w3);
[h3,ww3]=freqz(b3,1,512);ww3=ww3/pi;
ff3=abs(h3);db3=20*log10(ff3);
pha3=angle(h3);pha3=unwrap(pha3);figure(5);subplot(1,3,1),plot(ww3,ff3,'b');title('Kaiser滤波器幅度
谱');
subplot(1,3,2),plot(ww3,db3,'b');title('Kaiser滤波器增益谱');%幅度谱
和增益谱
subplot(1,3,3),plot(ww3,pha3,'b');title('Kaiser滤波器相位谱');%相位谱
%%
%滤波
y1=filtfilt(b1,1,yy);
amp1=abs(fft(y1));
figure(6);
subplot(2,1,1),plot(x0,yy,'r',x0,y1,'b',x0,data,'k');title('Recta
ngular窗函数滤波前后信号时间域比较');
subplot(2,1,2),plot(x0,f1,'r',x0,amp1,'b',x0,f0,'k');title('Recta
ngular窗函数滤波前后频率域比较');
y2=filtfilt(b2,1,yy);
amp2=abs(fft(y2));
figure(7);
subplot(2,1,1),plot(x0,yy,'r',x0,y2,'b',x0,data,'k');title('Hammi
ng窗函数滤波前后信号时间域比较');
subplot(2,1,2),plot(x0,f1,'r',x0,amp2,'b',x0,f0,'k');title('Hammi
ng窗函数滤波前后频率域比较');
y3=filtfilt(b3,1,yy);
amp3=abs(fft(y3)); figure(8);subplot(2,1,1),plot(x0,yy,'r',x0,y3,'b',x0,data,'k');title('Kaise
十、实验结论:(详细填写)
1.经分析知所设计滤波器的幅度谱和增益谱符合指标要求,Hamming和Kaiser窗的波纹很小,更接近理想低通滤波器。
2.从三个窗函数的相位谱中可以看出三个窗函数对应的的FIR滤波器的相位谱均为线性相位谱。都实现了信号的不失真滤波。
3.Rectangular,Hamming,Kaiser窗函数对应的FIR滤波器的阶数分 别为38、134、147。由此可见相同数字指标要求下Kaiser滤波器的
阶数要求更高,实现更困难。
4.对比分析各滤波器滤波后信号的幅度谱和信号谱,可得Rectangular窗函数对应的FIR滤波器的滤波效果相对好一些。但整体滤波效果相差不大。
十一、总结及心得体会:(详细填写)
通过Rectangular窗函数法设计FIR滤波器得到的滤波器幅度谱中会出现Gibbs现象,这个是由于理想滤波器的冲激响应是无限长的且不是绝对可积的,因此滤波器是不稳定的,同时由于矩形窗有一个突然到零的过渡。从而导致这一现象的产生。
成反比并且不受过一个FIR滤波器的阶数N与过渡带(wp-ws)
渡带实际位置的影响,因而在设计滤波器时要考虑好指标的选择,
窗函数法设计的FIR滤波器都是线性相位滤波器,因而可以实现
对信号的不失真滤波,但其付出的代价是设计的滤波器阶数比同等指
标下的IIR滤波器阶数大很多,不容易在硬件上实现。
总的来说,通过Matlab编程,自己对FIR滤波器的了解更加深刻了。
十二、对本实验过程及方法、手段的改进建议:
报告评分:
指导教师签字:
Copyright © 2019- kutp.cn 版权所有
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务