陳 咪
(中國電子科技集團公司第七研究所,廣東 廣州 510220)
在無線通信系統(tǒng)中,語音通信業(yè)務(wù)是最基本的業(yè)務(wù)保障。由于無線信道具有不穩(wěn)定性,無線傳輸存在帶寬的限制和距離的要求,必須對語音數(shù)據(jù)信息進行壓縮。高效率、低速率的語音編解碼方案既能保證無線語音通信的質(zhì)量,又能降低對無線通信傳輸速率的要求。本文介紹一種基于語音處理芯片TLV320AIC29及WT3080的語音編解碼設(shè)計方案,通過ZYNQ7015的軟件,能夠獲得低至2.4 kb/s的語音聲碼話數(shù)據(jù)。
語音信號編解碼系統(tǒng)實現(xiàn)的功能包括語音信號模數(shù)/數(shù)模轉(zhuǎn)換、語音信號壓縮編碼及語音信號采集。為了使系統(tǒng)具有擴展性,本設(shè)計方案選擇獨立的語音處理芯片分別完成模數(shù)轉(zhuǎn)換及編碼壓縮功能。語音編解碼系統(tǒng)設(shè)計如圖1所示。

圖1 系統(tǒng)設(shè)計示意圖
為了支持全雙工通信,系統(tǒng)設(shè)計分為發(fā)送處理和接收處理兩部分。發(fā)送部分將模擬話音采樣,進行壓縮編碼,之后送至無線通信協(xié)議棧發(fā)送。接收處理部分從無線通信協(xié)議棧接收話音數(shù)據(jù),先將壓縮的話音數(shù)據(jù)進行解碼,之后將解碼后的數(shù)據(jù)轉(zhuǎn)換為模擬話音。
TLV320AIC29的功耗和采樣率為線性正比例關(guān)系,配置TLV320AIC29的采樣率為8 kb/s,既能滿足WT3080壓縮編碼所需的采樣數(shù)據(jù),又能兼顧芯片的功耗[1]。國際電信聯(lián)盟(International Telecommunication Union,ITU)將話音質(zhì)量等級分為5級,為了滿足話音質(zhì)量3級的要求,語音信號壓縮編碼后的速率為2.4 kb/s。系統(tǒng)設(shè)計參數(shù)如表1所示。

表1 系統(tǒng)設(shè)計參數(shù)
硬件連接關(guān)系如圖2所示。由于ZYNQ7015的可編程邏輯(Programmable Logic,PL)側(cè)IO數(shù)目較多且可以使用軟件配置,因此TLV320AIC29以及WT3080均連接在ZYNQ7015的PL端,通過片內(nèi)總線與可編程系統(tǒng)(Programming System,PS)進行通信。TLV320AIC29的工作時鐘由ZYNQ7015的PL經(jīng)過MRCC端口輸出提供,便于軟件配置。根據(jù)芯片手冊,WT3080的工作時鐘采用的固定的16.384 MHz,由外部晶振提供。

圖2 硬件連接圖
可編程邏輯與TLV320AIC29的接口包括電源、復(fù)位、配置SPI接口及數(shù)據(jù)SPI接口。其中,配置SPI接口用于設(shè)置TLV320AIC29的工作參數(shù),數(shù)據(jù)SPI接口用于完成采樣數(shù)據(jù)的收發(fā)。TLV320AIC29的工作主時鐘由ZYNQ7015的PL提供,時鐘頻率為16.384 MHz。
語音編解碼系統(tǒng)軟件架構(gòu)設(shè)計如圖3所示。PS的軟件分為應(yīng)用層和驅(qū)動層,其中應(yīng)用層根據(jù)系統(tǒng)功能完成語音處理芯片參數(shù)設(shè)置及語音數(shù)據(jù)讀寫,驅(qū)動層完成接口時序及PL的中斷響應(yīng)[2]。PL的軟件分為接口時序模塊和數(shù)據(jù)緩存模塊,其中接口時序模塊完成串口及SPI接口的時序信號產(chǎn)生,數(shù)據(jù)緩存模塊以FIFO的形式完成芯片與PS間的數(shù)據(jù)速率匹配[3]。

圖3 軟件架構(gòu)設(shè)計
數(shù)據(jù)的讀寫由PS發(fā)起,數(shù)據(jù)讀寫軟件的運行狀態(tài)分為發(fā)送狀態(tài)和接收狀態(tài)[4]。其中,發(fā)送狀態(tài)是指從MIC獲取話音數(shù)據(jù)進行壓縮編碼,經(jīng)由無線信道傳輸,接收狀態(tài)則與發(fā)送狀態(tài)相反,從無線信道獲取數(shù)據(jù)進行話音數(shù)據(jù)解碼。解碼后的數(shù)據(jù)進行數(shù)模轉(zhuǎn)換,轉(zhuǎn)換后的模擬信號經(jīng)過放大,通過聽筒進行播放[5]。以系統(tǒng)處于發(fā)送狀態(tài)為例,數(shù)據(jù)處理流程如圖4所示。

圖4 發(fā)送狀態(tài)數(shù)據(jù)處理流程
采集語音數(shù)據(jù)時,TLV320AIC29芯片首先完成語音數(shù)據(jù)的模數(shù)轉(zhuǎn)換,以8 kS/s的采樣率采集16 bit位寬的話音數(shù)據(jù)。PL接收SPI的數(shù)據(jù)至緩存FIFO。FIFO設(shè)計為寬度16 bit,深度為512,F(xiàn)IFO滿時產(chǎn)生中斷信號至PS。PS中斷響應(yīng)函數(shù)通過AXI總線進行FIFO數(shù)據(jù)的讀取[6]。PS讀取完畢512深度的數(shù)據(jù)后,進行一次壓縮編碼,之后將讀取的話音數(shù)據(jù)經(jīng)過AXI總線發(fā)送至PL的WT3080數(shù)據(jù)緩存FIFO。PL通過串口將話音數(shù)據(jù)發(fā)送至WT3080,WT3080完成壓縮編碼后將2.4 kb/s的聲碼話數(shù)據(jù)發(fā)送至PL。PL將接收的數(shù)據(jù)存儲至FIFO。FIFO滿時產(chǎn)生中斷信號,PS響應(yīng)中斷信號,讀取壓縮編碼的數(shù)據(jù),將數(shù)據(jù)發(fā)送至無線空口[7,8]。
系統(tǒng)處于接收狀態(tài)時,數(shù)據(jù)處理流程與發(fā)送狀態(tài)相反。
采用頻率1 kHz的單音信號進行測試。測試信號由標(biāo)準(zhǔn)音頻信號源產(chǎn)生。將軟件采集的數(shù)據(jù)導(dǎo)出,通過MATLAB進行頻域分析。實際采集數(shù)據(jù)的頻域曲線如圖5所示。由圖5可以看出,本設(shè)計方案采集的數(shù)據(jù)的信噪比符合設(shè)計要求。

圖5 1 kHz單音信號的頻域
本文給出了一種適合窄帶無線通信的語音數(shù)據(jù)編解碼的設(shè)計方案。該設(shè)計方案采用低功耗專用芯片配合軟件編程實現(xiàn)了低速率語音數(shù)據(jù)采集及編解碼,從信源側(cè)降低了對無線通信傳輸能力的要求。未來通過軟件編程,可進一步配置編解碼系統(tǒng)的工作參數(shù),滿足不同窄帶無線通信系統(tǒng)對語音業(yè)務(wù)的要求。