DSP课程设计(18)

2021-01-20 21:13

器可以逼近任意幅频特性的滤波器,并获得很好的性能,在本论文中介绍FIR低通滤波器的DSP实现。

TMS3205410是16位的定点处理器,所以在进行汇编程序设计时,FIR滤波器系数要采用Q15格式,即必须将上述系数转化为Q15格式,这只要将滤波器各系数乘以2即可。

用DSP实现Z算法是十分方便的,常用的方法有两种:线性缓冲区法和循环缓冲区法。在本文中采用的是循环缓冲法,循环缓冲区法的特点是:

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

(2) 每次移入新的样本时,以新样本改写滑窗中老的数据,而滑窗中的其他数据不需要移动;

利用片内BK(循环缓冲区长度)寄存器对滑窗进行间接寻址,循环缓冲区地址首尾相邻。

FIR滤波器的核心算法是计算输入信号与滤波器系数的卷积。设x(n)为输入信号,h(n)为FIR滤波器的冲击响应,n=0, ,N-1,则FIR滤波器的输出y(n)就是x(n)与h(n)的卷积,即: 115

y n x n m *h m

由于卷积是数字信号处理中最常用到的算法,因此几乎所有的DSP芯片中都设有专门的指令支持卷积运算。在TMS3205410中可以用macd指令完成卷积。macd指令的形式如下:

macd(Smem,pmad,src);

在macd指令中,Smem是间接寻址参数,它是指令中指向数据存储器的单地址。Pmad是表示程序存储器地址的16位常数。Src表示累加器,可以是A累加器或是B累加器。这条指令在执行时,先把指令中的pmad常数送到程序地址寄存器的PAR中,然后将Smem地址中的数据用PAR地址在程序存储器中读取的数据相乘,并将乘积结果累加到由Src指定的累加器中。在指令执行时,Smem地址中的内容被同时复制到T寄存器和Smem低中之后的下一个地址单元中。若采用repeat指令重复执行macd指令,则在执行指令的最后,PAR寄存器自动加1,这样当macd再次执行时就直接用PAR中的地址读取程序存储器中的数据。通常情况下,macd指令执行时需要三个周期。但是若用repeat指令执行macd,进入流水线后只要一个周期就可以执行一次macd指令。由此可见,该指令同时完成了乘累加和数据延迟(移位)的功能,这正是卷积算法所要求的。

对于输入序列,它在两个循环缓冲器里的存储情况如下,要建立缓冲区首先将循环缓冲区大小寄存器的值设为N/2辅助寄存器AR4指到缓冲区1(Bufferl)

m 0N 1


DSP课程设计(18).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:焊接工艺的培训

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: