李丹鳳 方 倪 張修娟 胡安正
(湖北文理學院物理與電子工程學院 湖北 襄陽 441053)
基于MATLAB的回音抵消器的設計
李丹鳳 方 倪 張修娟 胡安正
(湖北文理學院物理與電子工程學院 湖北 襄陽 441053)
通訊技術的迅速發(fā)展迫切需要通訊設備的快速更新.比如語音通訊用戶對語音通訊質(zhì)量的要求就越來越高,但在語音通話過程中,由于聲學回聲問題處理不當就會對通訊質(zhì)量造成較大影響.為解決聲學回聲問題,通過MATLAB設計出一種回音抵消器,包括先合成回音,再利用逆系統(tǒng)法對回音進行消除,同時保留正常的語音信號,從而為解決語音通訊中由于聲學回聲問題引起的語音質(zhì)量變差提供了一種解決方案.
MATLAB 回音抵消 逆系統(tǒng) 濾波
在MATLAB中,利用Wavread對原始聲音信號采樣,設置采樣頻率,對原始信號的時域波形以及進行傅立葉變換后的幅值進行分析.通過卷積的思想使原始聲音信號與延遲衰減的聲音信號疊加在一起,合成有回音的聲音信號,接著對有回音的聲音信號進行分析.再利用逆系統(tǒng)法消除回音,得到最終的聲音信號與原始聲音信號進行對比,框架如圖1所示.
圖1 整體設計框圖
2.1 利用MATLAB對原始聲音信號文件進行分析
fs=8192;%采樣頻率
[x,fs]=wavread('huiyin1.wav');%提取原始聲音信號
sound(x,fs);%聽原始聲音
N=length(x);
subplot(2,1,1);plot(x(1:N));title('原始信號波形');
y=fft(x,N);%對原始信號進行傅立葉變化
subplot(2,1,2);plot(abs(y));title('原始信號幅值');
分析:通過FFT變換可以明顯的觀察到,原始波形的信號主要分布在2~5 kHz和50 kHz頻率左右.
圖2 原始信號的波形和傅里葉變化后的波形
2.2 回音的產(chǎn)生原理
在一個原始聲音脈沖后跟著一段衰減延遲后的原始聲音脈沖,在離散時間情況下,其單位脈沖響應可表示為
其中pk為衰減因子,δ為單位脈沖序列.假如原始聲音信號為x(n),則實際聽到的聲音為Y(n)=x(n)*h(n);
[x,fs]=wavread('huiyin1.wav');%提取原始聲音信號
N=length(x);x1=x(1:N);
h=[1,zeros(1,8819),0.4];
y=conv(x1,h);%原始聲音信號與延遲聲音信號的卷積
subplot(2,1,1);plot(y);title('含回音信號的波形');
y1=fft(y);%對回音信號進行傅立葉變化
subplot(2,1,2);plot(abs(y1));title('含回音信號的幅值');
sound(y,fs);%聽有回音信號
圖3 回音信號的波形和傅里葉變化后的波形
分析:通過FFT變換可以明顯地觀察到,有回音波形的信號主要分布在2~5 kHz和60 kHz頻率左右.與原始信號相比,高頻波形有明顯的延遲.
2.3 利用逆系統(tǒng)法對回音進行消除
2.3.1 逆系統(tǒng)法基本思想
若將回音系統(tǒng)的實現(xiàn)端對端地翻轉(zhuǎn)過來,并改變反饋信號的符號,就得到其逆系統(tǒng)從而消除仿真音樂信號x(n)中的回音,逆系統(tǒng)框圖如圖4所示.
圖4 逆系統(tǒng)框架結(jié)構(gòu)圖
2.3.2 回音消除原理
在合成的回音信號中還原原始信號,以此達到消除回音的目的.設計一個逆系統(tǒng)g(n)=1/h(n),利用卷積的方法,使單位脈沖g(n)滿足x(n)=y(n)*g(n).
b=[1];a=[1,zeros(1,8819),0.4];n=[0:N];
K=impz(b,a,n);%離散時間系統(tǒng)單位脈沖響應A=conv(y,K);%脈沖與有回音的函數(shù)卷積去掉回音
subplot(2,1,1);plot(A);title('還原信號的波形');
y2=fft(A);%對恢復聲音信號進行傅立葉變化subplot(2,1,2);plot(abs(y2));title('還原信號的幅值');
sound(A,fs);%聽恢復后聲音信號
圖5 還原信號的波形和傅里葉變化后的波形
分析:可以把本次設計的原始信號和消除后的信號進行比較,可以看出兩次的波形是一樣的,兩次的FFT變換后的波形圖也可以看出兩種情況下的頻率分布也是相匹配的,從而能反應出來此次的系統(tǒng)設計是非常合理的.
本文首先利用MATLAB工具產(chǎn)生回音,然后通過逆系統(tǒng)法對回音進行消除,利用MATLAB工具對消除前和消除后的波形進行對比分析,通過觀察兩者之間的特點,可以很明顯地看出此次的系統(tǒng)設計是非常合理的,最后利用MATLAB工具對消除后的信號進行回放,可以聽出效果的改善是非常明顯的,可以很好地利用到實際生活中.
1 高西全,丁玉美.數(shù)字信號處理.西安:西安電子科技大學出版社,2008.08
2 李敏,編.MATLAB與信號與系統(tǒng)實驗指導書.2013
3 高成.MATLAB圖像處理與應用.北京:國防工業(yè)出版社,2007.04
4 董振海.精通MATLAB7編程與數(shù)據(jù)庫應用.北京:電子工業(yè)出版社,2007.09
李丹鳳(1995- ),女,在讀本科生.指導教師:胡安正(1965- ),男,博士,教授,主要研究方向為電子技術應用.
2017-01-02)