用双线性变换法设计原型低通为巴特沃斯型的IIR数字高通滤波器汇总.docx
《用双线性变换法设计原型低通为巴特沃斯型的IIR数字高通滤波器汇总.docx》由会员分享,可在线阅读,更多相关《用双线性变换法设计原型低通为巴特沃斯型的IIR数字高通滤波器汇总.docx(20页珍藏版)》请在冰豆网上搜索。
![用双线性变换法设计原型低通为巴特沃斯型的IIR数字高通滤波器汇总.docx](https://file1.bdocx.com/fileroot1/2023-1/21/d54b7c30-b544-422c-a0f3-9968c8ca1e0b/d54b7c30-b544-422c-a0f3-9968c8ca1e0b1.gif)
用双线性变换法设计原型低通为巴特沃斯型的IIR数字高通滤波器汇总
《数字信号处理》
课程设计报告
用双线性变换法设计原型低通为巴特沃斯型的IIR数字高通滤波器
学院:
姓名:
班级:
学号:
目录
一、设计目的及设计内容2
二、概念设计4
三、详细设计14
四、实验总结22
五、参考文献23
一、设计目的及设计内容
当今,数字信号处理(DSP:
DigtalSignalProcessing)技术正飞速发展,它不但自成一门学科,更是以不同形式影响和渗透到其他学科:
它与国民经济息息相关,与国防建设紧密相连;它影响或改变着我们的生产、生活方式,因此受到人们普遍的关注。
数字化、智能化和网络化是当代信息技术发展的大趋势,而数字化是智能化和网络化的基础,实际生活中遇到的信号多种多样,例如广播信号、电视信号、雷达信号、通信信号、导航信号、射电天文信号、生物医学信号、控制信号、气象信号、地震勘探信号、机械振动信号、遥感遥测信号,等等。
上述这些信号大部分是模拟信号,也有小部分是数字信号。
模拟信号是自变量的连续函数,自变量可以是一维的,也可以是二维或多维的。
大多数情况下一维模拟信号的自变量是时间,经过时间上的离散化(采样)和幅度上的离散化(量化),这类模拟信号便成为一维数字信号。
因此,数字信号实际上是用数字序列表示的信号,语音信号经采样和量化后,得到的数字信号是一个一维离散时间序列;而图像信号经采样和量化后,得到的数字信号是一个二维离散空间序列。
数字信号处理,就是用数值计算的方法对数字序列进行各种处理,把信号变换成符合需要的某种形式。
例如,对数字信号经行滤波以限制他的频带或滤除噪音和干扰,或将他们与其他信号进行分离;对信号进行频谱分析或功率谱分析以了解信号的频谱组成,进而对信号进行识别;对信号进行某种变换,使之更适合于传输,存储和应用;对信号进行编码以达到数据压缩的目的,等等。
数字滤波技术是数字信号分析、处理技术的重要分支[2-3]。
无论是信号的获取、传输,还是信号的处理和交换都离不开滤波技术,它对信号安全可靠和有效灵活地传输是至关重要的。
在所有的电子系统中,使用最多技术最复杂的要算数字滤波器了。
数字滤波器的优劣直接决定产品的优劣。
1.1设计目的:
(1)熟悉用双线性变换法设计IIR数字滤波器的原理与方法;
(2)学会调用MATLAB信号处理工具箱中滤波器设计函数(或滤波器设计分析工具fdatool)设计各种IIR数字滤波器,学会根据滤波需求确定滤波器指标参数。
(3)掌握IIR数字滤波器的MATLAB实现方法。
(4)通过观察滤波器输入输出信号的时域波形及其频谱,建立数字滤波的概念。
1.2设计内容:
本次课程设计的内容为用双线性变换法设计原型低通为巴特沃兹型的数字IIR高通滤波器,要求通带边界频率为500Hz,阻带边界频率分别为400Hz,通带最大衰减1dB,阻带最小衰减40dB,抽样频率为2000Hz,用MATLAB画出幅频特性,画出并分析滤波器传输函数的零极点;
信号
经过该滤波器,其中
300Hz,
600Hz,滤波器的输出
是什么?
用Matlab验证你的结论并给出
的图形。
二、概要设计
2.1数字滤波器介绍
数字滤波器是具有一定传输选择特性的数字信号处理装置,其输入、输出均为数字信号,实质上是一个由有限精度算法实现的线性时不变离散系统。
它的基本工作原理是利用离散系统特性对系统输入信号进行加工和变换,改变输入序列的频谱或信号波形,让有用频率的信号分量通过,抑制无用的信号分量输出。
数字滤波器和模拟滤波器有着相同的滤波概念,根据其频率响应特性可分为低通、高通、带通、带阻等类型,与模拟滤波器相比,数字滤波器除了具有数字信号处理的固有优点外,还有滤波精度高(与系统字长有关)、稳定性好(仅运行在0与l两个电平状态)、灵活性强等优点。
时域离散系统的频域特性:
其中
、
分别是数字滤波器的输出序列和输入序列的频域特性(或称为频谱特性),
是数字滤波器的单位取样响应的频谱,又称为数字滤波器的频域响应。
输入序列的频谱
经过滤波后
因此,只要按照输入信号频谱的特点和处理信号的目的,适当选择
,使得滤波后的
满足设计的要求,这就是数字滤波器的滤波原理。
2.2IIR数字滤波器的设计方法
IIR滤波器的性能特点
(1)封闭函数
IIR数字滤波器的系统函数可以写成封闭函数的形式。
(2)IIR数字滤波器采用递归型结构
IIR数字滤波器采用递归型结构,即结构上带有反馈环路。
IIR滤波器运算结构通常由延时、乘以系数和相加等基本运算组成,可以组合成直接型、正准型、级联型、并联型四种结构形式,都具有反馈回路。
由于运算中的舍入处理,使误差不断累积,有时会产生微弱的寄生振荡。
(3)借助成熟的模拟滤波器的成果
IIR数字滤波器在设计上可以借助成熟的模拟滤波器的成果,如巴特沃斯、契比雪夫和椭圆滤波器等,有现成的设计数据或图表可查,其设计工作量比较小,对计算工具的要求不高。
在设计一个IIR数字滤波器时,我们根据指标先写出模拟滤波器的公式,然后通过一定的变换,将模拟滤波器的公式转换成数字滤波器的公式。
(4)需加相位校准网络
IIR数字滤波器的相位特性不好控制,对相位要求较高时,需加相位校准网络。
IIR数字滤波器的基本结构
一个数字滤波器可以用系统函数表示为:
(2-1)
由这样的系统函数可以得到表示系统输入与输出关系的常系数线形差分程为:
(2-2)
可见数字滤波器的功能就是把输入序列x(n)通过一定的运算变换成输出序列y(n)。
不同的运算处理方法决定了滤波器实现结构的不同。
无限冲激响应滤波器的单位抽样响应h(n)是无限长的,其差分方程如(2-2)式所示,是递归式的,即结构上存在着输出信号到输入信号的反馈,其系统函数具有(2-1)式的形式,因此在z平面的有限区间(0<︱z︱<∞)有极点存在。
前面已经说明,对于一个给定的线形时不变系统的系统函数,有着各种不同的等效差分方程或网络结构。
由于乘法是一种耗时运算,而每个延迟单元都要有一个存储寄存器,因此采用最少常熟乘法器和最少延迟支路的网络结构是通常的选择,以便提高运算速度和减少存储器。
然而,当需要考虑有限寄存器长度的影响时,往往也采用并非最少乘法器和延迟单元的结构。
IIR滤波器实现的基本结构有:
(1)IIR滤波器的直接型结构;
优点:
延迟线减少一半,变为N个,可节省寄存器或存储单元;
缺点:
其它缺点同直接I型。
通常在实际中很少采用上述两种结构实现高阶系统,而是把高阶变成一系列不同组合的低阶系统(一、二阶)来实现。
(2)IIR滤波器的级联型结构;
特点:
系统实现简单,只需一个二阶节系统通过改变输入系数即可完成;
∙极点位置可单独调整;
∙运算速度快(可并行进行);
∙各二阶网络的误差互不影响,总的误差小,对字长要求低。
缺点:
不能直接调整零点,因多个二阶节的零点并不是整个系统函数的零点,当需要准确的传输零点时,级联型最合适。
(3)IIR滤波器的并联型结构。
优点:
∙简化实现,用一个二阶节,通过变换系数就可实现整个系统;
∙极、零点可单独控制、调整,调整α1i、α2i只单独调整了第i对零点,调整β1i、β2i则单独调整了第i对极点;
∙各二阶节零、极点的搭配可互换位置,优化组合以减小运算误差;
∙可流水线操作。
缺点:
∙二阶阶电平难控制,电平大易导致溢出,电平小则使信噪比减小。
a、直接型b、并联型
c、串联型
2.3巴特沃兹滤波器(Butterworth滤波器)
特点:
具有通带内最大平坦的振幅特性,且随f↗,幅频特性单调↘。
其幅度平方函数:
N为滤波器阶数,如图1
图1、巴特沃斯滤波器振幅平方特性
通带:
使信号通过的频带阻带:
抑制噪声通过的频带
过渡带:
通带到阻带间过渡的频率范围
Ωc:
截止频率。
过渡带为零
理想滤波器阻带|H(jΩ)|=0
通带内幅度|H(jΩ)|=cons.
H(jΩ)的相位是线性的
图3-1中,N增加,通带和阻带的近似性越好,过渡带越陡。
通带内,分母Ω/Ωc<1,(Ω/Ωc)2N<1,A(Ω2)→1。
过渡带和阻带,Ω/Ωc>1,(Ω/Ωc)2N>1,Ω增加,A(Ω2)
快速减小。
Ω=Ωc,
幅度衰减,相当于3db衰减点。
振幅平方函数的极点
可见,Butterworth滤波器的振幅平方函数有2N个极点,它们均匀对称地分布在|S|=Ωc的圆周上。
考虑到系统的稳定性,知DF的系统函数是由S平面左半部分的极点(SP3,SP4,SP5)组成的,它们分别为:
系统函数为
令,得归一化的三阶BF:
如果要还原的话,则有
2.4双线性变法法
目的:
将模拟带通滤波器转换成数字高通滤波器
为了克服冲激响应法可能产生的频率响应的混叠失真,这是因为从S平面到Z平面是多值的映射关系所造成的。
为了克服这一缺点,可以采用非线性频率压缩方法,将整个频率轴上的频率范围压缩到-π/T~π/T之间,再用z=esT转换到Z平面上。
也就是说,第一步先将整个S平面压缩映射到S1平面的-π/T~π/T一条横带里;第二步再通过标准变换关系z=es1T将此横带变换到整个Z平面上去。
这样就使S平面与Z平面建立了一一对应的单值关系,消除了多值变换性,也就消除了频谱混叠现象,映射关系如图2
图2双线性变换的映射关系
为了将S平面的整个虚轴jΩ压缩到S1平面jΩ1轴上的-π/T到π/T段上,可以通过以下的正切变换实现
式中,T仍是采样间隔。
当Ω1由-π/T经过0变化到π/T时,Ω由-∞经过0变化到+∞,也即映射了整个jΩ轴。
将式写成
将此关系解析延拓到整个S平面和S1平面,令jΩ=s,jΩ1=s1,则得
再将S1平面通过以下标准变换关系映射到Z平面
z=es1T
从而得到S平面和Z平面的单值映射关系为:
首先,把z=ejω,可得
即S平面的虚轴映射到Z平面的单位圆。
其次,将s=σ+jΩ代入式,得
因此
由此看出,当σ<0时,|z|<1;当σ>0时,|z|>1。
也就是说,S平面的左半平面映射到Z平面的单位圆内,S平面的右半平面映射到Z平面的单位圆外,S平面的虚轴映射到Z平面的单位圆上。
因此,稳定的模拟滤波器经双线性变换后所得的数字滤波器也一定是稳定的。
双线性变换法优缺点:
双线性变换法与脉冲响应不变法相比,其主要的优点是避免了频率响应的混叠现象。
这是因为S平面与Z平面是单值的一一对应关系。
S平面整个jΩ轴单值地对应于Z平面单位圆一周,即频率轴是单值变换关系。
这个关系如式所示,重写如下:
上式表明,S平面上Ω与Z平面的ω成非线性的正切关系
由图3看出,在零频率附近,模拟角频率Ω与数字频率ω之间的变换关系接近于线性关系;但当Ω进一步增加时,ω增长得越来越慢,最后当Ω→∞时,ω终止在折叠频率ω=π处,因而双线性变换就不会出现由于高频部分超过折叠频率而混淆到低频部分去的现象,从而消除了频率混叠现象。
图3双线性变换法的频率变换关系
但是双线性变换的这个特点是靠频率的严重非线性关系而得到的。
由于这种频率之间的非线性变换关系,就产生了新的问题。
首先,一个线性相位的模拟滤波器经双线性变换后得到非线性相位的数字滤波器,不再保持原有的线性相位了;其次,这种非线性关系要求模拟滤波器的幅频响应必须是分段常数型的,即某一频率段的幅频响应近似等于某一常数(这正是一般典型的低通、高通、带通、带阻型滤波器的响应特性),不然变换所产生的数字滤波器幅频响应相对于原模拟滤波器的幅频响应会有畸变,如图4所示。
图4双线性变换法幅度和相位特性的非线性映射
对于分段常数的滤波器,双线性变换后,仍得到幅频特性为分段常数的滤波器,但是各个分段边缘的临界频率点产生了畸变,这种频率的畸变,可以通过频率的预畸来加以校正。
也就是将临界模拟频率事先加以畸变,然后经变换后正好映射到所需要的数字频率上。
2.5设计步骤
根据以上FIR数字滤波器设计方法,下面运用双线性变换法基于MATLAB设计一个FIR高通滤波器,其中通带边界频率为500Hz,阻带边界频率分别为400Hz,通带最大衰减1dB,阻带最小衰减40dB,抽样频率为2000Hz
(1)确定性能指标
在设计高通滤波器之前,首先根据工程实际的需要确定滤波器的技术指标:
(2)频率预畸变
用Ω=2/T*tan(w/2)对高通数字滤波器H(z)的数字边界频率预畸变,得到高通模拟滤波器H(s)的边界频率主要是通带截止频率Wp1;阻带截止频率Ws1,的转换。
(3)模拟高通性能指标转换成模拟低通性能指标
WP=1;%归一化处理
WS=WP*Wp1/Ws1;
(4)模拟低通滤波器的构造
借助巴特沃兹滤波器得到模拟低通滤波器的传输函数。
(5)模拟低通滤波器转换成模拟高通滤波器
调用lp2bp函数将模拟低通滤波器转化为模拟高通滤波器。
(6)模拟高通滤波器转换成数字高通滤波器
利用双线性变换法将模拟高通滤波器Ha(s)转换成数字高通滤波器H(z)。
(7)输入信号检验滤波器性能
输入不同频率的正弦波,观察输出波形,检验滤波器性能。
2.6程序流程图
开始
↓
读入数字滤波器技术指标
↓
将指标转换成归一化模拟低通滤波器的指标
↓
↓
模拟域频率变换,将G(P)变换成模拟高通滤波器H(s)
↓
用双线性变换法将H(s)转换成数字高通滤波器H(z)
↓
输入信号后显示相关结果
结束
2.7问题分析
(1)在设计高通滤波器时,首先要将数据进行归一化这样可以提高设计的准确性。
(2)在设计信号的输入时,课程中的数据f2如果是600HZ时,则复合信号通过滤波器时无法输出正常的信号X2,这说明频率太低,而被全被滤除,在将频率改至3000HZ之后则能输出符合设计要求的信号。
(3)信号通过滤波器后输出的信号与x2的信号开始部分有点失真,这时因为信号并不是非常理想的通过滤波器的,在通过滤波器时受到滤波器的影响是从不稳定逐渐趋向稳定的。
三、详细设计
3.1运行环境
Windowsxp
3.2开发工具和编程语言
Matlab6.5
3.3设计程序
clc;clearall
Rp=1;%通带衰减/dB
Rs=40;%阻带衰减/dB
OmegaP1_1=500;%通带边界频率
OmegaS1_1=400;%阻带边界频率
Fp=2000;%抽样频率
Wp1=2*pi*OmegaP1_1/Fp;%通带频率模数转换
Ws1=2*pi*OmegaS1_1/Fp;%阻带频率模数转换
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]=buttord(Lemta_P_EquivalentLowPass,Lemta_S_EquivalentLowPass,Rp,Rs,'s');
%设计滤波器
[num1,den1]=butter(N,Wn,'s');
[num2,den2]=lp2hp(num1,den1,OmegaP1);
[num,den]=bilinear(num2,den2,0.5);
[z,p,k]=tf2zp(num,den)
%显示传输函数
disp('分子系数是');disp(num);
disp('分母系数是');disp(den);
%计算增益响应
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;
zplane(z,p);%绘制传输函数零极点
title('传输函数的零极点');
f1=300,f2=3000;
n=0:
600;t=n/10000;
x1=sin(2*pi*f1*t);
x2=sin(2*pi*f2*t);
x=x1+x2;
figure;
subplot(2,2,1)%绘制x1的波形
plot(x1);gridon;
axis([0,50*pi,-3,3]);
xlabel('t');ylabel('x1(t)');
title('x1的波形');
subplot(2,2,2)%绘制x1的波形
plot(x2);gridon;
axis([0,50*pi,-3,3]);
xlabel('t');ylabel('x2(t)');
title('x2的波形');
subplot(2,2,3)%绘制输入x的波形
plot(x);gridon;
axis([0,50*pi,-3,3]);
xlabel('t');ylabel('x(t)');
title('输入信号x的波形')
y=filter(num,den,x);%数字滤波器输出
subplot(2,2,4);%绘制输出y的波形
plot(y);
gridon;
axis([0,50*pi,-3,3]);
xlabel('t');ylabel('y');
title('滤波器输出y的波形')
3.4调试分析
z=
1.3186+0.0728i
1.3186-0.0728i
1.2471+0.1915i
1.2471-0.1915i
1.1460+0.2529i
1.1460-0.2529i
1.0478+0.2773i
1.0478-0.2773i
0.9460+0.2698i
0.9460-0.2698i
0.8580+0.2250i
0.8580-0.2250i
0.7968+0.1570i
0.7968-0.1570i
0.7632+0.0792i
0.7632-0.0792i
0.7531
p=
0.0444+0.9106i
0.0444-0.9106i
0.0381+0.7545i
0.0381-0.7545i
0.0336+0.6187i
0.0336-0.6187i
0.0303+0.4976i
0.0303-0.4976i
0.0279+0.3871i
0.0279-0.3871i
0.0262+0.2843i
0.0262-0.2843i
0.0251+0.1868i
0.0251-0.1868i
0.0245+0.0926i
0.0245-0.0926i
0.0243
k=
7.3789e-005
分子系数是
Columns1through6
0.0001-0.00130.0100-0.05020.1756-0.4566
Columns7through12
0.9132-1.43501.7938-1.79381.4350-0.9132
Columns13through18
0.4566-0.17560.0502-0.01000.0013-0.0001
分母系数是
Columns1through6
1.0000-0.52472.4322-1.05562.2461-0.7954
Columns7through12
1.0097-0.28580.2357-0.05170.0283-0.0046
Columns13through18
0.0016-0.00020.0000-0.00000.0000-0.0000
f1=
300
3.5测试结果
四、实验总结
通过此次课程设计我对数字信号处理有了进一步的认识,但是由于自己数字信号处理的理论课程没有达到很深的了解,对数字滤波器的设计缺少认识,因此在此次课程设计中我还是遇到了很多问题。
在加上自己在matlab软件应用方面存在一些问题,所以比较吃力。
因此在设计过程中,我是看了遍数字信号处理的教科书并且特别注重看了关于数字滤波器的设计的内容,再通过利用参考文献与网络,完成了用Matlab进行数字信号处理课程设计。
通过课程设计,不仅加深了对理论知识的了解,巩固了课堂上所学的理论知识,而且还增加了自己的动手能力,并且理解与掌握数字信号处理中的基本概念、基本原理、基本分析方法。
与其他高级语言的程序设计相比,MATLAB环境下可以更方便、快捷地设计出具有严格线性相位的FIR滤波器,节省大量的编程时间,提高编程效率,且参数的修改也十分方便,还可以进一步进行优化设计。
相信随着版本的不断提高,MATLAB在数字滤波器技术中必将发挥更大的作用。
同时,用MATLAB计算有关数字滤波器的设计参数,如H(z)、h(n)等,对于数字滤波器的硬件实现也提供了一条简单而准确的途径和依据。
总之,这次课程设计设计不仅增强了自己的理论知识,加强了自己的动手能力,而且还培养了自己遇到问题之后如何去发现问题、解决问题的能力。
此次课程设计对自己在许多方面都有了很大的帮助。
最后还要感谢指导老师的辛勤知道和教育!
五、参考文献
[1]、程佩青著,《数字信号处理教程》,清华大学出版社,2001
[2]、SanjitK.Mitra著,孙洪,余翔宇译,《数字信号处理实验指导书(MATLAB版)》,电子工业出版社,2005年1月
[3]、郭仕剑等,《matlab7.x数字信号处理》,人民邮电出版社,2006年
[4]、胡广书,《数字信号处理理论算法与实现》,清华大学出版社,2003
[5]、SanjitK.Mitra著,《数字信号处理---基于计算机的方法》(第3版),清华大学出版社,2006年10月