劉偉王旭
(電子科技大學成都學院 通信系,四川 成都 611731)
連續斜率增量調制 (Continuously Variable Slope Delta modulation)語音編碼技術最早由Greefkes和Riemens于1972年提出。與固定增量編碼相比,CVSD具有跟蹤信號變化快慢而改變量階的特點。擅長處理丟失和被損壞的語音采樣,即使誤碼率達到4%,CVSD譯碼語音質量任然可以接受[1]。CML公司的CMX649專用芯片可以實現ADM和CVSD編碼,但在靈活性和可擴展性方面軟件實現更具優勢。TMS320C6455是TI公司推出的一款高性能專注于通信信號處理的芯片,該芯片的處理能力能夠實現CVSD編譯碼的實時工作。
和固定增量調制編碼DM類似CVSD編碼器對輸入數字語音信號的幅度變化量進行編碼,與之不同的是在CVSD編碼中,信號差值量階Delta不再是常值,而是隨輸入信號的斜率變化而變化,連階判斷邏輯用來捕獲信號的斜率變化。輸入語音信號x(n)與預測信號x1(n)相減得到差值信號d(n),此差值信號經過一位量化器得到編碼輸出c(n),同時該差值信號作為連階判斷邏輯的當前輸入進行連階判斷,其判斷結果控制當前編碼c(n)與當前預測信號共構建下一時刻預測信號 x1(n)。

圖1 CVSD編碼原理圖
圖中:D(n)=X(n)-X1(n),為當前輸入與預測信號的差值。為CVSD編碼輸出。
連階判斷邏輯常以最新3次或者4次編碼輸出值作為判斷依據,在本項目中采用3次連碼判斷,判斷邏輯為:

譯碼過程是編碼過程的逆過程,接收碼字首先進行連階邏輯判斷,根據判斷結果調整量化階距delta,同時接收碼字根據最新的量化階距進行逆量化,獲得差值信號d1(n),d1(n)與預測信號疊加獲得當前的譯碼信號,經進一步的低通濾波輸出譯碼語音信號。

圖2 CVSD譯碼原理圖
圖中除最終輸出信號與編碼輸入對應外,其余信號都加上上標,指示信道干擾對傳輸碼字的影響。各變量的計算方式與編碼環節類似,通常語音信號能量大部分分布在300~3400Hz頻帶范圍,低通濾波器用于濾除帶外信道噪聲,高頻量化和過載噪聲等,高頻噪聲對語音音質的影響較大。
在CVSD仿真評估中量階參數的選取會直接影響到語音譯碼的輸出性能,由于于心信號可以看做單音正弦信號疊加,正弦波形在零點時變化率達到最大而在峰值時變化率最小。連碼邏輯的判決結果可視為信號斜率變化快慢的參考,出現連碼時,采取較大量階以跟蹤較快的信號變化,非連碼時采用較小的量階減小顆粒噪聲[2]。

圖3 不同量階對CVSD編碼性能
根據以上原則,選取適當的量階參數對一段真實語音信號進行MATLAB仿真,由圖中時域波形可以看出,解碼后的語音信號能較好的恢復原始語音信號。

圖4 語音CVSD編碼仿真波形圖
C6000芯片內部的運算功能單元達到2組共8個,芯片的并行化程度非常高,完全由人手工編寫匯編程序代碼反而很難有效分配資源,發揮處理器并行處理的優勢[3]。在實際項目中常采用C語言進行軟件開發,其中CVSD編譯碼部分的處理流程如圖所示。

圖5 CVSD編碼軟件流程圖
在C6000系列芯片應用程序開發中,CCS開發環境提供了多種工具控制從代碼輸入,編譯,優化,下載的全過程。其中Profile工具對當前代碼的運行性能進行全面的評估,既可以對應用程序全局運行時間進行測試,也可以針對單個函數函數甚至函數內部的循環塊LOOP進行cycle數的統計。所有的Cycle數統計結果可以直接通過Profile下的Viewer工具直接查看分析,也可以另存為.csv文件進行離線分析[4]。

表1 Profile統計結果
從表1可以看出,編譯碼函數在優化前后消耗的cycle數差異較大,優化后均降低到優化前的40%以下,根據系統容量的設計需要,可進一步采用內聯指令進行代碼級的優化。濾波函數調用TI的信號處理庫函數,該函數已經由TI采用內聯指令進行優化,在實際系統中只需要進行參數配置即可。
將一段音樂經由TMS320C6455芯片進行CVSD編碼并解碼播放,對比編碼前后的語音質量發現,即使加入干擾噪聲CVSD編碼在壓縮文件信息量的同時仍然獲得較好語音。基于6455芯片的CVSD語音編碼實現可以大大改善超短波地空電臺的話音傳輸質量,提高了其抗誤碼能力和保密性能,對超短波地空通信裝備的發展和現有地空通信抗予擾電臺的技術改造將有著重要推動作用。S
[1]李欣,臧笛,羅程.CVSD編碼/譯碼器在語音系統中的應用[J].電子與自動化,1999.
[2]黃富貴,騫俊,張靜.CVSD的算法仿真及實現[J].桂林電子工業學院學報.2003,5(23):5-8.
[3]張旭,陳陣,吳月珠.基于 DSP 的 CVSD 語音編解碼[J].微處理機,2001(4):52-54.
[4]汪安民.DSP 嵌入式系統開發典型案例[M].北京:人民郵電出版社,2007.