数字信号处理课程设计Word文档下载推荐.docx
《数字信号处理课程设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数字信号处理课程设计Word文档下载推荐.docx(10页珍藏版)》请在冰点文库上搜索。
2.1滤波器简介
随着信息时代和数字世界的到来,数字信号处理已成为当今一门极其重要的学科和技术领域。
目前数字信号处理在通信、语音、图像、自动控制、雷达、军事、航空航天、医疗和家用电器等众多领域得到了广泛的应用。
在数字信号处理中起着重要的作用并已获得广泛应用的是数字滤波器(DF,DigitalFilter),根据其单位冲激响应函数的时域特性可分为两类:
无限冲激响应IIR(InfiniteImpulseResponse)滤波器和有限冲激响应FIR(FiniteImpulseResponse)滤波器。
与FIR滤波器相比,IIR的实现采用的是递归结构,极点须在单位圆内,在相同设计指标下,实现IIR滤波器的阶次较低,即所用的存储单元少,从而经济效率高。
数字滤波器是一种用来过滤时间离散信号的数字系统,通过对抽样数据进行数学处理来达到频域滤波的目的。
数字滤波器也是具有一定传输选择特性的数字信号处理装置,其输入、输出均为数字信号,实质上是一个由有限精度算法实现的线性时不变离散系统。
它的基木工作原理是利用离散系统特性对系统输人信号进行加工和变换,改变输入序列的频谱或信号波形,让有用频率的信号分量通过,抑制无用的信号分量输出。
数字滤波器除了具有数字信号处理的固有优点外,还有滤波精度高(与系统字长有关)、稳定性好(仅运行在0与I两个电平状态)、灵活性强等优点。
2.2滤波器分类
滤波器的种类很多,从功能上可分为低通、高通、带通和带阻滤波器,每一种又有模拟滤波器和数字滤波器两种形式。
如果滤波器的输人和输出都是离散时间信号,则该滤波器的冲击响应也必然是离散的,这种滤波器称之为数字滤波器。
不同滤波器的传输特性分别为:
低通滤波器:
带通滤波器:
高通滤波器:
带阻滤波器:
2.3滤波器技术要求
实际中通常使用的数字滤波器属于一般选频滤波器。
射数字滤波器传输函数为
表示如下:
。
式中
称为幅频特性,
称为相频特性。
幅频特性表示信号通过滤波器后个频率成分的衰减情况,而相频特性反映各频率成通过滤波器后的延时情况。
一般选频滤波器的技术要求由幅频特性给出,但如果对输出波形有要求,则需考虑提出指标的选频滤波器的设计。
通常用
和
分别表示通带截止频率和阻带截止频率,它们都是数字频域。
在通带内,幅度响应以
为误差,且逼近1。
~
称为过渡带。
在阻带内,幅度响应应以小于
而逼近0为误差。
通带和阻带内允许的衰减一般用dB数表示,通带内允许最大衰减用
表示,阻带内允许最小衰减用
表示。
当幅度下降到0.707时,
,此时
=3dB,称
为3dB通带截止频率。
3数字滤波器设计的基本步骤
数字滤波器的设计是用有限精度算法来实现的,是线性非移变系统,一般的设计内容和步骤如下:
1根据实际需要去诶的那个数字滤波器的技术指标,例如滤波器的频率响应的幅度特性和截止频率等。
2用一个因果稳定的离散线性非移变系统的系统函数去逼近这些性能指标。
具体来说,就是用这些指标来计算系统函数。
3利用有限精度算法来实现这个系统函数,包括选择运算结构、进行误差分析和选择适合字长等。
4数字滤波器的实现技术包括采用通用的计算机软件或专用的数字滤波器硬件来实现,以及采用通用或专用的数字信号处理器来实现。
以上步骤的结果得到的滤波器,通常是以差分方程、系统函数或脉冲响应描述的。
根据这个描述就可以分析其频率特性和相位特性、以验证设计结果是否满足指标要求;
或者利用计算机仿真实现设计的滤波器,再分析滤波结果来判断。
另外,根据数字滤波器的设计方法,要先设计出模拟滤器,模拟滤波器的理论和设计方法已经发展的相当成熟,切有若干典型的模拟滤波器可供选择,例如巴特沃斯滤波器、切比雪夫滤波器、椭圆滤波器、贝塞尔滤波器等。
这些典型的滤波器各有特点:
巴特沃斯滤波器具有通带内最平坦且单调下降的幅频特性;
切比雪夫滤波器的幅频特性在通带或阻带内有波动,可以提高选择性;
贝塞尔滤波器通带内具有较好的线性相位特性;
而椭圆滤波器的选择性相对于前三种是最好的。
4设计程序
4.1ellip函数法
MATLAB信号处理工具箱提供了各种滤波器设计函数及滤波器实现函数,Ellip是完全设计函数之一,其调用格式为[b,a]=ellip(n,Rp,Rs,Wn,Options),n为滤波器阶数,Rp表示通带波纹最大衰减,Rs表示阻带波纹最小衰减,Wn为滤波器的归一化截止频率(Nyquist频率为1Hz);
函数默认为低通或带通滤波器:
低通滤波器时,Wn为截止频率;
带通滤波器时,截止频率Wn=[W1,W2]。
a分别为滤波器传递函数分子和分母系数向量;
options为滤波器类型参数:
high为高通滤波器,截止频率为Wn;
stop为带阻滤波器,截止频率Wn=[W1,W2]。
按照要求产生一个4阶IIR带通滤波器,通带为300Hz到700Hz,并得出其幅频响应,程序如下:
Fs=1000
[b,a]=ellip(4,0.1,40,[300,700]/Fs);
[H,w]=freqz(b,a,512);
plot(w*Fs/(2*pi),abs(H));
title('
IIR带通滤波器幅频响应'
);
set(gcf,'
color'
'
white'
xlabel('
频率(Hz)'
ylabel('
幅度(DB)'
gridon;
所得幅频特性曲线如图所示:
图4.1.1ellip函数所得滤波器特性曲线
图形分析:
根据图形可以看出,带宽为400Hz,通带频率为300到700Hz,中心频率为500Hz。
符合设计要求。
图形上的过渡带比较陡峭,但在实际设计中可能达不到这样的效果。
4.2切比雪夫滤波器
切比雪夫滤波器的特点是幅度特性具有等波纹的特点,它有两种类型,一种是通带内为等波纹,在阻带内是单调的,称为切比雪夫I型;
另一种在通带内为单调,阻带内为等波纹,称为切比雪夫II型。
I型滤波器的幅度平方函数可以写成:
为小于1的正数,是与通带波纹有关的参量,
越大通带波动越大。
为
的归一化频率。
按照要求,利用切比雪夫函数来设计滤波器,程序如下:
wp1=0.3*pi;
wp2=0.7*pi;
ws1=0.2*pi;
ws2=0.8*pi;
Rp=1;
Rs=40;
Wp1=tan(wp1/2);
Wp2=tan(wp2/2);
Ws1=tan(ws1/2);
Ws2=tan(ws2/2);
BW=Wp2-Wp1;
W0=Wp1*Wp2;
W00=sqrt(W0);
WP=1;
WS=WP*(W0^2-Ws1^2)/(Ws1*BW);
[N,Wn]=cheb1ord(WP,WS,Rp,Rs,'
s'
[B,A]=cheby1(N,Rp,Wn,'
[BT,AT]=lp2bp(B,A,W00,BW);
[num,den]=bilinear(BT,AT,0.5);
[h,omega]=freqz(num,den,64);
stem(omega/pi,abs(h));
\omega/\pi'
|H(z)|'
gridon
利用切比雪夫函数所得滤波器的幅频特性曲线如图所示:
图4.2.1利用切比雪夫函数所得滤波器幅频特性曲线
图形上的通带内是等波纹,阻带内是单调的,这显然符合切比雪夫I型滤波器的特点。
4.3双线性变换
上述程序中还利用了双线性变化原理将模拟滤波器变换成数字滤波器。
其变换原理为:
首先把整个s域平面压缩到某一中介的s1平面的一条横线带里(宽度为2
/T,即从-
/T到
/T),其次再通过标准变化关系
将此横带变化到整个z平面上去,这样就使s平面与z平面形成一一对应的关系,消除了多值变换性,也就从根本上消除了频谱混叠现象。
5设计总结
本文提出关于滤波器的设计可以充分地利用MATLAB信号处理工具箱(实际上,MATLAB针对许多不同的专门领域开发了功能强大的工具箱,利用这些工具箱提供的函数,用户可以快速地解决该领域的许多问题),可直接得到符合要求的带通滤波器。
基于MATLAB的信号处理工具箱(SignalProcessingToolbox)的SPTool工具可以更快速有效地设计由软件组成的常规数字滤波器,设计方便、快捷,大大减轻了工作量。
在设计过程中可以对比滤波器特性,随时更改参数,以达到滤波器设计的最优化。
滤波器的设计工作完成后,可以借助MATLAB中的export操作导出所设计滤波器的系统函数H(z)。
由于MATLAB具有强大的接口功能,仿真后的结果可以很方便的移植到DSP、CPLD或FPGA等器件中,在此不做过多的阐述了。
另外,根据数字滤波器的设计方法,要先设计出模拟滤器,模拟滤波器的理论和设计方法已经发展的相当成熟,切有若干典型的模拟滤波器可供选择,例如巴特沃斯滤波器、切比雪夫滤波器等。
本文直接利用切比雪夫波器来设计符合要求的滤波器。
6心得体会
通过这次课程设计,加强了我们动手、思考和解决问题的能力。
在设计过程中,经常会遇到这样那样的情况,就是心里想着这样的程序可以行得通,但实际接上总是实现不了,因此耗费在这上面的时间用去很多。
我觉得做课程设计同时也是对课本知识的巩固和加强,由于课本上的知识太多,平时课间的学习并不能很好的理解和运用各个元件的功能,而且考试内容有限,所以在这次课程设计过程中,我们了解了很多元件的功能,并且对于其在电路中的使用有了更多的认识。
平时看课本时,有时问题老是弄不懂,做完课程设计,那些问题就迎刃而解了。
而且还可以记住很多东西。
比如一些芯片的功能,通过动手实践让我们对各个元件映象深刻。
所以这个课程设计对我们的作用是非常大的。
设计程序时,我发现只有细心才能做到完美,首先是参数设置,还有图表显示部分的设置,兼顾到方方面面去考虑是很需要的,否则只是一纸空话。
同时我认为我们的工作是一个团队的工作,团队需要个人,个人也离不开团队,必须发扬团结协作的精神。
某个人的离群都可能导致导致整项工作的失败。
课程设计中只有一个人知道原理是远远不够的,必须让每个人都知道,否则一个人的错误,就有可能导致整个工作失败。
团结协作是我们实习成功的一项非常重要的保证。
而这次实习也正好锻炼我们这一点,这也是非常宝贵的。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。
参考文献
[1]
刘波.MATLAB信号处理.北京:
清华大学出版社,2001
[2]
楼顺天.基于MATLAB的系统分析与设计.西安:
西北工业大学出版社,2004
[3]
张葛祥.MATLAB仿真技术与应用.北京:
清华大学出版社,2004
[4]刘泉.数字信号处理原理与实现.北京:
电子工业出版社,2005
[5]陈希林.数字信号处理、理论、算法与实现.北京:
高等教育出版社,2004