日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 嵌入式 > 嵌入式教程
[導(dǎo)讀]G.723.1編譯碼算法的DSP實現(xiàn)

【摘 要】 介紹了ITU-TG.723.1標(biāo)準(zhǔn)語音編譯碼器的算法及其在ADSP-2181芯片上的實現(xiàn) 。軟硬件結(jié)合實現(xiàn)了語音信號的采樣和實時編譯碼,完全符合ITU-TG.723.1標(biāo)準(zhǔn)的定點算法,通過了ITU-T的所有測試向量。
    關(guān)鍵詞:語音編譯碼,DSP,ITU┐TG.723.1

1 引 言
  當(dāng)前,Voice over IP(VoIP)技術(shù)正在不斷普及,其中使用的低碼率語音壓縮標(biāo)準(zhǔn)主要有G.723 .1和G.729兩種。隨著VoIP技術(shù)的不斷發(fā)展,要求產(chǎn)品的集成度與性能進(jìn)一步提高,利用新一代高性能DSP芯片,實現(xiàn)單片DSP處理多路語音信號,是今后的發(fā)展趨勢。
  G.723.1標(biāo)準(zhǔn)是ITU組織于1996年推出的一種低碼率編碼算法。主要用于對語音及其它多媒體聲音信號的壓縮,如可視電話系統(tǒng)、數(shù)字傳輸系統(tǒng)和高質(zhì)語音壓縮系統(tǒng)等。G.723.1標(biāo)準(zhǔn)可在6.3kbps和5.3kbps兩種碼率下工作。其中,高碼率算法具有較高的重建語音質(zhì)量,而低碼率算法的計算復(fù)雜度則較低。與一般的低碼率語音編碼算法一樣,G.723.1標(biāo)準(zhǔn)采用線性預(yù)測的合成分析法。對激勵信號進(jìn)行量化時,高碼率算法采用多脈沖最大似然量化(MP-MLQ),而低碼率算法則采用算術(shù)碼本激勵線性預(yù)測(ACELP)。
2 算法介紹
  語音信號的參數(shù)模型是用激勵信號激勵一個系統(tǒng)模型來模仿氣流沖激聲道產(chǎn)生的聲音。線性預(yù)測法基于全極點模型假定,采用時域均方誤差最小準(zhǔn)則來估計模型參數(shù)。分析過程中要提取的參數(shù)包括聲道系統(tǒng)的LSP參數(shù)、自適應(yīng)碼本的延遲和增益,
以及固定碼本中脈沖的位置和符號。
  G.723.1編碼器能對以8kHz采樣的話帶語音信號進(jìn)行壓縮。為了降低碼率,G.723.1采用了較長的幀尺寸,每幀240個樣值,即30毫秒幀長。每幀輸入信號首先通過一階高通濾波器濾除直流分量,然后將之分成四個60個樣值的子幀,每個子幀獨立進(jìn)行LPC分析。為了提高LPC系數(shù)的連續(xù)性,采用了長度為180個樣值的重疊窗,即同時包含前后兩個子幀,這使算法引入60個樣值的超前時延,因此算法的總時延為37.5毫秒。LPC系數(shù)用線性譜頻率(LSF)表示,LSF參數(shù)采用預(yù)測分裂矢量量化,只對第四子幀進(jìn)行。為了提高量化感知質(zhì)量,高通濾波后的語音信號需通過共振峰感知加權(quán)濾波器和諧振峰噪聲整形濾波器以生成初始目標(biāo)信號。前者參數(shù)由各子幀的未量化LPC系數(shù)構(gòu)成,后者通過對每兩子幀進(jìn)行開環(huán)基音周期估計得到,其中基音周期的范圍為18到142個樣值。LPC合成濾波器、共振峰感知加權(quán)濾波器和諧振峰噪聲整形濾波器用于系統(tǒng)零輸入響應(yīng)計算和最佳激勵估計。G.723.1編碼器還包括一個五階基音預(yù)測器,其參數(shù)根據(jù)開環(huán)基音估計值和脈沖響應(yīng)進(jìn)行閉環(huán)基音搜尋得到。在進(jìn)行最佳激勵估計時,需從初始目標(biāo)信號中減去系統(tǒng)零輸入響應(yīng)和基音預(yù)測器貢獻(xiàn)以得到最終目標(biāo)信號,然后針對高低碼率分別采用MP-MLQ和ACELP方法進(jìn)行量化。其中,LSF參數(shù)、基音值和激勵參數(shù)需傳送給解碼器。
  解碼器首先根據(jù)得到的LSF參數(shù)重建LPC合成濾波器,然后根據(jù)基音值和激勵參數(shù)得到自適應(yīng)碼本激勵信號和固定碼本激勵信號。
2.1 聲道模型參數(shù)的提取
    十階全極點模型系統(tǒng)的傳遞函數(shù)為:
      
  其中,S(z)和U(z)分別是輸出信號s(n)和輸入信號u(n)的Z變換。因此誤差信號為:
  
