网站公告列表

  没有公告

加入收藏
设为首页
联系站长
您现在的位置: 61IC中国电子在线 >> 服务导航 >> 培训课程 >> C5000 >> 文章正文
  简单混响效果           ★★★ 【字体:
简单混响效果
作者:Free    文章来源:本站原创    点击数:    更新时间:2008-2-29    

混响效果的算法并不是太复杂,但是由于它需要大量的内存,在DSP上实现的时候只能靠扩展内存来实现。扩展内存的存取速度比DSP内部内存的速度慢很多,因此每个取样值需要多少次内存存取很大程度上影响混响算法的MIPS。

这里介绍一种简单的混响效果,适用于MIPS比较紧张的情况。本混响效果由三个全通滤波器(all pass filter)和一个低通滤波器组成。三个全通滤波器串连产生多重回声,然后通过低通滤波器滤掉回声中的高频噪声。全通滤波器的传递函数公式如下:

H(Z) = Y(Z)/X(Z) = (-+ Z^(-m)) / ( 1 – k*Z^(-m))

其中m为回声延时取样数,k为反馈系数。
用直接1型表示这个传递函数则为:

y(n)=-k*x(n) + x(n-m) + k*y(n-m)

可见其实际上是一个简单的IIR滤波器,时间n的输出由时间n的输入和m点之前的输入与输出计算而得。由于这个IIR滤波器的频率响应为水平直线,所以被称作全通滤波器。

每计算一个输出需要从内存中读取x(n-m)和y(n-m),并把y(n)和x(n)保存进内存。因此需要四次内存存取操作。双声道输入,每个声道通过三个 这样的滤波器,则计算一个取样点的输出需要 2*3*4 = 24次存取操作。若采用频率为200MHz的C5510进行计算,扩展内存的存取时间为70ns,取样频率为44100Hz的话,则计算一秒的数据需要占 用7.4%,14.8MIPS以上的CPU时间。扩展内存速度越慢,需要的时间越长。

仔细研究一下,可以把全通滤波器写成如下公式:

w(n) = x(n) - k*w(n-m)
y(n) = w(n-m) + k*w(n-m)

请读者自行验证之。如果使用这个公式的话,那么内存中需要保存的就只是w(n)了,每次计算存取2次,比较上面直接计算性能提高一倍。再加上微不足道的加法 乘法运算,可以在大约8MIPS左右搞定回响中的全通滤波器部分。而低通滤波器如果使用16位二次IIR滤波器的话,计算量不会超过2MIPS,这样整个 回响效果在10MIPS之内实现.

               欢迎点击进入:TI德州中文网   (国内唯一针对TI应用的中文技术网站)    文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章: 没有了
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    没有相关文章
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    站长:61IC 湘ICP备05002478号