数字信号处理实验报告

  • 格式:doc
  • 大小:48.50 KB
  • 文档页数:3

下载文档原格式

  / 3
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

3.(1)用双线性变换法设计一个Chebyshev型高通滤波器程序如下

Rp=1.2;Rs=20;T=0.001;fp=300;fs=200;

wp=2*pi*fp*T;ws=2*pi*fs*T;

wp1=(2/T)*tan(wp/2);ws1=(2/T)*tan(ws/2);

[n,wn]=cheb1ord(wp1,ws1,Rp,Rs,'s');

[b,a]=cheby1(n,Rp,wn,'high','s');

[bz,az]=bilinear(b,a,1/T);

[db,mag,pha,grd,w]=freqz_m(bz,az);plot(w/pi,db);

axis([0,1,-30,2]);

3.(2) a用双线性变换法设计一个Butterworth型数字低通滤波器程序如下Rp=1;Rs=25;T=0.001;fp=300;fs=200;

wp=2*pi*fp*T;ws=2*pi*fs*T;

wp1=(2/T)*tan(wp/2);ws1=(2/T)*tan(ws/2);

[n,wn]=buttord(wp1,ws1,Rp,Rs,'s');

[b,a]=butter(n,wn,'low','s');

[bz,az]=bilinear(b,a,1/T);

[db,mag,pha,grd,w]=freqz_m(bz,az);plot(w/pi,db);

axis([0,1,-30,2]);

b用脉冲响应不变法设计一个Butterworth数字低通滤波器的程序如下:wp=400*pi;ws=600*pi;Rp=1;Rs=25;

[n,wn]=buttord(wp,ws,Rp,Rs,'s')

[b,a]=butter(n,wn,'s')

[db,mag,pha,w]=freqs_m(b,a,500*2*pi);

plot(w/(2*pi),db,'LineWidth',2,'Color','b');

axis([0,500,-20,1]);hold on

fs=1000;[bz,az]=impinvar(b,a,fs);

[db,mag,pha,w]=freqz_m(bz,az);

plot(0.5*fs*w/pi,db,'LineWidth',2,'Color','r');

axis([0,599,-20,1]);hold off

3.(3) a采用ellip模拟低通滤波器设计,其程序如下:

Rp=3;Rs=15;T=0.001;

wp1=0.25*pi;wp2=0.45*pi;ws1=0.15*pi;ws2=0.55*pi;

wp3=(2/T)*tan(wp1/2);wp4=(2/T)*tan(wp2/2);

ws3=(2/T)*tan(ws1/2);ws4=(2/T)*tan(ws2/2);

wp=[wp3,wp4];ws=[ws3,ws4];

[n,wn]=ellipord(wp,ws,Rp,Rs,'s');[z,p,k]=ellipap(n,Rp,Rs);[b,a]=zp2tf(z,p,k); w0=sqrt(wp3*wp4);Bw=wp4-wp3;

[b1,a1]=lp2bp(b,a,w0,Bw);

[bz,az]=bilinear(b1,a1,1/T);

[db,mag,pha,grd,w]=freqz_m(bz,az);plot(w/pi,db);

axis([0,1,-50,2]);

b采用Butterworth模拟低通滤波器设计,其程序如下:

Rp=3;Rs=15;T=0.001;

wp1=0.25*pi;wp2=0.45*pi;ws1=0.15*pi;ws2=0.55*pi;

wp3=(2/T)*tan(wp1/2);wp4=(2/T)*tan(wp2/2);

ws3=(2/T)*tan(ws1/2);ws4=(2/T)*tan(ws2/2);

wp=[wp3,wp4];ws=[ws3,ws4];

[n,wn]=buttord(wp,ws,Rp,Rs,'s');[z,p,k]=buttap(n);[b,a]=zp2tf(z,p,k); w0=sqrt(wp3*wp4);Bw=wp4-wp3;

[b1,a1]=lp2bp(b,a,w0,Bw);

[bz,az]=bilinear(b1,a1,1/T);

[db,mag,pha,grd,w]=freqz_m(bz,az);plot(w/pi,db);

axis([0,1,-50,2]);