要使均方誤差最小,{ak}必定滿足=1,2,...10),由此可得到以k為變量的方程組:
   
其中,R(n)為S(n)的自相關(guān)函數(shù)值。對于這個Toeplitz矩陣,用Durbin遞推算法可方便求解。
  因為線譜對參數(shù)(LSP)良好的量化特性和內(nèi)插特性,LPC參數(shù)要轉(zhuǎn)換為LSP參數(shù)進(jìn)行傳輸。
設(shè)線性濾波器的逆濾波器為

ωi和θi分別是P(z)和Q(z)的第i個零點。ωi和θi成對出現(xiàn),反映信號的頻譜特性,因此稱為線譜對。對P(z)和Q(z)的系數(shù)做離散傅立葉變換得到zk=e-jπk/N(k=0,1,2...N)各點的值,搜索極小值點的位置,就是可能的零點位置。
2.2 自適應(yīng)碼本的搜索
  開環(huán)搜索是基于整幀的整數(shù)基音估計。為了提高可靠性,對原始信號進(jìn)行預(yù)處理,用中心削波函數(shù)對原始信號進(jìn)行削波。然后用自相關(guān)基音檢測法估
計基音Top。閉環(huán)搜索是基于子幀的基音細(xì)搜索。將LPC合成濾波器、共振峰感知加權(quán)濾波器和諧波噪聲濾波器一起構(gòu)成綜合濾波器,計算出該綜合濾波器的沖激響應(yīng)。用估算出的開環(huán)基音周期和計算所得綜合濾波器的沖激響應(yīng),通過一個五階的基音預(yù)測器,可計算出閉環(huán)基音周期。
2.3 固定碼本的搜索
  對自適應(yīng)碼本搜索后得到的殘差余量信號進(jìn)行固定碼本搜索。
  對高碼率(6.3kbps)的固定碼本搜索采用脈沖最大似然量化法(MP-MLQ)。激勵信號可表示為
其中,G為增益因子,δ(n)為單位脈沖響應(yīng),{ak}和{mk}分別是單位脈沖響應(yīng)的符號和位置。M為脈沖的數(shù)目,偶數(shù)幀取6,奇數(shù)幀取5。
  編碼算法的任務(wù)是估計G、{ak}和{mk},使誤差信號e〔n〕的均方值最小。

其中,r〔n〕表示目標(biāo)矢量,自適應(yīng)碼本搜索后得到的殘差信號,h〔n〕表示加權(quán)合成濾波器的沖激響應(yīng)。
  對低碼率(5.3kbps)編碼器固定碼本搜索采用代數(shù)碼本激勵線性預(yù)測法(ACELP)。每一子幀中有4個脈沖,它們可能的位置如表1所示。
表1


 

  碼本搜索同樣是使加權(quán)語音信號r〔n〕與加權(quán)合成語音信號之間均方誤差最小。即:

其中,r表示目標(biāo)矢量,自適應(yīng)碼本搜索后得到的殘差信號,G是碼本增益,vξ是代數(shù)碼本中索引ξ對應(yīng)的碼本,H是加權(quán)合成濾波器的截斷沖激響應(yīng)。
    要求最佳碼本,即要搜索使τξ最大的ξ,[!--empirenews.page--]
 
其中,τξ是一個中間參數(shù),d是r〔n〕和h〔n〕之間的相關(guān)值,Φ是沖激響應(yīng)的協(xié)方差矩陣。C、ε的計算:

  對奇位置的碼矢量,先把偶脈沖移一個樣本位置,然后用上式計算。
3 算法實現(xiàn)
3.1 硬件設(shè)計
    系統(tǒng)框圖如圖1所示。


 


  模擬的語音信號通過TP3057的A/D轉(zhuǎn)換變?yōu)閿?shù)字信號送入ADSP-2181(采樣頻率8kHz)。TP3057是美國國家半導(dǎo)體公司生產(chǎn)的A律編/解碼器,它包含一個利用A/D和D/A轉(zhuǎn)換結(jié)構(gòu)的A律脈沖編碼調(diào)制的編解碼器/濾波器單片電路和一個串行PCM接口。其中,編碼部分還包含一個可調(diào)輸入增益的放大器、一個有源RC前置濾波器、自動調(diào)零電路、一個A率壓縮編碼器。解碼部分包括一個A律解碼器和截止頻率為3400Hz的低通濾波器。前者從A律壓擴的信號中重建模擬信號,后者校正譯碼器輸出的sinx/x響應(yīng)并濾除高頻信號。
  ADSP-2181是Analog Devices公司生產(chǎn)的一種性能優(yōu)越的單片機,適合于高速的數(shù)字信號處理。 ADSP-2181除了三個運算單元、數(shù)據(jù)地址發(fā)生器和一個程序序列器,還含有兩個串行口、一個16位的內(nèi)部IDMA口、一個8位的BDMA口、一個可編程定時器、外部中斷能力及片內(nèi)程序和數(shù)據(jù)存儲器。片內(nèi)集成了80k字節(jié)的存儲器,包括16k長度為24bit的程序存儲器和16k長度為16bit的數(shù)據(jù)存儲器。
  利用IDMA口的自動接受發(fā)送功能,可以方便地實現(xiàn)ADSP-2181與主CPU間的數(shù)據(jù)交互。PC機通過IMDA口將程序裝載入ADSP-2181內(nèi)部存儲器中。在ADSP-2181全速執(zhí)行時,主機可以查詢其狀態(tài),讀取壓縮后的碼流,也可送入待解碼的數(shù)據(jù)。
