作者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