Forums

polyphase filtering

Started by jith...@yahoo.com May 26, 2004
hi..
This is my 1st mail to this group. I am trying to do a polyphase
filter bank in dsp and thn get it into FPGA.. this is not for
decimation or interpolation. This is mainly done for radio telescope
back end in which we need 4 or 8 small channels from a big IF coming
in. Can any one help me to find wht exactly is polyphase filter. ie
whether the filters in the bank is linked with each other by any
chance and also wht exactly is the fft at the end of the polyphase
filter used for .. i got this bolck diagram from " Filter Design
Toolbox" document from matlab.
Hope to hear from you soon.
jithin_manesh@yahoo.com (jithin_manesh@yahoo.com) wrote in message news:<692a297a.0405252020.7810ff6e@posting.google.com>...
> hi.. > This is my 1st mail to this group. I am trying to do a polyphase > filter bank in dsp and thn get it into FPGA.. this is not for > decimation or interpolation. This is mainly done for radio telescope > back end in which we need 4 or 8 small channels from a big IF coming > in. Can any one help me to find wht exactly is polyphase filter. ie > whether the filters in the bank is linked with each other by any > chance and also wht exactly is the fft at the end of the polyphase > filter used for .. i got this bolck diagram from " Filter Design > Toolbox" document from matlab. > Hope to hear from you soon.
If you don't know what it is, how can you possibly implement it? This is utterly basic multirate DSP. Please consult any basic reference on the subject. - Jack
<jithin_manesh@yahoo.com> wrote in message
news:692a297a.0405252020.7810ff6e@posting.google.com...
> hi.. > This is my 1st mail to this group. I am trying to do a polyphase > filter bank in dsp and thn get it into FPGA.. this is not for > decimation or interpolation. This is mainly done for radio telescope > back end in which we need 4 or 8 small channels from a big IF coming > in. Can any one help me to find wht exactly is polyphase filter. ie > whether the filters in the bank is linked with each other by any > chance and also wht exactly is the fft at the end of the polyphase > filter used for .. i got this bolck diagram from " Filter Design > Toolbox" document from matlab. > Hope to hear from you soon.
No block diagram. Attachments don't work here.... A polyphase filter is one which takes advantage of zero coefficients in a filter. So, when you say that it's not for decimation or interpolation then you should be asking why the filter would have zero coefficients - because the two tend to go together. You should also understand that a polyphase filter isn't really a filter type - it's a filter implementation. Here's a really simple example: f=[0.25 0.00 0.5 0.00 0.25] n=4 and y(i) sum f(n)x(i-n) i=0,1,2,3,...... n=0 Since there are 5 coefficients, if this filter is computed in the "normal" way as above, there would be 5 multiplies and 4 or 5 adds, or just 5 multiply-accumulates, for every input sample. However, because there are regularly-spaced zero coefficients, this filter can be implemented in two "channels", i.e. as if there are two filters: n=2 and y1(i) sum f'(n)x(i-n) when i=0,2,4,6,..... n=0 n=2 and y2(i) sum f'(n)x(i-n) when i=1,3,5,..... n=0 and where f'(n) = [0.25 0.5 0.25] y(i)=y1 when i=0,2,4.... and y(i)=y2 when i= 1,3,5.... So, now there are 3 multiplies and 2 or 3 adds, or 3 multiply-accumulates, for each input sample which represents 3/4 the original multiplies and 3/5 the original adds or MACs. This is all fine in software. If you're doing this in an FPGA then I'm not sure you need to do it this way anyway. You might do it this way: +-----+ +-----+ | | | | x >----------+--|delay|--+--|delay|--+ | | | | | | | | +-----+ | +-----+ | | | | | | | +-----+ +-----+ +-----+ | | | | | | | .25 | | .5 | | .25 | | | | | | | +--|--+ +--|--+ +--|--+ +----V-----------V-----------V----+ | | | add |------> y | | +---------------------------------+ 3 multipliers, 3 adders and two delays seems more efficient than 6 multipliers, 6 adders, no delays and two commutators. But then, I'm not an FPGA designer - just an observer on the periphery. Maybe your tools and device environment doesn't care that much and you save design time by being inefficient in hardware. So, then, why polyphase at all? I'm sure someone more directly into FPGA design will comment. Fred
<jithin_manesh@yahoo.com> wrote in message
news:692a297a.0405252020.7810ff6e@posting.google.com...
> hi.. > This is my 1st mail to this group. I am trying to do a polyphase > filter bank in dsp and thn get it into FPGA.. this is not for > decimation or interpolation. This is mainly done for radio telescope > back end in which we need 4 or 8 small channels from a big IF coming > in. Can any one help me to find wht exactly is polyphase filter. ie > whether the filters in the bank is linked with each other by any > chance and also wht exactly is the fft at the end of the polyphase > filter used for .. i got this bolck diagram from " Filter Design > Toolbox" document from matlab. > Hope to hear from you soon.
There are quite a few resources online that will do better justice to explaining what polyphase filters are all about. Google is your friend here. Seems to me that you want a 'filter bank'...not necessarily a polyphase filter bank for your application. Since we don't know exactly what you want to do, it's hard to comment on what is appropriate and what isn't. Like others said, a polyphase filter is just an implementation of an FIR filter to take advantage of redundant operations that occur if used in a traditional implementation for resampling operations. There are a lot more applications for this filter architecture as well but not as common. Multirate Systems and Filter Banks by P.P. Vaidyanathan has been recommended here many times. If you purchase the book from Amazon by clicking through Ray Andraka's page, you will be helping a valuable contributor to comp.dsp http://www.andraka.com/bookstore.htm Cheers Bhaskar
<jithin_manesh@yahoo.com> wrote in message
news:692a297a.0405252020.7810ff6e@posting.google.com...
> [...]. ie > whether the filters in the bank is linked with each other by any > chance
I don't know what you mean by "linked with each other".
> and also wht exactly is the fft at the end of the polyphase > filter used for .. i got this bolck diagram from " Filter Design > Toolbox" document from matlab.
In a polyphase-FFT filter bank, all the filters are generated from a single low-pass prototype, by modulating (i.e. mixing) the prototype with different carrier frequencies. The carrier frequencies are evenly spaced around the unit circle. Each filter could be written like this: Convolve(signal,Mix(lowpass,carrier)). For each time step, this reduces to: DotProduct(signal,Mix(lowpass,carrier)). That can be rewritten to DotProduct(Mix(signal,lowpass),carrier). Notice that the Mix(signal,lowpass) part is the same for all of the filters. A polyphase-FFT filterbank takes advantage of this by calculating it just once. The remaining computation, performing a DotProduct(x(t),carrier), for multiple carrier frequencies evenly spaced around the unit circle, is a discrete Fourier transform, and is efficiently implemented with an FFT. When the number of filters is smaller than the number of samples in the lowpass filter, as is usually the case, a full FFT would produce a lot of outputs that we would just throw away. It is more efficient in these cases to simplify that final operation by adding together smaller segments of Mix(signal,lowpass) and doing a smaller FFT on the result, which produces only the outputs we're interested in. When all is said and done, you get N length M filters implemented in O(M log N) time, which is pretty darned efficient. Hope that helps, Matt.
On 26 May 2004 08:57:43 -0700, JackGibson@hotmail.com (Jack Gibson)
wrote:

