matlab编写带有传输零点的chebyshev带通滤波器
答案:3 悬赏:40 手机版
解决时间 2021-03-14 01:43
- 提问者网友:藍了天白赴美
- 2021-03-13 03:05
matlab编写带有传输零点的chebyshev带通滤波器
最佳答案
- 五星知识达人网友:平生事
- 2021-03-13 03:54
路过,暂时保留意见!
全部回答
- 1楼网友:山君与见山
- 2021-03-13 06:43
kgdjtrjtj
- 2楼网友:夜余生
- 2021-03-13 05:08
这是Chebyshev-I型滤波器设计方法,你可以在此基础上进行修改。
fp=[300 400]; fs=[200 500]; rp=3; rs=18;Fs=2000;%模拟技术指标
wp=fp*2*pi/Fs; ws=fs*2*pi/Fs;%数字技术指标
%模拟低通原型滤波器设计
wap=2*Fs*tan(wp./2);was=2*Fs*tan(ws./2);%预畸变
[n,wn]=cheb1ord(wap,was,rp,rs,'s');
[z,p,k]=cheb1ap(n,rp); [bp,ap]=zp2tf(z,p,k); [h1,w1]=freqs(bp,ap);
Subplot(411); plot(w1,abs(h1)); grid; title(' lowpass G(p)')
%模拟低通原型->模拟带通滤波器
bw=wap(2)-wap(1); w0=sqrt(wap(1)*wap(2));
[bs,as]=lp2bp(bp,ap,w0,bw);
w2=0:pi:4000*pi;
h2=freqs(bs,as,w2);
Subplot(412); plot(w2/2/pi,20*log10(abs(h2))); grid; title(' bandpass H(p)')
%双线性变换法设计数字滤波器
% Note: s=(2/T)(z-1)/(z+1);T=1,that is 2Fs=1,Fs=0.5;
[bz1,az1]=bilinear(bs,as,Fs);
[h3,w3]=freqz(bz1,az1,1024,Fs);
Subplot(413); plot(w3,20*log10(abs(h3))); grid; title(' bandpass DF H1(z)');
% Directly to design H(z) by butter.m
[n,wn]=cheb1ord(wp/pi,ws/pi,rp,rs); [bz2,az2]=cheby1(n,rp,wp/pi, 'bandpass');
[h4,w4]=freqz(bz2,az2,1024,Fs);
Subplot(414); plot(w4,20*log10(abs(h4))); grid; title('Bandpass DF H2(z)');
fp=[300 400]; fs=[200 500]; rp=3; rs=18;Fs=2000;%模拟技术指标
wp=fp*2*pi/Fs; ws=fs*2*pi/Fs;%数字技术指标
%模拟低通原型滤波器设计
wap=2*Fs*tan(wp./2);was=2*Fs*tan(ws./2);%预畸变
[n,wn]=cheb1ord(wap,was,rp,rs,'s');
[z,p,k]=cheb1ap(n,rp); [bp,ap]=zp2tf(z,p,k); [h1,w1]=freqs(bp,ap);
Subplot(411); plot(w1,abs(h1)); grid; title(' lowpass G(p)')
%模拟低通原型->模拟带通滤波器
bw=wap(2)-wap(1); w0=sqrt(wap(1)*wap(2));
[bs,as]=lp2bp(bp,ap,w0,bw);
w2=0:pi:4000*pi;
h2=freqs(bs,as,w2);
Subplot(412); plot(w2/2/pi,20*log10(abs(h2))); grid; title(' bandpass H(p)')
%双线性变换法设计数字滤波器
% Note: s=(2/T)(z-1)/(z+1);T=1,that is 2Fs=1,Fs=0.5;
[bz1,az1]=bilinear(bs,as,Fs);
[h3,w3]=freqz(bz1,az1,1024,Fs);
Subplot(413); plot(w3,20*log10(abs(h3))); grid; title(' bandpass DF H1(z)');
% Directly to design H(z) by butter.m
[n,wn]=cheb1ord(wp/pi,ws/pi,rp,rs); [bz2,az2]=cheby1(n,rp,wp/pi, 'bandpass');
[h4,w4]=freqz(bz2,az2,1024,Fs);
Subplot(414); plot(w4,20*log10(abs(h4))); grid; title('Bandpass DF H2(z)');
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