FIR滤波器带通滤波器课设报告.docx
《FIR滤波器带通滤波器课设报告.docx》由会员分享,可在线阅读,更多相关《FIR滤波器带通滤波器课设报告.docx(24页珍藏版)》请在冰豆网上搜索。
FIR滤波器带通滤波器课设报告
课程设计任务书
分院(系)
信息科学与工程学院
专业
电子信息工程
学生姓名
学号
设计题目
FIR滤波器(带通滤波器)
内容及要求:
1.设计一个截止频率为1500Hz——3000Hz的带通数字滤波器。
2.在DSPTMS320C5509上实现FIR滤波。
3.对FIR滤波器各项指标进行评价。
进度安排:
2011年12月31日选题、查阅资料。
2011年01月01-11日课内上机编写软件程序(或硬件原理图设计)调试程序及仿真,课外上机调试程序及仿真,调试程序及仿真、调试出结果、调试结果验收并写报告。
指导教师(签字):
年月日
分院院长(签字):
年月日
摘要
DSP芯片是一种高性能的微处理器,其技术发展大大推动了数字信号处理技术的发展与应用,目前从工业系统到家电产品,从军事装备到生物医学仪器,无不融入了DSP技术。
本文阐述了带通数字滤波器的功能和基本原理,并且介绍了CCS3.3环境的相关内容,然后在CCS3.3中以TMS320C55x芯片的汇编语言编程实现了带通数字滤波器的设计。
而且通过仿真和验证,初步完成了设计。
关键词:
DSP;微处理器;CCS3.3;TMS320C55x
绪论
21世纪是数字化的时代,随着越来越多的电子产品将数字信号处理(PSP)做为技术核心,DSP已经成为推动数字化进程的动力。
作为数字化最重要的技术之一,DSP无论在其应用的深度还是广度,正在以前所未有的速度向前发展。
数字信号处理器,也称DSP芯片,是针对数字信号处理需要而设计的一种具有特殊结构的微处理器,它是现代电子技术、相结合的产物。
一门主流技术,随着信息处理技术的飞速发展,计算机技术和数字信号处理技术数字信号处理技术逐渐发展成为它在电子信息、通信、软件无线电、自动控制、仪表技术、信息家电等高科技领域得到了越来越广泛的应用。
数字信号处理由于运算速度快,具有可编程特性和接口灵活的特点,使得它在许多电子产品的研制、开发和应用中,发挥着重要的作用。
采用DSP芯片来实现数字信号处理系统是当前发展的趋势。
近年来,DSP技术在我国也得到了迅速的发展,不论是在科学技术研究,还是在产品的开发等方面,在数字信号处理中,其应用越来越广泛,并取得了丰硕的成果。
数字滤波占有极其重要的地位。
数字滤波是语音和图象处理、模式识别、谱分析等应用中的一个基本处理算法。
在许多信号处理应用中用数字滤波器替代模拟滤波器具有许多优势。
数字滤波器容易实现不同的幅度和相位频率特性指标,克服了与模拟滤波器器件性能相关的电压漂移、温度漂移和噪声问题。
用DSP芯片实现数字滤波除了具有稳定性好、精确度高、不受环境影响外,还具有灵活性好的特点。
用可编程DSP芯片实现数字滤波可通过修改滤波器的参数十分方便的改变滤波器的特性。
几乎每一科学和工程领域例如声学、物理学、通信、数据通信、控制系统和雷达等都涉及信号。
在许多应用中都希望根据期望的指标把一个信号的频谱加以修改、整形或运算。
这些过程都可能包含衰减一个频率范围,阻止或隔离一些频率成分,用数字滤波器来实现这些功能是方便、有效、可行的。
1数字滤波器设计原理
1.1数字滤波器的定义和分类
数字滤波器是指完成信号滤波处理功能的,用有限精度算法实现的离散时间线性非时变系统,其输入是一组数字量,其输出是经过变换的另一组数字量。
因此,数字滤波器本身既可以是用数字硬件装配成的一台完成给定运算的专用的数字计算机,也可以将所需要的运算编成程序,让通用计算机来执行。
从数字滤波器的单位冲击响应来看,可以分为两大类:
有限冲击响应(FIR)数字滤波器和无限冲击响应(IIR)数字滤波器。
滤波器按功能上分可以分为低通滤波器(LPF)、高通滤波器(HPF)、带通滤波器(BPF)、带阻滤波器(BSF)[4]。
1.2数字滤波器的优点
相对于模拟滤波器,数字滤波器没有漂移,能够处理低频信号,频率响应特性可做成非常接近于理想的特性,且精度可以达到很高,容易集成等,这些优势决定了数字滤波器的应用将会越来越广泛。
同时DSP处理器(DigitalSignalProcessor)的出现和FPGA(FieldProgrammableGateArray)的迅速发展也促进了数字滤波器的发展,并为数字滤波器的硬件实现提供了更多的选择。
数字滤波器具有以下显著优点:
精度高:
模拟电路中元件精度很难达到10-3以上,而数字系统17位字长就可以达到10-5精度。
因此在一些精度要求很高的滤波系统中,就必须采用数字滤波器来实现。
灵活性大:
数字滤波器的性能主要取决于乘法器的各系数,而这些系数是存放在系数存储器中的,只要改变存储器中存放的系数,就可以得到不同的系统,这些都比改变模拟滤波器系统的特性要容易和方便的多,因而具有很大的灵活性。
可靠性高:
因为数字系统只有两个电平信号:
"1”和“0",受噪声及环境条件的影响小,而模拟滤波器各个参数都有一定的温度系数,易受温度、振动、电磁感应等影响。
并且数字滤波器多采用大规模集成电路,如用CPLD或FPGA来实现,也可以用专用的DSP处理器来实现,这些大规模集成电路的故障率远比众多分立元件构成的模拟系统的故障率低。
易于大规模集成:
因为数字部件具有高度的规范性,便于大规模集成,大规模生产,且数字滤波电路主要工作在截止或饱和状态,对电路参数要求不严格。
因此产品的成品率高,价格也日趋降低。
相对于模拟滤波器,数字滤波器在体积、重量和性能方面的优势己越来越明显。
比如在用一些用模拟网络做的低频滤波器中,网络的电感和电容的数值会大到惊人的程度,甚至不能很好地实现,这时候若采用数字滤波器则方便的多。
并行处理:
数字滤波器的另外一个最大优点就是可以实现并行处理,比如数字滤波器可采用DSP处理器来实现并行处理。
TI公司的TMS320C5000系列的DSP芯片采用8条指令并行处理的结构,时钟频率为100MHZ的DSP芯片,可高达100MIPs(即每秒执行百万条指令)。
1.3FIR滤波器基本原理
1.3.1FIR数字滤波器的特点及结构
在数字信号处理应用中往往需要设计线性相位的滤波器,FIR滤波器在保证幅度特性满足技术要求的同时,很容易做到严格的线性相位特性。
FIR滤波器不断地对输入样本x(n)延时后,再作乘法累加算法,将滤波结果y(n)输出,因此,FIR实际上是一种乘法累加运算。
在数字滤波器中,FIR滤波器的最主要的特点是没有反馈回路,故不存在不稳定的问题,同时,可以在幅度特性是随意设置的同时,保证精确的线性相位。
稳定和线性相位特性是FIR滤波器的突出优点。
另外,它还有以下特点:
设计方式是线性的;硬件容易实现;滤波器过渡过程具有有限区间;相对IIR滤波器而言,阶次较高,其延迟也要比同样性能的IIR滤波器大得多。
[3]
FIR数字滤波器系统的传递函数为:
(1.1)
通过反z变换,数字滤波器的差分方程为:
(1.2)
由此得到系统的差分方程:
(1.3)
由上式可以得出如下图1.1所示的直接型结构,这种结构又可以称为卷积型结构。
将转置理论应用于图1.1可以得到转置直接型结构。
将式中的系统函数H(z)分解成若干一阶和二阶多项式的连乘积:
(1.4)
(1.4)
则可构成如图1.1所示的级联型结构。
其中为一阶节
;为二阶节。
每个一阶节、二阶节可用图1.2所示的直接型结构实现。
当M1=M2时,即得到图1.3所示的具体结构。
这种结构的每一节都便于控制零点,在需要控制传输零点时可以采用。
但是它所需要的系数a比直接型的h(n)多,所需要的乘法运算也比直接型多。
在对滤波器计算时间没有特殊要求的时候可以采用这种形式。
若需要严格考虑滤波器的计算时间则需要折衷它们的优点和缺点来设计。
这在算法设计时候要使用软件编辑环境来计算运行的时间问题。
通常FIR的计算时间都较长。
很多时候我们需要牺牲时间来获得想要得到的滤波器功能。
图1.1FIR滤波器直接型机构图
图1.2级联型结构图
图1.3级联型具体结构
1.3.2FIR滤波器具有的优点
可以在幅度特性随意设计的同时,保证精确、严格的线性相位;由于FIR滤波器的单位脉冲h(n)是有限长序列,因此FIR滤波器没有不稳定的问题;由于FIR滤波器一般为非递归结构,因此,在有限运算下不会出现递归型结构中的极限振荡等不稳定现象误差较小;FIR滤波器可以采用FFT算法实现,从而提高了运算效率。
1.4IIR数字滤波器基本原理
IIR数字滤波器,即无限长单位冲激响应数字滤波器,是指单位冲激响应是无限长,系统函数在Z平面上有极点存在,结构上存在着输出到输入的反馈,即结构上是递归型的数字滤波器。
换句话说,它的输出不仅取决于过去和现在的输入,而且还取决于过去的输出,其差分方程为:
(1.4)
式中ak、br为滤波系数。
当br全为零时,该滤波器为FIR数字滤波器;当br不全为零时,则为IIR滤波器。
与FIR数字滤波器相比,IIR数字滤波器可用较低的阶数获得较好的频率选择特性,所用的存储单元少,成本低,信号延迟小,而且可以借助模拟滤波器设计。
[4]
1.5FIR和IIR滤波器的比较
在很多实际应用中如语音和音频信号处理中,数字滤波器来实现选频功能。
因此,指标的形式应为频域中的幅度和相位响应。
在通带中,通常希望具有线性相位响应。
在FIR滤波器中可以得到精确的线性相位。
在IIR滤波器中通带的相位是不可能得到的,因此主要考虑幅度指标。
IIR数字滤波器的设计和模拟滤波器的设计有着紧密的联系,通常要设计出适当地模拟滤波器,再通过一定的频带变换把它转换成为所需要的数字IIR滤波器。
此外,任何数字信号处理系统中也还不可避免地用到模拟滤波器,比如A/D变换器前的抗混叠滤波器及D/A转换后的平缓滤波器,因此模拟滤波器设计也是数字信号处理中应当掌握的技术。
从性能上来说,IIR数字滤波器传递函数包括零点和极点两组可调因素,对极点的唯一限制是在单位圆内。
因此可用较低的阶数获得高的选择性,所用的存储单元少、计算量小、效率高。
但是这个高效率是以相位的非线性为代价的。
选择性越好,则相位非线性越严重。
FIR滤波器传递函数的极点是固定在原点,是不能动的,它只能靠改变零点位置来改变它的性能,所以要达到高的选择性,必须用高的阶数,对于同样的滤波器设计指标,FIR滤波器所要求的阶数可能比IIR滤波器高5-10倍,结果成本高信号延时也较大,如果按线性相位要求来说,则IIR滤波器就必须加全通网络进行相位校正,同样大大增加了滤波器的阶数和复杂性。
而FIR滤波器却可以得到严格的线性相位。
从结构上看,IIR滤波器必须采用递归结构来配置极点,并保证极点位置在单位圆内。
由于有限字长效应,运算过程中将对系数进行舍入处理,引起极点的偏移,这种情况有时会造成稳定性问题,甚至造成寄生振荡。
相反,FIR滤波器只要采用非递归结构,不论在理论上还是实际的有限精度运算中都不存在稳定性问题,因此造成的频率特性误差也较小。
此外FIR滤波器可以采用快速傅立叶变换算法,在相同的阶数条件下运算速度可以快的多。
2TMS320C5X的硬件结构
2.1C55X的CPU体系结构
C55X有1条32位的程序数据总线(PB),5条16位数据总线(BB、CB、DB、EB、FB)和1条24位的程序地址总线及5条23位地址总线,这些总线分别与CPU相连。
总线通过存储单元接口(M)与外部程序总线和数据总线相连,实现CPU对外部存储器的访问。
这种并行的多总线结构,使CPU能在一个CPU周期内完成1次32位程序代码读、3次16位数据读和两次16位数据写。
C55X根据功能的不同将CPU分为4个单元,指令缓冲单元(I)、程序流程单元(P)、地址流程单元(A)、和数据计算单元(D)。
读程序地址总线(PDA)上传送24位的程序代码地址,由读程序总线(PB)将32位的程序代码送入指令缓冲单元进行译码[1]。
2.2指令缓冲单元(I)
C55X的指令缓冲单元有指令缓冲队列IBQ和指令译码器组成。
在每个CPU周期内,I单元将从程序数据接收的4B程序代码放入指令缓冲队列,指令译码器从队列中取6B程序代码,根据指令的长度可对8位、16位、24位、32位和48位的变长指令进行译码,然后把译码数据送入P单元、A单元和D单元去执行。
2.3程序流程单元(P)
程序流程单元有程序地址产生电路和寄存器组凑成。
程序流程单元产生所有程序空间的地址,并控制指令的读取顺序。
程序地址产生逻辑电路的任务是产生读取空间的24位地址。
一般情况下,它产生的是连续地址,如果指令要求读取非连续地址的程序代码时,程序地址产生逻辑电路能够接收来自I单元的立即数和来自D单元的寄存器值,并将产生的地址传送到PAB。
在P单元中使用的寄存器分为5种类型。
●程序流寄存器:
包括程序计数器、返回地址寄存器和控制流程关系寄存器。
●块重复寄存器:
包括块重复寄存器0和1(BRC0、BRC1)BRC1的保存寄存器(BRS1)、块重复起始地址寄存器0和1以及块重复结束地址寄存器0和1。
●单重复寄存器:
包括单重复寄存器和计算单重复寄存器。
●中断寄存器:
包括中断标志寄存器0和1、中断使能寄存器0和1以及调试中断使能寄存器0和1。
●状态奇存期:
包括状态寄存器0,1,2和3。
2.4地址程序单元(A)
地址程序单元包括数据地址产生电路、算术逻辑电路和寄存器组构成。
数据地址产生电路能够接收来自I单元的立即数和来自A单元的寄存器产生读取数据空间的地址。
对于使用间接寻址模式的指令,有P单元向DAGEN说明采用的寻址模式。
A单元包括一个16位的算术逻辑单元,它既可以接收来自I单元的立即数也可以与存储器、I/O空间、A单元寄存器、D单元寄存器和P单元寄存器进行双向通信。
A单元包括的寄存器有以下几种类型。
●数据页寄存器:
包括数据页寄存器和接口数据页寄存器;
●指针:
包括系数数据指针寄存器、堆栈针寄存器和8个辅助寄存器;
●循环缓冲寄存器:
包括循环缓冲大小寄存器、循环缓冲起始地址寄存器;
●临时寄存器:
包括临时寄存器。
2.5数据计算单元(D)
数据计算单元由移位器、算数逻辑电路、乘法累加器和寄存器组构成。
D单元包含了CPU的主要运算部件。
D单元移位器能够接收来自I单元的立即数,能够与存储器、I/O单元、A单元寄存器、D单元寄存器和P单元寄存器进行双向通信,此外,还可以向D单元的ALU和A单元的ALU提供移位后的数据。
移位可以完成以下操作:
●对40位的累加器可以完成向左最多32位的移位操作,移位数乐意从零食寄存器读取或由指令中的常数提供;
●对于16位寄存器、存储器或I/O空间数据可完成左移31位或32位的移位操作;
●对于16位立即数可完成向左移最多15位的移位操作。
3数字滤波器设计方法
3.1窗函数法
窗函数设计的基本思想是要选取某一种合适的理想频率选择性滤波器,然后将它的脉冲响应截断以得到一个线性相位和因果的FIR滤波器。
因此这种方法的重点在于选择某种合适的窗函数和一种理想滤波器。
对于给定的滤波器技术指标,选择滤波器长度和具有最窄主瓣宽度和尽可能小的旁瓣衰减的某个窗函数。
任何数字滤波器的频率响应都是w的周期函数,它的傅立叶级数展开式为:
(3.1)
(3.2)
其中的Wc为滤波器的归一化的截止频率。
傅立叶系数hd(n)实际上就是理想数字滤波器的冲激响应。
获得有限冲激响应数字滤波器的一种可能方法就是把无穷级数截取为有限项级数来近似,而吉布斯(Gibbs)现象使得直接截取法不甚令人满意。
窗函数法就是用被称为窗函数的有限加权系列{W(n)}来修正式((3.2)的傅立叶级数,以求得要求的有限冲激响应序列h(n),即有:
h(n)=hd(n)W(n)(3.3)
w(n)是有限长序列,当n>N-1及n<0时,W(n)=0。
几种常用的窗函数
工程中比较常用的窗函数有矩形窗函数、三角形((Bartlett)窗函数、汉宁(Harming)窗函数、海明(Hamming)窗函数、布莱克曼(Blackman)窗函数和凯塞Kaiser)窗函数。
窗函数的选择原则是:
●具有较低的旁瓣幅度,尤其是第一旁瓣幅度;
●旁瓣幅度下降速度要大,以利增加阻带衰减;
●主瓣的宽度要窄,以获得较陡的过渡带。
通常上述三点很难同时满足。
当选用主瓣宽度较窄时,虽然得到较陡的过渡带,但通带和阻带的波动明显增加:
当选用最小的旁瓣幅度时,虽能得到匀滑的幅度响应和较小的阻带波动,但过渡带加宽。
因此,实际选用的窗函数往往是它们的折衷。
在保证主瓣宽度达到一定要求的条件下,适当牺牲主瓣宽度来换取旁瓣波动的减少。
总之窗函数不仅有截短的作用,而且能够起到平滑的作用在很多领域得到应用。
表3.1给出了几种常用窗函数的性能对比表。
表3.1常用窗函数的性能对比表
3.2模拟数字变换法
模拟网络的逼近和综合理论已经发展的相当成熟,产生了许多效率很高的设计方法,很多常用滤波器不仅有简单而严格的设计公式,而且设计参数已表格化,设计起来方便准确。
而数字滤波器在很多场合要完成的任务与模拟滤波器相同,如做低通、高通、带通和带阻滤波器等。
因此,完全可以借助于模拟滤波器的理论和设计方法来设计数字滤波器。
IIR数字滤波器具有无限的冲激响应,与模拟滤波器相匹配,所以IIR滤波器的设计可以采取在模拟滤波器设计的基础上进一步变换的方法。
平时所要设计的数字滤波器,阶数和类型并不一定是完全给定的,很多时候要根据设计要求和滤波器效果不断的调整,以达到设计的最优化。
在这种情况下,滤波器设计就要进行大量复杂的运算,单纯的靠公式计算和编制简单的程序很难在短时间内完成。
利用MATLAB强大的计算功能进行计算机辅助设计,可以快速有效地设计数字滤波器,大大简化了计算量。
用模拟-数字变换法设计IIR数字滤波器,首先必须设计一个模拟滤波器,它有许多不同的类型,主要有以下几种:
1.巴特沃斯(Butterworth)滤波器
BW滤波器是根据幅频特性在通带内具有最平坦特性而定义的滤波器,对一个N阶低通滤波器来说,所谓最平坦特性就是模拟函数的前(2N-1)阶导数在ω=0处都为零,BW滤波器的另一个特性是在通带和阻带内的幅频特性始终是频率的单调下降函数,且其模拟函数随阶数N的增大而更接近于理想低通滤波器。
2.切贝雪夫(Chbyshew)滤波器
CB低通滤波器的模拟函数由切贝雪夫多项式定义,且其在通带内的幅频响应是波动的,在阻带则单调变化。
3.逆切贝雪夫(Inverse-Chbyshew)滤波器
ICB滤波器的误差在通带内是单调增加的CB滤波器的误差在通带内均匀起伏地分布,ICB滤波器的误差在阻带内是均匀起伏地分布的,因而在相同阶数时CB滤波器的过渡特性将优于BW滤波器。
4.考尔(Cauer简写为C)滤波器也称为椭圆滤波器,其幅度特性是由雅可比(Tacobian)椭圆函数决定的,在通带和阻带内都具有“等波纹”幅度特性,其系统函数不仅具有极点而且也有零点。
上述滤波器是最常用的,此外还有贝塞耳(Bessel)滤波器等。
设计时选用那种类型,设计者应视用途、指标要求等自行决定。
一般地说,在相同设计指标下,“C”滤波器过渡带最为陡峭,或者阶数最低,“CB”滤波器次之,“BW”滤波器则更不及“CB”滤波器陡峭,或者所需阶数最高。
但从设计的复杂性和参数变化对滤波器特性的影响,即参数灵敏度的角度看,情况恰恰相反。
4数字滤波器的MATLAB辅助设计
4.1MATLAB简介
MATLAB是矩阵实验室(MatrixLaboratory)之意。
除具备卓越的数值计算能力外,它还提供了专业水平的符号计算,文字处理,可视化建模仿真和实时控制等功能。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学,工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完相同的事情简捷得多,当前流行的MATLAB5.3/Simulink3.0包括拥有数百个内部函数的主包和三十几种工具包(Toolbox)。
工具包又可以分为功能性工具包和学科工具包。
功能工具包用来扩充MATLAB的符号计算,可视化建模仿真,文字处理及实时控制等功能。
学科工具包是专业性比较强的工具包,控制工具包,信号处理工具包,通信工具包等都属于此类。
MATLAB具有许多的优点比如:
语言简洁紧凑,使用方便灵活,库函数极其丰富;MATLAB既具有结构化的控制语句(如for循环,while循环,break语句和if语句),又有面向对象编程的特性;程序的可移植性很好,基本上不做修改就可以在各种型号的计算机和操作系统上运行,等等优点。
因此在各个学科和领域得到了广泛的应用。
4.2FDAtool界面介绍
FDAtool(FilterDesignAnalysistool)是MATLAB信号处理工具箱里专用的滤波器设计分析工具,MATLAB6.0以上的版本还专门增加了滤波器设计工具箱(FilterDesigntoolbox)。
FDAtool可以设计几乎所有的基本的常规滤波器,包括fir和iir的各种设计方法。
它操作简单,方便灵活。
FDAtool界面总共分两大部分,一部分是designfilter,在界面的下半部,用来设置滤波器的设计参数,另一部分则是特性区,在界面的上半部分,用来显示滤波器的各种特性。
designfilter部分主要分为:
filtertype(滤波器类型)选项,包括lowpass(低通)、highpass(高通)、bandpass(带通)、bandstop(带阻)和非凡的fir滤波器。
designmethod(设计方法)选项,包括iir滤波器的butterworth(巴特沃思)法、chebyshevtypei(切比雪夫i型)法、chebyshevtypeii(切比雪夫ii型)法、elliptic(椭圆滤波器)法和fir滤波器的equiripple法、least-squares(最小乘方)法、window(窗函数)法。
filterorder(滤波器阶数)选项,定义滤波器的阶数,包括specifyorder(指定阶数)和minimumorder(最小阶数)。
在specifyorder中填入所要设计的滤波器的阶数(n阶滤波器,specifyorder=n-1),假如选择minimumorder则matlab根据所选择的滤波器类型自动使用最小阶数。
frenquencyspecifications选项,可以具体定义频带的各参数,包括采样频率fs和频带的截止频率。
它的具体选项由filtertype选项和designmethod选项决定,例如bandpass(带通)滤波器需要定义fstop1(下阻带截止频率)、fpass1(通带下限截止频率)、fpass2(通带上限截止频率)、fstop2(上阻带截止频率),而lowpass(低通)滤波器只需要定义fstop1、fpass1。
采用窗函数设计滤波器时,由于过渡带是由窗函数的类型和阶数所决定的,所以只需要定义通带截止频率,而不必定义阻带参数。
magnitudespecifications选项,可以定义幅值衰减的情况。
例如设计带通滤波器时,可以定义wstop1(频率fstop1处的幅值衰减)、wpass(通带范围内的幅值衰减)、wstop2(频率fstop2处的幅值衰减)。
当采用窗函数设计时,通带截止频率处的幅值衰减固定为6db,所以不必定义。
windowspecifications选项,当选取采用窗函数