基于DSP的FIR滤波器设计

2016-12-21 07:20刘昌欣
数码世界 2016年12期
关键词:滤波器处理器运算

刘昌欣

辽宁锦州渤海大学工学院

基于DSP的FIR滤波器设计

刘昌欣

辽宁锦州渤海大学工学院

相对于模拟滤波器而言数字滤波器不存在漂移,而且同时其频率响应特性能够做到理想的特性,并且精度十分高。对于的DSP开发人员而言,数字滤波器的设计是经常会使用的。

DSP 数字滤波器 频率响应

1 引言

关于数字滤波器的设计步骤是先是进行滤波器算法设计,而这个算法的实现是从DSP开发环境中获取的,在得到了相应的DSP算法源程序以后,通过数字滤波器设计的相关软件比如Matlab,根据具体的要求以及特定的特性从而实现滤波器,当得到了FIR数字滤波器中的各个阶权的系数以后,把所获得的系数发送给DSP源程序中,并且通过对该DSP源程序编译执行以后进行滤波器性能的评价。在得到为理想滤波器响应之前,开发人员需要多次执行中断目标程序,将滤波器参数值进行修改处理,再一次将源程序进行编译,并且将执行的目标程序下载。

2 FIR滤波器的特点

通常在处理数字信号的应用中都会进行线性相位的滤波器设计,FIR滤波器在设计中确保了幅度特性,所以做到严格的线性相位特性是很容易实现。在FIR滤波器中将输入样本信号x(n)进行多次延时,接着进行乘法累加的相关运算,最后把滤波的结果信号y(n)输出,所以,事实上FIR设计在一定意义上指的就是进行乘法累加一种运算。IR滤波器中能够随意设置幅度特性,而且还可确保线性相位的精确性。此外FIR滤波器中最大的优点是稳定性以及线性相位相关特性,除了这些特点之外FIR滤波器的特点还有FIR滤波器采用了线性的设计方式。

滤波器的过渡过程是有着特殊的有限区间的,对于llR滤波器来说,当阶次比较高的时候,对于具有相同性能的HR滤波器延迟就要大得多。

3 FIR滤波器的实现方法

关于数字滤波器的实现方法一般情况下总结为以下几种:

3.1 计算机软件实现

软件实现方法指的是用软件在微型计算机中得到相应的结果。在计算机中执行滤波器以及存储器需要完成的程序,其中软件设计部分的程序使用者自己能够完成。也能够通过相应的信号滤波处理软件包实现。然而考虑到这种方法的速度会比较慢,所以如果要做到实时处理还是不容易实现的,计算速度的加快能够通过快速傅立叶变换的算法实现,然而如果想要获得实时处理的效果就需要更多的技术支持。所以计算机软件实现的方法使用比较多。

3.2 选择DSP处理器方法实现

DSP处理器的处理对象是数字信号处理,DSP处理器的数字运算单元其实指的就是一个乘累加器。这种处理器的乘累加运算的完成时间是需要一个机器周期的,这种处理器的方法的使用场合通常是信号处理的指令,以及有着特别的倒序、循环寻址。FIR数字滤波器直接型结构如图1所示。

图1 FIR数字滤波器的直接型结构

基于DSP处理器的特点在数字信号处理中的滤波器设计过程中比较容易实现,而且这种DSP处理器的速度比较快,所投入的资金成本也比较低,然而在以为的这20年里,在商用数字信号处理硬件市场中都会用到可编程的DSP器件。数字滤波中用到DSP芯片的好处包括了稳定性强,高精确度、环境对其的影响比较小等。数字滤波中能够通过可编程DSP芯片对滤波器的参数进行修改,而且这种修改的实现是比较容易的。

4 硬件设计

4.1 DSP芯片的选择设计

在DSP的应用系统中DSP芯片的选择有着重大的意义,外围电路系统的设计中需要选择正确的DSP芯片才可以保证电路的正常运行,通常而言,DSP芯片的选择要考虑的因素主要包括:

