|
|||||||||||
| 技術交流 | 電路欣賞 | 工控天地 | 數字廣電 | 通信技術 | 電源技術 | 測控之家 | EMC技術 | ARM技術 | EDA技術 | PCB技術 | 嵌入式系統 驅動編程 | 集成電路 | 器件替換 | 模擬技術 | 新手園地 | 單 片 機 | DSP技術 | MCU技術 | IC 設計 | IC 產業(yè) | CAN-bus/DeviceNe |
請教FIR濾波器設計 |
| 作者:nxy825715 欄目:DSP技術 |
現在我已經設計好了一個帶通濾波器,也得到了濾波器系數, 請問:怎樣將濾波器系數從MATLAB中導出來??? 由于MATLAB中的系數是浮點型的,但我想要的是定點型的. 請問:怎么樣設置(操作)才能將浮點型的系數轉換成定點型系數?? 先謝了... |
| 2樓: | >>參與討論 |
| 作者: 小研究 于 2007/3/20 8:54:00 發(fā)布:
濾波器的系數通常并不多 濾波器的系數通常并不多,即使手寫也很快的,你可以在主窗口中顯示然后復制過來。 至于定點化也很簡單,我用的方法是乘以32768,然后四舍五入,再除以32768即可。 |
|
| 3樓: | >>參與討論 |
| 作者: nxy825715 于 2007/3/20 9:07:00 發(fā)布:
Re: 請問小研究: 乘以32768 : 是濾波器系數乘以32768嗎? 除以32768 : 是濾波器的輸出除以32768嗎? 還望請回復. 先謝謝了... |
|
| 4樓: | >>參與討論 |
| 作者: 小研究 于 2007/3/20 9:27:00 發(fā)布:
我說的是16位定點DSP 你仿真得到的系數,乘以32768后四舍五入,之后的結果再乘以32768。 |
|
| 5樓: | >>參與討論 |
| 作者: 小研究 于 2007/3/20 11:09:00 發(fā)布:
這可是我自創(chuàng)的辦法,樓主將來要請客啊,哈哈 |
|
| 6樓: | >>參與討論 |
| 作者: nxy825715 于 2007/3/21 10:07:00 發(fā)布:
我已經搞定了 但還是要謝謝"小研究",有機會一定請你! 如果使用軟件設計的方法,那么可能需要你的那種方法. 現在我使用FDATOOL設計,然后將系數導出為 有符號的16位定點數據. |
|
| 7樓: | >>參與討論 |
| 作者: nxy825715 于 2007/3/21 13:52:00 發(fā)布:
Re: 請問"小研究": 你使用過C54xx系列的DSPLIB中的FIR函數嗎? 我在MATLAB中設計的低通濾波器(經過了Smulink的仿真),但在C5402的開發(fā)中這個濾波器達不到濾波效果(我已經參考了DSPLIB中FIR函數的使用,我設計的低通濾波器是0 -- 10000Hz,我輸入15K Hz,濾波器后這個15K Hz的信號依然存在). 若你使用過,可否發(fā)一個例子給我呢,謝謝了. |
|
| 8樓: | >>參與討論 |
| 作者: nxy825715 于 2007/3/21 16:01:00 發(fā)布:
Re: 我已經調試通過了, 是以為濾波器發(fā)生了益出. |
|
| 9樓: | >>參與討論 |
| 作者: nxy825715 于 2007/3/22 10:07:00 發(fā)布:
Re: "小研究":我解決了濾波器益出的問題,但是還是不能達到濾波器的效果. 先我附上我的程序,還請指點: /* ********************************************************************* **函數原型: void FirLowPassPrg(SHORT *Input, SHORT *Coefs, SHORT *OUTPUT) **參數說明: Input : 輸入數據 Coefs :濾波器系數 OUTPUT:濾波輸出數據 DBUFLEN: 128 LpfCoefsLen: 濾波器系數個數 51 **返回值: 無 **說明: Low pass FILTER (0 -- 10K Hz) ********************************************************************* */ void FirLowPassPrg(SHORT *Input, SHORT *Coefs, SHORT *OUTPUT) { uSHORT i, n; // 由于直接進行1024個點的FIR濾波,則導致溢出 // 所以將1024個點的FIR濾波分解成128次的8個點的濾波 for (n = 0; n < 128; n++) { for (i = 0; i < DBUFLEN; i++) { // Clear Delay buffer (must) DbBuffer[i] = 0x00; } dbptr = &DbBuffer[0]; fir(&Input[n * (NX / 128)], Coefs, &OUTPUT[n * (NX / 128)], &dbptr, LpfCoefsLen, (NX / 128)); } // 將濾波后的數據再次存放到Input[]中 for (i = 0; i < NX; i++) { Input[i] = OUTPUT[i]; } } |
|
| 10樓: | >>參與討論 |
| 作者: 雪梅y 于 2007/3/24 9:23:00 發(fā)布:
請教關于用DSP設計低通數字濾波器 請問截止頻率為2KHZ,它的通帶頻率最好為多少 其他參數設置為多少 還有用什么窗函數簡單點 |
|
| 11樓: | >>參與討論 |
| 作者: nxy825715 于 2007/3/24 17:23:00 發(fā)布:
個人見解: 它的通帶頻率最好為多少: 答:這個要根據你的系統來確定.濾波器級數越高,則通帶越窄. 其他參數設置為多少: 答:仔細看看FIR或者IIR的講解.審查你的系統需要濾波器達到怎么樣的精度. 還有用什么窗函數簡單點: 答:不同的窗函數會導致不同的通帶紋波幅度,及最小衰減幅度. |
|
| 12樓: | >>參與討論 |
| 作者: 雪梅y 于 2007/3/25 9:10:00 發(fā)布:
請教 謝謝 那請問用漢寧窗設計一個音頻低通FIR 它的截止頻率為2KHZ那其他參數怎么設置呢 謝謝 |
|
| 13樓: | >>參與討論 |
| 作者: 小研究 于 2007/3/27 14:32:00 發(fā)布:
回nxy825715 我是搞ADSP-21XX的,TI的54系列只看過,沒用過,你提供的程序倒是可以看看。 |
|
| 14樓: | >>參與討論 |
| 作者: 小研究 于 2007/3/27 14:52:00 發(fā)布:
回雪梅y 其實nxy825715說的差不多,關鍵是看你的技術指標。比如你的截止頻率是2K,那么你用B=fir1(N,W)時,你的N值越大,實際得到的W越接近于2K,而且?guī)ё璨糠炙p越快。 這些日子在忙著找工作,好久沒來了。 |
|
| 15樓: | >>參與討論 |
| 作者: nxy825715 于 2007/3/27 16:04:00 發(fā)布:
Re: |
|
| 16樓: | >>參與討論 |
| 作者: nxy825715 于 2007/3/27 16:07:00 發(fā)布:
Re: 不管怎么樣,還是要多謝"小研究"的熱心回答... 請問,誰使用過C54x 的DSPLIB庫中的FIR函數呀, 我現在就是使用這個函數進行濾波的,但是出先了問題, 如果誰使用過,還請麻煩閣下發(fā)一份,給在下點提示... 先謝謝了... |
|
| 17樓: | >>參與討論 |
| 作者: 小研究 于 2007/3/27 20:43:00 發(fā)布:
回nxy825715 你居然用了1024個點,什么濾波居然用這么高的階數? 能否把你的系數發(fā)來,我給你仿真一下,看是否可以仿真通過? |
|
| 18樓: | >>參與討論 |
| 作者: nxy825715 于 2007/3/28 8:33:00 發(fā)布:
Re: 回小研究: 我的系數是51個,采樣的數據是1024個. |
|
| 19樓: | >>參與討論 |
| 作者: xiaoli 于 2009/12/5 20:22:21 發(fā)布:
你好,我的輸入信號是聲音信號,如果知道截止頻率和采樣頻率,用[n,Wn,beta,ftype]=kaiserord(f,a,dev,fs)可以計算要設計的濾波器的階數么? |
|
| 20樓: | >>參與討論 |
| 作者: sy 于 2010/11/18 16:01:37 發(fā)布:
for (n = 0; n < 128; n++) { 為什么循環(huán)128次,而不是8次. |
|
|
|
| 免費注冊為維庫電子開發(fā)網會員,參與電子工程師社區(qū)討論,點此進入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |