對不同的信號通常有著不同的解碼算法,日常生活中主要為DTMF信號與PDM信號。DTMF(Double Tone Multi Frequency ,雙音多頻)信令使用在按鍵式電話機上,因其提供更高的撥號速率,并具有很強的抗干擾能力,從而迅速取代了傳統(tǒng)轉盤式電話機使用的撥號脈沖信令。 近年來,DTMF 廣泛應用于交互式控制中,如語言菜單、語言郵件、來電顯示、電話銀行和 ATM 終端等,用戶可發(fā)送 DTMF 信號來選擇菜單進行操作。 DTMF 編碼器將數(shù)字按鍵信息轉換成雙音信號發(fā)送出去,解碼時對接收到的 DTMF 信號進行檢測,將其還原為數(shù)字鍵。
FFT算法FFT(快速傅里葉變換)是有限長序列離散傅里葉變換(DFT)的快速算法,其基本運算是蝶形算法,可使DFT計算時間縮短1~2個數(shù)量級,大大推動了數(shù)字信號處理技術的發(fā)展。解碼過程如下:1.對接收到的DTMF信號做FFT,畫頻譜圖,從中找出代表各信號的頻率分量。FFT中要求序列長度N為2的E次冪(E為整數(shù)),所以N=28=256,由于頻譜分辨率F=fs/N≈31.25Hz<73Hz,因此可在頻譜圖中分辨出各頻率分量。DTMF信號的幅頻譜只含兩根譜線,譜線橫坐標即該信號的兩個頻率分量點KL和KH。消除頻譜泄漏。由于DTMF信號是有限長的,相當于對無限長的信號加矩形窗,因此在頻譜圖中必然會出現(xiàn)頻譜泄漏現(xiàn)象,使信號能量散布到其他譜線位置。為此應選擇一適當閾值,將出現(xiàn)在這兩條譜線周圍的幅度較小的譜線消除。2.將各DTMF信號還原為相應的數(shù)字鍵。
DFT 算法用FFT算法解碼,每幀信號要做 N = 256 點FFT,而組成所有DTMF 信號的頻率只有 8 個,于是可以只對每幀信號算 8 個最具有特征的特征點的DFT,以避開 FFT中許多無意義的計算。DFT 算法解碼過程如下:1.對每幀 DTMF 信號在 8 個特定的頻率上做DFT,畫幅頻譜圖,從中找出代表各信號的特征字。2.將各 DTMF 信號還原為相應數(shù)字鍵。
頻域濾波算法1.首先對信號分幀,考慮到頻譜泄露等截斷效應,用漢寧窗可得到更好的頻譜特性。然后根據(jù)序列加窗后的頻譜,從頻域上濾波,即對帶外頻譜置零,得到輸入序列理想化低通濾波后的頻譜。2.由于此時帶外頻譜已置零,信號帶寬減小,可直接將帶內(nèi)頻譜進行拼接, 做傅里葉逆變換恢復時域波形,相當于抽取。3.最后除以漢寧窗系數(shù),得到了解碼后的序列。在濾波中除去漢寧窗系數(shù)時, 會放大序列兩端的絕對誤差。 對長序列分段解碼時,需要采用重疊保留法,即分段時需要與前后少量重疊, 解碼后丟棄前后重疊的部分, 保留中間絕對誤差小的部分作為解碼結果。此算法使用 DFT進行解碼,分段的大小對解碼效果也有重要的影響。對不同頻率輸入信號,采用頻域濾波解碼算法計算出來的信噪比,在分段較小時,信噪比隨著頻率的升高而下降。因為頻譜分析時產(chǎn)生頻譜泄露,在理想化濾波時被去除,導致由此恢復出的帶內(nèi)頻譜失真。并且頻率越高,泄露到帶外的越多,從而失真越大,信噪比下降。 隨著分段長度的增加,信噪比的損失逐漸減小。分段長度為 512×64,就可做到基本不損失信噪比,這是因為較大的分段可獲得更細致的頻譜, 減少頻譜泄露到帶外而引起的信噪比下降。