DSP芯片的指标中,DSP芯片的运算速度是最重要的,在DSP芯片的选择中有着重要的意义。DSP芯片的运算速度与几个性能指标有着重要的联系,分别是指令周期、MAC、MOPS、MFLOPS等。其中的指令周期指的是一条指令执行的时间,指令周期的单位是ns为单位。MAC时间指的是乘法和加法运算一次所需要的时间。FFT执行时间指的是执行一个N点的FFT程序所完成的时间。硬件设计中选择的输入输出方式是SPI接口串行,设计的过程中用到的寄存器以及地址如表1所示。

表1 程序设计中用到的寄存器及地址

4.2 DSP系统的设计流程

通常而言DSP系统的设计步骤主要总结为以下几点:

(1)按照系统所要求的任务从而确定系统处理所需要的精度以及速度、实时性等性能指标。

(2)按照系统的要求模拟高级语言的算法,例如通过MATLAB的仿真工具,对算法的可行性进行验证,从而得到处理方法的最佳选择。

(3)关于DSP的系统设计通常是从硬件设计以及软件设计方面选择适合的DSP芯片。

下图2为数字滤波器设计流程。

图2 数字滤波器设计流程

外围电路的设计也是根据选择的DSP实现的。硬件设计主要是按照系统所提供的芯片进行程序的编写,编写的语言包括了汇编,C语言等,使用汇编语言编程实现起来比较复杂,效率也相对而言比较高,但是缺点是过程过于繁琐。如果选择的编程语言是C语言,编程实现起来比较简单,缺点是效率低。在很多的系统开发的过程中通常是结合C语言和汇编共同编写的,通过这种方法,实现起来能大大地减少开发的时间,而且还能够增强系统的可移植性,另外一方面也使得系统的实时性得到了满足。

5 软件设计

5.1 程序流程

先是进行模拟信号向数字信号的转换过程,因此需要对输入的模拟信号抽样,每一次的抽样值就会通过DSP进行读取,而且还需要将抽样值进行卷积运算,运算的结果就会送到数字模拟转换器中,最终产生模拟信号。下图3为A/D转换工作方式。

主程序流程介绍如下所示:(1)首先是初始化DSP,实现工作模式的定义,还可以定义所需的向量以及工作模式,配置需要的寄存器。(2)准备数字滤波,在存储单元中存储事先设计好的冲击响应序列。(3)将抽样的数值读取,接着存储到相应的存储单元中。(4)运算处理抽样值,设置存储单元A和存储单元B,初始值用K表示,第K个抽样值用AK表示,将AK的值和第L个冲激响应所对应的序列值进行相乘,乘积的结果存储到累加器中,AK中也会存储第K-1个抽样值,这时AK里面原来的值就会被AK-1代替。

图3 A/D转换工作方式

6 结语

在数字滤波器中,有关FIR滤波器最重要的特点指的就是不存在反馈回路,所以就没有出现不稳定的现象。本文设计部分包括了硬件设计和软件设计,并且给出了相应的程序流程图。

[1]陈小平, 于盛林. FIR滤波器设计:基于遗传算法的频率采样技术[J]. 南京航空航天大学学报, 2000, 32(3):276-281

[2]周卫东, 李英远. 基于神经网络的FIR滤波器设计与应用[J]. 山东大学学报(工学版), 2003, 33(1):50-54

[3]杨丽杰, 崔葛瑾. 基于FPGA的FIR滤波器设计方法的研究[J]. 东华大学学报(自然科学版), 2006, 32(6):93-96

[4]方伟, 孙俊, 须文波. 基于自适应量子粒子群算法的FIR滤波器设计[J]. 系统工程与电子技术, 2008, 30(7):1378-1381

猜你喜欢
滤波器处理器运算
重视运算与推理,解决数列求和题
有趣的运算
从滤波器理解卷积
开关电源EMI滤波器的应用方法探讨
“整式的乘法与因式分解”知识归纳
基于Canny振荡抑制准则的改进匹配滤波器
基于TMS320C6678的SAR方位向预滤波器的并行实现
Imagination的ClearCallTM VoIP应用现可支持Cavium的OCTEON® Ⅲ多核处理器
ADI推出新一代SigmaDSP处理器
AItera推出Nios II系列软核处理器