|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
FIR濾波器達(dá)不濾波要求,求助中... |
| 作者:nxy825715 欄目:DSP技術(shù) |
本人設(shè)計(jì)了一個(gè)FIR濾波器, fs = 44100; fc = 4000; 加kaiser窗 在MATLAB中的命令如下: [n, Wn, beta, ftype] = kaiserord([3000, 5000], [1, 0], [0.01, 0.001], 44100) 得到n和beta 然后使用fdatool工具進(jìn)行設(shè)計(jì)得到16為有符號的系數(shù)(Q15). 在CCS5000(DSP為VC5402)上進(jìn)行仿真時(shí),只能完全的濾除10K頻率以上的信號, 但是在MATLAB上仿真時(shí)卻能夠?yàn)V除5.5K頻率以上的信號. 請問各個(gè)做過的或者高手們指點(diǎn)指點(diǎn)... 這個(gè)問題已經(jīng)困擾了幾天了,實(shí)在是沒有辦法才打擾大家. 我的程序如下: 其中: NX = 1024; NL = 81; dbptr 指針已經(jīng)定義為 SHORT 型. fir函數(shù)為C54x dsplib中的函數(shù). 輸入/輸出數(shù)組的長度均為1024. 濾波器系數(shù)的長度和延時(shí)緩沖區(qū)的長度均為81. void FirLowPassPrg(SHORT *Input, SHORT *Coefs, SHORT *OUTPUT) { uSHORT i, n; for (i = 0; i < NX; i++) FILTEROut[i] = 0x00; // Clear FILTER OUTPUT for (i = 0; i < NL; i++) DbBuffer[i] = 0x00; // Clear Delay buffer (must) dbptr = &DbBuffer[0]; NOP5(); NOP5(); NOP5(); for (n = 0; n < 16; n += 2) { fir(&Input[n * 64], Coefs, &OUTPUT[n * 64], &dbptr, NL, 64); fir(&Input[(n + 1) * 64], Coefs, &OUTPUT[(n + 1) * 64], &dbptr, NL, 64); } // 將濾波后的數(shù)據(jù)再次存放到AUDIO[]中 for (i = 0; i < NX; i++) { Input[i] = OUTPUT[i]; } } CMD文件中 濾波器系數(shù)和延時(shí)緩沖區(qū)DbBuffer均已經(jīng)進(jìn)行256對齊. |
| 2樓: | >>參與討論 |
| 作者: nxy825715 于 2007/3/28 16:46:00 發(fā)布:
個(gè)人見解: 這里的高手都跑到哪里去了呀?? 都是些娃娃兵在打來打去的 |
|
|
|
| 免費(fèi)注冊為維庫電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |