摘 要: 首先根據切比雪夫多項式求根法對LPC系數到LSF系數轉換過程進行分析與推導,并給出了根據已知的LSF系數進行逆推求LPC系數迭代算法。然后,借助DDS算法原理實現查找表搜索求根,并在FPGA上實現了LSF系數到LPC系數轉換。最后,給出了結論和分析。
線性預測法(LPC)成功地應用于語音信號處理的各個方面,在語音參數的估計中也被廣泛地應用,如基音周期、共振峰頻率和譜特征分析等。線性預測的基本思想是:由于語音信號之間存在相關性的特點,可以用過去若干個語音采樣值或它們的線性組合近似表示當前語音采樣值。在LPC分析中,最普遍的方法是使用線譜頻率(LSF)表示LPC參量[1]。
LSF是頻域參數,具有良好的量化特性和內插特性,小系數的誤差引起濾波器的局部誤差,構成的合成濾波器有較好的穩定性[2]。10階的LPC系數的LSF參數成功地應用在低速率語音編碼器中,如混合激勵線性預測(MELP)聲碼器。近幾年,在語音信號處理中,LSF參數研究一直是熱點,參考文獻[3-4]對LSF參數量化方法進行分析與仿真,但由LPC系數與LSF系數相互轉換的研究少之又少。
伴隨語音技術的不斷發展,對語音信號數字化處理的實時性要求越發嚴格,專用的語音信號處理芯片能滿足語音信號實時性的要求,LPC與LSF轉換是專用語音處理芯片的關鍵模塊之一。MELP算法語音編碼過程中,首先,把經過帶寬擴展后的線性預測系數轉為LSF系數;其次,LSF參數按最小間隔排序;
最后,對排序后的LSF進行4級矢量量化。MELP算法解碼過程中,由內插的LSF參數計算合成濾波器的系數,得到合成濾波器,激勵信號經過合成濾波器得到合成語音。由于LSF參數的特性,保證了合成濾波器的穩定性[5]。LPC與LSF轉換算法的FPGA實現對語音編碼、語音合成等領域硬件實現至關重要。本文給出了LSF到LPC轉換運算推導,并給出了算法的實現步驟。
1 轉換算法原理
1.1 由LPC系數向LSF系數轉換
本文針對LPC系數計算LSF系數的Chebyshev多項式求解法進行研究:
P階線性預測濾波器函數為:
{ai}i=1,2,…,p為線性預測系數。預測系數ai在最小均方誤差準則下,由Durbin遞推算法求解自相關方程得到[6]。
LSF[7]作為LPC系數的等價表現形式,可通過求解p+1階對稱多項式P(z)和反對稱多項式Q(z)的共軛復根獲得。其中p+1階多項式表示如下:
可以證明,當A(z)的根位于單位圓內時,P(z)和 Q(z)的根沿著單位圓相互交替出現。當p是偶數時,則P(z)有一個根z=-1,Q(z)有一個根z=1;當p為奇數時,Q(z)有±1兩個實根。設P(z)的零點為e,設Q(z)的零點為e,則滿足:0
令Tm(x)=cos(mx),其中Tm(x)是m階的Chebyshev多項式。滿足關系式Tk(x)=2xTk-1(x)-Tk-2(x),初始條件為:T0(x)=1,T1(x)=x,則帶入式(6)、(7)得P(x)和Q(x):
P(x)=TM(x)+p1TM-1(x)+…+pM-1T1(x)+pM(8)
Q(x)=TM(x)+q1TM-1(x)+…+qM-1T1(x)+qM(9)
Chebyshev多項式求解法本質是求解x滿足區間[-1,1],求P(x)=0和Q(x)=0的根{xi},對應的LSF系數由?棕i=arccosxi確定。
1.2 由LSF系數向LPC系數轉換
在語音解碼過程中,需要把量化和內插后的LSF系數轉換回LPC系數{ai}i=1,2,…,p,逆向推導,已知內插的LSP系數fi,根據fi可計算出P′(z)和Q′(z)的系數p′i和q′i。
p′i=-2f2i-1p′i+2p′i-2 (10)
q′i=-2f2iq′i-1+2q′i-2 (11)
其中f2i-1=cos?棕2i-1,求出p′i和q′i。根據原來方程式對應關系:
P(z)=P′(z)×(1+z-1) (12)
Q(z)=Q′(z)×(1-z-1) (13)
最后得到LPC系數可由A(z)+P(z)+Q(z)/2得到參數ai。
2 FPGA實現架構
2.1 算法實現步驟
量化和內插后的LSP系數需要更換成LPC系數ai。已知量化和內插的LSP系數qi,i=0,1,…,p-1,根據前文推導,可以得到下面迭代公式:
for i=1 to p/2
p′(i)=-2q2i-1p′(i-1)+2p′(i-2)
for j=i-1 to 1
p′(j)=p′(j)-2q2i-1p′(j-1)+2p′(i-2)
end
end
公式中的qi=coswi,余弦是通過查找表方式求得的,迭代過程中的初始值p′(0)=1,p′(-1)=0。上面迭代公式給出的是p′(i)的求法,在求解q′(i)時將上面的迭代公式中的q2i-1換成q2i即可。
在求得p′(i)和q′(i)后就可以求得p(i)、q(i),求解公式如下:
p1(i)=p′(i)+p′(i-1),i=1,2,…,p/2q1(i)=q′(i)-q′(i-1),i=1,2,…,p/2(14)
最后得到LPC系數:
ai=0.5p1(i)+0.5q1(i), i=1,2,…,p/20.5p1(p+1-i)-0.5q1(p+1-i),i=1,2,…,p/2(15)
2.2 余弦信號發生器
FPGA實現LSP到LPC轉換是通過上文介紹的迭代算法來實現的。因為qi=coswi,迭代過程中qi的值是根據wi值來求出的。對于余弦的計算有很多方法,CORDIC旋轉是一種方法,查找表也是一種方法。CORDIC旋轉方法通過數學函數逼近的原理,每次旋轉一定的角度來得到余弦值,但是這種方法得到的精度和迭代的次數有關;
查找表方法是先將余弦值根據量化位數計算出來存在ROM中,每次計算是需要將數據進行量化然后去ROM中查找量化值所對應的余弦值,這種方法計算速度快,但是存在一定的量化誤差,會消耗一定存儲空間??紤]到實時性語言編解碼,本文的設計方案選擇的是查找表法,在每一輪計算中通過wi值查找ROM來得到qi,借助DDS算法原理[8],用相位累加器輸出的數據作為波形存儲器(ROM)的相位取樣地址,這樣就可以把存儲在波形存儲器內的波形抽樣值(二進制編碼)經查找表查出,完成相位到幅值的轉變。
憑借MATLAB軟件可以生成ROM中余弦波形的定點數值,共分3步完成。
(1)運用MATLAB計算出余弦波形浮點值,對其進行量化,生成定點數值。
(2)產生mif文件(Altera FPGA ROM初始化數據文件格式)。
(3)將mif文件導入到“getCos”ROM模塊中。
2.3 系統框架與結果分析
FPGA實現LSP到LPC轉換時主要是根據給定的wi(或者fi)系數通過反復迭代而得到LPC系數,圖1為迭代算法的流程圖。FPGA算法中一般采用計數器方式來實現for循環,算法中有兩個計數器cnt1和cnt2,它們分別用于決定算法中兩層循環,cnt1是標定系數個數,當完成P/2個系數迭代時系統給出計算結束標志,cnt2用來確定當前系數的迭代次數。地址發送器是用來確定LSP系數查詢地址,它是根據wi和當前cnt1值來決定數據的地址。這個地址所對應的ROM單元中讀出的余弦值就是當前迭代coswi值。迭代中設定初始值p′(0)=1,p′(-1)=0。
本文選取線性預測階數p=10,LSF系數到LPC系數算法FPGA實現頂層框圖如圖2所示,系統在start信號的上升沿開始加載wi,并將數據存儲在內部寄存器中,為LPC系數迭代做好準備。圖2模塊LSP2LP_Exloop,根據算法流程圖,在FPGA實現過程中,flage標識位用于指定當前運算是針對P還是Q的求解,因為P對應的是奇數序列,Q對應偶數序列,因為奇序列是相鄰兩項做和如式(12)所示,而偶數序列是相鄰兩項做差如式(13)所示。
當p_part和q_part兩個模塊完成迭代計算后,會給將各自的finish信號置為高電平,用以通知LSP2LPC_inter模塊合成ai系數。LSP2LPC_inter模塊在接收到p_part和q_part的finish信號后,同時將P和Q系數值載入并且根據式(15)所示計算過程完成P、Q到ai的合成,并將finish信號置為高電平。圖3為FPGA綜合報告,由此可見資源利用情況。
圖4為系統的Quartus II仿真報告,從報告中可以看出系統能準確地合成系數,這也說明了設計的可行性。
根據切比雪夫多項式求根法由LPC系數到LSF系數轉換過程進行分析與推導,根據已知的LSF系數進行逆推理求LPC系數,并給出了LSF到LPC系數轉換的實現步驟。借助DDS算法原理,實現查找表搜索求根,利用FPGA實現LSF系數到LPC系數轉換。與其他多項式相比較,Chebyshev多項式在較高的采樣率下,對線性預測階數要求不高,轉換性能影響不大。由于在0和π附近變化引起變化很小,可以得到高精度轉換參數值,時序測定時系統時鐘可以達到66 MHz。最后系統能準確地合成LPC系數,說明了設計的可行性,并為今后的設計提供了一定的參考價值。
參考文獻
[1] 方騰龍,趙曉群,韓笑蕾,等.語音清濁音差分LSF參數矢量量化方法[J].電聲技術,2010,34(11):61-64.
[2] 袁曉勇,唐建紅,曲志昱.基于Chebyshev法實現LPC與LSF相互轉換[J].信息技術,2009,5(79):229-231.
[3] 梁彥霞,楊家瑋,李燁,等.線譜頻率參數的快速,低存儲矢量量化[J].吉林大學學報:工學版,2012,42(1):223-227.
[4] 向波,唐昆,崔慧娟,等.基于DCT變換的LSF參數降維算法[J].通信技術,2008,41(8):204-206.
[5] 鮑長春.數字語音編碼原理[M].西安:西安電子科技大學出版社,2007.
[6] 張雪英.數字語音處理及MATLAB仿真[M].北京:電子工業出版社,2010.
[7] SOONG F, JUANG B. Line spectrum pair (LSP) and speech data compression[J]. Acoustics, Speech, and Signal Processing, IEEE International Conference on ICASSP′84. IEEE, 1984(9):37-40.
[8] 田耘,徐文波,張延偉,等.無線通信FPGA設計[M].北京:電子工業出版社,2008.
編輯:jq
-
FPGA
+關注
關注
1629文章
21743瀏覽量
603564 -
LPC
+關注
關注
8文章
136瀏覽量
77648 -
DDS
+關注
關注
21文章
634瀏覽量
152673 -
線譜
+關注
關注
0文章
3瀏覽量
6414
發布評論請先 登錄
相關推薦
評論