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