1、数字信号处理matlab仿真数字信号处理matlab仿真 数字信号处理作业设计报告 一、 目的 1.增进对Matlab的认识,加深对数字信号处理理论方面的理解。 2.掌握数字信号处理中IIR和FIR滤波器的设计。 3.了解和掌握用Matlab实现IIR和FIR滤波器的设计方法、课程,为以后的设计打下良好基础。 二、设计内容 1.IIR(无限脉冲响应)模拟滤波器设计 (1)设计题目:椭圆型模拟带通IIR滤波器 技术指标: 通带下截止频率fpl=2kHz,上截止频率fph=5kHz,通带内最大衰减ap=1dB;阻带下截止频率fsl=1.5kHz上截止频率fsh=5.5kHz,阻带最小衰减as=40
2、dB. 设计原理: 确定模拟带通滤波器的技术指标,并对边界频率做归一化处理; 确定归一化低通技术要求; 设计归一化低通G(p); 将低通G(p)转换成带通H(s)。 Matlab原程序如下: clear all; fp=2000,5000; ap=1; fs=1500,5500; as=40; wp=2*pi*fp; ws=2*pi*fs;%归一化的截止频率 N,wn=ellipord(wp,ws,ap,as, 's');%求椭圆形滤波器的最小阶数和归一化截止频率 B,A=ellip(N,ap,as,wn, 's');%求传递函数的分子分母系数 H,w=freq
3、s(B,A);%频率响应函数 f=0:8000; 1 w=2*pi*f; H=freqs(B,A,w);%求系统在指定频率点w上的频响H plot(f,20*log10(abs(H);%绘图显示 axis(0 7000 -80 0) 仿真波形图如下: (2)设计题目:巴特沃斯低通模拟滤波器 技术指标: 通带截止频率fp=5kHz,通带内最大衰减ap=2dB;阻带截止频率fs=12kHz, 阻带最小衰减as=30dB。 设计原理: 确定模拟带通滤波器的技术指标,并对边界频率做归一化处理; 确定归一化低通技术要求并求出归一化低通原型系统函数Ga(p); 将Ga(p)去归一化。 Matlab原程序如
4、下: clear all; wp=2*pi*5000;ws=2*pi*12000;Rp=2;As=30;%设置滤波器参数 N,wc=buttord(wp,ws,Rp,As,'s');%计算滤波器阶数N和3dB截止频率wc 2 B,A=butter(N,wc,'s');%计算滤波器系统函数分子分母多项式系数 k=0:511;fk=0:14000/512:14000;wk=2*pi*fk; Hk=freqs(B,A,wk); subplot(2,2,1); plot(fk/1000,20*log10(abs(Hk);grid on xlabel('频率(kH
5、z)');ylabel('幅度(dB)') axis(0,14,-40,5) 仿真波形图如下: 2.IIR(无限脉冲响应)数字滤波器设计 (1)设计题目:IIR数字带通滤波器设计 技术指标: 采用巴特沃斯滤波器,一个数字系统的抽样频率Fs=2000Hz,设计一个为此系统使用的带通数字滤波器Hdbp(z)。要求通带范围为300400Hz,在带边频率处 的衰减不大于3dB;在200Hz以下和500Hz以上衰减不小于18dB。 设计原理: 对于数字带通滤波器的设计,通常所用方法为双线性变换。可借助于模拟滤波器的频率变换设计一个所需类型的过渡模拟滤波器,再通过双线性变换将其转换
6、成所需类型的数字滤波器。 Matlab原程序如下: clear all; fp=300 400;fs=200 500; rp=3;rs=18; 3 Fs=2000; wp=fp*2*pi/Fs; ws=fs*2*pi/Fs; % % Firstly to finish frequency prewarping; wap=2*Fs*tan(wp./2); was=2*Fs*tan(ws./2); n,wn=buttord(wap,was,rp,rs,'s'); % Note:'s'! z,p,k=buttap(n); bp,ap=zp2tf(z,p,k); % b
7、w=wap(2)-wap(1); w0=sqrt(wap(1)*wap(2); bs,as=lp2bp(bp,ap,w0,bw); % h1,w1=freqs(bp,ap); figure(1); plot(w1,abs(h1);grid; ylabel('lowpass G(p)') % w2=0:Fs/2-1*2*pi; h2=freqs(bs,as,w2); % Note:z=(2/Ts)(z-1)/(z+1); bz1,az1=bilinear(bs,as,Fs); h3,w3=freqz(bz1,az1,1000,Fs); figure(2); plot(w2/2/p
8、i,20*log10(abs(h2),w3,20*log10(abs(h3);grid; ylabel('Bandpass AF and DF') xlabel('Hz'); 4 仿真波形图如下: 图 模拟低通原型图 图 模拟和数字带通滤波器的幅频响应 (2)设计题目:基于Matlab函数直接设计切比雪夫型数字低通IIR滤波器 技术指标: 通带截止频率fp为100HZ,阻带截止频率fs为200HZ,通带最大衰减ap为3dB, 5 阻带最小衰减as为30dB,采样频率Fs为1000HZ. 设计原理: Matlab工具箱中提供了直接设计数字滤波器的函数使设计更加简单
9、。切比雪夫型滤波器在通带是等波纹的,而在阻带是单调下降的,利用cheby1函数MATLAB语法可以直接设计;而切比雪夫型滤波器得阶次可以通过MATLAB中的cheb1ord函数确定。 Matlab原程序如下: clear all; fp=100; ap=3;%通带衰减 fs=200; as=30;%阻带衰减 Fs=1000; N,Wn=cheb1ord(fp/(Fs/2),fs/(Fs/2),ap,as);%计算Chebyshev型滤波器的最小阶数和截止频率 b,a=cheby1(N,ap,Wn); freqz(b,a,512,1000);%采用1000HZ的采样频率绘出显示滤波器的幅频和相频
10、响应 仿真波形图如下: 6 3.FIR(有限脉冲响应)数字滤波器设计 (1)设计题目:基于矩形窗和汉明窗的FIR滤波器设计 技术指标: 分别用矩形窗和汉明窗,设计一低通滤波器,令N=10,频率响应截止频率Hd(ej)在00.25之间为1,在0.25之间为0。 设计原理: 要设计FIR滤波器,h(n)必然是有限长的,所以要用有限长的h(n)来逼近无限长的hd(n),最有效的方法是截断hd(n),即用一个有限长度的窗函数(n) 来截取hd(n),并将截短后的hd(n)移位,得 h(n)?(n?N?1N?1)hd(n?) 22 由于(n)的长度为N,所以h(n)是因果的。因此窗函数序列(n)的形状及
11、长度的选择就很关键。 Matlab原程序如下: clear all; N=10; b1=fir1(N,0.25,boxcar(N+1);%用矩形窗作为冲激响应的窗函数 b2=fir1(N,0.25,hamming(N+1);%用汉明窗作为冲激响应的窗函数 % M=128; h1=freqz(b1,1,M); h2=freqz(b2,1,M); %分别求两个滤波器的频率响应 t=0:10 subplot(221) stem(t,b2,'.');hold on; plot(t,zeros(1,11);grid; f=0:0.5/M:0.5-0.5/M; M1=M/4; for k=
12、1:M1 7 hd(k)=1; hd(k+M1)=0; hd(k+2*M1)=0; hd(k+3*M1)=0; end subplot(222) plot(f,abs(h1),'b-',f,abs(h2),'g-',f,hd,'-');grid; 仿真波形图如下: (2)设计题目:海明窗函数法FIR数字滤波器 技术指标: 通带截止频率为Wp0.2,通带内最大衰减为Ap0.25dB;阻带截止频率为Ws0.4,阻带最小衰减为As50dB。 设计原理: 根据窗函数最小阻带衰减的特性,只有海明窗和布莱克曼窗可提供大于50dB的衰减。故选择海明窗,因为它提
13、供较小的过渡带,其过渡带为6.6/N,因此具有较小的阶数。在MATLAB中利用ideal_lp函数,计算理想低通滤波器的单位脉冲响应hd(n)。 function hd=ideal_lp(Wc,N);alpha=(N-1)/2; n=0:1:N-1;m=n-alpha+eps;hd=sin(Wc*m)./(pi*m); 利用freqz_m函数计算绝对和相对的幅度响应。 functiondb,mag,pha,w=freqz_m(b,a); H,w=freqz(b,a,1000,whole');H=(H(1:1:501)' 8 w=(w(1:1:501)'mag=abs(H
14、);db=20*log10(mag+eps)/max(mag); pha=angle(H);以上两个函数应先分别保存在两个新建m文件中存放在Matlab软件工作路径下。 Matlab原程序如下: clear all; Wp=0.2*pi; Ws=0.4*pi;%滤波器的边界频率 tr_width=Ws-Wp; %过渡带宽 N=ceil(6.6*pi/tr_width)+1 %根据过度带宽等于海明窗函数主瓣宽度求得滤波器所用海明窗的最小长度 n=0:1:N-1; wc=(Ws+Wp)/2; %截止频率在通带和阻带边界频率的中点 hd=ideal_lp(wc,N);%调用理想低通滤波器脉冲响应函数
15、 w_ham=(hamming(N)' %采用海明窗 h=hd.*w_ham; %在时间域乘积对应于频率域的卷积,截取得到实际单位脉冲响应 db,mag,pha,w=freqz_m(h,1); %调用 freqz_m函数计算实际滤波器绝对和相对的幅度响应 delta_w=2*pi/1000; Ap=-(min(db(1:1:Wp/delta_w+1); %实际通带最大衰减 As=-round(max(db(Ws/delta_w+1:1:501); %实际最小阻带衰减 subplot(221);stem(n,hd);title('理想单位脉冲响应hd(n)') subplot(222);stem(n,w_ham);title('海明窗
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1