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

2006-09-04 14:21:24来源: 电子产品世界

前言

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

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

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


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


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

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

图一横向滤波器结构图

FIR滤波算法实际上是一种乘法累加运算。它不断输入样本,经延时,作乘法累加,再输出滤波结果y(n)。在这里使用FIR滤波器,它有以下几个特点:
(1)  系统的单位冲激响应h(n)在有限个n值处不为零;
(2)  系统函数H(z)在|z|>0处收敛,在|z|>0处只有零点,有限z平面只有零点,而全部极点都在z=0处;
(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)  从最老的样本开始,每读一个样本后,将此样本向下移位。读完最后一个样本后,输入最新样本至缓冲区的顶部。
在这里N=126,y(n)=
在数据存储区中存放系数,并设置线性缓冲区存放输入数据。

具体实现程序如下:
.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格,而一格所占的时间为0.00605/10=0.605ms,所以周期大约为T1=0.605*1=0.605ms,频率为1652Hz。最右边的图形一个周期内约占0.8格,T2=0.605*0.8=0.484ms,频率约为2066Hz。中间的两个图形在一个周期内分别约占2格和1.3格,周期分别约为T3=0.605*2=1.21ms,频率约为826Hz,T4=0.605*1.3=0.7865ms,频率约为1271Hz。这四个频率与输入的800Hz,1200Hz,1600Hz,2021Hz基本相同。由图中的输入频谱同样可以看出有四个频率的输入波形,其频率分别约为2756*3/10=826.8Hz,2756*4.5/10=1240Hz,2756*6/10=1653Hz,2756*7.5/10=2067Hz,与输入的800Hz,1200Hz,1600Hz,2021Hz基本接近。

输出波形和频谱图


图三  输出信号的波形和频谱图

由图三中的输出信号波形图可以看出滤出的波形在一个周期中约占1格,而一格所占的时间0.00605/10=0.605ms。频率约为1652Hz,与要求滤出1600Hz的要求接近。由图三中的的频谱图可以看出滤出的频谱图的频率约在第6格,则滤出的频率约为2756*6/10=1659Hz,与所要求滤出1600Hz的要求接近。

根据以上Simulator仿真和结果分析,所设计的滤波器能够很好的满足滤波的要求。Simulator仿真是在进行系统设计中的一个重要环节,有利于提高我们进行硬件调试的成功率。

基于上面的结果,利用TMS320C5402?DSK系统板进行实验,在一个AD/DA转换的主循环中加入所设计的滤波器,调节信号发生器,对示波器进行观察,可以发现所用的滤波器能很好的满足设计要求。但程序的输入与输出数据读写语句要作相应的修改。

结束语

在进行数字滤波器设计时,还需要以下几点:
(1)在用Matlab设计滤波器时采样频率一定要满足奈奎斯特准则。当采用带通滤波器时,通带宽度一般在200~300Hz,衰减一般为1db,过渡带一般在100~250Hz,阻带衰减一般在30db。
(2)使用探针方法输入数据时,一般要求输入数据是16进制的小数表示,但如果输入10进制的也可以,但需在两次确认之后才可以输入。
(3)在图形窗口观察结果时,如果所观察的图形不明显,可以通过设置幅度值来改善效果。
总之,滤波器设计是我们实际系统应用中重要的一方面,相比传统的R,L,C元件和运算放大器组成的块滤波器,更有发展的潜力。

参考文献:
1.戴明桢 周建江编著,TMS320C54x?DSP结构、原理及应用,北京航空航天大学出版社,2004
2.郑红 吴冠编著,TMS320C54x DSP 应用系统设计,北京航空航天大学出版社,2003
3.程佩青编著,数字信号处理教程(第二版),清华大学出版社,2002

关键字:波形  频谱  滤波  频率

编辑:金海 引用地址:http://www.eeworld.com.cn/mndz/qtjs/200609/2258.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
波形
频谱
滤波
频率

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved