曰本美女∴一区二区特级A级黄色大片, 国产亚洲精品美女久久久久久2025, 页岩实心砖-高密市宏伟建材有限公司, 午夜小视频在线观看欧美日韩手机在线,国产人妻奶水一区二区,国产玉足,妺妺窝人体色WWW网站孕妇,色综合天天综合网中文伊,成人在线麻豆网观看

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于LPC與LSF系數(shù)轉(zhuǎn)換的FPGA實(shí)現(xiàn)

電子工程師 ? 來源:微型機(jī)與應(yīng)用第13期 ? 作者: 張 俏,楊 驍,湯 ? 2021-04-07 11:49 ? 次閱讀

摘 要: 首先根據(jù)切比雪夫多項(xiàng)式求根法對LPC系數(shù)到LSF系數(shù)轉(zhuǎn)換過程進(jìn)行分析與推導(dǎo),并給出了根據(jù)已知的LSF系數(shù)進(jìn)行逆推求LPC系數(shù)迭代算法。然后,借助DDS算法原理實(shí)現(xiàn)查找表搜索求根,并在FPGA上實(shí)現(xiàn)了LSF系數(shù)到LPC系數(shù)轉(zhuǎn)換。最后,給出了結(jié)論和分析。

線性預(yù)測法(LPC)成功地應(yīng)用于語音信號處理的各個方面,在語音參數(shù)的估計中也被廣泛地應(yīng)用,如基音周期、共振峰頻率和譜特征分析等。線性預(yù)測的基本思想是:由于語音信號之間存在相關(guān)性的特點(diǎn),可以用過去若干個語音采樣值或它們的線性組合近似表示當(dāng)前語音采樣值。在LPC分析中,最普遍的方法是使用線譜頻率(LSF)表示LPC參量[1]。

LSF是頻域參數(shù),具有良好的量化特性和內(nèi)插特性,小系數(shù)的誤差引起濾波器的局部誤差,構(gòu)成的合成濾波器有較好的穩(wěn)定性[2]。10階的LPC系數(shù)的LSF參數(shù)成功地應(yīng)用在低速率語音編碼器中,如混合激勵線性預(yù)測(MELP)聲碼器。近幾年,在語音信號處理中,LSF參數(shù)研究一直是熱點(diǎn),參考文獻(xiàn)[3-4]對LSF參數(shù)量化方法進(jìn)行分析與仿真,但由LPC系數(shù)與LSF系數(shù)相互轉(zhuǎn)換的研究少之又少。

伴隨語音技術(shù)的不斷發(fā)展,對語音信號數(shù)字化處理的實(shí)時性要求越發(fā)嚴(yán)格,專用的語音信號處理芯片能滿足語音信號實(shí)時性的要求,LPC與LSF轉(zhuǎn)換是專用語音處理芯片的關(guān)鍵模塊之一。MELP算法語音編碼過程中,首先,把經(jīng)過帶寬擴(kuò)展后的線性預(yù)測系數(shù)轉(zhuǎn)為LSF系數(shù);其次,LSF參數(shù)按最小間隔排序;

最后,對排序后的LSF進(jìn)行4級矢量量化。MELP算法解碼過程中,由內(nèi)插的LSF參數(shù)計算合成濾波器的系數(shù),得到合成濾波器,激勵信號經(jīng)過合成濾波器得到合成語音。由于LSF參數(shù)的特性,保證了合成濾波器的穩(wěn)定性[5]。LPC與LSF轉(zhuǎn)換算法的FPGA實(shí)現(xiàn)對語音編碼、語音合成等領(lǐng)域硬件實(shí)現(xiàn)至關(guān)重要。本文給出了LSF到LPC轉(zhuǎn)換運(yùn)算推導(dǎo),并給出了算法的實(shí)現(xiàn)步驟。

1 轉(zhuǎn)換算法原理

1.1 由LPC系數(shù)向LSF系數(shù)轉(zhuǎn)換

本文針對LPC系數(shù)計算LSF系數(shù)的Chebyshev多項(xiàng)式求解法進(jìn)行研究:

P階線性預(yù)測濾波器函數(shù)為:

A]6BL_VK2K~D2OX6_$F$YO4.png

{ai}i=1,2,…,p為線性預(yù)測系數(shù)。預(yù)測系數(shù)ai在最小均方誤差準(zhǔn)則下,由Durbin遞推算法求解自相關(guān)方程得到[6]。

LSF[7]作為LPC系數(shù)的等價表現(xiàn)形式,可通過求解p+1階對稱多項(xiàng)式P(z)和反對稱多項(xiàng)式Q(z)的共軛復(fù)根獲得。其中p+1階多項(xiàng)式表示如下:

可以證明,當(dāng)A(z)的根位于單位圓內(nèi)時,P(z)和 Q(z)的根沿著單位圓相互交替出現(xiàn)。當(dāng)p是偶數(shù)時,則P(z)有一個根z=-1,Q(z)有一個根z=1;當(dāng)p為奇數(shù)時,Q(z)有±1兩個實(shí)根。設(shè)P(z)的零點(diǎn)為e,設(shè)Q(z)的零點(diǎn)為e,則滿足:0

4567.jpg

令Tm(x)=cos(mx),其中Tm(x)是m階的Chebyshev多項(xiàng)式。滿足關(guān)系式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多項(xiàng)式求解法本質(zhì)是求解x滿足區(qū)間[-1,1],求P(x)=0和Q(x)=0的根{xi},對應(yīng)的LSF系數(shù)由?棕i=arccosxi確定。

1.2 由LSF系數(shù)向LPC系數(shù)轉(zhuǎn)換

在語音解碼過程中,需要把量化和內(nèi)插后的LSF系數(shù)轉(zhuǎn)換回LPC系數(shù){ai}i=1,2,…,p,逆向推導(dǎo),已知內(nèi)插的LSP系數(shù)fi,根據(jù)fi可計算出P′(z)和Q′(z)的系數(shù)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。根據(jù)原來方程式對應(yīng)關(guān)系:

P(z)=P′(z)×(1+z-1) (12)

Q(z)=Q′(z)×(1-z-1) (13)

最后得到LPC系數(shù)可由A(z)+P(z)+Q(z)/2得到參數(shù)ai。

2 FPGA實(shí)現(xiàn)架構(gòu)

2.1 算法實(shí)現(xiàn)步驟

量化和內(nèi)插后的LSP系數(shù)需要更換成LPC系數(shù)ai。已知量化和內(nèi)插的LSP系數(shù)qi,i=0,1,…,p-1,根據(jù)前文推導(dǎo),可以得到下面迭代公式:

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系數(shù):

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 余弦信號發(fā)生器

FPGA實(shí)現(xiàn)LSP到LPC轉(zhuǎn)換是通過上文介紹的迭代算法來實(shí)現(xiàn)的。因?yàn)閝i=coswi,迭代過程中qi的值是根據(jù)wi值來求出的。對于余弦的計算有很多方法,CORDIC旋轉(zhuǎn)是一種方法,查找表也是一種方法。CORDIC旋轉(zhuǎn)方法通過數(shù)學(xué)函數(shù)逼近的原理,每次旋轉(zhuǎn)一定的角度來得到余弦值,但是這種方法得到的精度和迭代的次數(shù)有關(guān);

查找表方法是先將余弦值根據(jù)量化位數(shù)計算出來存在ROM中,每次計算是需要將數(shù)據(jù)進(jìn)行量化然后去ROM中查找量化值所對應(yīng)的余弦值,這種方法計算速度快,但是存在一定的量化誤差,會消耗一定存儲空間??紤]到實(shí)時性語言編解碼,本文的設(shè)計方案選擇的是查找表法,在每一輪計算中通過wi值查找ROM來得到qi,借助DDS算法原理[8],用相位累加器輸出的數(shù)據(jù)作為波形存儲器(ROM)的相位取樣地址,這樣就可以把存儲在波形存儲器內(nèi)的波形抽樣值(二進(jìn)制編碼)經(jīng)查找表查出,完成相位到幅值的轉(zhuǎn)變。

憑借MATLAB軟件可以生成ROM中余弦波形的定點(diǎn)數(shù)值,共分3步完成。

(1)運(yùn)用MATLAB計算出余弦波形浮點(diǎn)值,對其進(jìn)行量化,生成定點(diǎn)數(shù)值。

(2)產(chǎn)生mif文件(Altera FPGA ROM初始化數(shù)據(jù)文件格式)。

(3)將mif文件導(dǎo)入到“getCos”ROM模塊中。

2.3 系統(tǒng)框架與結(jié)果分析

FPGA實(shí)現(xiàn)LSP到LPC轉(zhuǎn)換時主要是根據(jù)給定的wi(或者fi)系數(shù)通過反復(fù)迭代而得到LPC系數(shù),圖1為迭代算法的流程圖。FPGA算法中一般采用計數(shù)器方式來實(shí)現(xiàn)for循環(huán),算法中有兩個計數(shù)器cnt1和cnt2,它們分別用于決定算法中兩層循環(huán),cnt1是標(biāo)定系數(shù)個數(shù),當(dāng)完成P/2個系數(shù)迭代時系統(tǒng)給出計算結(jié)束標(biāo)志,cnt2用來確定當(dāng)前系數(shù)的迭代次數(shù)。地址發(fā)送器是用來確定LSP系數(shù)查詢地址,它是根據(jù)wi和當(dāng)前cnt1值來決定數(shù)據(jù)的地址。這個地址所對應(yīng)的ROM單元中讀出的余弦值就是當(dāng)前迭代coswi值。迭代中設(shè)定初始值p′(0)=1,p′(-1)=0。

001.jpg

本文選取線性預(yù)測階數(shù)p=10,LSF系數(shù)到LPC系數(shù)算法FPGA實(shí)現(xiàn)頂層框圖如圖2所示,系統(tǒng)在start信號的上升沿開始加載wi,并將數(shù)據(jù)存儲在內(nèi)部寄存器中,為LPC系數(shù)迭代做好準(zhǔn)備。圖2模塊LSP2LP_Exloop,根據(jù)算法流程圖,在FPGA實(shí)現(xiàn)過程中,flage標(biāo)識位用于指定當(dāng)前運(yùn)算是針對P還是Q的求解,因?yàn)镻對應(yīng)的是奇數(shù)序列,Q對應(yīng)偶數(shù)序列,因?yàn)槠嫘蛄惺窍噜弮身?xiàng)做和如式(12)所示,而偶數(shù)序列是相鄰兩項(xiàng)做差如式(13)所示。

當(dāng)p_part和q_part兩個模塊完成迭代計算后,會給將各自的finish信號置為高電平,用以通知LSP2LPC_inter模塊合成ai系數(shù)。LSP2LPC_inter模塊在接收到p_part和q_part的finish信號后,同時將P和Q系數(shù)值載入并且根據(jù)式(15)所示計算過程完成P、Q到ai的合成,并將finish信號置為高電平。圖3為FPGA綜合報告,由此可見資源利用情況。

002.jpg

003.jpg

004.jpg

圖4為系統(tǒng)的Quartus II仿真報告,從報告中可以看出系統(tǒng)能準(zhǔn)確地合成系數(shù),這也說明了設(shè)計的可行性。

根據(jù)切比雪夫多項(xiàng)式求根法由LPC系數(shù)到LSF系數(shù)轉(zhuǎn)換過程進(jìn)行分析與推導(dǎo),根據(jù)已知的LSF系數(shù)進(jìn)行逆推理求LPC系數(shù),并給出了LSF到LPC系數(shù)轉(zhuǎn)換的實(shí)現(xiàn)步驟。借助DDS算法原理,實(shí)現(xiàn)查找表搜索求根,利用FPGA實(shí)現(xiàn)LSF系數(shù)到LPC系數(shù)轉(zhuǎn)換。與其他多項(xiàng)式相比較,Chebyshev多項(xiàng)式在較高的采樣率下,對線性預(yù)測階數(shù)要求不高,轉(zhuǎn)換性能影響不大。由于在0和π附近變化引起變化很小,可以得到高精度轉(zhuǎn)換參數(shù)值,時序測定時系統(tǒng)時鐘可以達(dá)到66 MHz。最后系統(tǒng)能準(zhǔn)確地合成LPC系數(shù),說明了設(shè)計的可行性,并為今后的設(shè)計提供了一定的參考價值。

參考文獻(xiàn)

[1] 方騰龍,趙曉群,韓笑蕾,等.語音清濁音差分LSF參數(shù)矢量量化方法[J].電聲技術(shù),2010,34(11):61-64.

[2] 袁曉勇,唐建紅,曲志昱.基于Chebyshev法實(shí)現(xiàn)LPC與LSF相互轉(zhuǎn)換[J].信息技術(shù),2009,5(79):229-231.

[3] 梁彥霞,楊家瑋,李燁,等.線譜頻率參數(shù)的快速,低存儲矢量量化[J].吉林大學(xué)學(xué)報:工學(xué)版,2012,42(1):223-227.

[4] 向波,唐昆,崔慧娟,等.基于DCT變換的LSF參數(shù)降維算法[J].通信技術(shù),2008,41(8):204-206.

[5] 鮑長春.數(shù)字語音編碼原理[M].西安:西安電子科技大學(xué)出版社,2007.

[6] 張雪英.數(shù)字語音處理及MATLAB仿真[M].北京:電子工業(yè)出版社,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設(shè)計[M].北京:電子工業(yè)出版社,2008.

編輯:jq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1643

    文章

    21925

    瀏覽量

    612616
  • LPC
    LPC
    +關(guān)注

    關(guān)注

    8

    文章

    137

    瀏覽量

    78141
  • DDS
    DDS
    +關(guān)注

    關(guān)注

    22

    文章

    670

    瀏覽量

    153855
  • 線譜
    +關(guān)注

    關(guān)注

    0

    文章

    3

    瀏覽量

    6470
