作者bxxl (bool)
看板comm_and_RF
標題Re: [問題] 關於FIR filter改進的polyphase 架構問題
時間Wed Oct 9 23:29:46 2013
※ 引述《PanzerVOR (武運長久)》之銘言:
: 小弟要進行FIR濾波器的硬體實現(verilog)
: 因為抑制的db達到80db,係數多達144階,所以要進行利用poly phase架構的改進
: 看了下列的網路文章
: http://ppt.cc/e~~T
: 介紹了在一個8tep的fir filter拆成4x2的濾波器架構,
: 在初步的polyphase架構在資料進入的時候用邏輯電路去做一個旋轉開關,
: 但是仔細想想用手去推倒輸出結果又不是正確的答案,
: 裡面的架構圖又只有4x2係數的block,不知道詳細的電路圖,
: 請問有沒有關於polyphase filter的詳細電路圖呢?
: 最好有詳細到暫存器與係數乘法器的位置,拜託各位大大,
: 小弟看了很多網路的paper還是不太知道詳細架構圖。
首先要了解它的使用條件:
這東西會有好處,必須建立在你有up-sample/down-sample的情況.
也就是說filter本身要能當作up-sample/down-sample filter,
滿足anti-alias的條件.
比如說你要up/down sample N倍, 你的訊號頻寬要先濾到剩下1/N
其次要了解它的原理:
其實沒什麼神奇的, 就是"只做必要的計算"而已.
如果你是upsample, input sequence中間會先插進一些0,
再通過FIR, 對FIR來說, 知道那些0在什麼位置就不必花硬體去算它們.
比如說你有50個tap, input upsample 5倍,
FIR的input就只有1/5需要運算. 所以雖然你有50個tap,
實際上每個cycle只有10個tap會用到.
如果是downsample, 則是輸出值有些地方就不用算.
比如說output downsample 5倍
你只要輸出本來的fir_out[n],n = 0,5,10,...
所以並不需要把 n=1,2,3,4的值先算出來再丟掉,
而是把本來n=0要進行的運算,分配到5個cycle去.
細節可以去看一些filter-bank或multi-rate signal processing的書
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.160.217.170
1F:推 PanzerVOR:感謝,小弟在此濾波器的前一級模組就是140.115.152.116 10/10 00:11
2F:→ PanzerVOR:升取,升取7倍,中間夾六個0<140.115.152.116 10/10 00:12
3F:→ PanzerVOR:我在去仔細去了解一下POLYPHASE的精髓140.115.152.116 10/10 00:13