黃荷潔
(陜西國際商貿學院 電子與信息工程系,陜西 西安 712000)
隨著信息技術的飛速發(fā)展,數(shù)字信號處理理論和技術日益成熟,在各個領域都得到了廣泛的應用。本文將通過分析計算機中的wav文件來討論數(shù)字信號處理中的信號分析方法。
我們選擇一個wav文件作為分析的對象,先選擇一個簡單的wav文件。這里選擇的是每個windows系統(tǒng)都有的ding.wav,一個比較單純的聲音“?!?。
首先執(zhí)行下面的語句:
該信號的時域波形如圖1所示,有size(y)語句可以得到結果為20191,即需要處理的數(shù)據(jù)量很大,所以對其進行FFT分析所需要的點數(shù)為32768。求出頻譜最大值及其對應的位置為m=490.3636,k=1171。顯示的頻域幅值如圖2所示,從圖中可以看出它是以x=32768/2對稱的,而且除了1171一點之外,在坐標4000~5000之間還有一個峰值。此外,由我們在“離散傅里葉變換”學習的相關知識,可以得到這兩個峰值所代表的頻率是,所以接著運行以下語句:
得結果m2=22.6522,k2=717。還求出第一個峰值所代表的頻率為f1=787.9807,即787Hz;第二個峰值所代表的頻率為f2=(4000+717)/72768*fs,即為3174Hz。這樣就完成了對該聲波主要頻率的分析。
圖1 信號的時域波形
圖2 信號頻域的幅值
分析知道了該聲波的頻譜,接下來就可以得到它的時域值。當然可以使用傅立葉反變換,但在本例中將利用剛才分析的兩個主要的頻率成分來重構,執(zhí)行下面的語句:
由于沒有考慮相位和其他的頻譜分量,所以波形和原來的波形相差較大,但大體的頻譜是沒有錯的,通過聽一下重構的聲波,可以證實這一點。
前面介紹了對wav文件直接進行一次性傅里葉變換的分析,但存在兩個問題:第一,對分析的wav文件直接一次性做FFT,點數(shù)太大,而實際運用中DSP的FFT的點數(shù)是有限的,一般只能達到千點;第二,語音是分音節(jié)的,應該對它分段分析,所以下面引入分段處理數(shù)據(jù),并連接每個段的頻域結果。仍以前面討論的“ding.wav”為例,進行分段傅里葉分析。
首先我們通過執(zhí)行以下語句來顯示wav文件的時域波形:
結果是顯示的波形與圖1一樣。
接下來我們作1024點的分段FFT,通過執(zhí)行以下語句來實現(xiàn):
圖3 分段后頻域幅值變化圖
運行結果如圖3所示。x坐標表示段數(shù),y坐標表示每段的點數(shù),z坐標表示幅值大小。圖3(a)每段1024點的頻域幅值變化情況,可以看出它是以y=1024/2=512為對稱的。為了更清楚地看到頻域幅值變化的細節(jié)情況,圖3(b)給出了每段200個點的波形。可以清楚地看到,首先沿y方向,整個wav數(shù)據(jù)分成的19個段中,每一段都有兩個峰值,但幅度相差較大,該結果與圖示一致的。再沿x方向看,分成的19個段中同一y位置的波形峰值幅度也是不一樣的,呈波浪起伏變化,這也說明語音是分音節(jié)的。
下面做的是將圖形中的兩個主要譜線合成,執(zhí)行下面的語句:
圖4 合成波形及線性差值平滑波形
畫出兩個主要譜線合成后的波形,如圖4(a)所示,并聽聽聲音。
此時的聲音聽起來很刺耳,而且分辨不出原來的語音,但是可以感受到其音高的變化了。接下來用線性差值來平滑波形,得到的波形如圖4(b)所示,執(zhí)行下面的語句并聽聲音:
這時的聲音柔和了一些,但還是分辨不出原來的聲音。合成的聲音和原來的聲音的區(qū)別主要在于這里只是抽取了峰值,沒有考慮峰值邊上的波的形狀,也沒有考慮相位的關系。但如果把它們全部考慮進去,這就要用到傅里葉反變換(IFFT),所以繼續(xù)進行分析和合成,執(zhí)行下面的語句:
所得波形如圖5所示,可見波形和原始波形一致,這時聽到的聲音和原來的聲音就相同了。
圖5 采用傅里葉變換得到的波形
以上通過引入簡單的wav文件作為分析對象,以Matlab及快速傅里葉變換為分析工具,簡要介紹了應用數(shù)字信號處理技術對wav信號文件進行分析的方法??梢灶A見,隨著計算機技術、數(shù)字信號處理技術和大規(guī)模集成電路的迅速發(fā)展,數(shù)字信號處理的進步將在信號分析處理中得到更為廣泛的應用。
[1]王艷芬.快速傅里葉變換信號分析實例[M].人民郵電出版社.
[2]曹弋.MATLAB 教程[M].機械工業(yè)出版社.