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