《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 測(cè)試測(cè)量 > 設(shè)計(jì)應(yīng)用 > 線性預(yù)測(cè)及其Matlab實(shí)現(xiàn)
線性預(yù)測(cè)及其Matlab實(shí)現(xiàn)
摘要: 介紹線性預(yù)測(cè)編碼(LPC)及其基本原理,由語(yǔ)音信號(hào)常用的全極點(diǎn)模型的傳遞函數(shù)推導(dǎo)出線性預(yù)測(cè)方程,然后簡(jiǎn)要講述了G.729中線性預(yù)測(cè)分析的基本原理。重點(diǎn)是使用Matlab實(shí)現(xiàn)G.729中LPC算法,首先闡述了加窗和自相關(guān)函數(shù)計(jì)算,井附上了Matlab的程序說(shuō)明以及加窗前后運(yùn)行結(jié)果圖.
Abstract:
Key words :

曹華,李偉,譚艷梅

(廣西機(jī)電職業(yè)技術(shù)學(xué)院廣西南寧530007)

 

線性預(yù)測(cè)分析是現(xiàn)代語(yǔ)音信號(hào)處理中最核心的技術(shù)之一,為現(xiàn)代語(yǔ)音信號(hào)處理的飛速發(fā)展立下了赫赫功勞,在語(yǔ)音分析、合成、編碼、識(shí)別等方面都有著廣泛的應(yīng)用,至今仍是最有效的語(yǔ)音分析技術(shù)之一。如VoIP和H.323網(wǎng)上多媒體通信系統(tǒng)中所使用的G.729 CS-ACELP語(yǔ)音編碼算法就是一種以共軛代數(shù)碼本激勵(lì)線性預(yù)測(cè)為基礎(chǔ)的高質(zhì)量的語(yǔ)音編碼標(biāo)準(zhǔn)。

 

1線性預(yù)測(cè)的基本原理

 

在語(yǔ)音信號(hào)處理中最常用的模型是全極點(diǎn)模型。線性預(yù)測(cè)所包含的基本概念是,通過(guò)使實(shí)際語(yǔ)音抽樣和線性預(yù)測(cè)抽樣之間差值的平方和達(dá)到最小值,即進(jìn)行最小均方誤差的逼近,能夠決定惟一的一組預(yù)測(cè)器系數(shù)。如果一個(gè)隨機(jī)過(guò)程用一個(gè)p階全極點(diǎn)系統(tǒng)受白噪聲激勵(lì)產(chǎn)生的輸出來(lái)模擬,設(shè)這個(gè)系統(tǒng)的傳遞函數(shù)為:

其中:p是預(yù)測(cè)器階數(shù);G是聲道濾波器增益。由此,語(yǔ)音抽樣s(n)和激勵(lì)信號(hào)e(n)之間的關(guān)系可用下列差分方程來(lái)表示:

即語(yǔ)音樣點(diǎn)間有相關(guān)性,可以用過(guò)去的樣點(diǎn)值預(yù)測(cè)未來(lái)樣點(diǎn)值。對(duì)于濁音,激勵(lì)e(n)是以基音周期重復(fù)的單位沖激;對(duì)于清音e(n)是平穩(wěn)白噪聲。

 

在模型參數(shù)估計(jì)過(guò)程中,把如下系統(tǒng)稱為線性預(yù)測(cè)器:

式中:ai稱為線性預(yù)測(cè)系數(shù)。從而,p階線性預(yù)測(cè)器的系統(tǒng)函數(shù)具有如下形式:

在式(1)中的A(z)稱作逆濾波器,基傳輸函數(shù)為:

而線性預(yù)測(cè)方程可以按如下方法得到:把某一幀內(nèi)的短時(shí)平均預(yù)測(cè)誤差定義為:

由此可計(jì)算出預(yù)測(cè)系數(shù)。

 

由于語(yǔ)音信號(hào)的短時(shí)平穩(wěn)性,要分幀處理(10~30 ms),對(duì)于一幀從n時(shí)刻開(kāi)窗選取的N個(gè)樣點(diǎn)的語(yǔ)音段s(n),記為Φn(j,i):

 

 

