文档仅供参考
波器、切比雪夫(Chebyshev)滤波器、椭圆(Cauer)滤波器、贝塞尔(Bessel)滤波器等。
5) 6)
调用lp2bp函数将模拟低通滤波器转化为模拟带通滤波器。 利用双线性变换法将模拟带通滤波器Ha(s)转换成数字带通滤波器H(z)。
2、程序流程框图:
开始 ↓
读入数字滤波器技术指标 ↓
将指标转换成归一化模拟低通滤波器的指标 ↓
设计归一化的模拟低通滤波器阶数N和3db截止频率 ↓
模拟域频率变换,将G(P)变换成模拟带通滤波器H(s) ↓
用双线性变换法将H(s)转换成数字带通滤波器H(z) ↓
输入信号后显示相关结果 ↓
结束
三、MATLAB程序及运行 MATLAB 程序如下:
2020年4月19日
5
文档仅供参考
clear
wp0=0.5*pi;wp1=0.4*pi;wp2=0.6*pi;
Ap=3;ws2=0.7*pi;As=15;T=2; %数字带通滤波器技术指标 ws1=wp0-(ws2-wp0); %计算带通滤波器的阻带下截止频率 wc1=(2/T)*tan(wp1/2);wc2=(2/T)*tan(wp2/2); wr1=(2/T)*tan(ws1/2);wr2=(2/T)*tan(ws2/2); w0=(2/T)*tan(wp0/2); %频率预畸变 B=wc2-wc1; %带通滤波器的通带宽度 normwr1=(((wr1^2)-(w0^2))/(B*wr1)); normwr2=(((wr2^2)-(w0^2))/(B*wr2)); normwc1=(((wc1^2)-(w0^2))/(B*wc1));
normwc2=(((wc2^2)-(w0^2))/(B*wc2)); %带通到低通的频率变换 if abs(normwr1)>abs(normwr2) normwr=abs(normwr2) else normwr=abs(normwr1) end
normwc=1; %将指标转换成归一化模拟低通滤波器的指标 N=buttord(normwc,normwr,Ap,As,'s'); %设计归一化的模拟低通滤波器阶数N和3db截止频率
[bLP,aLP]=butter(N,normwc,'s'); %计算相应的模拟滤波器系统函数G(p)
[bBP,aBP]=lp2bp(bLP,aLP,w0,B); %模拟域频率变换,将G(P)变换成
6
2020年4月19日
文档仅供参考
模拟带通滤波器H(s)
[b,a]=bilinear(bBP,aBP,0.5); %用双线性变换法将H(s)转换成数字带通滤波器H(z) w=linspace (0,2*pi,500); h=freqz(b,a,w); subplot(2,1,2); plot(w,abs(h)); grid on xlabel('w(rad)') ylabel('|H(jw)|') title('频谱函数') subplot(2,2,1);
plot(w,20*log10(abs(h))); axis([0,2*pi,-120,20]); grid on xlabel('w(rad)')
ylabel('20*lg|H(jw)|(db)')title('20*lg|H(jw)|--w')
四、运行结果及分析
2020年4月19日
7
文档仅供参考
图
程序运行结果:normwr=2.2361
由设计流程计算得normwr=2.236与运行结果相同。
低通原型的每一个边界频率都映射为带通滤波器两个相应的边界频率。根据通带截至频率和阻带截至频率与频谱函数曲线比较,满足设计要求。
五、设计总结
经过这个实验,对设计带通数字滤波器的整个过程有了很好的掌握。其中双线性变换法,巴特沃斯设计模拟滤波器的运用,也比较熟悉了。
经过对数字带通滤波器的设计,熟悉了MATLAB的运行环境,初步掌握了MATLAB语言在数字信号处理中一些基本库函数
8
2020年4月19日
相关推荐: