基于MATLAB的低通滤波器的设计.docx
《基于MATLAB的低通滤波器的设计.docx》由会员分享,可在线阅读,更多相关《基于MATLAB的低通滤波器的设计.docx(18页珍藏版)》请在冰豆网上搜索。
![基于MATLAB的低通滤波器的设计.docx](https://file1.bdocx.com/fileroot1/2023-6/20/2c8a538f-5dac-4b9d-a70a-b39020c3716f/2c8a538f-5dac-4b9d-a70a-b39020c3716f1.gif)
基于MATLAB的低通滤波器的设计
通信系统综合设计与实践
题
目
基于MATLAB的低通滤波器设计
院
(系
)名
称
信院通信系
专
业
名
称
通信工程
学
生
姓
名
学
生
学
号
指
导
教
师
2013年5月25日
摘要2
1.巴特沃斯低通数字滤波器简介3
1.1选择巴特沃斯低通滤波器及双线性变换法的原因4
1.2巴特沃斯低通滤波器的基本原理4
1.2.1巴特沃斯低通滤波器的基本原理4
1.2.2双线性变换法的原理5
1.3数字滤波器设计流程图7
1.4数字滤波器的设计步骤7
2.巴特沃斯低通数字滤波器技术指标的设置8
3.用matlab实现巴特沃斯低通数字滤波器的仿真并分析9
3.1用matlab实现巴特沃斯低通数字滤波器的仿真9
3.2波形图分析10
4.用Simulink实现巴特沃斯低通数字滤波器的仿真并分析11
4.1Simulink简介11
4.2用Simulink实现巴特沃斯低通数字滤波器的仿真11
4.3波形图分析11
4.3.1Simulink波形图分析11
4.3.2与matlab波形的比较14
5.总结与体会15
6.附录16
摘要
低通滤波器是让规定频率以下的信号分量通过,而对该频率以上的信号分量抑制的电容、电感与电阻等器件的组合装置。
巴特沃斯滤波器是电子滤波器的一种,特点是通频带内的频率响应曲线最大限度平坦,没有起伏,而在阻频带则逐渐下降为零。
可以构成低通、高通、带通和带阻四种组态,是目前最为流行的一类数字滤波器,经过离散化可以作为数字巴特沃思滤波器较模拟滤波器具有精度高、稳定、灵活、不要求阻抗匹配等众多优点因而在自动控制、语音、图像、通信、雷达等众多领域得到了广泛的应用,是一种具有最大平坦幅度响应的低通滤波器。
本文将介绍其中最常用的一种——巴特沃斯低通数字滤波器。
本文侧重于理论分析、matlab编程和结果分析。
(1)本文将先概述巴特沃斯低通数字滤波器的工作原理和特点。
(2)设置技术指标;
(3)用matlab进行软件编程,将仿真波形与理论值进行比较,分析其中的异同,并通过一个输入波形来验证设计的巴特沃斯低通数字滤波器的准确性。
(4)对实验结果和理论结果进行比较,分析它们的异同点并进行总体分析。
(5)用Simulink进行硬件电路仿真,观察仿真结果,并通过一个输入波形来验证仿真效果。
(6)通过对用Matlab软件仿真和Simulink硬件仿真的比较,说明两者的优缺点(7)对实验结果进行最后的总结,写出自己的感想。
关键字:
matlab低通滤波器巴特沃斯
1.巴特沃斯低通数字滤波器简介
1.1选择巴特沃斯低通滤波器及双线性变换法的原因
(1)由于低通滤波器是组成其它滤波器的基础,故选用低通滤波器;
(2)在当今社会,数字信号的应用越来越广泛,故选用数字信号;
(3)巴特沃斯滤波器的特点是通频带的频率响应曲线最平滑并且应用范围最广,故选巴特沃斯型滤波器;
(4)为了不使数字滤波器在ω=附近产生频谱混叠,故选用双线性变换法。
1.2巴特沃思低通滤波器的基本原理:
1.2.1巴特沃思低通滤波器的基本原理:
巴特沃斯低通数字滤波器的幅度平方函数H(aj)2用下式表示
Ha(j)2
1
1()2N
c
式中,N称为滤波器的阶数。
当=0时,H(aj)1;c时,H(aj)1/2,
c是3dB截止频率。
在c附近,随加大,幅度迅速下降。
幅度特性与与N的
图1.1巴特沃斯低通数字滤波器
关系如图1.1所示。
幅度下降的速度与阶数N有关,N愈大,通带愈平坦,过渡带愈窄,过渡带与阻带幅度下降的速度愈快,总的频响特性与理想低通滤波器的误差愈小。
图1.2三阶巴特沃斯滤波器极点
幅度特性与与N的关系分布图
Ha(s)Ha(s)
以s替换j,将幅度平方函数H(aj)2写成s的函数
s2N
1()2N
jc
复变量sj,此式表示幅度平方函数有2N个极点,极点sk用下式表示:
2N个极点等间隔分布在半径为c的圆上(该圆称为巴特沃斯圆),间隔为
/Nrad。
例如N=3,极点间隔为/3rad,如图1.2所示。
为形成因果稳定的滤波器,2N个极点中只取s平面左半平面的的N个极点构成
N
Ha(s),而右半平面的的N个极点构成Ha(-s),Ha(s)的表达式为Ha(s)N1c(ssk)k0
为使设计公式和图表统一,将频率归一化。
巴特沃斯低通数字滤波器采用对3dB截
止频率c归一化,归一化后的系统函数为
Ha(s)c
1
N-1ssk
(-k)k0cc
令p
j,/c,称为归一化频率,p称为归一化复变量,这样,巴特
沃斯低通原型系统函数为
(p-pk)
k0
1.2.2双线性变换法原理双线性变换法是使数字滤波器的频率响应与模拟滤波器的频率响应相似的一种变换方法。
为了克服多值映射的缺点,采用把整个s平面频率压缩方法,
将整个频率轴上的频率范围压缩到-π/T~π/T之间,再用ZesT转换到Z平面上。
也
就是说,第一步先将整个S平面压缩映射到S1平面的-π/T~π/T一条横带里;第二步再通过标准变换关系ZesT将此横带变换到整个Z平面上去。
这样就使S平面与Z平面建立了一一对应的单值关系,消除了多值变换性,也就消除了频谱混叠现象。
映射关系如图1.3所示。
^
设Ha(s),sj,经过非线性频率压缩后用Ha(s1),s1j1表示,这里用正切变换
实现频率压缩:
21
Ttan(21T)
图1.3双线性变换的映射关系
式中,T为采样间隔,当1从-π/T经过0变化到π/T时,由-∞经过0变化到+
∞,实现了s平面上整个虚轴完全压缩到s1平面上虚轴的+π/T之间的转换。
即
代入sj,s1j1,得到
再通过zes1T从s1平面转换到z平面,得到
2
21
1z
s
T1
1z
s
T
2
s
T
上式是S平面与Z平面之间的单值映射关系,这种变换都是两个线性函数之比,因此称为双线性变换。
双线性变换法与冲激响应不变法相比,其主要的优点是避免了频率响应的混叠现象,虽然在线性方面有些欠缺,但是可以通过频率的预畸来加以校正且计算比冲激响应不变法方便,实现起来比较容易,所以,本设计选择用双线性变换法设计巴特沃斯低通
滤波器。
1.3数字滤波器设计流程图
1.4数字滤波器的设计步骤
数字滤波器的设计步骤:
根据数字滤波器的技术指标先设计过渡模拟滤波器得到系统函数Ha(s),然后将Ha(s)按某种方法(本实验采用双线性变换法)转换成数字滤波器的系统函数H(z)。
具体为:
(1)确定巴特沃斯数字低通滤波器的技术指标:
通带边界频率ωp,阻带截止频率ωs,
通带最大衰减аp,阻带最小衰减аs。
(2)将数字滤波器的技术指标转换为模拟滤波器的技术指标。
这里指ωp和ωs的变换而аp和аs保持不变。
本题采用双线性变换法,其转换公式为:
tanT
tan
T2
3)根据技术指标Ωp、Ωs、ωp和ωs用下面公式求出滤波器的阶数。
4)根据N由表1.4求出归一化极点pk和归一化低通原型系统函数Ga(p)
分母因
B(p)=B1(p)B2(p)⋯B[N/2](p)[N/2表示取大于等于N/2的最小整数]
式阶数
1
(p2+1)
2
2
(p2+1.4142p+1)
3
2
(p2+p+1)(p+1)
4
22
(p2+0.7654p+1)(p2+1.8478p+1)
5
(p2+0.6180p+1)(p2+1.6180p+1)(p+1)
6
222
(p2+0.5176p+1)(p2+1.4142p+1)(p2+1.9319p+1)
7
222
(p2+0.4450p+1)(p2+1.2470p+1)(p2+1.8019p+1)(p+1)
8
2222
(p2+0.3902p+1)(p2+1.1111p+1)(p2+1.6629p+1)(p2+1.9619p+1)
9
(p2+0.3473p+1)(p2+p+1)(p2+1.5321p+1)(p2+1.8974p+1)(p+1)
表1.4巴特沃斯归一化低通滤波器参数
s
Ha(s)G(p)s
p
c
这里Ωc为3dB截止频率
6)用双线性变换法将模拟滤波器Ha(s)转换成数字低通滤波器系统函数H(z)。
转换
公式为:
21z
H(z)Ha(s)s=T211zz1
2.巴特沃斯低通数字滤波器技术指标的设置
数字低通技术指标为
ωp=30Hz,αp=1dB
ωs=60Hzαs=30dB
采样频率为fs=500设计要求:
输入x=sin(2*π*20*t)+2*sin(2*π*100*t)+5*sin(2*π*200*t)合成信号,经过滤波器后滤除30Hz以上的分量,即只保留sin(2*π*20*t)分量信号,来验证设计的滤波器是否达到了设计要求。
设计目的:
(1)理解低通滤波器的过滤方法。
(2)进一步熟悉低通滤波器的基本应用。
(3)用仿真工具matlab和Simulink分别对设计的滤波器进行软件和硬件仿真。
(6)将对仿真结果进行比较,从而检验滤波器滤波性能的准确性。
3.用matlab实现巴特沃斯低通数字滤波器的仿真并分析
3.1用matlab实现巴特沃斯低通数字滤波器的仿真
Matlab程序如下:
fs=500;
t=0:
1/fs:
1;
x=sin(2*pi*20*t)+2*sin(2*pi*100*t)+5*sin(2*pi*200*t);
wp=2*30/fs;
ws=2*60/fs;
Rp=1;
As=30;
subplot(311);
plot(t,x);
title('输入信号');
[N,wc]=buttord(wp,ws,Rp,As);
[B,A]=butter(N,wc);
[H,W]=freqz(B,A);
y=filter(B,A,x);
subplot(312);
plot(W,abs(H));
title('低通滤波器');
subplot(313);
plot(t,y)
title('30Hz');
用matlab滤波前后的信号波形变化如图3.1所示:
图3.1用matlab滤波前后的信号波形变化
3.2波形图分析:
由技术指标得:
设计的巴特沃斯低通数字滤波器为30Hz以内的信号能通过,而高于30Hz的信号将通不过滤波器。
因此,我们设计一个输入信号,其为:
x=sin(2*π*20*t)+2*sin(2*π*100*t)+5*sin(2*π*200*t)。
使其通过设计好的巴特沃斯低通数字滤波器,来验证设计好的巴特沃斯低通数字滤波器是否准确。
如图3.1所示,输入信号为x=sin(2*π*20*t)+2*sin(2*π*100*t)+5*sin(2*π*200*t),其图形在1秒内重复了20次,故其频率为20Hz,幅度为8,由sin(2*π*20*t)、2*sin(2*π*100*t)和5*sin(2*π*200*t)三个正弦波合成,从图中可知,输入信号的幅度与频率与输入信号的理论波形几乎完全相同。
而通过低通滤波器后信号只剩下一个,且在1秒内波形重复了20.25次,即周期为1/20.25s,其频率为20.25Hz,幅度为1,和输入信号中的sin(2*π*20*t)分量相差不大,但其频率稍微有些失真,说明了设计的低通滤波器达到了要求。
4.用Simulink实现巴特沃斯低通数字滤波器的仿真并分析
4.1Simulink简介
Simulink是Matlab最重要的组件之一,是MATLAB中的一种可视化仿真工具,是一种基于MATLAB的框图设计环境,是实现动态系统建模、仿真和分析的一个软件包它提供一个动态系统建模、仿真和综合分析的集成环境。
在该环境中,无需大量书写程序,而只需要通过简单直观的鼠标操作,就可构造出复杂的系统。
Simulink具有适应面广、结构和流程清晰及仿真精细、贴近实际、效率高、灵活等优点,并基于以上优点Simulink已被广泛应用于控制理论和数字信号处理的复杂仿真和设计。
同时有大量的第三方软件和硬件可应用于或被要求应用于Simulink。
4.2用Simulink实现巴特沃斯低通数字滤波器的仿真
用Simulink硬件仿真的电路图4.1如下所示
图4.1用Simulink硬件仿真的原理图
4.3波形图分析
4.3.1Simulink波形图分析
图中SineWave为正弦波,函数分别为sin(2*π*20*t)、2*sin(2*π*100*t)和5*sin(2*π*200*t);三个加号的为求和函数;DigitalFilterDesign为巴特沃斯低通数字滤波器,其设置如图4.2所示;而Scope为三个信号相加后的波形(如图4.3、4.4所示),用来观察输入信号;Scope1为经过巴特沃斯低通数字滤波器后的波形(如图4.5所示),用来观察滤波效果。
DigitalFilterDesign的设置如图三所示,其设置的为巴特沃斯低通数字滤波器,Scope为输入信号,由图4.3的,其幅度略大于五,其周期为0.01s,频率为100Hz,与输入信号x=sin(2*π*20*t)+2*sin(2*π*100*t)+5*sin(2*π*200*t)的幅度8,频率200Hz有较大差距,说明失真较严重存在不小的信号衰减,而Scope1(如图4.5所示)
为滤波后的信号,其幅度为1.1,在5s到5.5s内波形重复了10次,故其周期为0.05s,频率为20Hz,与输入信号中的sin(2*π*20*t)相当,幅度变大了0.1,说明有噪声干扰,但也基本达到了设计要求。
图4.2DigitalFilterDesign
图4.3输入信号的波形
图4.4输入信号的波形
图4.5滤波后的信号
4.3.2用Matlab与Simulink仿真结果的比较:
输入信号的比较
用Simulink出来的信号干扰较大,失真较严重,说明存在外界干扰,导致信号衰减,而用matlab出来的信号较好,干扰可以忽略。
巴特沃斯低通数字滤波器的比较
由图3.1中的低通滤波器和图4.2比较可得可知,用matlab设计的滤波器过渡带较窄,而用Simulink设计的滤波器过渡带较大,仿真结果和matlab相比效果较差,用matlab设计的滤波器与理论值差距较小,滤波效果更好。
输出信号的比较
用matlab滤波后的信号比理论信号在1秒内大了1/4个周期,效果不错,而用Simulink滤波后的信号周期没变,幅度大了0.1,但滤波器控制不了幅度,幅度的变化说明存在外界干扰,说明噪声较大,但从滤波效果来看也达到了设计要求。
综述
由图4.4和图4.5可知,用Simulink设计的滤波器的输入信号与滤波后信号均存在5s的延迟,说明了加法器的处理速度较慢,而用matlab设计的滤波器不存在此现象。
从滤波效果来看,用matlab设计的滤波器效果较好,其虽存在频率误差,但影响不大,而用Simulink设计的滤波器频率虽不失真,但存在较大的外界干扰。
个人认为,用matlab设计的巴特沃斯低通数字滤波器滤波效果较好。
对设计结果与理论值的比较,其均存在一定的误差,从侧面说明对于任何实验结果,在一定范围内的误差是允许的,其与理论值均有一定的误差,这是不可避免的,其中的原因多种多样,如实验设计不合理,外界因素的干扰,信号衰减对于这些,我们
只能通过不断改进设计原理、优化设计步骤等措施来减小误差。
同时,也告诉我们,任何理论结果要转换成实际应用,均要进行一定的优化,使其达到实际的应用要求。
5.总结与体会
数字滤波器是一种对数字信号进行滤波处理以得到期望的响应特性的离散时间系统。
它能够有效的对数字信号进行过滤,过滤多数字信号中的干扰和多余成分,能够保证通信过程的正常实现。
本次实验设计选择了在通信系统中最常用,也是最基础的巴特沃斯低通数字滤波器。
根据给定的数字数字滤波器的技术指标,先设计过渡模拟滤波器得到系统函数Ha(s),然后将Ha(s)采用双线性变换法转换成数字滤波器的系统函数H(z)。
在这个变换的过程中避免了频率的混叠现象。
然后根据数字滤波器的系统函数,编写程序,分别运用matlab和Simulink仿真工具对设计的巴特沃斯低通数字滤波器进行了仿真。
经过几次调试和对产生的仿真结果的分析,得到了在误差允许范围之内的低通数字滤波器。
并且设计了验证实验。
对一个由多个信号合成的数字信号进行编程,让其通过让所设计的滤波器。
仿真结果与理论结果进行观察比较,判定所设计的滤波器符合要求。
经过本次课程设计,让我们熟悉了巴特沃斯低通数字滤波器的基本知识和MATLAB的m语言及其相关模块Simulink的应用,把课上的理论知识运用到实际中去,更近一步地巩固了课堂上所学的理论知识,并能很好地理解与掌握数字信号处理中的基本概念、基本原理、基本分析方法。
因为学过数字信号处理这门课,但这只是理论知识,通过实验我们才能真正理解其意义。
同时,进行matlab软件及Simulink硬件仿真,用两种方法将其设计出来。
在设计过程中,我们遇到了由于理论知识的忘记、总体轮廓的设计、编程过少导致的不熟练、软件尤其是Simulink模块运用不熟练等问题,但是经过我们的思考讨论和翻阅相关资料,最终这些问题得到了解决,设计出了符合标准的滤波器并通过相关信号进行了验证。
经过这次的课程设计,使我们发现了自己的一些不足,为我们在今后的学习和生活中注意改进自己的不足,我们会更加努力,学习好我们的专业知识并注重运用到实际,克服自己的不足;同时,让我们有机会将自己学到的理论知识运用到实际中,克服了只学习理论的枯燥和乏味,提高了自己的动手能力、思维能力和学习的积极性,同时,锻炼了我们的团队协作能力,为我们今后的工作或考研,都提供了不小的帮助,让我们受益匪浅。
6.附录
附录参考文献
【1】高西全、丁玉美《数字信号处理(第三版)》西安电子科技大学出版社
【2】刘波、文忠《MATLAB信号处理》电子工业出版社
【3】樊昌信《通信原理(第六版)》国防工业出版社