DSP课程设计(6)

2018-12-17 11:34

1、用各种窗函数设计FIR数字滤波器

1)窗函数设计FIR数字滤波器的步骤

实际的滤波器设计指标通常包括通带截止频率?p、阻带起始频率?s、通带最大衰减?p和阻带最小衰减?s。其步骤如下: (1)构造希望逼近的频率响应函数。

(2)根据阻带最小衰减选定窗函数类型,由“过渡带宽=窗函数主瓣宽度”确定窗长N。为保证所设计的FIR数字滤波器具有第一类线性相位,一般选取N为奇数。根据N写出窗函数表达式w(n)。

(3)求出理想冲激响应hd(n),理想滤波器的截止频率?d?(?p??s)/2。 (4)求出实际滤波器的冲激响应:h(n)?hd(n?M)?w(n),其中,M?N?1。 22)例题: 分别用矩形窗、汉宁窗、哈明窗和布莱克曼窗设计FIR数字低

通滤波器,要求:通带截止频率?p?0.2?,窗长N=21。 程序代码: clear all; close all; clc; wd=0.2*pi;N=21;M=(N-1)/2;

nn=-M:M;n=nn+eps;hd=sin(wd*n)./(pi*n);

w1=boxcar(N)';h1=hd.*w1; w2=hanning(N)';h2=hd.*w2; w3=hamming(N)';h3=hd.*w3; w4=blackman(N)';h4=hd.*w4;

H1=20*log10(abs(fft(h1,1024)));H2=20*log10(abs(fft(h2,1024))); H3=20*log10(abs(fft(h3,1024)));H4=20*log10(abs(fft(h4,1024))); HH1=[H1(513:1024) H1(1:512)]; HH2=[H2(513:1024) H2(1:512)]; HH3=[H3(513:1024) H3(1:512)]; HH4=[H4(513:1024) H4(1:512)];

w=(-512:511)/512;plot(w,HH1,w,HH2,':',w,HH3,'-',w,HH4,'--'); axis([-1.2 1.2 -150 20]);

legend('矩形窗','汉宁窗','哈明窗','布莱克曼窗'); xlabel('\\omega/pi');set(gcf,'color','w');

26

200-20-40-60-80-100-120-140-1-0.8-0.6-0.4-0.20?/pi0.20.40.60.81矩形窗汉宁窗哈明窗布莱克曼窗

4种窗函数设计的低通滤波器分贝幅度特性

从图中可以看出,用矩形窗设计时得到的过渡带最窄,但阻带衰减最小;布莱克曼窗设计时得到的过渡带最宽,但换来的是阻带衰减最大。通常情况下,滤波器设计的两个重要指标很难同时满足,设计过程中应该折中考虑。

调用fir2函数设计一个FIR数字低通滤波器:其在0到pi/8的幅度响应

为1,在pi/8到2pi/8幅度响应为1/2,在2pi/8到4pi/8幅度响应为1/4,在4pi/8到6pi/8幅度响应为1/6,在6pi/8到pi幅度响应为1/8,并且滤波器的阶数为60。画出理想滤波器和设计得到的滤波器的幅度频率响应进行比较。程序代码如下:

f=[0 0.125 0.125 0.25 0.25 0.5 0.5 0.75 0.75 1];

m=[1 1 0.5 0.5 0.25 0.25 1/6 1/6 0.125 0.125]; b=fir2(60,f,m); [h,w]=freqz(b);plot(f,m,w/pi,abs(h));grid on;

legend('‘理想滤波器',’设计滤波器'); 结果如下图所示:

1.110.90.80.70.60.50.40.30.20.100.10.20.30.40.50.60.70.80.91‘理想滤波器设计滤波器

27

2、用remez函数设计FIR数字低通滤波器

1)设计滤波器,使逼近低通滤波特性 。要求通带波纹 ,阻带衰减 ,并用最小阶数实现。绘出设计的FIR数字滤波幅频特性曲线。 程序代码: %用remez函数设计FIR低通滤波器

clear;close all; fc=1/4;fs=5/16; %输入给定指标 Rp=3;As=60;Fs=2; f=[fc,fs];m=[1,0]; dev=[(10^(Rp/20)-1)/(10^(Rp/20)+1),10^(-As/20)];

%计算remezord函数所需要参数f,m,dev

[N,fo,mo,w]=remezord(f,m,dev,Fs); %确定remez函数所需参数 hn=remez(N,fo,mo,w); %调用remez函数进行设计

hw=fft(hn,512); %求设计出的滤波器频率特性

w=[0:511]*2/512;plot(w,20*log10(abs(hw)));grid; %画对数幅频特性曲线 axis([0,max(w)/2,-90,5]);xlabel('w/pi'); ylabel('Magnitude(dB)'); title('幅频特性'); line([0,0.4],[-3,-3]); %画线检验设计结果 line([1/4,1/4],[-90,5]); line([5/16,5/16],[-90,5]); 结果如图所示:

幅频特性0-10-20Magnitude(dB)-30-40-50-60-70-80-9000.10.20.30.40.5w/pi0.60.70.80.9

28

结果分析:如图所示,图中横线为-3dB,两条竖线分别位于频率 1/4和5 /16。显然,通带指标稍有富裕,过渡带宽度和阻带最小衰减刚好满足指标要求。 2)用remez函数设计FIR数字滤波器(在滤波器设计中,技术指标越高,实现滤波器的阶数也就越高,在remez函数调用格式b=remez(N,f,m,w)。) 程序代码如下:%用remez函数设计数字低通滤波器

Fs=1000;num=8192;t=(1:10000)/Fs;

s1=sin(2*pi*t*100);s2=sin(2*pi*t*150);s3=sin(2*pi*t*200); s=s1+s2+s3;

figure(1);plot(t,s);axis([0,0.1,-3,3]);grid; xlabel('time/s');ylabel('amplitude'); %设计一个低通滤波器

fedge=[110 140];mval=[1 0];dev=[0.0559 0.01]; [N,fpts,mag,wt]=remezord(fedge,mval,dev,Fs); b=remez(N,fpts,mag,wt);disp(b); [h,w]=freqz(b,1,256);

figure(2);plot(w/pi,20*log10(abs(h)));grid; xlabel('\\omega/pi');ylabel('Gain(dB)'); %对信号进行滤波

sf=filter(b,1,s); figure(3); plot(t,sf);

axis([0,0.1,-3,3]);grid;

xlabel('time/s');ylabel('amplitude'); %显示频谱结果 figure(4);

f=Fs*(0:num/2-1)/num;

Y=fft(sf,num);P=abs(Y);plot(f,P(1:num/2)); axis([1,500,0,1000]);grid;

xlabel('Frequency/Hz');ylabel('Amplitude');

29

结果如图所示:

321amplitude0-1-2-300.010.020.030.040.05time/s0.060.070.080.090.1

200-20Gain(dB)-40-60-80-100-12000.10.20.30.40.5?/pi0.60.70.80.91

30


DSP课程设计(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:小企业如何管理业务员

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: