本文是該系列的第19篇。語音編碼壓縮的目的是在盡量不損失信息的情況下降低碼率,從而節省存儲空間和通信帶寬。To Multimedia File這個block就提供幾種語音壓縮方式:CCITT A律、CCITT μ律、GSM 6.10、PCM、ADPCM。本文將介紹一種很簡單的增量調制(DM)編碼方式。
DM編解碼
DM(Delta Modulation)編碼的原理很簡單,信號處理的學習者對這個概念也不陌生(博主是在《現代通信技術概論》這本書中第一次接觸到這個概念)。其編碼原理如下:
第一幅圖為語音信號,第二幅圖為編碼后的PWM信號。在對語音信號采樣時,編碼系統會比較相鄰兩個時刻的采樣值,若信號幅度增加,則編碼為1;若信號幅度減少,則編碼為0(也可以相反)。系統的編碼結果僅僅需要1比特來表示信號的增量關系。
解碼時選擇一個固定的量化階數,根據DM編碼值為1或0來決定輸出信號是加上一個量化階數、還是減去一個量化階數。
System Generator設計
在Simulink中添加block按下圖連接:
使用Delay做一個單位的延遲,存儲“過去時刻的采樣值”a,并與當前時刻的采樣值b一同輸入到Relational這個block中進行對比,構成DM編碼;編碼結果經過一個非門用來控制加法器(AddSub,Operation配置為Addition or subtraction),決定加上或減去量化階數,構成DM解碼。
編碼器輸出的1表示正的增量,0表示負的增量;但是AddSub的sub端口為1時執行a-b(減去量化階數),為0時執行a+b(加上量化階數)。由于兩個部分的邏輯恰好相反,因此中間加一個Invert block取反。
性能分析
運行仿真,播放解碼后的音頻文件會發現噪聲很嚴重,信號質量明顯下降。這也是DM編解碼的固有缺陷。PCM編碼是對每個采樣值的幅度都用一定位寬的數據量化;DM編碼每個采用值只用1比特量化。雖然碼率降低了很多,但信噪比也大大下降。
DM編碼有如下兩個固有缺陷:
- 斜率過載:當輸入信號變化速率過快時,比較器的輸出跟不上輸入信號的快速變化。
- 粒狀噪聲:當輸入信號變化較慢時,相鄰兩個采樣值的差值非常接近0,此時比較器的輸出會在0和1之間跳變。
用到的block功能如下:
- Invert:對輸入的定點數據按位取反;
- Relational:比較器,可判斷的等式包括a=b、a!=b、a小于b、a>b、a=b,輸出結果為bool類型;
- Constant:輸出常數值,但由于設置的位寬有限,軟件會選擇一個所能表示的與設定值最接近的值。
編輯:hfy
-
信號處理
+關注
關注
48文章
1037瀏覽量
103348 -
加法器
+關注
關注
6文章
183瀏覽量
30168 -
語音編碼
+關注
關注
0文章
22瀏覽量
9304
發布評論請先 登錄
相關推薦
評論