有限脉冲响应数字滤波器设计实验报告DOC.docx

上传人:b****7 文档编号:11333881 上传时间:2023-02-27 格式:DOCX 页数:28 大小:310.91KB
下载 相关 举报
有限脉冲响应数字滤波器设计实验报告DOC.docx_第1页
第1页 / 共28页
有限脉冲响应数字滤波器设计实验报告DOC.docx_第2页
第2页 / 共28页
有限脉冲响应数字滤波器设计实验报告DOC.docx_第3页
第3页 / 共28页
有限脉冲响应数字滤波器设计实验报告DOC.docx_第4页
第4页 / 共28页
有限脉冲响应数字滤波器设计实验报告DOC.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

有限脉冲响应数字滤波器设计实验报告DOC.docx

《有限脉冲响应数字滤波器设计实验报告DOC.docx》由会员分享,可在线阅读,更多相关《有限脉冲响应数字滤波器设计实验报告DOC.docx(28页珍藏版)》请在冰豆网上搜索。

有限脉冲响应数字滤波器设计实验报告DOC.docx

有限脉冲响应数字滤波器设计实验报告DOC

成绩:

 

《数字信号处理》

作业与上机实验

(第二章)

 

班级:

学号:

姓名:

任课老师:

完成时间:

 

信息与通信工程学院

2014—2015学年第1学期

 

第7章有限脉冲响应数字滤波器设计

1、教材p238:

19.设信号x(t)=s(t)+v(t),其中v(t)是干扰,s(t)与v(t)的频谱不混叠,其幅度谱如题19图所示。

要求设计数字滤波器,将干扰滤除,指标是允许|s(f)|在0≤f≤15kHz频率范围中幅度失真为±2%(δ1=0.02);f>20kHz,衰减大于40dB(δ2=0.01);希望分别设计性价比最高的FIR和IIR两种滤波器进行滤除干扰。

请选择合适的滤波器类型和设计方法进行设计,最后比较两种滤波器的幅频特性、相频特性和阶数。

 

题19图

(1)matlab代码:

%基于双线性变换法直接设计IIR数字滤波器

Fs=80000;

fp=15000;fs=20000;rs=40;

wp=2*pi*fp/Fs;ws=2*pi*fs/Fs;

Rp=-20*log10(1-0.02);As=40;

[N1,wp1]=ellipord(wp/pi,ws/pi,Rp,As);

[B,A]=ellip(N1,Rp,As,wp1);

[Hk,wk1]=freqz(B,A,1000);

mag=abs(Hk);pah=angle(Hk);

%窗函数法设计FIR数字滤波器

Bt=ws-wp;

alph=0.5842*(rs-21)^0.4+0.07886*(rs-21);

N=ceil((rs-8)/2.285/Bt);

wc=(wp+ws)/2/pi;

hn=fir1(N,wc,kaiser(N+1,alph));

M=1024;

Hk=fft(hn,M);

k=0:

M/2-1;

wk=(2*pi/M)*k;

%画出各种比较结果图

figure

(2);

