語(yǔ)音信號(hào)的A律編解碼的DSP實(shí)現(xiàn)
出處:wxl800711 發(fā)布于:2010-09-07 10:10:37
摘要:本文介紹了G.711標(biāo)準(zhǔn)的A律壓縮算法的基本原理,設(shè)計(jì)出了A律編解碼的軟件流程框圖,在以TMS320VC5416為處理器的硬件開(kāi)發(fā)平臺(tái)上實(shí)現(xiàn)了語(yǔ)音信號(hào)的A律壓縮解壓算法,并給出了C54x的匯編語(yǔ)言程序。
0 引言
語(yǔ)言壓縮技術(shù)既節(jié)省了存儲(chǔ)時(shí)所占用的存儲(chǔ)空間,又減少了傳輸時(shí)所占用的帶寬,而快速發(fā)展的數(shù)字信號(hào)處理(DSP)技術(shù)使得實(shí)時(shí)實(shí)現(xiàn)各種復(fù)雜的語(yǔ)音壓縮算法成為可能。
國(guó)際電信聯(lián)盟(ITU)1972年制定出來(lái)的一套語(yǔ)音壓縮標(biāo)準(zhǔn)稱為G.7ll,主要用于公用電話網(wǎng)。它用脈沖編碼調(diào)制(PCM)對(duì)語(yǔ)音信號(hào)采樣,采樣率為8kHz,比特率為64kb/s。該標(biāo)準(zhǔn)下主要有兩種壓縮算法,一種是μ律,另一種是A律。其中歐洲和中國(guó)等國(guó)家采用A律壓縮算法,美國(guó)和日本等國(guó)家采用μ律壓縮算法。
1 A律壓縮算法簡(jiǎn)介
A律編碼的數(shù)據(jù)對(duì)象是12位的二進(jìn)制數(shù),它保證了壓縮后的數(shù)據(jù)有5位的并存儲(chǔ)到一個(gè)字節(jié)(8位)中。A律符合下式的對(duì)數(shù)壓縮方程:

式中,x為歸一化的輸入語(yǔ)音信號(hào),y為壓擴(kuò)后的歸一化輸出信號(hào),A為壓縮參數(shù)取值。由于該方程是一條連續(xù)的光滑曲線,物理上實(shí)現(xiàn)比較復(fù)雜。在實(shí)用中一般用13段折線近似該曲線,此時(shí)選擇AA=87.6。對(duì)PCM信號(hào),一般地,輸入的模擬語(yǔ)音信號(hào)經(jīng)過(guò)低通濾波、放大和限幅后,然后進(jìn)入A/D轉(zhuǎn)換器編碼,常用的編碼方法有2的補(bǔ)碼和折疊二進(jìn)制碼兩種。表l是A律壓縮編碼規(guī)律表,其中只給出了在抽樣值為正值時(shí),A/D轉(zhuǎn)換器輸出的12位二進(jìn)制數(shù)(補(bǔ)碼)是如何壓縮成8位二進(jìn)制數(shù)的。

2 A律算法的硬件構(gòu)成
采用合眾達(dá)電子的SEED-DEC5416嵌入式DSP開(kāi)發(fā)板作為實(shí)現(xiàn)A律算法的硬件開(kāi)發(fā)平臺(tái),其系統(tǒng)結(jié)構(gòu)原理如圖1所示。主處理器選擇的是1 6 bit定點(diǎn)DSP芯片TMS320vC5416,語(yǔ)音信號(hào)經(jīng)過(guò)差分運(yùn)算放大后送入ADC進(jìn)行模數(shù)轉(zhuǎn)換,采樣率為8kHz,量化位數(shù)為12bit,轉(zhuǎn)換后的數(shù)據(jù)送入McBSP,然后對(duì)McBSP中的數(shù)據(jù)進(jìn)行壓縮編碼,壓縮后的數(shù)據(jù)送入'C5416內(nèi)部的DARAM保存,還可以直接解壓后經(jīng)McBSP送DAC,數(shù)模轉(zhuǎn)換后再送入功放模塊驅(qū)動(dòng)揚(yáng)聲器發(fā)聲。其中,McBSP與ADC/DAC之間的數(shù)據(jù)交換是靠ADC/DAC提供的移位信號(hào)和幀同步信號(hào)實(shí)現(xiàn)的。

3 A律算法的軟件設(shè)計(jì)
在TI提供的開(kāi)發(fā)工具CCS中進(jìn)行源程序的編輯和調(diào)試,源程序采用'C54x系列的匯編語(yǔ)言編寫(xiě)。首先完成對(duì)DSP芯片必要的初始化、McBSP的初始化及開(kāi)放McBSP中斷,然后執(zhí)行A律壓縮解壓算法。
一般地,用程序進(jìn)行A律編碼解碼有兩種方法:一種是查表法,這種方法程序代碼小,執(zhí)行速度快,但需要占用較多的內(nèi)存以存儲(chǔ)查找表(表的大小為212=4096個(gè)字),另一種方法是直接計(jì)算法,這種程序代碼較多,執(zhí)行速度慢一些,但可以節(jié)省內(nèi)存空間。對(duì)照表l,可以畫(huà)出A律壓縮編碼直接計(jì)算方法的流程如圖2所示。待壓縮的數(shù)據(jù)來(lái)自voidin變量空間(見(jiàn)附錄1),該變量空間保存著McBSP中的數(shù)據(jù),保存符號(hào)位就是將待壓縮數(shù)據(jù)的位11放入壓縮數(shù)據(jù)的位7,并通過(guò)測(cè)試位11決定是否對(duì)該數(shù)求補(bǔ)即對(duì)負(fù)數(shù)求(A/D轉(zhuǎn)換后的數(shù)據(jù)用二進(jìn)制補(bǔ)碼表示),求的目的是為了減小直接對(duì)負(fù)值壓縮時(shí)帶來(lái)的量化誤差。另外,還將兩個(gè)8位的壓縮數(shù)據(jù)組成一個(gè)16位的字保存至compress變量空間。


