I have a modulated polyphase filter bank that I am trying to improve the performance and was wondering if the prototype FIR could be replaced with an IFIR, and if that would offer any improvement. The problem I am having is trying to figure out how the cascaded filters fit together before the FFT. I am an EE with some DSP background, but mostly self taught so there are several holes in my understanding of DSP theory. Current design is a 64 channel filter bank with a 256 tap prototype filter, so input is commutated to 64x4 tap filters, then FFTed. My desired IFIR consists of a 128 tap prototype that is interpolated by 2 and a 4 tap masking filter. So, I am not sure how the data would need to flow through the 2 filters to produce the needed input for the 64 point FFT. Current design is implemented in an FPGA with multiple copies. I recently had a requirement change and was hoping to get a little better performance without increasing the resources required (mainly mults) too much, and was hoping using an IFIR would help. Any help is greatly appreciated Thanks, Brian
Modulated Polyphase filter bank with IFIR prototype
Started by ●January 3, 2013
Reply by ●January 4, 20132013-01-04
I don't believe the prototype FIR can be efficiently replaced by an IFIR in a polyphase FFT channelizer. I actually was looking at trying to do this exact thing a few months ago. My logic may be way off here, but here's what I encountered when attempting to use an IFIR in an FFT based channelizer. I usually derive my channelizers by starting with a single channel implementation (basically a configurable bandpass filter followed by a configurable mixer and then a decimator), decompose the filter into a polyphase form, and then replace the complex multiplies on the polyphase branches with an FFT. In my attempted IFIR channelizer derivation, I was left with two bandpass FIR filters in serial. After decomposing the image reject filter into a polyphase form and using the noble identities to pull the decimator through the image reject filter, I was left with a commutator stucture at the input to the image reject filter. The key point here is that the commutator cannot be "pulled through" the first filter. So now I'm stuck with a bandpass filter followed by a commutator followed by a polyphase image reject bandpass filter. I need ALL the output samples from the first filter to be input to the image reject filter. So I'm left with a seemingly inefficient bandpass filter that cannot be turned into an FFT channelizer. I apologize if this seems like gibberish. It's much easier to draw out on a chalk board. Let me know if you have better luck than me!
Reply by ●January 4, 20132013-01-04
Not gibberish, it makes sense and sounds like the same problem I am having. In researching if this made sense to try or not, I found papers of people claiming to have done it and achieving a resource reduction, but they usually gloss over the details of implementing the design, just talk about the results. The fact that people claimed to have done this just made me think I was missing something and that my lack of some theory was the problem. Brian>I don't believe the prototype FIR can be efficiently replaced by an IFIRin>a polyphase FFT channelizer. I actually was looking at trying to do this >exact thing a few months ago. > >My logic may be way off here, but here's what I encountered whenattempting>to use an IFIR in an FFT based channelizer. I usually derive my >channelizers by starting with a single channel implementation (basicallya>configurable bandpass filter followed by a configurable mixer and then a >decimator), decompose the filter into a polyphase form, and then replace >the complex multiplies on the polyphase branches with an FFT. In my >attempted IFIR channelizer derivation, I was left with two bandpass FIR >filters in serial. After decomposing the image reject filter into a >polyphase form and using the noble identities to pull the decimatorthrough>the image reject filter, I was left with a commutator stucture at theinput>to the image reject filter. The key point here is that the commutator >cannot be "pulled through" the first filter. So now I'm stuck with a >bandpass filter followed by a commutator followed by a polyphase image >reject bandpass filter. I need ALL the output samples from the first >filter to be input to the image reject filter. So I'm left with a >seemingly inefficient bandpass filter that cannot be turned into an FFT >channelizer. > >I apologize if this seems like gibberish. It's much easier to draw outon>a chalk board. Let me know if you have better luck than me! >
Reply by ●January 4, 20132013-01-04
On 1/4/13 1:09 PM, bmcgee22 wrote:> Not gibberish, it makes sense and sounds like the same problem I am having.i thought that i knew what FIR polyphase filter banks are, at least with regard to precision delay (where the delay has both integer and fractional sample components to it) and what it means to modulate that parameter. but i could not figure out what either of you guys were saying. there is some kinda semantic block. but i don't need to figure out what you were saying. however sometimes reframing a problem in the most basic jargon describes it well and sometimes 90% of the solution to a problem is describing it adequately. -- r b-j rbj@audioimagination.com "Imagination is more important than knowledge."
Reply by ●January 4, 20132013-01-04
>i thought that i knew what FIR polyphase filter banks are, at least with >regard to precision delay (where the delay has both integer and >fractional sample components to it) and what it means to modulate that >parameter. but i could not figure out what either of you guys were >saying. there is some kinda semantic block.If you have a copy of fred harris's multirate book, I was attempting to describe the channelizer derivation steps he gives (in chapter 7 I believe). This link contains a similar derivation although less eloquently presented: http://seat.massey.ac.nz/personal/e.lai/Publications/j/JSPSfilterbank2011.pdf If you look at figure 6 in the linked article, that's the step I get stuck on when trying to use an IFIR as the prototype filter. Brian, do you have a link to any of the papers claiming success?
Reply by ●January 4, 20132013-01-04
I will try to explain things a little better. By modulated polyphase filter bank I am talking about the following: http://cnx.org/content/m10424/latest/ So, a protype filter, H(z) is decimated into it's polyphase components, H0(z), H1(z), etc. and modulated (by M point DFT) to produce M uniformly distributed, decimated subbands as shaped by the prototype filter H(z). My question is, how can the prototype filter H(z) be replaced by an equivalent IFIR prototype, which is the cascade of 2 filters, G(z^L) and I(z), where I(z) is the masking filter, G(z) is the stretched prototype filter and L is the interpolation ratio for G(z). I guess in more general terms, how do I decompose the cascade of 2 filters into their polyphase form. I hope this clarifies the question. Thanks, Brian>On 1/4/13 1:09 PM, bmcgee22 wrote: >> Not gibberish, it makes sense and sounds like the same problem I amhaving.> >i thought that i knew what FIR polyphase filter banks are, at least with >regard to precision delay (where the delay has both integer and >fractional sample components to it) and what it means to modulate that >parameter. but i could not figure out what either of you guys were >saying. there is some kinda semantic block. > >but i don't need to figure out what you were saying. however sometimes >reframing a problem in the most basic jargon describes it well and >sometimes 90% of the solution to a problem is describing it adequately. > > >-- > >r b-j rbj@audioimagination.com > >"Imagination is more important than knowledge." > > >
Reply by ●January 4, 20132013-01-04
>>i thought that i knew what FIR polyphase filter banks are, at least with>>regard to precision delay (where the delay has both integer and >>fractional sample components to it) and what it means to modulate that >>parameter. but i could not figure out what either of you guys were >>saying. there is some kinda semantic block. > >If you have a copy of fred harris's multirate book, I was attempting to >describe the channelizer derivation steps he gives (in chapter 7 I >believe). This link contains a similar derivation although lesseloquently>presented: >http://seat.massey.ac.nz/personal/e.lai/Publications/j/JSPSfilterbank2011.pdf > >If you look at figure 6 in the linked article, that's the step I getstuck>on when trying to use an IFIR as the prototype filter. > >Brian, do you have a link to any of the papers claiming success? >This is one example (hope the link works OK): http://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CDkQFjAA&url=http%3A%2F%2Fwww.scirp.org%2Fjournal%2FPaperDownload.aspx%3FpaperID%3D3302&ei=gQjnUKimNafE2gXFkYHgBg&usg=AFQjCNFMoSW1mTFwykld41F7fjHUXy7lLQ&bvm=bv.1355534169,d.b2I&cad=rja They talk about the design of the IFIR and the performance gains, but don't go into details about implementation. I'm still looking for a better explanation of how to implement this. Brian
Reply by ●January 6, 20132013-01-06
>My question is, how can the prototype filter H(z) be replaced by an >equivalent IFIR prototype, which is the cascade of 2 filters, G(z^L) and >I(z), where I(z) is the masking filter, G(z) is the stretched prototype >filter and L is the interpolation ratio for G(z). I guess in moregeneral>terms, how do I decompose the cascade of 2 filters into their polyphase >form. I hope this clarifies the question.I found a paper that gives a derivation and has block diagrams of an IFIR prototype filter being used in a DFT filter bank. www.sid.ir/En/VEWSSID/J_pdf/89020020201.pdf Figure 3&4 in the paper shows the implementation. Equations 7-12 provide the derivation. I didn't thoroughly digest everything that's going on in the paper, but the info presented seems to make sense. I'm not sold that the what's shown in figure 4 is more efficient (from a multiplier perspective) than what one would end up with if the prototype filter was the convolution of the two cascaded filters. In fact, I think the implementation in figure 4 is much less efficient. I could be missing something though,
Reply by ●January 7, 20132013-01-07
>I found a paper that gives a derivation and has block diagrams of an IFIR >prototype filter being used in a DFT filter bank. > >www.sid.ir/En/VEWSSID/J_pdf/89020020201.pdf > >Figure 3&4 in the paper shows the implementation. Equations 7-12 provide >the derivation. I didn't thoroughly digest everything that's going on in >the paper, but the info presented seems to make sense. I'm not sold that >the what's shown in figure 4 is more efficient (from a multiplier >perspective) than what one would end up with if the prototype filter was >the convolution of the two cascaded filters. In fact, I think the >implementation in figure 4 is much less efficient. I could be missing >something though, >I had seen this paper and wasn't sure how it was supposed to work. It seems like the polyphase decomposition of the prototype IFIR, F(z), was simply multiplied by the coefficients of the masking filter, I(z). In my case, I(z) is only 4 taps, so most of the input to my 64 point FFT would be 0's, which doesn't make sense to me. I'm probably misunderstanding what they are saying in the paper, so I will look at it some more. Brian