3.2 軟件設(shè)計
  軟件設(shè)計包括三個模塊:接口模塊、編碼模塊和解碼模塊。
  接口模塊實現(xiàn)ADSP-2181與主CPU之間的數(shù)據(jù)交換。該模塊包括DSP的主控程序和數(shù)據(jù)傳輸兩部分。DSP的主控程序負(fù)責(zé)將采集到的語音數(shù)據(jù)分幀,送入編碼器,并將接受到的碼流分類后送入解碼模塊。數(shù)據(jù)傳輸部分負(fù)責(zé)采集數(shù)據(jù)和與主CPU的數(shù)據(jù)交換。
  DSP程序根據(jù)ITU-TG.723.1標(biāo)準(zhǔn)定點算法,分為初始化(G723—Init)、編碼(G723—Incode)、解碼(G723—Decode)三個模塊。
    G723—Icode對包含240個采樣點的一幀信號進(jìn)行編碼,返回12個或10個字長的二進(jìn)制數(shù)據(jù)。
    輸入數(shù)據(jù)由串口得到,放在數(shù)組G723—Enc—Inp中,返回值放在數(shù)組G723—Enc—Out中,對于6.3kbps長工為12個字,對于5.3kbps長度為10個字。其格式按照G.723.1標(biāo)準(zhǔn)進(jìn)行封裝。
  G723—Decode根據(jù)接收到的12字或10字打包數(shù)據(jù)重建240個語音樣點。輸入數(shù)據(jù)放在G723 
  Dec—Inp中,輸出放在數(shù)組G723—Dec—Out中。
  主機程序采用VisualC++編寫,通過串口與DSP通信。
3.3 C語言的優(yōu)化
  開發(fā)中采用AD公司的集成仿真軟件VisualDSP++,但是通常,C編譯器能完成整個工作的70%,而30%的進(jìn)一步優(yōu)化必須通過手寫匯編來實現(xiàn)。
3.3.1 循環(huán)展開
  使用具有并行能力的DSP開發(fā)軟件時,一個重要的思想就是充分利用DSP的字長和數(shù)目眾多的運算單元,盡量把循環(huán)體展開。通過增加每次循環(huán)中執(zhí)行的指令數(shù)來減少總的循環(huán)次數(shù),可使得在同樣的時鐘周期內(nèi)能運行更多的指令,提高了循環(huán)的效率。
3.3.2 提高寄存器的利用率
  DSP芯片內(nèi)部的運算單元運行效率非常高,但如果寄存器和數(shù)據(jù)總線之間的數(shù)據(jù)交換頻繁,將使DSP的執(zhí)行效率大打折扣。因為DSP在進(jìn)行內(nèi)存操作時,往往需要若干周期的延遲,如Load指令要有4個周期的延遲,Store指令需要2個周期的延遲。為了減少耗時的內(nèi)存操作,可以在程序進(jìn)入循環(huán)體之前,將要頻繁使用的數(shù)據(jù)預(yù)先放入寄存器,然后反復(fù)調(diào)用,實踐證明這種方法可以提高一部分效率。
4 實驗結(jié)果
  所有代碼全部通過了ITU-T測試矢量的測試。
測試結(jié)果表明,對于高碼率(6.3kbps)所需計算量為24.8MIPS,對于低碼率(5.3kbps),所需計算量為21.3MIPS。該實現(xiàn)可以在IP電話、視頻會議中得到廣泛應(yīng)用。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當(dāng)下,工業(yè)電機作為核心動力設(shè)備,其驅(qū)動電源的性能直接關(guān)系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護(hù)是驅(qū)動電源設(shè)計中至關(guān)重要的兩個環(huán)節(jié),集成化方案的設(shè)計成為提升電機驅(qū)動性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設(shè)備的使用壽命。然而,在實際應(yīng)用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護(hù)成本,還影響了用戶體驗。要解決這一問題,需從設(shè)計、生...

關(guān)鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術(shù)之一是電機驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅(qū)動系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動汽車的動力性能和...

關(guān)鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設(shè)中,街道及停車場照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設(shè)計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關(guān)鍵字: LED 驅(qū)動電源 開關(guān)電源

LED驅(qū)動電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動電源
關(guān)閉