资源描述
IIR数字带通滤波器设计
一、设计内容
1、设计任务:
利用双线性变换法基于MATLAB设计一个IIR带通滤波器。
2、设计要求:
其中带通中心频率为ωp0=0.5π,;通带截止频率ωp1=0.4π,ωp2=0.6π;通带最大衰减αp=3dB;阻带最小衰减αs=15dB;阻带截止频率ωs2=0.7π。
3、设计分析:
数字滤波器是对数字信号实现滤波线性时不变系统。数字滤波实质上是一个运算过程,实现对信号运算处理。输入数字信号(数字序列)经过特定运算转变为输出数字序列,所以,数字滤波器本质上是一个完成特定运算数字计算过程,也能够了解为是一台计算机。描述离散系统输出和输入关系卷积和差分方程只是给数字信号滤波器提供运算规则,使其根据这个规则完成对输入数据处理。时域离散系统频域特征:
其中、分别是数字滤波器输出序列和输入序列频域特征(或称为频谱特征),是数字滤波器单位取样响应频谱,又称为数字滤波器频域响应。输入序列频谱经过滤波后,所以,只要根据输入信号频谱特点和处理信号目标, 合适选择,使得滤波后满足设计要求,这就是数字滤波器滤波原理。
数字滤波器依据其冲激响应函数时域特征,可分为两种,即无限长冲激响应(IIR)数字滤波器和有限长冲激响应(FIR)数字滤波器。IIR 数字滤波器特征是,含有没有限连续时间冲激响应,需要用递归模型
来实现,其差分方程为:
系统函数为:
设计IIR滤波器任务就是寻求一个物理上可实现系统函数H(z),使其频率响应H(z)满足所期望得到频域指标,即符合给定通带截止频率、阻带截止频率、通带衰减系数和阻带衰减系数。
二、设计方法
1、设计步骤:
1) 依据任务,确定性能指标:在设计带通滤波器之前,首先依据工程实际需要确定滤波器技术指标:
带通滤波器阻带边界频率相关中心频率ωp0几何对称,所以ws1=wp0- (ws2-wp0)=0.3π通带截止频率wc1=0.4π,wc2=0.6π;阻带截止频率wr1=0.3π,wr2=0.7π;阻带最小衰减αs=3dB和通带最大衰减αp=15dB;
2) 用Ω=2/T*tan(w/2)对带通数字滤波器H(z)数字边界频率预畸变,得到带通模拟滤波器H(s)边界频率关键是通带截止频率ωp1,ωp2;阻带截止频率ωs1,ωs2转换。
为了计算简便,对双线性变换法通常T=2s
通带截止频率wc1=(2/T)*tan(wp1/2)=tan(0.4π/2)=0.7265
wc2=(2/T)*tan(wp2/2)=tan(0.6π/2)=1.3764
阻带截止频率wr1=(2/T)*tan(ws1/2)=tan(0.3π/2)=0.5095
wr2=(2/T)*tan(ws2/2)=tan(0.7π/2)=1.9626
阻带最小衰减αs=3dB和通带最大衰减αp=15dB;
3) 利用低通到带通频率变换公式λ=(((Ω^2)-(Ω0^2))/(B*Ω))将模拟带通滤波器指标转换为模拟低通滤波器指标。
B=wc2-wc1=0.6499
normwr1=(((wr1^2)-(w0^2))/(B*wr1))=2.236
normwr2=(((wr2^2)-(w0^2))/(B*wr2))=2.236
normwc1=(((wc1^2)-(w0^2))/(B*wc1))=1
normwc2=(((wc2^2)-(w0^2))/(B*wc2))=1
得出,normwc=1,normwr=2.236
模拟低通滤波器指标:normwc=1,normwr=2.236,αp=3dB,αs=15dB
4) 设计模拟低通原型滤波器。用模拟低通滤波器设计方法得到模拟低通滤波器传输函数Ha(s);借助巴特沃斯(Butterworth)滤波器、切比雪夫(Chebyshev)滤波器、椭圆(Cauer)滤波器、贝塞尔(Bessel)滤波器等。
5) 调用lp2bp函数将模拟低通滤波器转化为模拟带通滤波器。
6) 利用双线性变换法将模拟带通滤波器Ha(s)转换成数字带通滤波器H(z)。
2、程序步骤框图:
开始
↓
读入数字滤波器技术指标
↓
将指标转换成归一化模拟低通滤波器指标
↓
设计归一化模拟低通滤波器阶数N和3db截止频率
↓
模拟域频率变换,将G(P)变换成模拟带通滤波器H(s)
↓
用双线性变换法将H(s)转换成数字带通滤波器H(z)
↓
输入信号后显示相关结果
↓
结束
三、MATLAB程序及运行
MATLAB 程序以下:
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)变换成模拟带通滤波器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')
四、运行结果及分析
图
程序运行结果:normwr=2.2361
由设计步骤计算得normwr=2.236和运行结果相同。
低通原型每一个边界频率全部映射为带通滤波器两个对应边界频率。依据通带截至频率和阻带截至频率和频谱函数曲线比较,满足设计要求。
五、设计总结
经过这个试验,对设计带通数字滤波器整个过程有了很好掌握。其中双线性变换法,巴特沃斯设计模拟滤波器利用,也比较熟悉了。
经过对数字带通滤波器设计,熟悉了MATLAB运行环境,初步掌握了MATLAB语言在数字信号处理中部分基础库函数调用和编写基础程序等应用;熟悉了滤波器设计通常原理,对滤波器有了一个感性认识;学会了数字高通滤波器设计通常步骤;加深了对滤波器设计中产生误差原因和双线性变换法优缺点了解和认识。总而言之,使理论联络了实际,巩固并深化了对书本基础知识认识和了解,使理论得以升华。
展开阅读全文