重慶市魯能巴蜀中學 李昊巖
隨著計算機科學的進步,數(shù)字信號處理技術(shù)得到了很好的發(fā)展,如在語言學、生理學、數(shù)學等各學科,均可用語音信號進行語音識別、編碼等。例如在識別、編碼的過程中,由于各種或主觀或客觀的因素,會對語音信號產(chǎn)生巨大的影響。而語音信號分析和處理,則可以通過多種手段來對采集的語音信號進行過濾等一系列操作,使信號趨近于原始信號,使所要使用的語音信號不產(chǎn)生失真。
MATLAB可以看成matrix和laboratory兩個詞的組合,也就是矩陣和工廠的組合,在這個平臺上,可以使用科學計算,直觀性圖像圖表表達以及交互式程序設(shè)計的高性能科學計算平臺。它將數(shù)值模擬、借助矩陣計算、繁雜數(shù)據(jù)簡單化以及動態(tài)非線性系統(tǒng)的構(gòu)建與仿真等諸多功能集成在一個可視化的視窗環(huán)境中,為眾多科研計算的領(lǐng)域提供了快速、便捷與全面的解決方案,對于傳統(tǒng)非交互式程序設(shè)計語言的舊編輯模式有了很大的改善與提高,這個平臺提現(xiàn)了當今國際科學計算軟件的先進水平。且較同類軟件而言,MATLAB在數(shù)值模擬方面首屈一指。
本文中,語音信號處理系統(tǒng)首先是語音信號的采集,再人為產(chǎn)生一定頻率噪聲信號,然后將兩種信號進行疊加,通過疊加信號的頻域信號設(shè)計相應(yīng)的數(shù)字濾波器進行濾波,最后得到濾波后的信號并與原始信號進行分析比較。
首先通過設(shè)備即電腦錄入一段音頻,此音頻頻率相對一般的語音信號要高,最高頻率超過7kHz。保存的錄音文件的格式應(yīng)為.wav,方便MATLAB進行處理。在錄音完成后,便打開MATLAB,將錄音文件讀取到平臺上,使用[A,B]=audioread(‘c’)。其中A為數(shù)據(jù)點,一般為N*2的矩陣,B為采樣頻率,電腦默認采樣頻率一般為48kHz,C為文件路徑。然后截取語音信號,選取有用時段,并將雙聲道改為單聲道。為了不失真且便于處理,根據(jù)奈奎斯特準則,此時可將采樣頻率改為16kHZ,然后進行頻譜分析,用fft函數(shù)即傅里葉變化分析語音信號,并將做成的時域轉(zhuǎn)化為頻域波圖。信號長度大致為9s,在5s左右出現(xiàn)幅度谷值。從頻域圖中可以看出,語音信號的頻率分布在0到8kHz之間,其中在1kHz和3kHz處有三個頻率峰值,表明這里的頻率分量比較大,如圖1(a)所示。最后可以對分析完全的語音信號用sound進行回放,感受效果并記住特征。
對于上述語音信號的分析,本文采用采用頻率為3000hz3kHz的一段噪音插在語音信號的頻率中。由于語音信號的采樣頻率為8000HZ,所以此時的噪音點的間距為1/8000。使用sin函數(shù)可產(chǎn)生3kHz正弦波作為噪聲。此時新產(chǎn)生的噪音數(shù)據(jù)為一個行向量,而經(jīng)過語音處理的錄音信號為列向量,所以需將噪聲信號通過ni=noisy’的函數(shù)轉(zhuǎn)置為列向量。由于噪音信號頻率較為固定,周期較短且時間過長,所以此時的所繪圖形將過于模糊,為了方便分析,這時只需要將其中一小部分畫出來,畫出的圖形將較為清晰,且波形將較為規(guī)律,如圖1(b)所示。通過傅里葉變換進行時域與頻域的轉(zhuǎn)換。此時最后,用sound函數(shù)可收聽該噪音的效果,且會聽到一段幾乎不變的刺耳的噪聲音頻。
圖1
對于兩段音頻,此時需將其處理為兩段數(shù)據(jù)點個數(shù)相同的語音信號,而對于已經(jīng)處理為此時相同長度的噪音和語音信號,直接使用加法data_noisy=data(語音)+ni將兩個信號進行疊加即可。疊加完成后,再用傅里葉變換進行時頻轉(zhuǎn)化,然后繪圖。新繪出的圖形較原語音信號的頻域圖形比較,在3kHz處產(chǎn)生分量,如圖1(c)所示。此時可用sound函數(shù)回放夾雜了雜音的語音信號,此時會明顯的感受到與原語音信號的區(qū)別,即會有一段固定的雜音,十分刺耳,而原語音效果有所抑制。
本文中,濾波器設(shè)計采用的是IIR數(shù)字濾波器。IIR數(shù)字濾波器的系統(tǒng)函數(shù) 可以轉(zhuǎn)化成封閉函數(shù)的形式,一般在結(jié)構(gòu)上加上一些反饋環(huán)路,構(gòu)成遞歸式結(jié)構(gòu)。IIR濾波器的算法結(jié)構(gòu)基本上由三種基本運算構(gòu)成,即乘以常數(shù)、延時和相加,通過運算的排列組合,數(shù)字濾波器可以采用級聯(lián)型、直接型、并聯(lián)型等結(jié)構(gòu)形式,這些結(jié)構(gòu)的共同點就是都具有反饋回路。IIR數(shù)字濾波器由于這樣的結(jié)構(gòu),也會存在一些問題,信號逐級的傳遞,使得誤差不斷累積,就會產(chǎn)生微弱的寄生振蕩。IIR數(shù)字濾波器設(shè)計時,可以借助成熟的模擬濾波器的成果,如巴特沃斯、切比雪夫和橢圓濾波器等,查閱響應(yīng)的數(shù)據(jù)圖表,減小濾波器設(shè)計的工作量,對于程序計算的要求不高。在設(shè)計一個IIR數(shù)字濾波器時,我們根據(jù)四個技術(shù)指標先得出模擬濾波器的系統(tǒng)函數(shù),然后通過一定的變換,將模擬濾波器的系統(tǒng)函數(shù)轉(zhuǎn)換為數(shù)字濾波器的系統(tǒng)函數(shù)。
巴特沃斯帶阻濾波器是這次設(shè)計采用的濾波器,作為巴特沃斯濾波器的一種,較于切比雪夫、橢圓等濾波器來說,它的濾波效果不如后者,產(chǎn)生濾波頻段較緩,不能直接有效的過濾掉固定的噪音波段,反而會對于一部分語音信號來說也會受到影響。因為巴特沃斯濾波器的特點是通頻帶內(nèi)的頻率響應(yīng)曲線最大限度平坦,沒有起伏,而在阻頻帶則逐漸下降為零,而后兩者的頻帶有起伏,曲線斜率較大,所以濾波效果更好。但由于產(chǎn)生的影響不大,可以忽略,且較于后兩者而言,其幅頻特性穩(wěn)定。而作為帶阻濾波器,相較于低通、高通濾波器而言,其過濾的頻段更好掌控,所以,此次設(shè)計采用的為巴特沃斯帶阻濾波器。
本次設(shè)計通帶邊界頻率為[2kHz,4kHz],阻帶截止頻率為[2.8kHz,3.2kHz],通帶最大衰減為0.1dB,阻帶最小衰減為從10dB左右開始逐漸增加。根據(jù)這四個技術(shù)指標求出階數(shù)N和3dB截止頻率,用的函數(shù)為[Nb,wc]=buttord(wp,ws,Rp,As)。再根據(jù)技術(shù)指標求出系統(tǒng)函數(shù)H(s)的分子分母多項式系數(shù):[BSb,ASb]=butter(Nb,wc,’stop’)其中“stop”表示的含義即為所做濾波器為帶阻濾波器。在上述完成后便可直接得到數(shù)字濾波器。此次所繪的模擬濾波器采用了512個點,即橫坐標fk=0:1/512:1;wk=2*pi*fk。再通過Hk=freqs(B,A,wk)算出圖的縱坐標。算出縱坐標后還需將其用DB=20*log10(hk)轉(zhuǎn)化為衰減指數(shù)增益。完成后,即可用plot函數(shù)畫出數(shù)字濾波器波形,如圖1(d)所示。
得到數(shù)字濾波器之后,使用ep=filter(BSb,ASb,data_nosiy),得到的數(shù)據(jù)為濾波后的時域波形,經(jīng)過巴特沃斯帶阻濾波器濾波的語音信號較未濾波的信號來看,變化較大,波形趨近于原信號,雜音用人耳已分辨不出,而原語音較為明顯,所受影響不大,如圖1(e)所示。然后再用傅里葉變換進行時頻轉(zhuǎn)換,可以得到濾波后信號的頻域圖,如圖1(f)所示,跟語音信號的頻域圖比較,可以發(fā)現(xiàn),3kHz左右處的頻率峰值減小,3kHz處的頻率分量為0,其他頻率分量沒有大的變化。所以,雖然處理效果不夠完美,但也有較好的語音信號處理效果。
由于此次設(shè)計的是巴特沃斯帶阻濾波器,所以最終畫出的頻率響應(yīng)曲線為一段無起伏的連續(xù)的,最大限度平坦的曲線。由于曲線兩端平行,中間斜率較小,通帶最大邊界頻率和阻帶最小邊界頻率差距稍大,所以可以很清晰的知道巴特沃斯濾波器的濾波效果并不完美。
此次設(shè)計的巴特沃斯帶阻濾波器相較而言并不復(fù)雜,濾波器的效果雖然不如切比雪夫濾波器和橢圓濾波器但也還較好。且這種濾波器較于掌握,應(yīng)用掌控也方便。而且相對于硬件濾波器和軟件濾波器而言,這種由軟件即MATLAB設(shè)計的濾波器既有其效果也無需過多的花費,所以數(shù)字濾波器的設(shè)計的確為數(shù)字信號處理的重要組成部分。
隨著科技的進步,未來將會有更多種類的濾波器面世,而隨著濾波器技術(shù)的發(fā)展,濾波器的設(shè)計和應(yīng)用在未來也將涉及更多的領(lǐng)域,為更多的方面提供幫助。
[1]丁玉美,高西全.數(shù)字信號處理[M].西安:西安電子科技大學出版社,2008.
[2]王大偉,賈榮叢,王劃一.基于MATLAB的巴特沃斯濾波器設(shè)計[J].現(xiàn)代電子技術(shù),2012.
[3]趙培瑤,向鳳紅,毛劍琳,郭寧,孔慶平.基于MATLAB的不同數(shù)字濾波器對語音信號的去噪效果[J].化工自動化及儀表,2016.