基于卷积同态系统解决混响问题

2015-05-30 22:04丁海峰袁晨光
中国新通信 2015年2期
关键词:混响

丁海峰 袁晨光

【摘要】 本文利用了卷积同态系统对混响信号进行恢复。卷积同态系统可以将卷积组合的信号转化成倒频域内以相加组合的信号,用滤波器将变量分离,再经过逆运算就可以恢复信号,并给出了仿真。

【关键词】 卷积同态系统 混响 信号恢复

一、引言

在通话环境声吸收缺乏的情况下进行语音通信时,混响会导致接受的语音信号含糊不清,混响严重时甚至无法正常通话[1],因此,如何减少混响对声音接收系统的影响是一个非常重要环节。本文利用了卷积同态系统[2]对混响信号进行了有效的恢复。

二、信号恢复的方法

假设一个信号可以表示成某基本波形经不同延时后得到的若干个互相交叠的复现波形之和,我们将这类信号的失真叫做混响。它的数学模型可以表示为:首先我们给出序列x(n),它是由有用信号x1(n)经过不同延时并乘以不同的系数之后叠加得到的波形:

则其复倒谱为当n > 0时,

当n = 0时,

当n < 0时,

我们可以用一个线性非频变滤波器将这两个变量分离出来。由于频域和时域之间存在着对称关系,上述两个分量变化的速率就体现在时域上。所以,想要得到x1(n)分量,可以用一个只让复倒谱短时分量通过的滤波器进行滤波,该滤波器可以设计成一个短时通窗:

相应的时域表达式为: 。

当经过的卷积同态系统特征系统D*的逆系统后,我们理论上将恢复。因为是无限时宽的,乘以后相当于进行了截断操作,这也使的长度为N。事实上,对于长度为N的输入序列,只需要N个采样即可确定。

三、主要程序及仿真

假设相应参数为a=0.4, a1=0.5, a2=0.7; N=64, n0=8, n1=16, n2=24,MATLAB程序如下:

a=0.4; a1=0.5; a2=0.7; N=64;n0=8;n1=16; n2=24;

for n=1:n0 %生成信号x1(n)

x1(n)=power(a,n-1); end

for n=(n0+1):N

x1(n)=0; end

x2(1)=1;x2(n1+1)=a1;x2(n2+1)=a2; %生成信号x2(n)

x=conv(x1,x2); xx(1)=log(x(1)); %生成复倒谱xx(n)

......

for n=1:n1-1 %生成窗函数L(n)

L(n)=1; end

for n=n1:N

L(n)=0; end

yy=xx.*L; %线性滤波

y(1)=exp(yy(1)); %复倒谱的逆运算

……

ee=sum(abs(y-x1)) %误差函数

程序仿真运行结果如下:

图1 去混响信号y(n)

图2 信號y(n)与信号x1(n)之间误差函数

从图2可以看出,去混响后信号y(n)与原始信号x1(n)之间误差非常小,因此利用卷积同态系统是恢复有用信号的一种有效措施。

猜你喜欢
混响
非完全深海声道环境下混响强度建模与分析
浅海近程混响的振荡现象∗
浅谈在混音中混响插件的组合使用
水声换能器灵敏度混响法校准技术研究
海洋混响特性分析与建模仿真研究∗
一种基于正交非负矩阵分解的多通道线性预测语音去混响方法
浅谈音响效果器的应用
用于室内环境说话人识别的混响补偿方法
基于虚拟方法的混响箱设计及实验验证
不同底质海底窄带混响信号空间相关半径研究