解壓一般是壓縮的逆過(guò)程,但有時(shí)為了使得量化誤差不超過(guò)△i/2,可在解壓后的數(shù)據(jù)位增加一個(gè)有效位,該有效位為1時(shí)經(jīng)過(guò)D/A轉(zhuǎn)換后對(duì)應(yīng)△min/2電壓,即將8位的壓縮數(shù)據(jù)解壓成13位的數(shù)據(jù)。本文中解壓仍然按照解壓成12位的數(shù)據(jù),其解壓流程如圖3所示。圖3中壓縮數(shù)據(jù)暫存單元com的位*的段碼值若大于l時(shí),需將這4位段內(nèi)碼的前后相鄰位都置1,然后將這6位送至解壓數(shù)據(jù)暫存單元dcom的位(段碼值+3)~位(段碼值-2)即可,代碼(見(jiàn)附錄2)中采用的方法是對(duì)這6位邏輯左移(段碼值-2)位。
4 實(shí)驗(yàn)分析及結(jié)論
由于語(yǔ)音信號(hào)可以分解成許多正弦頻率的和,實(shí)驗(yàn)中采用200Hz的正弦信號(hào)代替實(shí)際的語(yǔ)音信號(hào)。將匯編語(yǔ)言編寫(xiě)的源程序和命令連接文件都添加到新建立的工程文件夾中,并編譯、鏈接及裝載程序運(yùn)行,然后執(zhí)行集成開(kāi)發(fā)環(huán)境ccs的菜單命令View|Graph|Time Frenquency,打開(kāi)Graph Property Dialog對(duì)話框,在此分兩次輸入標(biāo)題名sine和decompress sine、起始地址0x0082和0x065E(命令連接文件.cmd中將.bss段定位到DARAM的org=0080h上),并選擇數(shù)據(jù)的長(zhǎng)度為200及數(shù)據(jù)類(lèi)型為16-bit signed integer,然后點(diǎn)擊ok按鈕即可生成圖4和圖5的曲線。

與圖4相比,圖5只有在幅值比較大時(shí)兩者的誤差才略為明顯,這是A律解壓算法特性造成的,對(duì)語(yǔ)音信號(hào)的影響并不大,因?yàn)檎Z(yǔ)音信號(hào)出現(xiàn)大幅度值的概率小。
本文完成的語(yǔ)音信號(hào)的A律編解碼的DSP實(shí)現(xiàn),經(jīng)過(guò)實(shí)驗(yàn)表明,可以達(dá)到實(shí)時(shí)的語(yǔ)音壓縮及解壓效果
附錄1壓縮代碼

版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫(kù)電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫(kù)電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫(kù)電子市場(chǎng)網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類(lèi)作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問(wèn)題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- 單片機(jī)技術(shù)特性與嵌入式開(kāi)發(fā)實(shí)踐指南2026/1/7 10:00:02
- 單片機(jī)(MCU)與數(shù)字信號(hào)處理器(DSP)分類(lèi)及選型技術(shù)指南2025/12/30 10:02:37
- 工業(yè)級(jí)DSP信號(hào)處理系統(tǒng):硬件適配與抗干擾工程方案2025/12/15 14:41:00
- HOLTEK推出HT32F65533G/733G內(nèi)建N/N預(yù)驅(qū)電機(jī)專(zhuān)用SoC單片機(jī)2025/11/26 14:11:41
- 什么是C51數(shù)據(jù)類(lèi)型擴(kuò)充定義2025/10/27 13:59:22
- 編碼器的工作原理及作用1
- 超強(qiáng)整理!PCB設(shè)計(jì)之電流與線寬的關(guān)系2
- 三星(SAMSUNG)貼片電容規(guī)格對(duì)照表3
- 電腦藍(lán)屏代碼大全4
- 國(guó)標(biāo)委發(fā)布《電動(dòng)汽車(chē)安全要求第3部分:人員觸電防護(hù)》第1號(hào)修改單5
- 通俗易懂談上拉電阻與下拉電阻6
- 繼電器的工作原理以及驅(qū)動(dòng)電路7
- 電容單位8
- 跟我學(xué)51單片機(jī)(三):?jiǎn)纹瑱C(jī)串口通信實(shí)例9
- 一種三極管開(kāi)關(guān)電路設(shè)計(jì)10
- PCB焊盤(pán)與過(guò)孔設(shè)計(jì)核心實(shí)操規(guī)范(含可焊性與可靠性保障)
- 汽車(chē)電子常用電子元器件選型指南
- MOSFET驅(qū)動(dòng)與隔離方案設(shè)計(jì)
- 高溫環(huán)境下電源IC選型建議
- 安防監(jiān)控設(shè)備連接器應(yīng)用分析
- 高速PCB信號(hào)完整性(SI)設(shè)計(jì)核心實(shí)操規(guī)范
- 鎖相環(huán)(PLL)中的環(huán)路濾波器:參數(shù)計(jì)算與穩(wěn)定性分析
- MOSFET反向恢復(fù)特性對(duì)系統(tǒng)的影響
- 電源IC在惡劣環(huán)境中的防護(hù)設(shè)計(jì)
- 連接器耐腐蝕性能測(cè)試方法









