丁海峰 袁晨光
【摘要】 本文利用了卷積同態(tài)系統(tǒng)對混響信號進(jìn)行恢復(fù)。卷積同態(tài)系統(tǒng)可以將卷積組合的信號轉(zhuǎn)化成倒頻域內(nèi)以相加組合的信號,用濾波器將變量分離,再經(jīng)過逆運算就可以恢復(fù)信號,并給出了仿真。
【關(guān)鍵詞】 卷積同態(tài)系統(tǒng) 混響 信號恢復(fù)
一、引言
在通話環(huán)境聲吸收缺乏的情況下進(jìn)行語音通信時,混響會導(dǎo)致接受的語音信號含糊不清,混響嚴(yán)重時甚至無法正常通話[1],因此,如何減少混響對聲音接收系統(tǒng)的影響是一個非常重要環(huán)節(jié)。本文利用了卷積同態(tài)系統(tǒng)[2]對混響信號進(jìn)行了有效的恢復(fù)。
二、信號恢復(fù)的方法
假設(shè)一個信號可以表示成某基本波形經(jīng)不同延時后得到的若干個互相交疊的復(fù)現(xiàn)波形之和,我們將這類信號的失真叫做混響。它的數(shù)學(xué)模型可以表示為:首先我們給出序列x(n),它是由有用信號x1(n)經(jīng)過不同延時并乘以不同的系數(shù)之后疊加得到的波形:
設(shè)
則其復(fù)倒譜為當(dāng)n > 0時,
當(dāng)n = 0時,
當(dāng)n < 0時,
我們可以用一個線性非頻變?yōu)V波器將這兩個變量分離出來。由于頻域和時域之間存在著對稱關(guān)系,上述兩個分量變化的速率就體現(xiàn)在時域上。所以,想要得到x1(n)分量,可以用一個只讓復(fù)倒譜短時分量通過的濾波器進(jìn)行濾波,該濾波器可以設(shè)計成一個短時通窗:
相應(yīng)的時域表達(dá)式為: 。
當(dāng)經(jīng)過的卷積同態(tài)系統(tǒng)特征系統(tǒng)D*的逆系統(tǒng)后,我們理論上將恢復(fù)。因為是無限時寬的,乘以后相當(dāng)于進(jìn)行了截斷操作,這也使的長度為N。事實上,對于長度為N的輸入序列,只需要N個采樣即可確定。
三、主要程序及仿真
假設(shè)相應(yīng)參數(shù)為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)); %生成復(fù)倒譜xx(n)
......
for n=1:n1-1 %生成窗函數(shù)L(n)
L(n)=1; end
for n=n1:N
L(n)=0; end
yy=xx.*L; %線性濾波
y(1)=exp(yy(1)); %復(fù)倒譜的逆運算
……
ee=sum(abs(y-x1)) %誤差函數(shù)
程序仿真運行結(jié)果如下:
圖1 去混響信號y(n)
圖2 信號y(n)與信號x1(n)之間誤差函數(shù)
從圖2可以看出,去混響后信號y(n)與原始信號x1(n)之間誤差非常小,因此利用卷積同態(tài)系統(tǒng)是恢復(fù)有用信號的一種有效措施。