plot(wk/pi,20*log10(abs(Hk(k+1))),':

','linewidth',2.5);

holdon

plot(wk1/pi,20*log10(mag),'linewidth',2);

holdoff

legend('FIR滤波器','IIR滤波器');

axis([0,1,-80,5]);xlabel('w/\pi');ylabel('幅度/dB');

title('损耗函数');

figure(3)

plot(wk/pi,angle(Hk(k+1))/pi,':

','linewidth',2.5);

holdon

plot(wk1/pi,pah/pi,'linewidth',2);

holdoff

legend('FIR滤波器','IIR滤波器');

xlabel('w/\pi');ylabel('相位/\pi');

title('相频特性曲线');

(2)两种数字滤波器的损耗函数和相频特性的比较分别如图1、2所示:

 

图1损耗函数比较图图2相频特性比较图

(3)IIR数字滤波器阶数:

N=5

FIR数字滤波器阶数:

N=36

(4)运行结果分析:

由图2及阶数可见,IIR阶数低得多,但相位特性存在非线性失真,FIR具有线性相位特性。

20.调用MATLAB工具箱函数fir1设计线性相位低通FIR滤波器,要求希望逼近的理想低通滤波器通带截止频率ωc=π/4rad,滤波器长度N=21。

分别选用矩形窗、Hanning窗、Hamming窗和Blackman窗进行设计,绘制用每种窗函数设计的单位脉冲响应h(n)及其损耗函数曲线,并进行比较,观察各种窗函数的设计性能。

(1)matlab代码:

wc=pi/4;N=21;

hn_boxcar=fir1(N-1,wc/pi,boxcar(N));

hn_hanning=fir1(N-1,wc/pi,hanning(N));

hn_hamming=fir1(N-1,wc/pi,hamming(N));

hn_blackman=fir1(N-1,wc/pi,blackman(N));

n=0:

N-1;

plot(n,hn_boxcar);

holdon

plot(n,hn_hanning,':

','linewidth',2);

plot(n,hn_hamming,'+','linewidth',2);

plot(n,hn_blackman,'o');

holdoff

xlabel('n');ylabel('h(n)');

legend('矩形窗','汉宁窗','哈明窗','布莱克曼窗');

title('单位冲激响应');

M=1024;Hk=fft(hn_boxcar,M);k=0:

M/2-1;

wk=(2*pi/M)*k;

figure();

plot(wk/pi,20*log10(abs(Hk(k+1))),'linewidth',2);

Hk=fft(hn_hanning,M)

holdon

plot(wk/pi,20*log10(abs(Hk(k+1))),':

','linewidth',3);

Hk=fft(hn_hamming,M)

plot(wk/pi,20*log10(abs(Hk(k+1))),'o');

Hk=fft(hn_blackman,M)

plot(wk/pi,20*log10(abs(Hk(k+1))),'*');

holdoff

legend('矩形窗','汉宁窗','哈明窗','布莱克曼窗');

axis([0,1,-80,5]);xlabel('w/\pi');ylabel('幅度/dB');

title('损耗函数');

(2)四种窗函数设计的单位脉冲响应的比较如图3所示:

 

图3单位脉冲响应比较图

(3)四种窗函数设计的损耗函数的比较如图4所示:

 

图4损耗函数比较图

(4)运行结果分析:

由图4可见,当滤波器长度N不变时,矩形窗设计的滤波器的过渡带最窄,阻带最小衰减最小;布莱克曼窗设计的滤波器的过渡带最宽,同时阻带最小衰减最大。

21.将要求改成设计线性相位高通FIR滤波器,重作题20。

(1)matlab代码:

wc=pi/4;N=21;

hn_boxcar=fir1(N-1,wc/pi,'high',boxcar(N));

hn_hanning=fir1(N-1,wc/pi,'high',hanning(N));

hn_hamming=fir1(N-1,wc/pi,'high',hamming(N));

hn_blackman=fir1(N-1,wc/pi,'high',blackman(N));

n=0:

N-1;

plot(n,hn_boxcar);

holdon

plot(n,hn_hanning,':

','linewidth',2);

plot(n,hn_hamming,'+','linewidth',2);

plot(n,hn_blackman,'o');

holdoff

xlabel('n');ylabel('h(n)');

legend('矩形窗','汉宁窗','哈明窗','布莱克曼窗');

title('单位冲激响应');

M=1024;Hk=fft(hn_boxcar,M);k=0:

M/2-1;

wk=(2*pi/M)*k;

figure();

plot(wk/pi,20*log10(abs(Hk(k+1))),'linewidth',2);

Hk=fft(hn_hanning,M)

holdon

plot(wk/pi,20*log10(abs(Hk(k+1))),':

','linewidth',3);

Hk=fft(hn_hamming,M)

plot(wk/pi,20*log10(abs(Hk(k+1))),'o');

Hk=fft(hn_blackman,M)

plot(wk/pi,20*log10(abs(Hk(k+1))),'*');

holdoff

legend('矩形窗','汉宁窗','哈明窗','布莱克曼窗');

axis([0,1,-80,5]);xlabel('w/\pi');ylabel('幅度/dB');

title('损耗函数');

 

(2)四种窗函数设计的单位脉冲响应的比较如图5所示:

 

图5单位脉冲响应比较图

(3)四种窗函数设计的损耗函数的比较如图6所示:

 

图6损耗函数比较图

(5)运行结果分析:

由图6可见,当滤波器长度N不变时,矩形窗设计的滤波器的过渡带最窄,阻带最小衰减最小;布莱克曼窗设计的滤波器的过渡带最宽,同时阻带最小衰减最大。

25.调用MATLAB工具箱函数fir1设计线性相位高通FIR滤波器。

要求通带截止频率为0.6πrad,阻带截止频率为0.45π,通带最大衰减为0.2dB,阻带最小衰减为45dB。

显示所设计的单位脉冲响应h(n)的数据,并画出损耗函数曲线。

(1)matlab代码:

wp=0.6*pi;ws=0.45*pi;

Bt=wp-ws;

N0=ceil(6.6*pi/Bt);

N=N0+mod(N0+1,2);

wc=(wp+ws)/2/pi;

hn=fir1(N-1,wc,'high',hamming(N));

M=1024;

Hk=fft(hn,M);

n=0:

N-1;

stem(n,hn);

xlabel('n');ylabel('h(n)');

title('单位冲激响应');

k=0:

M/2-1;

wk=(2*pi/M)*k;

figure

(2);

plot(wk/pi,20*log10(abs(Hk(k+1))));

axis([0,1,-80,5]);xlabel('w/\pi');ylabel('幅度/dB');

title('损耗函数');gridon

(2)高通FIR滤波器的单位脉冲响应、损耗函数如图7、8所示:

 

图7单位脉冲响应图8损耗函数

26.调用MATLAB工具箱函数fir1设计线性相位带通FIR滤波器。

要求通带截止频率为0.55πrad和0.7πrad,阻带截止频率为0.45πrad和0.8πrad,通带最大衰减为0.15dB,阻带最小衰减为40dB。

显示所设计的单位脉冲响应h(n)的数据,并画出损耗函数曲线。

(1)matlab代码:

wp1=0.55*pi;wp2=0.7*pi;ws1=0.45*pi;ws2=0.8*pi;

Bt=wp2-wp1;

N=ceil(6.2*pi/Bt);

wc=[(wp1+ws1)/2/pi,(ws2+wp2)/2/pi];

hn=fir1(N-1,wc,hanning(N));

M=1024;

Hk=fft(hn,M);

n=0:

N-1;

stem(n,hn);

xlabel('n');ylabel('h(n)');

title('单位冲激响应');

k=0:

M/2-1;

wk=(2*pi/M)*k;

figure

(2);

plot(wk/pi,20*log10(abs(Hk(k+1))));

axis([0,1,-80,5]);xlabel('w/\pi');ylabel('幅度/dB');

title('损耗函数');gridon

(2)带通FIR滤波器的单位脉冲响应、损耗函数如图9、10所示:

 

图9单位脉冲响应图10损耗函数

2、某信号

为:

,其中

设计最低阶FIR数字滤波器,按下图所示对

进行数字滤波处理,实现:

1)将

频率分量以高于50dB的衰减抑制,同时以低于2dB的衰减通过

频率分量;

一、基于窗函数法设计FIR数字滤波器:

(1)matlab代码:

Fs=3800;

fp=130;

fs=600;

rs=50;

wp=2*pi*fp/Fs;

ws=2*pi*fs/Fs;

Bt=ws-wp;

alph=0.5842*(rs-21)^0.4+0.07886*(rs-21);

N=ceil((rs-8)/2.285/Bt);

wc=(wp+ws)/2/pi;

hn=fir1(N,wc,kaiser(N+1,alph));

M=1024;

Hk=fft(hn,M);

k=0:

M/2-1;

wk=(2*pi/M)*k;

figure

(2);

plot(wk/pi,20*log10(abs(Hk(k+1))));

axis([0,1,-80,5]);

xlabel('w/\pi');

ylabel('幅度/dB');

title('损耗函数');gridon

figure(3)

plot(wk/pi,angle(Hk(k+1))/pi);gridon

xlabel('w/\pi');

ylabel('相位/\pi');

title('相频特性曲线');

(2)数字滤波器的损耗函数和相频特性分别如图11、12所示:

 

图11损耗函数曲线图12相频特性曲线

二、按直接型网络结构编程编写滤波程序:

(1)matlab代码:

N=500;n=0:

N-1;

f=2800;T=1/f;t=n*T;

x=0.5*cos(2*pi*100*t)+0.7*cos(2*pi*130*t+0.1*pi)+0.4*cos(2*pi*600*t);

m1=0;m2=0;m3=0;m4=0;m5=0;m6=0;m7=0;m8=0;m9=0;m10=0;m11=0;m12=0;m13=0;m14=0;

m15=0;m16=0;m17=0;m18=0;m19=0;m20=0;m21=0;m22=0;m23=0;m24=0;

form=1:

length(x)

y(m)=0.0012*x(m)+m1*0.0011-m2*0.0014-m3*0.0072-m4*0.0147-m5*0.0193-...

m6*0.0145+m7*0.0055+m8*0.0423+m9*0.0910+m10*0.1410+m11*0.1786+m12*0.1926+...

m13*0.1786+m14*0.1410+m15*0.0910+m16*0.0423+m17*0.0055-m18*0.0145-...

m19*0.0193-m20*0.0147-m21*0.0072-m22*0.0014+m23*0.0011+m24*0.0012;

m24=m23;m23=m22;m22=m21;m21=m20;m20=m19;m19=m18;m18=m17;m17=m16;m16=m15;

m15=m14;m14=m13;m13=m12;m12=m11;m11=m10;m10=m9;m9=m8;m8=m7;m7=m6;m6=m5;

m5=m4;m4=m3;m3=m2;m2=m1;m1=x(m);

end

plot(n,x);

title('信号x(n)');ylabel('幅值');xlabel('n');

S=fft(x,N);fs=n/(N*T);

figure

(2)

plot(fs,abs(S));

axis([0,1500,0,180]);

title('原信号幅度频谱(采样点数为500)');

xlabel('频率/Hz');ylabel('幅值');

figure(3)

plot(n,y);title('信号y(n)');

ylabel('幅值');xlabel('n');

S=fft(y,N);fs=n/(N*T);

figure(4)

plot(fs,abs(S));

axis([0,1500,0,160]);

title('幅度频谱');xlabel('频率/Hz');ylabel('幅值');

(2)

原信号及其幅度频谱分别如图13、14所示:

 

图13信号x(n)波形图14幅度频谱

(3)滤波后信号y(n)及其幅度频谱分别如图15、16所示:

 

图15信号y(n)波形图16幅度频谱

2)将

频率分量以高于50dB的衰减抑制,同时以低于2dB的衰减通过

频率分量;

一、基于频率采样法设计FIR数字滤波器:

(1)matlab代码:

T=0.48;

Fs=3800;

fp=600;fs=100;

wp=2*pi*fp/Fs;ws=2*pi*fs/Fs;

datB=wp-ws;wc=wp;

m=1;

N=ceil((m+1)*2*pi/datB+1);

N=N+mod(N+1,2);

Np=fix(wc/(2*pi/N));Ns=N-2*Np-1;

Ak=[zeros(1,Np+1),ones(1,Ns),zeros(1,Np)];

Ak(Np+2)=T;Ak(N-Np)=T;

thetak=-pi*(N-1)*(0:

N-1)/N;

Hk=Ak.*exp(1j*thetak);

hn=real(ifft(Hk));

M=1024;

Hk=fft(hn,M);

k=0:

M/2-1;

wk=(2*pi/M)*k;

figure

(2);

plot(wk/pi,20*log10(abs(Hk(k+1))));

axis([0,1,-80,5]);xlabel('w/\pi');ylabel('幅度/dB');

title('损耗函数');gridon

figure(3)

plot(wk/pi,angle(Hk(k+1))/pi);gridon

xlabel('w/\pi');ylabel('相位/\pi');

title('相频特性曲线');

(2)数字滤波器的损耗函数和相频特性分别如图17、18所示:

 

图17损耗函数曲线图18相频特性曲线

二、按直接型网络结构编程编写滤波程序:

(1)matlab代码:

N=500;n=0:

N-1;

f=2800;T=1/f;t=n*T;

x=0.5*cos(2*pi*100*t)+0.7*cos(2*pi*130*t+0.1*pi)+0.4*cos(2*pi*600*t);

m1=0;m2=0;m3=0;m4=0;m5=0;m6=0;m7=0;m8=0;m9=0;m10=0;m11=0;m12=0;m13=0;m14=0;

m15=0;m16=0;

form=1:

length(x)

y(m)=-0.0009*x(m)-m1*0.0169-m2*0.0128+m3*0.0282+m4*0.0627+m5*0.0198-...

m6*0.1198-m7*0.2827+m8*0.6447-m9*0.2827-m10*0.1198+m11*0.0198+m12*0.0627+...

m13*0.0282-m14*0.0128-m15*0.0169-m16*0.0009;

m16=m15;m15=m14;m14=m13;m13=m12;m12=m11;m11=m10;m10=m9;m9=m8;m8=m7;

m7=m6;m6=m5;m5=m4;m4=m3;m3=m2;m2=m1;m1=x(m);

end

plot(n,x);

title('信号x(n)');ylabel('幅值');xlabel('n');

S=fft(x,N);fs=n/(N*T);

figure

(2)

plot(fs,abs(S));

axis([0,1500,0,180]);

title('原信号幅度频谱(采样点数为500)');

xlabel('频率/Hz');ylabel('幅值');

figure(3)

plot(n,y);

title('信号y(n)');

ylabel('幅值');xlabel('n');

S=fft(y,N);fs=n/(N*T);

figure(4)

plot(fs,abs(S));

axis([0,1500,0,160]);

title('幅度频谱');

xlabel('频率/Hz');ylabel('幅值');

(4)

原信号及其幅度频谱分别如图19、20所示:

 

图19信号x(n)波形图20幅度频谱

(5)

滤波后信号y(n)及其幅度频谱分别如图21、22所示:

 

图21信号y(n)波形图22幅度频谱

要求:

按数字滤波器直接型结构图编写滤波程序,求得

;1)中的FIR滤波器采用窗函数法设计;2)中的FIR滤波器采用频率采样法设计。

画出所设计的滤波器频率特性图、信号时域图;给出滤波器设计的MATLAB代码与滤波器实现的代码;选择合适的信号采样周期T。

3)与第6章作业2的IIR滤波方法进行比较研究。

一、低通滤波器部分:

(1)matlab代码:

Fs=3800;

fp=130;fs=600;rs=50;

wp=2*pi*fp/Fs;ws=2*pi*fs/Fs;

Bt=ws-wp;

alph=0.5842*(rs-21)^0.4+0.07886*(rs-21);

N=ceil((rs-8)/2.285/Bt);

wc=(wp+ws)/2/pi;

hn=fir1(N,wc,kaiser(N+1,alph));

M=1024;

Hk=fft(hn,M);

k=0:

M/2-1;

wk=(2*pi/M)*k;

wp2=2*fp/Fs;ws2=2*fs/Fs;

Rp=2;As=50;

[N1,wp1]=ellipord(wp2,ws2,Rp,As);

[B,A]=ellip(N1,Rp,As,wp1)

[Hk1,wk1]=freqz(B,A);

mag=abs(Hk1);pah=angle(Hk1);

plot(wk1/pi,20*log10(mag));gridon

holdon

plot(wk/pi,20*log10(abs(Hk(k+1))),':

','linewidth',3);gridon

holdoff

xlabel('w/\pi');ylabel('幅度/dB')

title('损耗函数曲线');

legend('IIR','FIR');

figure

(2)

plot(wk1/pi,pah/pi);gridon

holdon

plot(wk/pi,angle(Hk(k+1))/pi,':

','linewidth',3);gridon

holdoff

xlabel('w/\pi');ylabel('相位/\pi');

title('相频特性曲线');

legend('IIR','FIR');

(2)两种滤波器的损耗函数、相频特性的比较图见图23、24:

 

图23损耗函数比较图图24相频特性比较图

(3)IIR滤波器的阶数:

N1=3

FIR滤波器的阶数:

N=17

二、高通滤波器部分:

(1)matlab代码:

T=0.48;

Fs=3800;

fp=600;fs=100;

wp=2*pi*fp/Fs;ws=2*pi*fs/

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 金融投资

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1