收藏 人收藏

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    請問lsf0108能用在三態(tài)總線上嗎?

    芯片輸出高阻態(tài)相當(dāng)于LSF0108輸入端斷路,或者說是懸空狀態(tài),我覺得LSF0108的狀態(tài)不會是高阻
    發(fā)表于 01-10 06:49

    LSF0108RKSR和LSF0240DRGYR中間大裸露焊盤可以接地嗎?

    LSF0108RKSR和LSF0240DRGYR兩個芯片的中間大裸露焊盤可以接地嗎?芯片資料上沒寫是否可行,按照我的經(jīng)驗(yàn)是可行,不過還是找TI的工程師來確認(rèn)下,怕畫電路圖出問題
    發(fā)表于 01-03 07:00

    LSF010X是否帶有自動方向感測?能否轉(zhuǎn)換5MHz到200MHz的信號?

    LSF010X是否帶有自動方向感測?能否轉(zhuǎn)換5MHz到200MHz的信號?看到數(shù)據(jù)手冊中提到支持高速轉(zhuǎn)換,但不知道能高到哪個范圍。數(shù)據(jù)手冊中也有在50MHz時,1.8 to 3.3v的轉(zhuǎn)換
    發(fā)表于 01-02 08:32

    LSF0108電平轉(zhuǎn)化后發(fā)生信號失真的情況,怎么處理?

    我們在用TI level shift LSF0108時,發(fā)現(xiàn)有電平轉(zhuǎn)化后發(fā)生信號失真的情況。信號主要是多音頻的i2S信號進(jìn)行由1.8V電平到3.3V電平的轉(zhuǎn)換: clk信號,ch1(黃色)為輸入
    發(fā)表于 12-27 07:23

    LSF010X與TXB010X系列有什么區(qū)別?

    請問,LSF010X與TXB010X系列有什么區(qū)別?用在uart與spi時,那個更適合
    發(fā)表于 12-25 06:22

    LSF010XEVM-001用戶指南

    電子發(fā)燒友網(wǎng)站提供《LSF010XEVM-001用戶指南.pdf》資料免費(fèi)下載
    發(fā)表于 12-23 15:47 ?0次下載
    <b class='flag-5'>LSF</b>010XEVM-001用戶指南

    LSF0108的1.8V參考電平異常的原因?怎么解決?

    LSF0108的1.8V使用的是TLV70218,3.3V使用的是1117-3.3 原理如下圖所示 測試1.8V這端始終是2.5V。斷開A端的這個1.8V,單獨(dú)測試TLV70218的1.8V
    發(fā)表于 12-19 06:37

    請問LSF0108輸入電壓是多少?輸出電壓是多少?

    我使用LSF0108用于將FPGA產(chǎn)生 的3.3VPWM轉(zhuǎn)換為5V,使用的電路如下圖所示: 現(xiàn)在我直接給PWM_out_1A即LSF0108的三腳一個持續(xù)的3.3V高電平,在B1處
    發(fā)表于 12-17 07:34

    LSF0108說Vref_B和VEN的電壓最好高于Vref_A電壓1V,那么2.5V和3.3V電壓差0.8V 能不能用?

    LSF0108雙向電平轉(zhuǎn)換2.5V和3.3V的之間的轉(zhuǎn)換,看到了如下解釋 芯片介紹說Vref_B和VEN的電壓最好高于Vref_A電壓1V,那么2.5V和3.3V電壓差0.8V能不能用?
    發(fā)表于 12-13 16:51

    LSF0108將MCU板輸出3.3V的13.5MHz clock 轉(zhuǎn)換成5V,加上上拉電阻輸出端的波形低電平也被拉高了怎么解決?

    請教一下 我們現(xiàn)在用LSF0108這款芯片將MCU板輸出3.3V的13.5MHz clock 轉(zhuǎn)換成5V,參考DS的電路,加上上拉電阻 輸出端的波形低電平也被拉高了 請問怎么解決?謝謝
    發(fā)表于 12-11 08:11

    請問LSF0102可否多個串聯(lián)使用?

    如題。例如將兩個LSF0102的B-port相連,進(jìn)而實(shí)現(xiàn)從一個A-port到另一個A-port的無限制電平轉(zhuǎn)換。
    發(fā)表于 12-11 08:00

    LSF0102輸入輸出低電平異常的原因?

    請問這個LSF0102的電平轉(zhuǎn)換器,當(dāng)輸入端接0.7V低電壓時輸出側(cè)是怎樣的輸出值呢? 為什么我測到的輸出側(cè)0.7V,而不是GND的電平呢? 下圖中,我們在B2端口拉0.7V,從A2端口測到的電壓也是0.7V;在B2加1V,在A2口測到的也是1V。為何不是GND 低電平
    發(fā)表于 12-11 07:26

    電平轉(zhuǎn)換芯片LSF0108一直為高電平是怎么回事?

    用了兩款TI的轉(zhuǎn)換芯片,一款是TXS0108E轉(zhuǎn)換芯片,工作正常。另一片是LSF0108轉(zhuǎn)換2.5v到3.3v,現(xiàn)在測試LSF0108時,
    發(fā)表于 12-11 06:10

    請問LSF0108是否可以應(yīng)用在LOCAL BUS的場景?

    需要將FPGA輸出的1.2V localbus信號轉(zhuǎn)換成3.3V,LSF0108是否可以應(yīng)用,或者還有沒有其他的方案?
    發(fā)表于 12-03 08:37

    使用LSF系列進(jìn)行電壓電平轉(zhuǎn)換

    電子發(fā)燒友網(wǎng)站提供《使用LSF系列進(jìn)行電壓電平轉(zhuǎn)換.pdf》資料免費(fèi)下載
    發(fā)表于 10-08 10:24 ?0次下載
    使用<b class='flag-5'>LSF</b>系列進(jìn)行電壓電平<b class='flag-5'>轉(zhuǎn)換</b>