用双线性变换法设计原型低通为椭圆型地数字IIR带通滤波器.docx
- 文档编号:29017411
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:19
- 大小:212.20KB
用双线性变换法设计原型低通为椭圆型地数字IIR带通滤波器.docx
《用双线性变换法设计原型低通为椭圆型地数字IIR带通滤波器.docx》由会员分享,可在线阅读,更多相关《用双线性变换法设计原型低通为椭圆型地数字IIR带通滤波器.docx(19页珍藏版)》请在冰豆网上搜索。
用双线性变换法设计原型低通为椭圆型地数字IIR带通滤波器
课程设计
课程设计名称:
用双线性变换法设计原型低通为
椭圆型的数字IIR带通滤波器
专业班级:
xxxxxx
学生姓名:
xxx
学号:
xxxxxxxxxxxx
指导教师:
xxx
课程设计时间:
2014.6.16至2014.6.20
电子信息工程专业课程设计任务书
学生姓名
XXX
专业班级
XXXX
学号
XXXXXX
题目
用双线性变换法设计原型低通为椭圆型的数字IIR低通滤波器
课题性质
其他
课题来源
自拟
指导教师
XX
同组姓名
主要内容
用双线性变换法设计原型低通为椭圆型的数字IIR低通滤波器,要求通带边界频率为400Hz,阻带边界频率分别为500Hz,通带最大衰减1dB,阻带最小衰减40dB,抽样频率为2000Hz,用MATLAB画出幅频特性,画出并分析滤波器传输函数的零极点;
信号
经过该滤波器,其中
300Hz,
600Hz,滤波器的输出
是什么?
用Matlab验证你的结论并给出
的图形。
任务要求
1、掌握用双线性变换法设计原型低通为椭圆型的数字IIR低通滤波器的原理和设计方法。
2、求出所设计滤波器的Z变换。
3、用MATLAB画出幅频特性图。
4、验证所设计的滤波器。
参考文献
1、程佩青著,《数字信号处理教程》,清华大学出版社,2001
2、SanjitK.Mitra著,孙洪,余翔宇译,《数字信号处理实验指导书(MATLAB版)》,电子工业出版社,2005年1月
3、郭仕剑等,《MATLAB7.x数字信号处理》,人民邮电出版社,2006年
4、胡广书,《数字信号处理理论算法与实现》,清华大学出版社,2003年
审查意见
指导教师签字:
教研室主任签字:
2014年06月12日
说明:
本表由指导教师填写,由教研室主任审核后下达给选题学生,装订在设计(论文)首页
一 需求分析和技术要求
1、需求分析
滤波器从广义上来说对特定的频点或频点以外的频率进行有效滤波的电路,这种电路保留输入信号中的有用信息,滤除不需要的信息,从而达到信号的检测、提取、识别等不同的目的。
如果处理的信号是时域离散信号,那么相应的处理系统就称为数字滤波器,由于在实际工作中被处理的信号都是幅度量化的数字信号,因此,数字滤波器实际上是用有限精度的算法实现一个线性时不变的时域离散系统。
数字滤波器的种类很多,分类方法也不同,可以从功能上分类,也可以从实现方法上及设计方法上来分类等等。
滤波器在功能上总的可分为四类,即低通(LP)、高通(HP)、带通(BP)、带阻(BS)滤波器等,从实现方法上,由有限长冲激响应的数字滤波器被称为FIR滤波器,具有无限长冲激响应的数字滤波器称作IIR滤波器。
椭圆滤波器(Ellipticfilter)又称考尔滤波器(Causerfilter),是在通带和阻带等波纹的一种滤波器。
椭圆滤波器相比其他类型的滤波器,在阶数相同的条件下有着最小的通带和阻带波动。
它在通带和阻带的波动相同,这一点区别于在通带和阻带都平坦的巴特沃斯滤波器,以及阻带平坦、通带等波纹的切比雪夫滤波器。
利用双线性变换法将模拟传输信号Ha(s)变换为数字传输函数G(z),从而是z域的数字传输函数保留s域的模拟传输函数的基本性质。
设计成的IIR数字低通滤波器能够去掉信号中不必要的高频成分,降低采样频率,避免频率混淆,去掉高频干扰。
2、技术要求
1、掌握用双线性变换法设计原型低通为椭圆型的数字IIR低通滤波器的原理和设计方法。
2、求出所设计滤波器的Z变换。
3、用MATLAB画出幅频特性图。
4、验证所设计的滤波器。
二 设计原理及设计思路
1、设计原理
数字滤波器是一种用来过滤时间离散信号的数字系统,通过对抽样数据进行数学处理来达到频域滤波的目的。
数字滤波器也是具有一定传输选择特性的数字信号处理装置,其输入、输出均为数字信号,实质上是一个由有限精度算法实现的线性时不变离散系统。
IIR数字滤波器采用递归型结构,即结构上带有反馈环路。
IIR滤波器运算结构通常由延时、乘以系数和相加等基本运算组成,可以组合成直接型、正准型、级联型、并联型四种结构形式,都具有反馈回路。
数字滤波器根据其冲激响应函数的时域特性,可分为两种,即无限长冲激响应(IIR)数字滤波器和有限长冲激响应(FIR)数字滤波器。
IIR数字滤波器的特征是,具有无限持续时间冲激响应,需要用递归模型来实现,其差分方程为:
(2.1)
(2.2)
设计IIR滤波器的任务就是寻求一个物理上可实现的系统函数H(z),使其频率响应H(z)满足所希望得到的频域指标,即符合给定的通带截止频率、阻带截止频率、通带衰减系数和阻带衰减系数。
本次课程设计采用双线性变换法。
双线性变换法设计IIR数字滤波器
双线性变换法主要是采用非线性频率压缩方法,将整个频率轴上的频率范围压缩到-π/T~π/T之间,再用z=esT转换到Z平面上。
也就是说,第一步先将整个S平面压缩映射到S1平面的-π/T~π/T一条横带里;第二步再通过标准变换关系z=es1T将此横带变换到整个Z平面上去。
这样就使S平面与Z平面建立了一一对应的单值关系,消除了多值变换性,也就消除了频谱混叠现象,映射关系如图1所示。
图1双线性变换的映射关系
为了将S平面的整个虚轴jΩ压缩到S1平面jΩ1轴上的-π/T到π/T段上,可以通过以下的正切变换实现
(2.3)
式中,T仍是采样间隔。
当Ω1由-π/T经过0变化到π/T时,Ω由-∞经过0变化到+∞,也即映射了整个jΩ轴。
将式(2.3)写成
(2.4)
将此关系解析延拓到整个S平面和S1平面,令jΩ=s,jΩ1=s1,则得
(2.5)
再将S1平面通过以下标准变换关系映射到Z平面
z=es1T(2.6)
从而得到S平面和Z平面的单值映射关系为:
(2.7)
(2.8)
式(2.7)与式(2.8)是S平面与Z平面之间的单值映射关系,这种变换都是两个线性函数之比,因此称为双线性变换
式(2.6)与式(2.7)的双线性变换符合映射变换应满足的两点要求。
首先,把z=ejω,可得
(2.9)
即S平面的虚轴映射到Z平面的单位圆。
其次,将s=σ+jΩ代入式(2.8),得
(2.10)
因此
(2.11)
由此看出,当σ<0时,|z|<1;当σ>0时,|z|>1。
也就是说,S平面的左半平面映射到Z平面的单位圆内,S平面的右半平面映射到Z平面的单位圆外,S平面的虚轴映射到Z平面的单位圆上。
因此,稳定的模拟滤波器经双线性变换后所得的数字滤波器也一定是稳定的。
2、设计思路
具体实现方法如下:
(1)确定数字低通滤波器的技术指标:
通带截止频率ωp、通带衰减Rp、阻带截止频率ωs、阻带衰减Rs。
(2)将数字低通滤波器的技术指标转换成模拟低通滤波器的技术指标。
如果采用脉冲响不变法,边界频率的转换关系为:
(2.12)
如果采用双线性变换法,边界频率的转换关系为
(2.13)
(3)按照模拟低通滤波器的技术指标设计模拟低通滤波器。
(4)利用双线性变换法将模拟滤波器Ha(s),从s平面转换到z平面,得到数字低通滤波器系统函数H(z)。
(5)数字低通技术指标为:
ωp=0.4πrad,Rp=1dB;ωs=0.5πrad,Rs=40dB
(6)模拟低通的技术指标为:
通带截止频率ωp=(2/T)*tan(ωp/2)=tan(0.392)=0.0068
阻带截止频率ωs=(2/T)*tan(ωs/2)=tan(0.628)=0.011
通带最小衰减Rp=1dB和阻带最大衰减Rs=40dB;
归一化截止角频率ωp=2pi*Fs/Ft;ωs=2pi*Fs/Ft
(7)利用模拟椭圆滤波器设计数字滤波器。
通带截止频率为:
ωp=0.4*pi;阻带截止频率为:
ωs=0.5*pi;通带最大衰减为:
Rp=1;阻带最大衰减为:
Rs=40;设定周期为1s;模拟低通滤波器的生成:
[num1,den1]=ellip(N,Rp,Rs,Wn,'s');最后实现输入输出、幅频特性、相频特性的图形。
三 程序流程图
数字低通滤波器的技术指标转换成模拟低通滤波器的技术指标
按照模拟低通滤波器的技术指标设计模拟低通滤波器
结束
图2滤波器设计流程方框图
四 程序源代码
MATLAB程序如下:
clearall
closeall
Coeff_LF=1;%低频信号系数F1(300Hz)
Coeff_HF=1;%高频信号系数F2(600Hz)
Coeff_NOISE=0;%噪声系数,如0(没有噪声),1,sqrt
(2),3等等.
F1=300;%Hz
F2=600;%Hz
FS=2000;%Hz抽样频率
%时间定义
EndTime=1/FS*1023;
Time=0:
1/FS:
EndTime;
N=length(Time);
%产生正弦信号x1(t),x2(t)和x(t)
SinSignal_x1=Coeff_LF*sin(2*pi*F1*Time)%x1(t)
SinSignal_x2=Coeff_HF*sin(2*pi*F2*Time)%x2(t)
SinSignalSum=SinSignal_x1+SinSignal_x2+Coeff_NOISE*randn(1,N);
SinSignal=SinSignalSum;%x(t)
%绘制信号x1(t)
figure
subplot(3,1,1)
plot(Time,SinSignal_x1)
xlabel('时间')
xlim([00.5])
title('时域信号x1(t)')
subplot(3,1,2)
plot(Time,SinSignal_x1)
xlabel('时间')
xlim([00.05])
title('时域信号x1(t)')
FFTSinSignal_x1=2/N*fft(SinSignal_x1)
subplot(3,1,3)
FnSin_x1=abs(FFTSinSignal_x1);
FW=2*pi*(Time)/EndTime;
plot(FW(2:
length(FW))*FS/pi/2,FnSin_x1(2:
length(FW)))
holdon
plot((FW(2:
length(FW))-2*pi)*FS/pi/2,FnSin_x1(2:
length(FW)))
xlim([-FS/2FS/2])
xlabel('频率')
%绘制x2(t)
figure
subplot(3,1,1)
plot(Time,SinSignal_x2)
xlabel('时间')
xlim([00.5])
title('时域信号x
(2)')
subplot(3,1,2)
plot(Time,SinSignal_x2)
xlabel('时间')
xlim([00.05])
title('时域信号x2(t)')
FFTSinSignal_x2=2/N*fft(SinSignal_x2)
subplot(3,1,3)
FnSin_x2=abs(FFTSinSignal_x2);
plot(FW(2:
length(FW))*FS/pi/2,FnSin_x2(2:
length(FW)))
holdon
plot((FW(2:
length(FW))-2*pi)*FS/pi/2,FnSin_x2(2:
length(FW)))
xlim([-FS/2FS/2])
xlabel('频率')
%绘制信号x(t)
figure
subplot(3,1,1)
plot(Time,SinSignal)
xlabel('时间')
xlim([00.5])
title('时域信号')
subplot(3,1,2)
plot(Time,SinSignal)
xlabel('时间')
xlim([00.05])
title('时域信号x(t)')
FFTSinSignal=2/N*fft(SinSignal)
subplot(3,1,3)
FnSin=abs(FFTSinSignal);
plot(FW(2:
length(FW))*FS/pi/2,FnSin(2:
length(FW)))
holdon
plot((FW(2:
length(FW))-2*pi)*FS/pi/2,FnSin(2:
length(FW)))
xlim([-FS/2FS/2])
xlabel('频率')
%------------------------设计低通滤波器-----------------------
Rp=1;%通带衰减/dB
Rs=40;%阻带衰减/dB
OmegaP1_1=400;%通带边界频率
OmegaS1_1=500;%阻带边界频率
FS=2000;%抽样频率
Wp1=2*pi*OmegaP1_1/FS;%将模拟频率变为数字角频率
Ws1=2*pi*OmegaS1_1/FS;%将模拟频率变为数字角频率
OmegaP1=tan(Wp1/2);%非线性变换
OmegaS1=tan(Ws1/2);%非线性变换
Eta_P=OmegaP1/OmegaP1;%归一化
Eta_S=OmegaS1/OmegaP1;%归一化
Lemta_P_EquivalentLowPass=1/Eta_P;%变为等效低通参数
Lemta_S_EquivalentLowPass=1/Eta_S;%变为等效低通参数
%估计滤波器阶数
[N,Wn]=Ellipord(Lemta_P_EquivalentLowPass,Lemta_S_EquivalentLowPass,Rp,Rs,'s');
%时间滤波器
[num1,den1]=ellip(N,Rp,Rs,Wn,'s');
[num2,den2]=lp2lp(num1,den1,OmegaP1);
[num,den]=bilinear(num2,den2,0.5);
%计算增益响应
w=0:
pi/255:
pi;
h=freqz(num,den,w);
g=20*log10(abs(h));
%绘制增益响应
figure;
plot(w/pi,g);grid
axis([01-605]);
xlabel('\omega/\pi');ylabel('增益/dB');
title('椭圆低通滤波器的增益响应');
%绘制零点和极点
figure;
[z,p,k]=tf2zp(num,den);
zplane(z,p);
title('零点和极点')
figure
subplot(2,1,1)
YLP=filter(num,den,SinSignal);
plot(Time,YLP)
xlim([00.05])
xlabel('时间')
title('低通滤波后的时域信号')
FFTSinSignalSum=2/N*fft(YLP)
subplot(2,1,2)
FnSinSum=abs(FFTSinSignalSum);
plot(FW(2:
length(FW))*FS/pi/2,FnSinSum(2:
length(FW)))
holdon
plot((FW(2:
length(FW))-2*pi)*FS/pi/2,FnSinSum(2:
length(FW)))
xlim([-FS/2FS/2])
ylim([01])
xlabel('频率')
%return
%----------------------------EndProgram------------------------
五 仿真结果图
六参考资料
[1]程佩青著.数字信号处理教程[M].清华大学出版社,2001
[2]SanjitK.Mitra著,孙洪,余翔宇译.数字信号处理实验指导书(MATLAB版)[M].电子工业出版社,2005年1月
[3]郭仕剑等.MATLAB7.x数字信号处理[M].人民邮电出版社,2006
[4]胡广书.数字信号处理理论算法与实现[M].清华大学出版社,2003
[5]刘泉,阙大顺.数字信号处理原理与实现[M].电子工业出版社,2005年6月
[6]苏金明,王永利.Matlab7.1使用指南[M].电子工业出版社,2004年11月
七 设计心得
本次课程设计中,我的任务是用双线性变换法设计原型低通为椭圆型的数字IIR低通滤波器,并应用MATLAB软件进行仿真分析。
这是数字信号处理的知识与软件应用相结合的一次训练,我受益匪浅。
通过本次课程设计,不仅使我更加熟悉MATLAB软件的应用,而且对数字信号处理中相关的各类滤波器的设计又进行了一次系统的复习;也使我加深了对课堂抽象概念的理解,巩固了课堂上所学的理论知识,理解和掌握了数字信号处理中的基本概念、基本原理和基本分析方法。
在课程设计过程中,通过自己搜集材料,扩大了自己的知识面,系统地掌握了编程方法和解决实际问题的一些技巧,让我对MATLAB有了更深刻的了解,对数字滤波器的设计流程有了大致的了解,掌握了一些设计滤波器的基本方法,提高了理论用于实践的能力,掌握了更多专业相关的使用知识与技能。
同时暴露出了自己许多的不足之处,在以后的学习过程中还有待继续提高。
通过本次课程设计,我对平时所学的知识有了更深入的了解,对MATLAB的应用也较以前熟练,知识与应用相结合提高了我的学习热情,在实验中,我确实遇到了一些问题,但通过我们的共同努力,最终还是解决了问题,收获了宝贵的经验。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 双线 变换 设计 原型 椭圆 数字 IIR 带通滤波器