目 录
一.设计目的:............................................................................. 2
二.设计要求:............................................................................. 3
三.设计内容:............................................................................. 3
3.1选择巴特涡斯低通数据滤波器及双线性变换法的原因 3
3.2巴特沃思低通滤波器的基本原理................................... 4
3.3双线性变换法原理........................................................... 5
3.4数字滤波器设计流程图................................................... 7
3.5数字滤波器的设计步骤................................................... 7
四.用matlab实现巴特沃斯低通数字滤波器的仿真并分析.... 8
4.1巴特沃斯低通数字滤波器技术指标的设置................... 8
4.2用matlab实现巴特沃斯低通数字滤波器的仿真.......... 9
4.3波形图分析:................................................................. 12
五.总结与体会.............................................................................. 12
六.附录 参考文献..................................................................... 14
一.设计目的:
该课程设计是测控技术与仪器专业的必修课,开设课程设计的目的使学生掌握数字信号处理的基本概念和基本理论,能够利用辅助工具进行FIR和IIR数字滤波器的设计,进行一维信号的频谱分析,并进行仿真验证。加强实践教学环节,加强学生独立分析、解决问题的能力,培养学生动手能力和解决实际问题的能力,实现宽口径教育。
(1)理解低通滤波器的过滤方法。
(2)进一步熟悉低通滤波器的基本应用。
(3)用仿真工具matlab软件对设计的滤波器进行软件和硬件仿真。
(6)将对仿真结果进行比较,从而检验滤波器滤波性能的准确性。
二.设计要求:
地震发生时,除了会产生地震波,还会由地层岩石在断裂、碰撞过程中所发生的震动产生次声波。它的频率大约在每秒十赫兹到二十赫兹之间(可以用11Hz和15Hz的两个信号的和进行仿真,幅度可以分别设定为1、2)。大气对次声波的吸收系数很小,因此它可以传播的很远,而且穿透性很强。通过监测次声波信号可以监测地震的发生、强度等信息,因为自然界中广泛存在着各种次声波,这就对地震产生的次声波产生了干扰(可以用白噪声模拟,方差为5),需要采取一定的处理方法,才能检测到该信号,要求设计检测方案;并处理方法给出具体的软件(可以以51系列单片机、STM32F407、TMS320F28335或TMS320F6745为例)。
假设地震次声波信号为x,输入x=sin(2*π*11*t)+2*sin(2*π*15*t)和伴有白噪声的合成信号,经过滤波器后滤除15Hz以上的分量,即只保留x=sin(2*π*11*t)+2*sin(2*π*15*t)的分量信号,来验证设计的滤波器是否达到了设计要求。
三.设计内容:
3.1选择巴特涡斯低通数据滤波器及双线性变换法的原因
(1)由于低通滤波器是组成其它滤波器的基础,故选用低通滤波器;
(2)在当今社会,数字信号的应用越来越广泛,故选用数字信号;
(3)巴特沃斯滤波器的特点是通频带的频率响应曲线最平滑并且应用范围最广,故选巴特沃斯型滤波器;
(4)为了不使数字滤波器在ω=[if !vml]
[endif]附近产生频谱混叠,故选用双线性变换法。
3.2巴特沃思低通滤波器的基本原理
巴特沃斯低通数字滤波器的幅度平方函数[if !vml]
[endif]用下式表示
[if !vml]
[endif]
式中,N称为滤波器的阶数。当[if !vml]
[endif]=0时,[if !vml]
[endif];[if !vml]
[endif]时,[if !vml]
[endif],[if !vml]
[endif]是3dB截止频率。在[if !vml]
[endif]附近,随[if !vml]
[endif]加大,幅度迅速下降。幅度特性与[if !vml]
[endif]与N的关系如图3.1所示。幅度下降的速度与阶数N有关,N愈大,通带愈平坦,过渡带愈窄,过渡带与阻带幅度下降的速度愈快,总的频响特性与理想低通滤波器的误差愈小。
[if !vml]
[endif][if !vml]
[endif]
图3.1 巴特沃斯低通数字滤波器 图3.2 三阶巴特沃斯滤波器极点
幅度特性与[if !vml]
[endif]与N的关系 分布图
以s替换[if !vml]
[endif],将幅度平方函数[if !vml]
[endif]写成s的函数
[if !vml]
[endif][if !vml]
[endif]
复变量[if !vml]
[endif],此式表示幅度平方函数有2N个极点,极点[if !vml]
[endif]用下式表示:[if !vml]
[endif] ([if !vml]
[endif]=0,1,2,3….)
2N个极点等间隔分布在半径为[if !vml]
[endif]的圆上(该圆称为巴特沃斯圆),间隔为[if !vml]
[endif]rad。例如N=3,极点间隔为[if !vml]
[endif]/3rad,如图3.2所示。
为形成因果稳定的滤波器,2N个极点中只取s平面左半平面的的N个极点构成Ha(s), 而右半平面的的N个极点构成Ha(-s),Ha(s)的表达式为[if !vml]
[endif]
为使设计公式和图表统一,将频率归一化。巴特沃斯低通数字滤波器采用对3dB截止频率[if !vml]
[endif]归一化,归一化后的系统函数为
[if !vml]
[endif]
令[if !vml]
[endif],[if !vml]
[endif],[if !vml]
[endif]称为归一化频率,[if !vml]
[endif] 称为归一化复变量,这样,巴特沃斯低通原型系统函数为
[if !vml]
[endif]
3.3双线性变换法原理
双线性变换法是使数字滤波器的频率响应与模拟滤波器的频率响应相似的一种变换方法。为了克服多值映射的缺点,采用把整个s平面频率压缩方法,
将整个频率轴上的频率范围压缩到-π/T~π/T之间,再用[if !vml]
[endif]转换到Z平面上。也就是说,第一步先将整个S平面压缩映射到S1平面的-π/T~π/T一条横带里;第二步再通过标准变换关系[if !vml]
[endif]将此横带变换到整个Z平面上去。这样就使S平面与Z平面建立了一一对应的单值关系,消除了多值变换性,也就消除了频谱混叠现象。映射关系如图3.3所示。
设Ha(s),[if !vml]
[endif],经过非线性频率压缩后用[if !vml]
[endif],[if !vml]
[endif]表示,这里用正切变换实现频率压缩:
[if !vml]
[endif]
[if !vml]
[endif]
图3.3 双线性变换的映射关系
式中,T为采样间隔,当[if !vml]
[endif]从-π/T经过0变化到π/T时,[if !vml]
[endif]由-∞经过0变化到+∞,实现了s平面上整个虚轴完全压缩到[if !vml]
[endif]平面上虚轴的+π/T之间的转换。即
[if !vml]
[endif]
代入[if !vml]
[endif],[if !vml]
[endif],得到
[if !vml]
[endif]
再通过[if !vml]
[endif]从[if !vml]
[endif]平面转换到z平面,得到
[if !vml]
[endif] [if !vml]
[endif]
上式是S平面与Z平面之间的单值映射关系,这种变换都是两个线性函数之比,因此称为双线性变换。
双线性变换法与冲激响应不变法相比,其主要的优点是避免了频率响应的混叠现象,虽然在线性方面有些欠缺,但是可以通过频率的预畸来加以校正且计算比冲激响应不变法方便,实现起来比较容易,所以,本设计选择用双线性变换法设计巴特沃斯低通滤波器。
3.4数字滤波器设计流程图
3.5数字滤波器的设计步骤
数字滤波器的设计步骤:根据数字滤波器的技术指标先设计过渡模拟滤波器得到系统函数Ha(s),然后将Ha(s)按某种方法(本实验采用双线性变换法)转换成数字滤波器的系统函数H(z)。具体为:
(1)确定巴特沃斯数字低通滤波器的技术指标:通带边界频率ωp,阻带截止频率ωs,通带最大衰减аp,阻带最小衰减аs。
(2)将数字滤波器的技术指标转换为模拟滤波器的技术指标。这里指ωp和ωs的变换而аp和аs保持不变。本题采用双线性变换法,其转换公式为:
[if !vml]
[endif]
[if !vml]
[endif]
(3)根据技术指标Ωp、Ωs、ωp和ωs用下面公式求出滤波器的阶数。[if !vml]
[endif]
[if !vml]
[endif] [if !vml]
[endif] [if !vml]
[endif]
[if !supportLists](4)[endif]根据N由表3.1求出归一化极点[if !vml]
[endif]和归一化低通原型系统函数Ga(p)。
表3.1巴特沃斯归一化低通滤波器参数
分母因式
阶数
B(p)=B1(p)B2(p)…B[N/2](p) [N/2表示取大于等于N/2的最小整数]
1(p2+1)
2 (p2+1.4142p+1)
3 (p2+p+1)(p+1)
4 (p2+0.7654p+1)(p2+1.8478p+1)
5 (p2+0.6180p+1)(p2+1.6180p+1)(p+1)
6 (p2+0.5176p+1)(p2+1.4142p+1)(p2+1.9319p+1)
7 (p2+0.4450p+1)(p2+1.2470p+1)(p2+1.8019p+1)(p+1)
8 (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)
(5)将Ga(p)去归一化,将[if !vml]
[endif]代入Ga(p),得到实际的滤波器系统函数:
[if !vml]
[endif]
这里Ωc为3dB截止频率。
(6)用双线性变换法将模拟滤波器Ha(s)转换成数字低通滤波器系统函数H(z)。转换公式为:
[if !vml]
[endif]s=[if !vml]
[endif]
四.用matlab实现巴特沃斯低通数字滤波器的仿真并分析
4.1巴特沃斯低通数字滤波器技术指标的设置
通带截至频率ωp=15Hz, αp=1dB
阻带截至频率ωs=20Hz αs=30dB
采样频率为fs=1000Hz
4.2用matlab实现巴特沃斯低通数字滤波器的仿真
Matlab程序如下:
clear all;
%模拟地震信号,频率是11hz和15hz
fs=1000;dt=1/fs;
f1=11;f2=15;
n=500;
t=[0:n-1]*dt; %时间序列
x=sin(2*pi*f1*t)+2*sin(2*pi*f2*t); %信号
figure(1);
subplot(511);
plot(t,x); %显示原始信号
title('模拟地震信号');
%白噪声信号
%rand函数用来产生均值0.5,方差约为1/12,幅值在0~1的伪随机数
%修改为均值为0,方差为5的白信号。
p=5; %
u1=rand(1,n);
u1_mean=mean(u1);
u1_var=var(u1);
u=u1-u1_mean;
u=u*sqrt(p/u1_var); %白噪声信号
subplot(512);
plot(u(1:100));
title('均匀分布白噪声');
%%%%地震信号和白噪声叠加
y1=x+u; %叠加白噪声
subplot(513);
plot(t,y1);
title('地震信号和白噪声叠加');
%FIR带通
%m=20;
%f=[0 0.001 0.0015 0.004 0.005 1];
%a=[0 0 1 1 0 0];
%BB=firls(m,f,a);
%bb=fftfilt(BB,y1);
%subplot(313);
%plot(t,bb);
%fir低通
%m=60;
%f=[0 0.03 0.04 1];
%a=[1 1 0 0];
%BB=firls(m,f,a);
%bb=fftfilt(BB,y1);
%subplot(313);
%plot(t,bb);
%B=fir1(45,0.025);
%bb=fftfilt(B,y1);
%subplot(313);
%plot(t,bb);
%巴特沃斯
wp=2*20/fs;
ws=2*30/fs;
Rp=1;
As=30;
[N,wc]=buttord(wp,ws,Rp,As);
[B,A]=butter(N,wc);
bb=filter(B,A,y1);
[H,W]=freqz(B,A);
subplot(514);
plot(W,abs(H));
title('巴特沃斯幅频特性');
subplot(515);
plot(t,bb);
title('巴特沃斯滤波');
用matlab滤波前后的信号波形变化如图4.1所示:
[if !vml]
[endif]
图4.1 用matlab滤波前后的信号波形变化
4.3波形图分析:
由技术指标得:设计的巴特沃斯低通数字滤波器为15Hz以内的信号能通过,而高于15Hz的信号将通不过滤波器。因此,我们设计一个输入信号,其为:y=sin(2*π*11*t)+2*sin(2*π*15*t)+u(u为白噪声信号)。使其通过设计好的巴特沃斯低通数字滤波器,来验证是否有地震发生。
如图4.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)分量相差不大,但其频率稍微有些失真,说明了设计的
低通滤波器达到了要求。
用matlab滤波后的信号比理论信号在1秒内大了1/4个周期,效果不错,而用Simulink滤波后的信号周期没变,幅度大了0.1,但滤波器控制不了幅度,幅度的变化说明存在外界干扰,说明噪声较大,但从滤波效果来看也达到了设计要求。
综述
对设计结果与理论值的比较,其均存在一定的误差,从侧面说明对于任何实验结果,在一定范围内的误差是允许的,其与理论值均有一定的误差,这是不可避免的,其中的原因多种多样,如实验设计不合理,外界因素的干扰,信号衰减......对于这些,我们只能通过不断改进设计原理、优化设计步骤等措施来减小误差。同时,也告诉我们,任何理论结果要转换成实际应用,均要进行一定的优化,使其达到实际的应用要求。
五.总结与体会
数字滤波器是一种对数字信号进行滤波处理以得到期望的响应特性的离散时间系统。它能够有效的对数字信号进行过滤,过滤多数字信号中的干扰和多余成分,能够保证通信过程的正常实现。
本次实验设计选择了在通信系统中最常用,也是最基础的巴特沃斯低通数字滤波器。根据给定的数字数字滤波器的技术指标,先设计过渡模拟滤波器得到系统函数Ha(s),然后将Ha(s)采用双线性变换法转换成数字滤波器的系统函数H(z)。在这个变换的过程中避免了频率的混叠现象。然后根据数字滤波器的系统函数,编写程序,分别运用matlab和Simulink仿真工具对设计的巴特沃斯低通数字滤波器进行了仿真。经过几次调试和对产生的仿真结果的分析,得到了在误差允许范围之内的低通数字滤波器。并且设计了验证实验。对一个由多个信号合成的数字信号进行编程,让其通过让所设计的滤波器。仿真结果与理论结果进行观察比较,判定所设计的滤波器符合要求。
经过本次课程设计,让我们熟悉了巴特沃斯低通数字滤波器的基本知识和MATLAB的m语言及其相关模块Simulink的应用,把课上的理论知识运用到实际中去,更近一步地巩固了课堂上所学的理论知识,并能很好地理解与掌握数字信号处理中的基本概念、基本原理、基本分析方法。因为学过数字信号处理这门课,但这只是理论知识,通过实验我们才能真正理解其意义。同时,进行matlab软件及Simulink硬件仿真,用两种方法将其设计出来。
在设计过程中,我们遇到了由于理论知识的忘记、总体轮廓的设计、编程过少导致的不熟练、软件尤其是Simulink模块运用不熟练等问题,但是经过我们的思考讨论和翻阅相关资料,最终这些问题得到了解决,设计出了符合标准的滤波器并通过相关信号进行了验证。
经过这次的课程设计,使我们发现了自己的一些不足,为我们在今后的学习和生活中注意改进自己的不足,我们会更加努力,学习好我们的专业知识并注重运用到实际,克服自己的不足;同时,让我们有机会将自己学到的理论知识运用到实际中,克服了只学习理论的枯燥和乏味,提高了自己的动手能力、思维能力和学习的积极性,同时,锻炼了我们的团队协作能力,为我们今后的工作或考研,都提供了不小的帮助,让我们受益匪浅。