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