基于DSP的IIR 滤波器的设计.docx
- 文档编号:29762558
- 上传时间:2023-07-26
- 格式:DOCX
- 页数:18
- 大小:236.08KB
基于DSP的IIR 滤波器的设计.docx
《基于DSP的IIR 滤波器的设计.docx》由会员分享,可在线阅读,更多相关《基于DSP的IIR 滤波器的设计.docx(18页珍藏版)》请在冰豆网上搜索。
基于DSP的IIR滤波器的设计
前言
本文介绍了滤波器的滤波原理以及模拟滤波器、数字滤波器的设计方法。
重点介绍了IIR数字滤波器的设计方法。
即脉冲响应不变法和双线性变换法。
在此基础上,用DSP虚拟实现任意阶IIR滤波器。
此设计扩展性好,便于调节滤波器的性能,可以根据不同的要求在DSP上加以实现。
数字信号处理是利用计算机或专用处理设备,以数字形式对信号进行采集、变换、滤波、估值、增强、压缩、识别等处理,以得到符合人们需要的信号形式。
数字信号处理是围绕着数字信号处理的理论、实现和应用等几个方面发展起来的。
数字信号处理在理论上的发展推动了数字信号处理应用的发展。
反过来,数字信号处理的应用又促进了数字信号处理理论的提高。
而数字信号处理的实现则是理论和应用之间的桥梁。
数字信号处理是以众多学科为理论基础的,它所涉及的范围极其广泛。
例如,在数学领域,微积分、概率统计、随机过程、数值分析等都是数字信号处理的基本工具,与网络理论、信号与系统、控制论、通信理论、故障诊断等也密切相关。
近来新兴的一些学科,如人工智能、模式识别、神经网络等,都与数字信号处理密不可分。
可以说,数字信号处理是把许多经典的理论体系作为自己的理论基础,同时又使自己成为一系列新兴学科的理论基础。
最多64个增加到现在的200个以上,引脚数量的增加,意味着结构灵活性的增加。
此外,DSP芯片的发展,是DSP系统的成本、体积、重量和功耗都有很大程度的下降。
第1章绪论
1.1数字滤波器的概念
滤波器是指用来对输入信号进行滤波的硬件和软件。
数字滤波器是对数字信号实现滤波的线性时不变系统。
数字滤波器可以理解为是一个计算程序或算法,将代表输入信号的数字时间序列转化为代表输出信号的数字时间序列,并在转化过程中,使信号按预定的形式变化。
数字滤波实质上是一种运算过程,实现对信号的运算处理。
数字滤波器和模拟滤波器相比,因为信号的形式和实现滤波的方法不同,数字滤波器具有比模拟滤波器精度高、稳定、体积小、重量轻、灵活、不要求阻抗匹配等优点。
输入数字信号(数字序列)通过特定的运算转变为输出的数字序列,因此,数字滤波器本质上是一个完成特定运算的数字计算过程,也可以理解为是一台计算机。
描述离散系统输出与输入关系的卷积和差分方程只是给数字信号滤波器提供运算规则,使其按照这个规则完成对输入数据的处理。
1.2数字滤波器的分类
目前数字滤波器的主要实现方法有:
1.在通用的微型计算机上用软件实现:
软件可以是自己编写的,也可以使用现成的软件包,这种方法缺点是速度太慢,不能用于实时系统,只能用于教学和算法的仿真研究。
比如用MATLAB就几乎可以实现所有数字滤波器的仿真。
而且在MATLAB下的部分仿真程序还可以通过转化为C语言,再通过DSP的C编译器直接在DSP硬件上运行。
2.用DSP(DigitalSignalProcessing)处理器实现:
DSP处理器是专为数字信号处理而设计的,如TI公司的TMS320C54x系列,AD公司的ADSP2IX,ADSP210X系列等。
它的主要数字运算单元是一个乘累加器MAC(Multiply-accumulator),能够在一个机器周期内完成一次乘累加运算,配有适合于信号处理的指令,具备独特的循环寻址和倒序寻址能力。
这些特点都非常适合数字信号处理中的滤波器设计的有效实现,并且它速度快、稳定性好、编程方便。
1.3数字滤波器的优点
DSP芯片是一种特别适合数字信号处理运算的微处理器,主要用来实时、快速地实现各种数字信号处理算法。
数字信号处理由于具有精度高、灵活性强等优点,已广泛应用于图像处理、数字通信、雷达等领域。
数字滤波技术在数字信号处理中占有极其重要的地位,数字滤波器根据其单位脉冲响应可分为IIR(无限长冲激响应滤波器)和FIR(有限长冲激响应滤波器)两类。
IIR滤波器可以用较少的阶数获得很高的选择特性,但在有限精度的运算中,可能出现不稳定现象,而且相位特性不好控制。
数字滤波器本质上是一个完成特定运算的数字计算过程,也可以理解为是一台计算机。
数字滤波器又分为无限冲激响应滤波器(IIR)和有限冲激响应滤波器(FIR)。
由于在许多场合下,需要对信号进行实时处理,因而对于单片机的性能要求也越来越高。
由于DSP控制器具有许多独特的结构,例如采用多组总线结构实现并行处理,独立的累加器和乘法器以及丰富的寻址方式,采用DSP控制器就可以提高数字信号处理运算的能力,可以对数字信号做到实时处理。
DSP(数字信号处理器)与一般的微处理器相比有很大的区别,它所特有的系统结构、指令集合、数据流程方式为解决复杂的数字信号处理问题提供了便利,本文选用TMS320C5509作为DSP处理芯片,通过对其编程来实现IIR滤波器。
IIR系统与传统的通过硬件电路实现的模拟滤波器相比有以下优点:
1、单位冲击响应有无限多项
2、高效率(因为结构简单、系数小、乘法操作较少)
3、与模拟滤波器有对应关系
4、可以解析控制,强制系统在指定位置为零点
5、有极点,在设计时要考虑稳定性
6、具有反馈,可能产生噪声、误差累积
1.4主要研究内容
本文主要研究了数字滤波器的基本理论和实现方法。
接着研究分析了如何利用MATLAB仿真软件来设计出符合各种要求的数字滤波器,并对所设计的滤波器进行仿真得到系数,本文还应用DSP集成开发环境——CCS调试汇编程序,为后面在DSP上实现提供必要的数据。
本课题选择在TM320C5509DSP综合实验开发系统平台上进行开发。
最后采用窗函数法在CCS环境下,利用MATLAB仿真得到的滤波器系数,编程实现IIR数字滤波器,得出滤波结果波形,并对结果进行分析与总结。
第2章IIR算法原理
滤波器可广义的理解为一个信号选择系统,它让某些信号成分通过又阻止或衰减另一些成分。
在更多的情况下,滤波器可理解为选频系统,如低通、高通、带通、带阻。
滤波器可分为三种:
模拟滤波器、采样滤波器和数字滤波器。
模拟滤波器可以是由RLC构成的无源滤波器,也可以是加上运放的有源滤波器,是连续时间系统;采样滤波器由电阻、电容、电荷转移器件、运放等组成,属于离散时间系统,幅度连续;数字滤波器由加法器、乘法器、存储延迟单元、时钟脉冲发生器和逻辑单元等数字电路构成,精度高,稳定性好,不存在阻抗匹配问题,可以时分复用。
设计滤波器,就是要确定其传递函数,传递函数H(z)已知后,则可以确定系统的频率响应为
,其中
分别是幅频特性和相位特性。
对于无失真传输系统,有
,即
幅频特性为常数,信号通过系统后各频率分量的相对大小保持不变,没有幅度失真。
相位特性为线性,使对应的时域方程的时延量为常数:
,即系统对各频率分量的延迟时间相同,保证了各频率分量的相对位置不变,没有相位失真。
数字通信对相位的要求比模拟通信高许多,线性相位很重要。
数字系统描述时延的函数有两个:
群时延:
:
反映相频曲线的线性程度。
相时延:
:
反映各频率分量在时域的相对延时。
所以无相位失真的传输条件是要具有恒群时延和恒相时延,即
=
=常数
。
数字滤波器的设计是确定其系统函数并实现的过程,一般要经如下步骤:
1、根据任务,确定性能指标。
2、用因果稳定的线性移不变离散系统函数去逼近。
3、用有限精度算法实现这个系统函数。
4、利用适当的软、硬件技术实现。
我们在这里主要讨论数字滤波器系统函数的逼近过程,包括无限长冲激响应(IIR)数字滤波器和有限长冲激响应(FIR)数字滤波器系统函数的逼近。
第3章设计方案及硬件设计
3.1设计方案
IIR数字滤波器的设计一般有两种方法:
一个是借助模拟滤波器的设计方法进行。
其设计步骤是,先设计模拟滤波器,再按照某种方法转换成数字滤波器。
这种方法比较容易一些,因为模拟滤波器的设计方法已经非常成熟,不仅有完整的设计公式,还有完善的图表供查阅;另外一种直接在频率或者时域内进行,由于需要解联立方程,设计时需要计算机做辅助设计。
其设计步骤是:
先设计过渡模拟滤波器得到系统函数
,然后将
按某种方法转换成数字滤波器的系统函数
。
这是因为模拟滤波器的设计方法已经很成熟,不仅有完整设计公式,还有完善的图表和曲线供查阅;另外,还有一些典型的优良滤波器类型可供我们使用。
IIR系统的优点是实现的阶数低,对于实现相同要求的数字滤波器,FIR滤波器的阶数要比IIR滤波器的阶数高5~10倍,IIR滤波器的设计相对简单,可以由对应的模拟滤波器转换而来。
结合IIR滤波器和FIR滤波器的优缺点,由于在APF谐波检测中的低通数字滤波器是用于通过直流,滤掉交流,对相位的要求不高,而且希望运算尽量小,因此选用IIR滤波器。
IIR数字滤波器的设计流程图如下:
图3.1IIR数字滤波器的设计步骤流程图
3.2IIR滤波器的硬件设计
3.2.1硬件设计总体方案:
TI公司的2000系列和5000系列的DSP都通用型的芯片,考虑到2000系列的DSP多用于控制方面,而5000系列较2000系列具有更高的时钟频率、更低的价格和更加强大的运算功能,所以在数字滤波器系统的设计中采用了TI公司的一款高性能、低功耗的定点DSP:
TMS320VC5402。
该DSP具有较快的运算速度,算速度最快可达532MIPS;采用了低功耗设计方式:
内核电压为1.8V,I/O电压为3.3V。
数字滤波系统的具体方案框图如图3.2示:
图3.2数字滤波器系统方案框图
通常的设计中会采用SV供电并行的ADC(模数转换)和DAC(数模转换)芯片与DSP连接,传输数据过程中会占用总线的时间,而且需要采用多片电平转换器件将SV电平转换为3.3V的逻辑电平。
考虑到TMS320VC5402的片上包含两个McBSP(多通道缓冲串行口)接口,可以将这两个通道模仿实现SPI的时序,因此本设计中采用了SPI接口器件,ADC芯片采用的是TLV1570,实现将需要滤波信号从模拟转换到数字信号的实时采样。
数模转换芯片采用的是TLV5608,实现滤波后的信号从数字信号恢复为所需要的模拟信号。
JTGA口供DSP芯片下载程序调试。
3.2.2A/D转换接口电路设计
在A/D转换器中,因为输入的模拟信号在时间上是连续量,而输出的数字信号代码是离散量,所以进行转换时必须在一系列选定的瞬间(亦即时间坐标轴上的一些规定点上)对输入的模拟信号取样,然后再把这些取样值转换为输出的数字量。
因此,一般的A/D转换过程是通过取样、保持、量化和编码这四个步骤完成的。
如下图3.3所示:
图3.3A/D转换电路
3.2.3D/A转换接口电路设计
数字量是用代码按数位组合起来表示的,对于有权码,每位代码都有一定的权。
为了将数字量转换成模拟量,必须将每1位的代码按其权的大小转换成相应的模拟量,然后将这些模拟量相加,即可得到与数字量成正比的总模拟量,从而实现了数字一模拟转换。
这就是构成D/A转换器的基本思路。
D/A转换器的转换精度通常用分辨率和转换误差来描述。
如下图3.4所示:
图3.4D/A转换电路
第4章软件设计
4.1IIR的数据存储器设计
TMS320C54X定点DSP提供了单周期乘/累加指令MAC和循环寻址方式,使IIR数字滤波器每个样值的计算可以在一个周期内完成。
IIR数字滤波器每个样值的计算就是实现两数组对应项乘积的累加和。
在计算时有前向通道和反馈通道两部分,因此在计算设计时要充分考虑x(n)、y(n)和h(n)系数的存放位置,并正确初始化这两个存储块指针,这样在计算中才能够准确的提取数据,实现乘加运算。
图4.1是IIR滤波器数据存放和系数表:
图4.1IIR滤波器数据存放和系数表
在程序设计中,首先将数据放入相应的段中,X数据指针AR2指向X0,同时将H(n)的指针AR1指向B0,利用乘加指令完成前向通道的一次运算;接着修改指针,AR2指针增1,H(n)的指针AR1减1,依次完成前向通道的乘加运算;反馈通道应用同样的方法进行乘加。
在程序设计时,可以采用先增益后衰减的方法,亦可采用先衰减后增益的方法。
但是采用先衰减后增益的方式其系统动态范围和鲁棒性较好,因此在设计中采用了后一种方法。
4.2IIR的MATLAB辅助设计
具体在MATLAB中设计IIR数字滤波器的设计步骤如下:
按一定规则将给出的数字滤波器的技术指标转换为模拟低通滤波器的技术指标;根据转换后的技术指标使用滤波器选择函数,确定最小阶数N和固有频率Wn;运用最小阶数N产生模拟低通滤波器原型,运用固有频率把模拟低通滤波器原型转换成模拟低通、高通、带通、带阻滤波器。
本设计主要应用产生低通滤波器,运用脉冲响应不变法或双线性不变法把模拟滤波器转换成数字滤波器。
对于脉冲响应不变法,它是将s域内的H(s)转换成z域内的H(z),但是在映射时,S域内不能一一对应到Z域内的单位圆上,因此容易在仿真中易产生混叠现象,影响实验效果。
基于此,本次设计在MATLAB的仿真中优先考虑应用双线性变换法。
MATLAB工具箱提供了几种模拟滤波器的原型产生函数,Butterworth滤波器原型,Chebyshev(I型、型)滤波器原型、椭圆滤波器原型等不同的模拟滤波器原型,从模拟滤波器向数字滤波器转换的双线性变换法和脉冲响应不变法等方法,模拟IIR数字滤波器阶数选择函数以及数字滤波器直接设计函数等等。
另外,MATLAB信号处理工具箱提供了几个直接设计IIR数字滤波器的函数。
这一整套设计函数给在MATLAB中设计IIR数字滤波器带来了极大的方便。
IIR低通数字滤波器根据相关技术指标进行matlab仿真,从而计算出相应的传输函数。
其仿真结果结果如图4.2所示:
图4.2利用matlab仿真图
根据以上仿真结果及相应的系数和N值,在相关技术指标不变的情况下,我选用了ChebyshevI型双线性变换法。
4.3系统流程图
第5章源程序
源程序如下:
.data
.include"iir_buff.asm"
.include"EIIRcofA.asm"
.include"EIIRcofB.asm"
.include"IIR_Input.asm"
.global_c_int00
.defIIR_Start
.defIIR_Middle
.defIIR_begin
.defIIR_last
.defcofAfirst
.defcofAlast
.defcofBfirst
.defcofBlast
.defFirstIn
.defLastIn
.text
_c_int00:
c28OBJ
c28ADDR
.c28_amode
movlXAR6,#IIR_Middle
movlXAR7,#cofAfirst
movlXAR2,#FirstIn
;movlXAR3,#IIR_Middle
movlXAR5,#LastIn+1
mov@AR0,#511
mov@AR1,#6
movAL,*XAR2
mov*XAR6,AL
SPM-4
loop1:
movlXAR7,#cofAfirst
nop
nop
ZAPA
RPT#6
||MACP,*XAR6%++,*XAR7++
ADDLACC,P< mov*XAR5++,AH ;subbXAR3,#1 ;movAL,*XAR3 ;mov*XAR6,AL movAL,*XAR2++ mov*XAR6%++,AL BANZloop,AR0-- movlXAR6,#IIR_last movlXAR7,#cofBfirst ;movlXAR2,#LastIn+1 ;movlXAR3,#IIR_last movlXAR5,#LastIn+1 mov@AR0,#511 mov@AR1,#6 movAL,*XAR5 mov*XAR6,AL SPM-4 loop: movlXAR7,#cofBfirst nop nop ZAPA RPT#6 ||MACP,*XAR6%++,*XAR7++ ADDLACC,P< ;movlP,*XAR5++ add*XAR5++,AH ;mov*XAR5,AH ;subbXAR3,#1 ;movAL,*XAR3 ;mov*XAR6,AL movAL,*XAR5 mov*XAR6%++,AL BANZloop1,AR0-- ;movlXAR7,#cofBfirst IDLE MEMORY { PAGE0: PROG(R): origin=0x3E8000,length=0x10000 PAGE1: RAM(RW): origin=0x000000,length=0x00800 } SECTIONS { .text: >PROG,PAGE=0 .data: >RAM,PAGE=1 } 第6章仿真 6.1开发工具CCS CCS是一种针对TMS320系列DSP的集成开发环境,在Windows操作系统下,采用图形接口界面,提供有环境配置、源文件编辑、调试、跟踪和分析等工具。 CCS有两种工作模式,即 软件仿真器模式: 可以脱离DSP芯片,在PC机上模拟DSP的指令集和工作机制,主要用于前期算法实现和调试。 硬件在线编程模式: 可以实时运行在DSP芯片上,与硬件开发板相结合在线编程和调试应用程序。 CCS的开发系统主要由以下组件构成: 1.TMS320C54x集成代码产生工具; 2.CCS集成开发环境; 3.DSP/BIOS实时内核插件及其应用程序接口API; 4.实时数据交换的RTDX插件以及相应的程序接口API; 5.由TI公司以外的第三方提供的各种应用模块插件。 CCS的功能十分强大,它集成了代码的编辑、编译、链接和调试等诸多功能,而且支持C/C++和汇编的混合编程,其主要功能如下: 1.具有集成可视化代码编辑界面,用户可通过其界面直接编写C、汇编、.cmd文件等; 2.含有集成代码生成工具,包括汇编器、优化C编译器、链接器等,将代码的编辑、编译、链接和调试等诸多功能集成到一个软件环境中; 3.高性能编辑器支持汇编文件的动态语法加亮显示,使用户很容易阅读代码,发现语法错误; 4.基本调试工具具有装入执行代码、查看寄存器、存储器、反汇编、变量窗口等功能,并支持C源代码级调试; 5.探测点工具,可用于算法的仿真,数据的实时监视等; 6.分析工具,包括模拟器和仿真器分析,可用于模拟和监视硬件的功能、评价代码执行的时钟; 7.数据的图形显示工具,可以将运算结果用图形显示,包括显示时域/频域波形、眼图、星座图、图像等,并能进行自动刷新。 6.2仿真结果 1.观察输入信号的频谱,如下图所示: 图6.1输入信号的频谱 2.观察输出信号的频谱,如下图所示: 图6.2输出信号的频谱 总结 在课程设计的第一天我们小组便对这次任务进行了规划和分工。 我主要负责搜集资料及整体思路的设计。 在以后的几天中,我们组的成员一起努力,整理资料、小组讨论、对资料进行分析,并在这段时间里完成了设计,并最后撰写课程设计报告及个人总结。 课程设计为我们提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼我们的分析解决实际问题的能力。 提高我们适应实际环境和实践编程的能力。 经过这次的课程设计我对这门课有了更深的了解。 也更深刻知道了实践是很重要的,我们应该掌握更多的知识,也让掌握知识更加坚固,在理论的基础上多实践。 从课题的选题到课题的开发与研究,再到本论文的撰写到定稿的每一步工作都倾注着老师的心血和汗水,同时得到同学们相助,并提供了大量的资料。 在此,感谢同学们的帮助,感谢老师的细心辅导。 本次的设计使我从中学到了一些很重要的东西,那就是如何从理论到实践的转化,怎样将我所学到的知识运用到我以后的工作中去。 在大学的课堂的学习只是在给我们灌输专业知识,而我们应把所学的用到我们现实的生活中去,此次的设计给我奠定了一个实践基础,我会在以后的学习、生活中磨练自己,使自己适应于以后的竞争,同时在查找资料的过程中我也学到了许多新的知识,相信这对我以后的毕业设计将会有很大的帮助! 参考文献 [1]戴明桢等编著.TMS320C54XDSP结构原理及应用.北京: 航空航天大学出版社,第2版,2007; [2]彭启琮编著.DSP技术的发展与应用.北京: 高等教育出版社,2002; [3]胡广书编著.数字信号处理理论、算法与实现.北京: 清华大学出版社,2005; [4]黄席椿高顺良编著.滤波器综合法设计原理.北京: 人民邮电出版社,1978.309-316,261-270; [5]沈永欢梁在中等编著.实用数学手册.北京: 科学出版社,2001.726-732; [6]程佩青编著.数字滤波与快速傅里叶变换.北京: 清华大学出版社,1990; [7]北京合众达电子技术有限公司编著.SEED-DTK系列实验手册.北京合众达电子技术有限公司出版,2007。 本文来自网络,版权归原作者所有,请下载后,尽快删除。 .
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于DSP的IIR 滤波器的设计 基于 DSP IIR 滤波器 设计