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