2 G.729中線性預(yù)測(cè)分析的基本原理

 

用10階線性預(yù)測(cè)(LP)作短時(shí)分析,LP合成濾波器定義為:

 

3在Matlab上實(shí)現(xiàn)線性預(yù)測(cè)

 

3.1加窗和自相關(guān)函數(shù)計(jì)算

 

G.729語(yǔ)音編碼算法大多是用C語(yǔ)言編程實(shí)現(xiàn)的,程序顯得格外冗長(zhǎng),有一定的局限性。由于Matlab在數(shù)據(jù)分析、自動(dòng)控制、數(shù)字信號(hào)處理、繪圖等方面具有強(qiáng)大的功能,為了直觀的表述,就運(yùn)用Matlab來(lái)實(shí)現(xiàn)線性預(yù)測(cè)分析這一部分的算法。

 

圖1給出了混合窗的示意圖,它由兩部分構(gòu)成,前半部分是1/2個(gè)哈明窗;后半部分是1/4余弦函數(shù):

式中:有5 ms(40個(gè)樣點(diǎn))來(lái)自下一幀,15 ms(120個(gè)樣點(diǎn))來(lái)自上一幀,當(dāng)前幀10 ms(80個(gè)樣點(diǎn))加窗過(guò)程如圖1所示。

 

得到加窗如圖2所示。

3.2LP系數(shù)的求取

 

求解線性預(yù)測(cè)濾波器系數(shù)ai,將使用到最經(jīng)典的Levinson-Durbin算法。該算法的步驟為:

 

上面各式中括號(hào)內(nèi)的上標(biāo)表示預(yù)測(cè)器的除數(shù)。步驟(1)~(4)可對(duì)I=1,2,…,P進(jìn)行遞推求解,其中:E為最小均方預(yù)測(cè)誤差;R為自相關(guān)系數(shù);k表示反射系數(shù),取值范圍為[-1,1];aij表示i階預(yù)測(cè)器的第j個(gè)系數(shù)。通過(guò)運(yùn)算發(fā)現(xiàn),其實(shí)在計(jì)算過(guò)程中,雖然目標(biāo)是計(jì)算一個(gè)p階線性預(yù)測(cè)器的全部系數(shù),但實(shí)際上在遞推過(guò)程中僅算出了所有除數(shù)低于p階線性預(yù)測(cè)器的全部系數(shù),同時(shí)計(jì)算出了最小預(yù)測(cè)誤差能量(遞推式中反射系數(shù)的取值范圍是保證系統(tǒng)H(z)穩(wěn)定性的充分必要條件,即多項(xiàng)式A(z)的全部根都落在單位圓內(nèi))。

 

從推導(dǎo)中得知,φn(j,i)的物理意義可以理解為sn的短時(shí)自相關(guān)函數(shù)。因此,它反映了語(yǔ)音波形的實(shí)際情況,即波形不同,值也不同。然而ai的取值由φn(j,i)決定,并隨φn(j,i)的改變而改變,因此也可以說(shuō)ai反映了語(yǔ)音波形的實(shí)際情況。

 

其Matlab描述如下:

4結(jié)語(yǔ)

 

線性預(yù)測(cè)在語(yǔ)音處理方面的應(yīng)用很廣泛,而用Matlab來(lái)實(shí)現(xiàn)可以很直觀地知道分析結(jié)果,為下一步將算法在DSP上的實(shí)現(xiàn)奠定基礎(chǔ)。目前,語(yǔ)音處理最普遍的就是使用到網(wǎng)絡(luò)上,而基于現(xiàn)代網(wǎng)絡(luò)VoIP使用到的語(yǔ)音編碼中G.729正是其中一種。它的出現(xiàn),使用戶能借助兩臺(tái)PC傳輸語(yǔ)音,也可以把PC上的語(yǔ)音轉(zhuǎn)到手機(jī)上,交互式游戲愛(ài)好者們相互之間還可以借助高科技控制器進(jìn)行交流。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。