|
这次我们来讲混响器,关于混响介绍,什么是混响这类的就不多说了,百度科普一下就可以了。
Moorer混响器还算是用得比较流行的一种吧,它是在Schroeder基础上改进而成,我们来听听加了混响的效果是怎么样的。
下面我们来讲实现,大体上把混响分为三部分:干声(Direct Sound),前反射(Early Reflections),后期反射(Late Reflection)。前反射是经过墙壁1~2次反射所听到的声音,大约在10ms~100ms内,后期反射是声波在房间内不停的循环,经过墙壁吸收,最后所听到的声音,大于100ms。如图:
早期反射由一次或几次反射的声音信号所组成,
此时声音的谱线离散,
能量由于声音与反射面的碰撞有所减少; 后期反射由更多的多次反射的声音信号组成,声音经过不断的多次反射,能量呈指数递减,同时反射声密度增加,使得谱线密集,
近似连续.
混响信号可看成由直达信号与许多逐步衰减和不断延迟的回声信号叠加而成. 取衰减系数级数下降、延迟时间等间隔增加, 可构成最简单的数字混响器模型
y(n)
= x(n)
+ ax(n-D)
+ a2x(n-2D)
+ …
传递函数为:
这是一个什么,这是一个IIR数字滤波器(梳状滤波器)。
好,知道了这些,来看看Moorer混响的结构图。
X(n)是输入,y(n)输出,
输入数据经过18点FIR滤波器,再经过6个低通梳状滤波器加权和,通过一个全通滤波器,即可得到输出。为什么是低通梳状滤波器呢,这是因为声信号在实际传播过程中,由于空气对高频信号的吸收作用,导致了高频成分的衰减要明显大于低频成分。因此在梳状滤波器的反馈支路上引入低通滤波器,结构如图所示。
该低通梳状滤波器的传递函数为Ha(z)=
1/(1 - a*z^-D*H(z))
H(z)为一阶IIR
滤波器,H(z) =(1-g)/(1-gz^-1)。为保证系统稳定性,|a|+g<1。
在实现时,FIR
一般采用18~26抽样点,衰减因子和延时根据实际调整,这里提供一份18抽样点做参考,它是模拟波士顿交响乐演播厅得到的。
混响时间和梳状滤波器衰减因子a的关系如下:
这里有很多经验数据,需要根据环境调试得到,FIR延时,梳状滤波延时,全通滤波延时。
在ADSP上面实现也就很简单,基本上都是使用延时。延时我们可以用循环buf来做,ADSP自带circpt函数。
关于Moorer混响器就讲到这里,欢迎提问和探讨。 |
|