freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

dsp課程設(shè)計報告_自動化0804_姚笑菲-文庫吧

2025-03-08 00:26 本頁面


【正文】 可通過設(shè)置時間的延遲,將過去的信號衰減加到現(xiàn)在的信號上,以產(chǎn)生回波。這次實(shí)驗(yàn)我們的回聲信號定義為語音信號的延遲再進(jìn)行適當(dāng)?shù)乃p。即將麥克輸入的語音信號疊加上述麥克輸入語音信號的延時衰減后的信號,用此混合信號模擬真實(shí)的回波信號。因此回聲通道的傳輸函數(shù)為:其中S為衰減,M為延遲點(diǎn)數(shù)。聽到的回波是混合信號,此時不僅能聽到自己的聲音,也能聽到幾個衰減后疊加的回聲,該回聲為近端輸入的延遲和衰減?;夭óa(chǎn)生程序如下:while (!MCBSP_RRDY(HANDSET_CODEC)) {}。 //codec句柄如未準(zhǔn)備好則等待dk = *(volatile u16*)DRR1_ADDR(HANDSET_CODEC)。 //從ADC讀數(shù)bf[i]=dk。 //放入緩沖區(qū)if(i==10000) i=0。 *(volatile u16*)DXR1_ADDR(HANDSET_CODEC) = dk+bf[i+1]/2。 //延遲+衰減利用自適應(yīng)濾波實(shí)現(xiàn)回波對消聲學(xué)回聲消除的功能原理框圖如下圖所示:其基本原理可概括為,自適應(yīng)地合成回聲,并從有回聲干擾地信號中減去該合成回聲。一般回聲消除算法通過自適應(yīng)濾波來完成,其基本原理如下圖所示:其中,遠(yuǎn)端信號x(k)通過回聲信道h產(chǎn)生回聲y(k),近端信號d(k)是由回聲y(k)和近端聲音信號(可包含噪聲信號)得到。通過使用M抽頭的FIR自適應(yīng)濾波器來模擬回聲信道h,可以使所得y(k)通近回聲信號,進(jìn)而達(dá)到回聲消除的目的由此可見,回聲消除的關(guān)鍵是自適應(yīng)地調(diào)整使其通近h,可通過現(xiàn)有的各種自適應(yīng)濾波算法實(shí)現(xiàn)。這個實(shí)驗(yàn)采用的LMS算法,即最小均方誤差算法設(shè)計的自適應(yīng)濾波器進(jìn)行未知系統(tǒng)識別,以將回聲信號濾除。該自適應(yīng)濾波器是FIR橫向?yàn)V波器,可以根據(jù)輸出自動修改濾波器的權(quán)系數(shù),從而逼近未知系統(tǒng)回聲通道。算法的實(shí)現(xiàn)基于TMS320C5402DSP芯片和CCS系統(tǒng)的C語言。 遠(yuǎn)端的信號通過回聲通道產(chǎn)生回聲信號d(n),該信號一般為遠(yuǎn)端信號的衰減和延遲。遠(yuǎn)端信號通過自適應(yīng)濾波器產(chǎn)生回聲預(yù)測信號y(n)。在k時刻,它們之差為剩余回聲信號:用它來控制LMS自適應(yīng)濾波器的系數(shù)ω(n)其中μ為自適應(yīng)步長因子,一般取0μ1,可視為常數(shù),k時刻濾波器的輸出為:以上三個方程是LMS最小均方誤差算法的核心方程,也是C語言編程的依據(jù)。LMS的算法流程圖如下:結(jié)束開始送入信號dk求回聲預(yù)測信號yk求剩余的求自適應(yīng)步長u更新濾波器系數(shù)ωdk的值送入in(n)五、用C語言實(shí)現(xiàn)LMS算法由C語言實(shí)現(xiàn)LMS算法的C語言程序如下所示:double lms (double w[],double x[],double dk,double ek) //移植到CCS中的lms算法{ s16 i。 double uek,yk。 yk=0。 for(i=0。iN。++i) { yk=yk+w[i]*x[i]。 } ek=dkyk。 uek=2*mu*ek。 for(i=0。iN。i++) { w[i]=w[i]+uek*x[i]。 } return(ek)。}然而算法的效率與濾波器的長度有關(guān),因此應(yīng)當(dāng)適當(dāng)減小濾波器的長度;同時也應(yīng)該適當(dāng)?shù)奶岣逨IR濾波器的階數(shù)。同時替換原有的LMS算法的C語言實(shí)現(xiàn)程序,更換為CCS的diplib庫中的函數(shù)short dlms(PARAM)取代自定的lms()函數(shù),同時用dsplib庫里的函數(shù)short fir(PARAM)產(chǎn)生回聲通道的輸出信號(也就是用預(yù)定階數(shù)的FIR濾波器模擬回聲通道),該輸出信號作為自適應(yīng)濾波器的理想輸出信號,對之進(jìn)行逼近進(jìn)而得到預(yù)定結(jié)果。Dsplib庫中的dlsm函數(shù)和fir函數(shù)的子程序:,路徑:C:\ti\c5400\dsplib\EXAMPLES\DLMS//*****************************************************************************// Filename: // Version: // Description: test for dlms routine//*****************************************************************************include include include include short i。short eflagr= PASS。short eflagh= PASS。void main(void){ /* clear */ for (i=0。iNH。i++) h[i] =0。 // clear coeff buffer (optional) for (i=0。iNX。i++) r[i] =0。 // clear output buffer (optional) for (i=0。 iNH。 i++) dbuffer[i] = 0。 // clear delay buffer (a must) /* pute */ dlms(x,h,r,amp。dp,des,STEP, NH, NX)。 /* test */ eflagr = test(r, rtest, NX, MAXERROR)。 // for r eflagh = test(h, htest, NH, MAXERROR)。 // for h if (eflagr != PASS) { exit(1)。 } if (eflagh != PASS) { exit(1)。 } return。},路徑:C:\ti\c5400\dsplib\EXAMPLES\FIR//*****************************************************************************// Filename: // Version: // Description: test for fir routine//*****************************************************************************include include include include short i。short eflag1= PASS。short eflag2= PASS。DATA *dbptr = amp。db[0]。void main(void){ /* 1. Test for singlebuffer */ /* clear */ for (i=0。 iNX。 i++) r[i] = 0。 // clear output buffer (optional) for (i=0。 iNH。 i++) db[i] = 0。 // clear delay buffer (a must) /* pute */ fir(x, h, r, amp。dbptr, NH, NX)。 /* test */ eflag1 = test (r, rtest, NX, MAXERROR)。 /* 2. Tests for dualbuffer */ /* clear */ for (i=0。 iNX。 i++) r[i] = 0。 // clear output buffer (optional) for (i=0。 iNH。 i++) db[i] = 0。 // clear delay buffer (a must) dbptr = amp。db[0]。 /* pute */ if (NX=4) { fir(x, h, r, amp。dbptr, NH, NX/4)。 fir(amp。x[NX/4], h, amp。r[NX/4], amp。dbptr, NH, NX/4)。 fir(amp。x[2*NX/4], h, amp。r[2*NX/4], amp。dbptr, NH, NX/4)。 fir(amp。x[3*NX/4], h, amp。r[3*NX/4], amp。dbptr, NH, NX/4)。 } /* test */ eflag2 = test (r, rtest, NX, MAXERROR)。 if (eflag1 != PASS) { exit(1)。 } if (eflag2 != PASS) { exit(2)。 } return。}這兩個函數(shù)是用C5000匯編語言編寫的,具有很高的執(zhí)行效率,使用這個函數(shù)可以大大提高運(yùn)算速度,以解決用C語言編寫的程序效率不能滿足要求的問題。,其使用方法如下:short oflag = dlms (DATA *x, DATA *h, DATA *r, DATA **d, DATA *des, DATA step, ushort nh, ushort nx)其C子函數(shù)定義的各個變量的意義如下表所示: oflag溢出錯誤標(biāo)志,為1時在計算過程中發(fā)生了數(shù)據(jù)溢出;為0時無數(shù)據(jù)溢出。x輸入信號數(shù)組h自適應(yīng)濾波器系數(shù)矢量r輸出數(shù)組d延遲緩沖區(qū),用來存放上一時刻的輸出數(shù)據(jù)des理想輸出信號數(shù)組step為了適應(yīng)DSP定點(diǎn)數(shù)的運(yùn)算一般取STEP為327nx向量x中的個數(shù)nh系數(shù)的個數(shù)注意:h和d的存儲地址要求起點(diǎn)必須位于Kbit邊界處,即起始地址值的最低有效位必須是0,必須在CMD文件中開辟對齊1K邊界的空間,并且只能在頭文件中進(jìn)行段的配置。否則編譯無法通過。同理,:oflag = short fir (DATA *x, DATA *h, DATA *r, DATA **dbuffer, ushort nh, ushort nx)oflag溢出錯誤標(biāo)志,為1時在計算過程中發(fā)生了數(shù)據(jù)溢出;為0時無數(shù)據(jù)溢出。x輸入信號數(shù)組hFIR濾波器的系數(shù)矢量,也是要逼近的對象r輸出數(shù)組d延遲緩沖區(qū),用來存放上一時刻的輸出數(shù)據(jù)nx向量x中的個數(shù)nh系數(shù)的個數(shù)注意:h、d的地址要求同dlms()函數(shù)中的h、d參數(shù)。DATA
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1