数字信号处理FIR滤波器设计实验报告

更新时间:2023-11-04 18:45:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

[n,wn,bta,ftype]=kaiserord([0.3 0.45 0.65 0.75],[0 1 0],[0.01 0.1087 0.01]);%用kaiserord函数估计出滤波器阶数n和beta参数

h1=fir1(n,wn,ftype,kaiser(n+1,bta),'noscale'); [hh1,w1]=freqz(h1,1,256); figure(1)

subplot(2,1,1)

plot(w1/pi,20*log10(abs(hh1))) grid

xlabel('归一化频率w:曾慧');ylabel('幅度/db'); subplot(2,1,2)

plot(w1/pi,angle(hh1)) grid

xlabel('归一化频率w:曾慧');ylabel('相位/rad');

图一

[n,wn,bta,ftype]=kaiserord([0.3 0.45 0.65 0.75],[0 1 0],[0.01 0.1087 0.01]);%用kaiserord函数估计出滤波器阶数n和beta参数

h1=fir1(n,wn,ftype,kaiser(n+1,bta),'noscale'); [hh1,w1]=freqz(h1,1,256); figure(1)

subplot(2,1,1)

plot(w1/pi,20*log10(abs(hh1))) grid

xlabel('归一化频率w ');ylabel('幅度/db'); subplot(2,1,2)

plot(w1/pi,angle(hh1)) grid

xlabel('归一化频率w ');ylabel('相位/rad'); freqz(h1,1,256);

xlabel(' Normalized Frequency (xπrad/sample):曾慧') ;

图二

[n,fpts,mag,wt]=remezord([0.3 0.45 0.65 0.75],[0 1 0],[0.01 0.1087 0.01]);%用remezord函数估算出remez函数要用到的阶n、归一化频带边缘矢量fpts、频带内幅值响应矢量mag及加权矢量w,使remez函数设计出的滤波器满足f、a及dev指定的性能要求。 h2=remez(n,fpts,mag,wt);%设计出等波纹滤波器 [hh2,w2]=freqz(h2,1,256); figure(2)

subplot(2,1,1)

plot(w2/pi,20*log10(abs(hh2))) grid

xlabel('归一化频率w:曾慧');ylabel('幅度/db'); subplot(2,1,2)

plot(w2/pi,angle(hh2)) grid

xlabel('归一化频率w:曾慧');ylabel('相位/rad');

图三

[n,fpts,mag,wt]=remezord([0.3 0.45 0.65 0.75],[0 1 0],[0.01 0.1087 0.01]);%用remezord函数估算出remez函数要用到的阶n、归一化频带边缘矢量fpts、频带内幅值响应矢量mag及加权矢量w,使remez函数设计出的滤波器满足f、a及dev指定的性能要求。 h2=remez(n,fpts,mag,wt);%设计出等波纹滤波器 [hh2,w2]=freqz(h2,1,256); figure(2)

subplot(2,1,1)

plot(w2/pi,20*log10(abs(hh2))) grid

xlabel('归一化频率w');ylabel('幅度/db'); subplot(2,1,2)

plot(w2/pi,angle(hh2)) grid

xlabel('归一化频率w');ylabel('相位/rad'); freqz(h2,1,256);

xlabel(' Normalized Frequency (xπrad/sample):曾慧') ;

图四

%用凯塞窗设计一FIR低通滤波器,通带边界频率,阻带边界频率,阻带衰减不小于50dB。 b = fir1(29,0.4,kaiser(30,4.55)); [h1,w1]=freqz(b,1);

plot(w1/pi,20*log10(abs(h1))); axis([0,1,-80,10]); grid;

xlabel('归一化频率/p:曾慧') ; ylabel('幅度/dB') ;

图五

%还可以使用[n,Wn,beta,ftype] = kaiserord(f,a,dev)函数来估计滤波器阶数等,得到凯塞窗滤 %波器:

fcuts = [0.3 0.5]; %归一化频率omega/pi mags = [1 0];

devs = [0.05 10^(-2.5)];

[n,Wn,beta,ftype] = kaiserord(fcuts,mags,devs); %计算出凯塞窗N,beta的值 hh = fir1(n,Wn,ftype,kaiser(n+1,beta),'noscale'); freqz(hh);

xlabel(' Normalized Frequency (xπrad/sample):曾慧') ;

图六

%利用雷米兹交替算法设计等波纹滤波器,设计一个线性相位低通FIR数字滤波%器,其指标为:通带边界频率fc=800Hz,阻带边界fr=1000Hz,通带波动% 阻带最小衰减At=40dB,采样频率fs=4000Hz。 %其中,

在MATLAB中可以用remezord 和remez两个函数设计,其结果如图七,MATLAB程序如下:

fedge=[800 1000]; mval=[1 0]; dev=[0.0559 0.01]; fs=4000;

[N,fpts,mag,wt]=remezord(fedge,mval,dev,fs); b=remez(N,fpts,mag,wt); [h,w]=freqz(b,1,256);

plot(w*2000/pi,20*log10(abs(h))); grid;

xlabel('频率/Hz:曾慧') ; ylabel('幅度/dB');

图七

本文来源:https://www.bwwdw.com/article/arb2.html

Top