1、Matlab R2016三、实验内容及分析(a)代码如下:a=1 3 2;b=1 -1 0;draw(b,a);title(H(z);draw.m:function draw(num,den)p=roots(den);q=roots(num);p=p;q=qx=max(abs(p q);x=x+1;y=x;plot(-x x,0 0,:hold on;plot(0 0,-y y,plot(real(p),imag(p),*plot(real(q),imag(q),oxlabel(ylabel(axis(-x x -y y);(b)a=1 1 0.5;b=1;(c)a=1 -1.25 0.75
2、-0.125;b=1 0.5;b=1 0 0; a=1 -0.9 0.81;zs=roots(b);ps=roots(a);plot(real(zs),imag(zs),plot(real(ps),imag(ps),xgrid on;axis(-4 4 -4 4);H1(z)b,a=ellip(4,.2,40,.41 .47);H,w=freqz(b,a,4096);plot(w/pi,20*log10(abs(H);axis(0 1 -80 10);Haxis(0 1 -160 20); b,a=ellip(4,.2,40,.41 .47);M=max(abs(b a);a16=quant(
3、a,16,M);b16=quant(b,16,M);H,w=freqz(b16,a16,4096);quant.m:function qc=quant(x,N,M)mm,nn=size(x);qc=zeros(mm,nn);levels=2(N-1);maxlevel=2N-1;for k=1:mm, tmp=fix(x(k, :)+M) ./ (M/levels) q=zeros(1,nn); q(tmp=maxlevel)=tmp(tmpmaxlevel)=maxlevel*ones(1,length(tmp(tmpmaxlevel);0)=zeros(tmp(tmp0); q=(q-levels)*M/levels; qc(k,:)=q;end(d)(e)draw(a16,b16)a1p=1/8;b1p=1 1 0.5 1/8;w=-10:0.25:10;H,w=freqz(b1p,a1p,w);plot(w,abs(H);figure;draw(b1p,a1p);H1p(s)四、实验总结掌握了如何使用fft、freqz、compose、dpzplot简单函数的使用,学会了使用Matlab实现Z变换。教师评语:签名:日期:成绩: