第四次实验课课堂作业(4学时)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MATLAB 第四次实验课课堂作业(4学时)
学号姓名
注:1)此课堂作业作为本课程结业成绩的重要依据,请同学们认真、独立完成,不得抄袭。
2)请在授课教师规定的时间内完成;
3)完成作业后,请以word格式保存,文件名为:学号+姓名
。
1. 设计一个切比雪夫2型低通滤波器,通带截止频率为500hz,阻带截止频率为750hz,通带衰减rp小于5db,阻带衰减rs大于50 db,取样频率为fs=2000hz。
1)请用冲激响应不变法设计
给出滤波器的阶数N、写出滤波器的系统函数H(z)的表达式;
作出其频响特性图
clc;clear;close
fp=500;fss=750;fs=2000;rp=5;rs=50;
wp1=2*pi*fp/fs;
wss1=2*pi*fss/fs;
[N,wc]=cheb2ord(2*pi*fp,2*pi*fss,rp,rs,'s')
[z,p,k]=cheb2ap(N,rs);
[ba,aa]=zp2tf(z,p,k)
[b,a]=lp2lp(ba,aa,wc)
[bz,az]=impinvar(b,a,fs)
[H,f]=freqz(bz,az);
ma=20*log10(abs(H));mp=angle(H)*180/pi;
subplot(2,1,1);plot(f/pi,ma)
subplot(2,1,2);plot(f/pi,mp)
N =
7
wc =
4.3960e+003
ba =
0 0.0221 0 0.1771 0 0.3542 0 0.2024 aa =
1.0000 3.3942 5.7602 6.3172 4.8481
2.6391 0.9617 0.2024
b =
1.0e+024 *
0.0000 0.0000 0.0000 -0.0000 0.0000 0.0000 6.4207 a =
1.0e+024 *
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0069 6.4207 bz =
0.0487 0.1109 0.3499 0.3793 0.2713 0.0821 0.0068 az =
1.0000 -0.5268 0.9353 -0.3602 0.1937 -0.0460 0.0078 -0.0006
00.10.20.30.40.50.60.70.80.91
-30
-20-100
1000.10.20.30.40.50.60.70.80.91
-200
-1000100
200
printsys(bz,az,'z')
num/den =
0.048655 z^6 + 0.11087 z^5 + 0.34993 z^4 + 0.37929 z^3 + 0.27128 z^2
+ 0.082133 z + 0.00683
--------------------------------------------------------------------------
z^7 - 0.52681 z^6 + 0.93531 z^5 - 0.36023 z^4 + 0.19368 z^3 - 0.045952 z^2
+ 0.0078053 z - 0.00057534
2)请用双线性法设计
给出滤波器的阶数N、写出滤波器的系统函数H(z)的表达式;
作出其频响特性图
clc;clear;close
fp=500;fss=750;fs=2000;rp=5;rs=50;
wp1=2*pi*fp/fs;
wss1=2*pi*fss/fs;
op1=2*fs*tan(wp1/2) ;
os1=2*fs*tan(wss1/2) ;
[N,wc]=cheb2ord(op1,os1,rp,rs,'s')
[z,p,k]=cheb2ap(N,50);
[ba,aa]=zp2tf(z,p,k)
[b,a]=lp2lp(ba,aa,wc)
[bz,az]=bilinear(b,a,fs)
[H,f]=freqz(bz,az);
ma=20*log10(abs(H));mp=angle(H)*180/pi;
subplot(2,1,1);plot(f/pi,ma)
subplot(2,1,2);plot(f/pi,mp)
N =
4
wc =
9.5472e+003
ba =
0.0032 0 0.0253 0 0.0253
aa =
1.0000 1.0256 0.5260 0.1592 0.0253
b =
1.0e+014 *
0.0000 0 0.0000 0 2.1018 a =
1.0e+014 *
0.0000 0.0000 0.0000 0.0014 2.1018 bz =
0.1027 0.3469 0.4938 0.3469 0.1027 az =
1.0000 -0.1361 0.5231 -0.0158 0.0218
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
-100
-80-60-40-20
000.10.20.30.40.50.60.70.80.91
-200
-1000100
200
printsys(bz,az,'z')
num/den =