IIR和FIR滤波算法的定点DSP实现.docVIP

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
IIR和FIR滤波算法的定点DSP实现.doc

IIR和FIR滤波算法的定点DSP实现作者:61IC????文章来源:本站原创????点击数: 3065????更新时间:2005-8-30???? 常用数字信号处理算法及其定点DSP实现 本章将就常用的数字信号处理算法及其定点DSP实现加以讨论。本章将主要实现IIR、FIR以及FFT、IFFT算法,IIR、FIR是基本的数字滤波器算法,FFT是现代滤波器以及识别、解卷积的基础。以下各节将分别给出算法流程、C语言算法程序和TMS320F206下的算法实现程序。 3.1 IIR滤波器的算法实现 3.1.1 IIR滤波算法原理 IIR滤波器即无限冲击响应滤波器,实现IIR的基础是差分方程,结构如下: 对于IIR滤波器,常对以上方程加以变化,这里实现直接II型IIR结构。该结构引入了中间变量w(n),使延时环节合并减少一半,且对于定点DSP减小溢出有所帮助。直接II型IIR的信号流图和方程如下(以二阶结构为例): 图3-1 直接II型IIR信号流图 图中:w(n)=x(n)+(-b1)w(n-1)+(-b2)w(n-2) y(n)=a0w(n)+a1w(n-1)+a2w(n-2) 3.1.2 IIR滤波器的定点DSP实现 数字滤波算法的定点DSP实现最主要的内容是考虑溢出的问题。TMS320F206是16位的芯片,对于浮点数采用自定义小数点位置的方法解决,极具灵活性。这里采用Q13为小数点位置,即定义小数点在第13位后,而最高位15位定义为符号位,采用补码计算,Q13的表达范围为-4到3.9998779,此范围已包括大多数IIR滤波器系数的要求。 系数的Q13移位方法是乘以(213=8192)再进行补码运算。如: 系数0.018099 有:0.018099*8192=148 ,即:0x94; 系数-1.06706有:-0.06706*8192= -8741 ,即:0xDDDB。 浮点数的乘法计算其小数点位满足:Qx × Qy→Q (x+y) 。当2个Q13数相乘时,结果为Q26,为使结果以Q13存储,利用32位ACC可以分高、低16位操作的特点,左移3位后只存高16位即得到Q13的数,其中存高16位相当于右移16位,即有:Q( 26+3-16) =Q13。 算法涉及的主要指令是: ltd: 装入TREG乘数寄存器,累加前次乘积,向高地址位搬移数据; lta: 装入TREG乘数寄存器,累加前次乘积; mpy:乘法指令; sach:对ACC的高16位操作。 以一个2阶系统为例,如下计算过程,先计算当前w0值,再计算输出值。由于对系数已进行Q13移位,注意输入值先进行Q13移位,计算w0时同时将w(n)进行向高地址位移位的操作,亦即实现延时环节,程序中对b(n)先做了b(n)= - b(n)处理。 mar *,ar2 ;输入数据Q13移位并放入ACC中 mpy #0 lacc *+,13 ;ACC=x(n) lta w1 mpy b2 ltd w0 ;ACC=x(n)+w1×b2 , w1移位到w2中 mpy b1 apac ;ACC= x(n)+w1×b2+w0×b1 , w0移位到w1中 sach w0,3 ;左移3位,保存ACC高16位到w0中作为当前w0值 lacc #0 ;计算y(n)=a0w(n)+a1w(n-1)+a2w(n-2) mpy #0 lt w2 mpy a2 lta w1 mpy a1 lta w0 mpy a0 apac mar *,ar3 sach *+,3 ;移位处理得Q13的数 对上述程序段加以扩充和循环则可连续输出IIR滤波值。附录D IIR滤波器算法提供了一个高阶IIR的算法模拟程序。 3.2 FIR滤波器的算法实现 3.2.1 FIR滤波算法原理 FIR滤波器即有限冲击响应滤波器,在IIR滤波器差分方程中,令b(k)=0,则得FIR系统的差分方程

文档评论(0)

docinpfd + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:5212202040000002

1亿VIP精品文档

相关文档