張樂鵬 周云龍
(中兵通信科技股份有限公司,河南 新鄉 453000)
基于PCM編碼的話音數字合成系統的研究
張樂鵬 周云龍
(中兵通信科技股份有限公司,河南 新鄉 453000)
在話音通信中,會出現多個音頻源同時發聲的情景。如何合成多個音頻源,并將其正確發送及接收是個難點。在本系統中,話音采樣基于PCM編解碼芯片TLV320、話音合成采用單片機C8051F020、話音數據的發送和接收采用RS485總線,解決了上述問題。
音頻合成;PCM編碼;單片機C8051F020;RS485接口
在話音通信中,點對點通信方式比較常見,但是當多個音頻源同時發聲時,如果處理不當,音頻輸出會是噪音,無法分辨多人話音。而且多個音頻源如何在RS485總線中傳輸,也是個難點。本系統經過大量的實驗和調試,解決了上述問題,達到了系統要求。
基于PCM編碼的話音數字合成系統是采用微處理器和話音數字化技術,再通過RS485總線進行傳輸的一種數字化話音系統,原理框圖如圖1所示。
在話音數字合成系統中,多個音頻節點采用RS485總線方式連接,進行話音數據的傳輸。單元內部框圖如圖2所示。
音頻單元由微處理器C8051F020、話音數字化電路TLV230、RS485接口電路、話音降噪處理模塊及混放模塊及話筒和揚聲器等組成。

圖1 話音數字合成系統原理框圖
微處理器C8051F020芯片,最高支持25MHz時鐘,包括64kFLASH、4kSRAM和豐富的外部接口,能夠滿足系統要求;話音編解碼芯片采用TI公司的TLV320AC系列芯片,采用μ率壓縮編碼的方式生成PCM碼流;RS-485電平轉換芯片采用MAX485,最高支持32個單元的通信;話音降噪模塊實現輸入話音波形的平滑和幅度調節;混放模塊實現輸出話音的驅動,匹配揚聲器輸出。

圖2 音頻單元原理框圖
PCM編碼通常由抽樣、量化、編碼3部分組成。其中量化和編碼溝通完成模擬到數字(A/D變換)功能。信源經脈沖序列抽樣產生零階抽樣保持信號,它是PAM信號,具有離散時間,連續幅度。量化過程就是將此信號轉換成離散時間,離散幅度的多電平數字信號。編碼后的PCM信號經過解碼、模擬轉換(D/A轉換),在經過低通補償濾波器即可重建原信號。
PCM編碼分為A率PCM編碼和μ率PCM編碼。μ率編碼與A率編碼相比,對于小信號的處理信噪比更高,話音更清晰。μ率編碼函數如公式(1)所示。

其中:x為歸一化的量化器輸入,y為歸一化的量化器輸出。常數μ愈大,則小信號的壓擴效益愈高,目前多采用μ=255。μ律壓縮曲線是連續曲線。μ值不同,壓縮特性也不同。255/15律折線壓縮方式是將μ律曲線分16段做弦,當相鄰折線段的段距比值為2時,可以很好地逼近μ=255的μ律壓縮曲線的特性。實際上由于在原點兩側的第一條折線都通過原點,斜率相同而對稱,所以合成了一條折線,因而實際上總共只有15條折線。因此,這種折線壓縮律就稱為μ255/15折線壓縮律。
本系統采用μ率PCM編碼方式進行話音編碼。
3.1RS485總線實現
在話音數字合成系統中,多個音頻節點采用RS485總線方式連接,進行話音數據的傳輸。本系統連接5個單元,最大可支持8個單元的實時語音通信。RS485總線采用主從結構設計,分時處理數據,每一個單元都有唯一的ID,只有在本單元ID的時間區間才可以對總線進行發送數據操作。RS485總線通信協議采用9位數據傳輸,沒有校驗位,1位停止位。
主機發送的數據包括控制指令(各單元ID)和話音數據。控制指令第九位為1,后8bit為各個單元ID;話音數據第九位為0,后8bit為PCM話音數據。主機周期性的發送控制指令,各單元接收到自己ID指令之后才可以將話音數據傳輸到總線上。其他單元只需要在對應時隙將自己的話音數據送入總線即可。各單元根據自己的狀態選擇需要的話音數據接收處理,還原為模擬語音信號。
3.2話音合成實現
模擬話音信號經過PCM編解碼芯片送往處理器的是PCM數據流,接收到的數據流無法直接進行數值上的加減合成,必須經過處理器解碼為可直接處理的數據。要將PCM數據解碼就必須知道PCM數據是如何編碼的。
一個8比特μ=255的碼子由1個符號比特,一個3比特段代碼和一個4比特電平量化值串聯而成。在發送之前,所有比特是取反的,所以,一個正數由帶“1”的符號比特。在決定輸入是哪一段之前,原始整數的符號先不考慮,一個偏移量33加到該數的絕對值上。偏移量限制最大的輸入為8159,并減少最小步長至2/815。偏移量簡化了每一段兩個短點的計算。尋找所在段代碼是借助于檢測偏移輸入模值的最有效“1”的位置,而量化值就是跟在它后面的4個比特。從線性到μ率壓縮轉換見表1,壓縮后的碼子組成:比特0-3表示量化值,比特4-6表示段值,壓縮后的碼子符號放在比特7。μ率編碼數據與線性數據的關系見表1。

表1 μ律二進制編碼圖表
將音頻從節點1輸入信號為1K正弦波,峰值為1V;音頻從節點2輸入的波形為2K正弦波;經過疊加處理的數據送回給音頻主節點進行話音解碼輸出,其波形如圖3所示。
如圖3所示可知將處理器可以PCM的μ率編碼數據和線性編碼數據進行轉換,并且完成了話音的數字疊加。但是,這種方式的數字疊加會對信號由一定程度的失真,并且疊加處理的話音越多,失真越大。

圖3 疊加后的波形
通過上述分析,可以看出通過PCM的μ率編碼數據和線性編碼數據進行轉換,完成了話音的數字合成,解決了話音合成難題;通過RS485總線的分時編碼,解決了多節點總線傳輸難題;經過試驗及測試,達到了系統指標要求。目前該系統已經批量生產,大量應用于市場,性能穩定可靠。
[1]毛京麗,石方文.數字通信原理(第三版)[M].北京:人民郵電出版社,2011.
[2]馮子林,俞建新. RS485總線通信協議的設計與實現[J].計算機工程,2012(10):18.
[3]陸存樂.采用準瞬時壓擴的PCM編碼新技術[J].軍事通信技術,1985(4):30-31.
TN919
A