張樂鵬 周云龍
(中兵通信科技股份有限公司,河南 新鄉(xiāng) 453000)
基于PCM編碼的話音數(shù)字合成系統(tǒng)的研究
張樂鵬 周云龍
(中兵通信科技股份有限公司,河南 新鄉(xiāng) 453000)
在話音通信中,會出現(xiàn)多個音頻源同時發(fā)聲的情景。如何合成多個音頻源,并將其正確發(fā)送及接收是個難點。在本系統(tǒng)中,話音采樣基于PCM編解碼芯片TLV320、話音合成采用單片機C8051F020、話音數(shù)據(jù)的發(fā)送和接收采用RS485總線,解決了上述問題。
音頻合成;PCM編碼;單片機C8051F020;RS485接口
在話音通信中,點對點通信方式比較常見,但是當多個音頻源同時發(fā)聲時,如果處理不當,音頻輸出會是噪音,無法分辨多人話音。而且多個音頻源如何在RS485總線中傳輸,也是個難點。本系統(tǒng)經(jīng)過大量的實驗和調試,解決了上述問題,達到了系統(tǒng)要求。
基于PCM編碼的話音數(shù)字合成系統(tǒng)是采用微處理器和話音數(shù)字化技術,再通過RS485總線進行傳輸?shù)囊环N數(shù)字化話音系統(tǒng),原理框圖如圖1所示。
在話音數(shù)字合成系統(tǒng)中,多個音頻節(jié)點采用RS485總線方式連接,進行話音數(shù)據(jù)的傳輸。單元內部框圖如圖2所示。
音頻單元由微處理器C8051F020、話音數(shù)字化電路TLV230、RS485接口電路、話音降噪處理模塊及混放模塊及話筒和揚聲器等組成。
圖1 話音數(shù)字合成系統(tǒng)原理框圖
微處理器C8051F020芯片,最高支持25MHz時鐘,包括64kFLASH、4kSRAM和豐富的外部接口,能夠滿足系統(tǒng)要求;話音編解碼芯片采用TI公司的TLV320AC系列芯片,采用μ率壓縮編碼的方式生成PCM碼流;RS-485電平轉換芯片采用MAX485,最高支持32個單元的通信;話音降噪模塊實現(xiàn)輸入話音波形的平滑和幅度調節(jié);混放模塊實現(xiàn)輸出話音的驅動,匹配揚聲器輸出。
圖2 音頻單元原理框圖
PCM編碼通常由抽樣、量化、編碼3部分組成。其中量化和編碼溝通完成模擬到數(shù)字(A/D變換)功能。信源經(jīng)脈沖序列抽樣產(chǎn)生零階抽樣保持信號,它是PAM信號,具有離散時間,連續(xù)幅度。量化過程就是將此信號轉換成離散時間,離散幅度的多電平數(shù)字信號。編碼后的PCM信號經(jīng)過解碼、模擬轉換(D/A轉換),在經(jīng)過低通補償濾波器即可重建原信號。
PCM編碼分為A率PCM編碼和μ率PCM編碼。μ率編碼與A率編碼相比,對于小信號的處理信噪比更高,話音更清晰。μ率編碼函數(shù)如公式(1)所示。
其中:x為歸一化的量化器輸入,y為歸一化的量化器輸出。常數(shù)μ愈大,則小信號的壓擴效益愈高,目前多采用μ=255。μ律壓縮曲線是連續(xù)曲線。μ值不同,壓縮特性也不同。255/15律折線壓縮方式是將μ律曲線分16段做弦,當相鄰折線段的段距比值為2時,可以很好地逼近μ=255的μ律壓縮曲線的特性。實際上由于在原點兩側的第一條折線都通過原點,斜率相同而對稱,所以合成了一條折線,因而實際上總共只有15條折線。因此,這種折線壓縮律就稱為μ255/15折線壓縮律。
本系統(tǒng)采用μ率PCM編碼方式進行話音編碼。
3.1RS485總線實現(xiàn)
在話音數(shù)字合成系統(tǒng)中,多個音頻節(jié)點采用RS485總線方式連接,進行話音數(shù)據(jù)的傳輸。本系統(tǒng)連接5個單元,最大可支持8個單元的實時語音通信。RS485總線采用主從結構設計,分時處理數(shù)據(jù),每一個單元都有唯一的ID,只有在本單元ID的時間區(qū)間才可以對總線進行發(fā)送數(shù)據(jù)操作。RS485總線通信協(xié)議采用9位數(shù)據(jù)傳輸,沒有校驗位,1位停止位。
主機發(fā)送的數(shù)據(jù)包括控制指令(各單元ID)和話音數(shù)據(jù)。控制指令第九位為1,后8bit為各個單元ID;話音數(shù)據(jù)第九位為0,后8bit為PCM話音數(shù)據(jù)。主機周期性的發(fā)送控制指令,各單元接收到自己ID指令之后才可以將話音數(shù)據(jù)傳輸?shù)娇偩€上。其他單元只需要在對應時隙將自己的話音數(shù)據(jù)送入總線即可。各單元根據(jù)自己的狀態(tài)選擇需要的話音數(shù)據(jù)接收處理,還原為模擬語音信號。
3.2話音合成實現(xiàn)
模擬話音信號經(jīng)過PCM編解碼芯片送往處理器的是PCM數(shù)據(jù)流,接收到的數(shù)據(jù)流無法直接進行數(shù)值上的加減合成,必須經(jīng)過處理器解碼為可直接處理的數(shù)據(jù)。要將PCM數(shù)據(jù)解碼就必須知道PCM數(shù)據(jù)是如何編碼的。
一個8比特μ=255的碼子由1個符號比特,一個3比特段代碼和一個4比特電平量化值串聯(lián)而成。在發(fā)送之前,所有比特是取反的,所以,一個正數(shù)由帶“1”的符號比特。在決定輸入是哪一段之前,原始整數(shù)的符號先不考慮,一個偏移量33加到該數(shù)的絕對值上。偏移量限制最大的輸入為8159,并減少最小步長至2/815。偏移量簡化了每一段兩個短點的計算。尋找所在段代碼是借助于檢測偏移輸入模值的最有效“1”的位置,而量化值就是跟在它后面的4個比特。從線性到μ率壓縮轉換見表1,壓縮后的碼子組成:比特0-3表示量化值,比特4-6表示段值,壓縮后的碼子符號放在比特7。μ率編碼數(shù)據(jù)與線性數(shù)據(jù)的關系見表1。
表1 μ律二進制編碼圖表
將音頻從節(jié)點1輸入信號為1K正弦波,峰值為1V;音頻從節(jié)點2輸入的波形為2K正弦波;經(jīng)過疊加處理的數(shù)據(jù)送回給音頻主節(jié)點進行話音解碼輸出,其波形如圖3所示。
如圖3所示可知將處理器可以PCM的μ率編碼數(shù)據(jù)和線性編碼數(shù)據(jù)進行轉換,并且完成了話音的數(shù)字疊加。但是,這種方式的數(shù)字疊加會對信號由一定程度的失真,并且疊加處理的話音越多,失真越大。
圖3 疊加后的波形
通過上述分析,可以看出通過PCM的μ率編碼數(shù)據(jù)和線性編碼數(shù)據(jù)進行轉換,完成了話音的數(shù)字合成,解決了話音合成難題;通過RS485總線的分時編碼,解決了多節(jié)點總線傳輸難題;經(jīng)過試驗及測試,達到了系統(tǒng)指標要求。目前該系統(tǒng)已經(jīng)批量生產(chǎn),大量應用于市場,性能穩(wěn)定可靠。
[1]毛京麗,石方文.數(shù)字通信原理(第三版)[M].北京:人民郵電出版社,2011.
[2]馮子林,俞建新. RS485總線通信協(xié)議的設計與實現(xiàn)[J].計算機工程,2012(10):18.
[3]陸存樂.采用準瞬時壓擴的PCM編碼新技術[J].軍事通信技術,1985(4):30-31.
TN919
A