>jithin_manesh@yahoo.com (jithin_manesh@yahoo.com) wrote in message news:<692a297a.0405252020.7810ff6e@posting.google.com>... >> hi.. >> This is my 1st mail to this group. I am trying to do a polyphase >> filter bank in dsp and thn get it into FPGA.. this is not for >> decimation or interpolation. This is mainly done for radio telescope >> back end in which we need 4 or 8 small channels from a big IF coming >> in. Can any one help me to find wht exactly is polyphase filter. ie >> whether the filters in the bank is linked with each other by any >> chance and also wht exactly is the fft at the end of the polyphase >> filter used for .. i got this bolck diagram from " Filter Design >> Toolbox" document from matlab. >> Hope to hear from you soon. > >If you don't know what it is, how can you >possibly implement it? > >This is utterly basic multirate DSP. Please >consult any basic reference on the subject. > >- Jack
Hi, just thought I'd mention that one of the world's experts on multirate systems, Fred Harris, has just written a very useful book. Its title is: "Multirate Signal Processing for Communication Systems". [-Rick-]
In comp.dsp in the past often we've discussed about multirate processing. A
classic book (I still like) is
Crochiere and LR Rabiner, Multirate Digital Signal Processing

also: PP Vaidyanathan. Title: Multirate Systems and Filter Banks
is complete but a bit too difficult for me, in terms of notation.

You may like reading the transcript of an interview to Bellanger, the
inventor of Multirate dsp (these franch researchers give fundamental
contributions out of the blue sometimes!)
http://www.ieee.org/organizations/history_center/sloan/ASSR_Oral_Histories/mbellanger_transcript.html

A lot of processign can be done with multirate implementations (I'm thinking
of synchronization, for example), but basically the main advantage of
multirate systems is their intrinsic computational efficiency.
As a little suggestion for downfiltering from IF you may first build a
non-multirate system with "long" filters and then decimation. For a
polyphase implementation you'll then use decimated versions of these
filters. Their outputs will be combined with a (de)modulation matrix that
can be like a DFT or a DCT, depending on the class of filter bank.
Eventually this matrix can perform the fast versions of those transforms.

Cheers,
Emanuele