您当前的位置:五五电子网电子知识单片机-工控设备DSP/FPGA技术基于DSP C54x的数字滤波器设计 正文
基于DSP C54x的数字滤波器设计

基于DSP C54x的数字滤波器设计

点击数:7451 次   录入时间:03-04 11:52:37   整理:http://www.55dianzi.com   DSP/FPGA技术

       前言

       一个实际的应用系统中,总存在各种干扰。使用DSP进行数字信号处理时,可以从噪声中提取信号,即对一个具有噪声和信号的混合源进行采样,然后经过一个 数字滤波器 ,滤除噪声,提取有用信号;数字滤波器是DSP最基本的应用领域,也是熟悉DSP应用的重要环节。在系统设计中,滤波器的好坏将直接影响系统的性能。

       数字滤波器的基本理论和设计

       对于数字滤波器的系统函数可以表示为:

        公式
       可以直接写成表示输出与输入的关系,即常系数线性差分方程:以下是IIR滤波器的表达式

       公式
        当全部 公式, 即系统函数和单位抽样响应,则系统是FIR。

       其滤波结构图如图一所示——横向滤波结构

     横向滤波器结构图

                                                     图一 横向滤波器结构图

       FIR滤波算法实际上是一种乘法累加运算。它不断输入样本,经延时,作乘法累加,再输出滤波结果y(n)。在这里使用FIR滤波器,它有以下几个特点: 

       (1)    系统的单位冲激响应h(n)在有限个n值处不为零; 

       (2)    系统函数H(z)在|z|>0处收敛,在|z|>0处只有零点,有限z平面只有零点,而全部极点都在z=0处;& nbsp;

       (3)    结构主要是非递归结构,没有输出到输入的反馈。

       这本次设计中FTSK输入数据中包含频率为800Hz,1200HZ,1600HZ,2021HZ,中心频率为1600HZ,提取该频率的信号。利用 Matlab 设计一个带通滤波器。具体参数为:采样频率为22050HZ,通带宽度为250HZ,则 FPass1=1475HZ,Fpass2=1725HZ,衰减1db,过渡带为200HZ则Fstop1=1275HZ,Fstop2=1925HZ,阻带衰减为30db。运行Matlab获得126阶的带通滤波器,并提取系数。

       用线性缓冲区和带移位双操作数寻址方法实现FIR滤波器

       在这里介绍用线性缓冲区法实现,其特点是: 

       (1)    对于N级的FIR滤波器,在数据存储区中开辟一个称之为滑窗的N个单元的缓冲区,存放最新的N个输入样本。 

       (2)    从最老的样本开始,每读一个样本后,将此样本向下移位。读完最后一个样本后,输入最新样本至缓冲区的顶部。 



www.55dianzi.com
       在这里N=126,y(n)=  公式 

       在数据存储区中存放系数基于DSP C54x的数字滤波器设计图示 ,并设置线性缓冲区存放输入数据。

       具体实现程序如下:

.title        “simfir126.asm”
.        .global    _firinit    ;两个汇编程序,可作为C语言的调用,一个是初始化滤波器
        .global    _asmfir    ;另一个是滤波器执行程序
        .mmregs
X    .usect    “data1”,127
        .bss        data1,1
SIZE    .set        127
        .data
COEF                    ;从 Matlab 中获得的滤波器系数
;滤波器初始化
        _firinit:
        SSBX    FRCT
        STM    #X+(SIZE-1),AR2
        STM    #(SIZE-2),AR0
        RET
;滤波器执行:
        _asmfir:
        STL        A,*AR2+0
        RPTZ    A,#(SIZE-2)
        MACD    *AR2-,COEF,A
        STH        A,*AR2
        LD        *AR2+,A
        NOP
        NOP
        RETD
        NOP 
        NOP
        .END

       Simulator 仿真结果分析与硬件调试

       仿真在系统调试中起着重要作用,TI公司也提供了软件仿真器(Simulator)来调试程序。其中提供的探测点(Probe Point)功能非常强大,它是一个开发算法的工具,将计算机文件数据传送到目标板的buffer提供DSP软件应用,同时可以将计算结果输出到计算机文件中供分析,也可以通过CCS提供的图形窗口观察输入输出数据情况。

       在本次设计中利用CCS提供的断点和探测点,指定FTSK数据文件的输入点,进行相关设定,同时利用CCS提供的图形窗口观察输入和输出的波形与频谱。运行程序,分别得到输入波形和频谱图(图二),输出波形和频谱图(图三)下面分别对这两 个图形进行分析。

       输入波形和频谱图

                   输入信号的波形和频谱图
                                       图二    输入信号的波形和频谱图

[1] [2]  下一页


本文关键字:滤波器  DSP/FPGA技术单片机-工控设备 - DSP/FPGA技术