王彤+林巖+張烽
摘 要
本文介紹了基于FFT的廣播信號聲音檢測的研究,提出了通過Matlab仿真對廣播信號的PCM原始音頻數(shù)據(jù)進(jìn)行FFT變換并進(jìn)行加權(quán)統(tǒng)計分析的解決方案,從而分辨出噪聲頻道,,最后在嵌入式平臺中得到了快速的實現(xiàn)。
【關(guān)鍵詞】FFT廣播信號 聲音檢測 MatlabPCM原始音頻數(shù)據(jù)嵌入式平臺
快速傅立葉變換(FFT)是對離散傅立葉變換(DFT)的算法進(jìn)行改進(jìn)獲得的。因FFT具有計算量小的顯著優(yōu)點(diǎn),在信號處理技術(shù)領(lǐng)域獲得了廣泛應(yīng)用。本文將FFT應(yīng)用于廣電行業(yè)中廣播信號的處理,通過對獲取的廣播PCM原始音頻數(shù)據(jù)進(jìn)行FFT,將得到的頻譜進(jìn)行分析,分辨出含有噪聲的音頻,從而達(dá)到只存有用信息,降低存儲空間的目的。
1 快速傅里葉變換(FFT)
1.1 離散傅里葉變換(DFT)的局限性
離散傅里葉變換對為
一般情況下,信號序列x(n)及其頻譜序列X(k)都是用復(fù)數(shù)來表示的。因此計算N點(diǎn)的DFT需要進(jìn)行N2次復(fù)數(shù)乘法和N(N-1)次復(fù)數(shù)加法。當(dāng)N很大時,計算量變的極大,要求相當(dāng)大的內(nèi)存,限制了DFT的發(fā)展與應(yīng)用。
1.2 快速傅里葉變換(FFT)
快速傅里葉變換(FFT)的提出可以使運(yùn)算速度提高幾百倍,以時間抽選奇偶分解快速離散傅里葉變換為例。設(shè)輸入序列長度為N = 2M(M為正整數(shù)),將x(n)按n的奇偶分為兩組,令n=2r和n=2r+1,可以得到x(2r)=x1(r)和x(2r+1)=x2(r),且r = 0,…,N/2-1。于是
將N/2子序列按奇偶可以繼續(xù)分解,以此類推。所以N=2M的DFT運(yùn)算可分成M級,M級共有N/2*log2N次復(fù)乘和N*log2N次復(fù)加,遠(yuǎn)遠(yuǎn)小于DFT的N2次和N(N-1)次。
乘法運(yùn)算量如圖1。
從圖中可以清晰的看出FFT的運(yùn)算量,實用性使得它在信號處理,數(shù)字通信等方面獲得了廣泛的應(yīng)用。
2 FFT應(yīng)用于廣播信號的聲音檢測
2.1 廣播信號音頻流
廣播模擬信號通過PCM脈沖編碼調(diào)制(Pulse Code Modulation)方法量化為數(shù)字信號,得到PCM原始音頻數(shù)據(jù)。
2.2 廣播信號聲音檢測的仿真設(shè)計
2.2.1 PCM音頻流的讀取
讀取PCM音頻文件,得到多路音頻信息,部分讀取結(jié)果如圖2、3、4所示。
通過人耳辨別與音頻流圖像可以初步得出每路音頻的種類,是噪聲還是純凈聲音等。由于信息量巨大,光靠人耳是無法完成如此浩大的工程,所以需要通過計算機(jī)來完成。
2.2.2 PCM音頻數(shù)據(jù)的FFT處理與統(tǒng)計分析
本文應(yīng)用Matlab,通過fft函數(shù)可以方便快捷的利用快速傅里葉變換,將時域上的信號變換到頻域上。
將原始音頻數(shù)據(jù)導(dǎo)入Matlab,并對每一路音頻取256個PCM數(shù)據(jù)作為研究對象,經(jīng)過FFT可得某兩路音頻圖像如圖5、圖6所示。
圖中可以觀察到,噪聲的頻率圖像波動大且范圍廣,在0到100個點(diǎn)之間的數(shù)值也相對較大;而純凈聲音有明顯的周期性波峰,較大值一般在0到30個點(diǎn)之間。由于圖像的周期與對稱性,可以只考慮128個點(diǎn)為研究對象,以此降低運(yùn)算的時間與復(fù)雜性。
本文利用前30個點(diǎn)的平均值與剩余點(diǎn)的平均值之商來進(jìn)行聲音檢測,把這個商定義為本次研究中的信噪比。為了提高準(zhǔn)確率,考慮到對計算時間和存儲空間的要求,每錄音頻取10個信噪比進(jìn)行研究,取三路音頻信號為例,如圖7所示。
從圖中的信噪比曲線可知,區(qū)分噪聲和純凈聲音相對容易,而夾雜噪聲的聲音區(qū)分起來有些困難,如何在提高準(zhǔn)確率的同時,將夾雜噪聲的聲音更準(zhǔn)確的區(qū)分出來是接下來要研究的部分。
2.2.3 算法的優(yōu)化
通過觀察多路音頻的傅里葉圖像,考慮對每個值進(jìn)行加權(quán)的方法來計算信噪比,經(jīng)過多次嘗試,最后決定對前30個點(diǎn)采取加權(quán)數(shù)逐降,對剩余的點(diǎn)采取每個擴(kuò)大30倍的方法,以上述的三路音頻信號為例,可得圖8。
通過對比圖7與圖8,可以知道信噪比的趨勢沒有發(fā)生太大的改變,然而在經(jīng)過加權(quán)之后得到的信噪比數(shù)值發(fā)生了明顯的變化,純凈聲音的信噪比明顯增大,這更利于找出一個分界線來區(qū)別這幾種不同的信號,然而依然存在一些例外的點(diǎn)相互交叉。
2.2.4 結(jié)果的分析
統(tǒng)計中信噪比數(shù)值的交叉無法定義一個數(shù)值,考慮改變統(tǒng)計方式,找出一個相對合適的分界線數(shù)值,統(tǒng)計每路音頻信號在此數(shù)值以上的個數(shù)。
以上述三路音頻為例,可以選取25到30之間的數(shù)值做分界線,統(tǒng)計分界線以上信噪比的個數(shù),由于純噪聲的信噪比值相對較小,所以可以很容易分辨出來。
經(jīng)過多次試驗,最后決定采取30作為分界線。經(jīng)過統(tǒng)計計算,每路音頻含有超過分界線的信噪比數(shù)目,如表1所示。
從表格中可以看出,純凈聲音數(shù)目都在8個以上,夾雜噪聲的聲音數(shù)目是6個,而噪聲和無聲數(shù)目為0個(無聲音頻可以在最開始通過條件語句來判斷),于是可以知道音頻的種類。
仿真的結(jié)果具有一定的特殊性與局限性,實時廣播信號與已錄制好的廣播信號會有一定差距,數(shù)值上也會有一定的偏差。為了使結(jié)果具有普遍性,將仿真的結(jié)果應(yīng)用于聲音檢測的過程中,需要進(jìn)行慢慢的調(diào)整與改進(jìn),最后得到普遍適用的算法來進(jìn)行實時廣播信號的聲音檢測。
在實際工程實踐中,在選用的嵌入式處理平臺上,對16路廣播信號進(jìn)行采集處理后,得到PCM原始音頻數(shù)據(jù)。利用對上述仿真原理,通過多次試驗,在實際應(yīng)用中得到的分界線數(shù)值為20。在除去無聲頻道后的剩余音頻數(shù)據(jù)中,信噪比大于分界線(20)的數(shù)目比例超過60%的為純凈的聲音,數(shù)目比例在20%~60%之間的為夾雜噪聲的聲音,數(shù)目比例為0%的是噪聲。通過工程實踐可知,利用FFT進(jìn)行聲音檢測的方法得到了快速的實現(xiàn),并取得了良好的結(jié)果。
3 結(jié)論
本文提出了一種基于FFT的聲音檢測算法,創(chuàng)新性地引入了加權(quán)統(tǒng)計的方式對經(jīng)過FFT變換后的PCM原始音源進(jìn)行了處理和分析,仿真的可行性與實際工程實踐的成功表明,這種算法對噪音識別的準(zhǔn)確性極高,對不同平臺的適用性很好,而且計算量較小并具有很好的靈活性,因而十分適合嵌入式平臺的使用。這是可以應(yīng)用于實際工程實踐中聲音檢測的解決方案,具有很大的實際意義。
參考文獻(xiàn)
[1]潘文杰.傅里葉分析及其應(yīng)用[M],北京:北京大學(xué)出版社,2000:245-247.
[2]E.Oran Brigham.The Fast Fourier transform and its applications[M].Englewood Cliffs,N.J.:Prentice Hall,c1988:90-97.
[3]胡麗瑩,肖蓬.快速傅里葉變換在頻譜分析中的應(yīng)用[J].福州:福建師范大學(xué)學(xué)報,2011,27(04):27-30.
[4]胡廣書.數(shù)字信號處理[M].北京:清華大學(xué)出版社,2003:169-173.
[5]I Mathworks.MATLAB Signal Processing ToolboxTM Users Guide[EB/OL],The MathWorks,Inc,R2012a:Ch1 34-36.
[6]桑赫,林巖,張烽.基于DM365的便攜監(jiān)控系統(tǒng)解決方案[J].北京:單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2015(08):43-44.