DSPRelated.com
Forums

Polyphase in Practice

Started by Fred Marshall March 24, 2005
"robert bristow-johnson" <rbj@audioimagination.com> wrote in message 
news:BE68FE6E.5945%rbj@audioimagination.com...
> in article c8CdnY7OTKPd7t7fRVn-qA@centurytel.net, Fred Marshall at > fmarshallx@remove_the_x.acm.org wrote on 03/24/2005 21:11: > >> "robert bristow-johnson" <rbj@audioimagination.com> wrote in message >> news:BE68CFCA.5934%rbj@audioimagination.com... > ... >>> i just look at it as a *collection* of FIR filters, each with >>> incremental >>> fractional (plus some fixed integer to make them causal) delay and as >>> flat >>> magnitude response as we can get. >>> >> >> rb-j, >> >> I don't get the part about flat magnitude response. >> That must be some property I've not focused on. > > i guess it doesn't *have* to be flat, but to be honest, i really don't > have > a concept of the application of the polyphase filter concept except for > doing intersample interpolation, which is usually for use in sample rate > conversion or a (sub-sample) precision delay. in these applications, > there > isn't any reason that i can think of that you would want to change > anything > else (such as magnitude) other than the delay. > > when i use MATLAB's remez() or firls() to design a set of polyphase > filters, > one design goal is flat frequency response for each polyphase coefficient > set. > > i dunno. when is not-flat frequency response desirable? >
Just that a general interpolating filter would have a frequency response. Maybe they all (the "parallel sections") add to get that and all do it with phase?? I'd never thought about that possibility but somehow it seems to ring a bell. If all you need is a delay then I can well imagine. Fred
"robert bristow-johnson" <rbj@audioimagination.com> wrote in message 
news:BE68FE6E.5945%rbj@audioimagination.com...
> in article c8CdnY7OTKPd7t7fRVn-qA@centurytel.net, Fred Marshall at > fmarshallx@remove_the_x.acm.org wrote on 03/24/2005 21:11: > >> "robert bristow-johnson" <rbj@audioimagination.com> wrote in message >> news:BE68CFCA.5934%rbj@audioimagination.com... > ... >>> i just look at it as a *collection* of FIR filters, each with >>> incremental >>> fractional (plus some fixed integer to make them causal) delay and as >>> flat >>> magnitude response as we can get. >>> >> >> rb-j, >> >> I don't get the part about flat magnitude response. >> That must be some property I've not focused on. > > i guess it doesn't *have* to be flat, but to be honest, i really don't > have > a concept of the application of the polyphase filter concept except for > doing intersample interpolation, which is usually for use in sample rate > conversion or a (sub-sample) precision delay. in these applications, > there > isn't any reason that i can think of that you would want to change > anything > else (such as magnitude) other than the delay. > > when i use MATLAB's remez() or firls() to design a set of polyphase > filters, > one design goal is flat frequency response for each polyphase coefficient > set. > > i dunno. when is not-flat frequency response desirable?
Well, also, to get sub-sample delay you need something like a lowpass to get it, right? Fred
in article haadneqO7t3IIN7fRVn-qg@centurytel.net, Fred Marshall at
fmarshallx@remove_the_x.acm.org wrote on 03/25/2005 02:27:

> Well, also, to get sub-sample delay you need something like a lowpass to get > it, right?
yes, but that's an LPF in the hypothetically upsampled context. when the LPF coefficients are unshuffled to get you N different FIR filters, each one of those will have as flat as possible magnitude in the whole passband. -- r b-j rbj@audioimagination.com "Imagination is more important than knowledge."
On Thu, 24 Mar 2005 23:31:58 -0500, robert bristow-johnson
<rbj@audioimagination.com> wrote:

>i guess it doesn't *have* to be flat, but to be honest, i really don't have >a concept of the application of the polyphase filter concept except for >doing intersample interpolation, which is usually for use in sample rate >conversion or a (sub-sample) precision delay. in these applications, there >isn't any reason that i can think of that you would want to change anything >else (such as magnitude) other than the delay. > >when i use MATLAB's remez() or firls() to design a set of polyphase filters, >one design goal is flat frequency response for each polyphase coefficient >set. > >i dunno. when is not-flat frequency response desirable?
Polyphase filters are often used for symbol pulse-shaping in communications systems where the processing clock is fixed but the symbol rate is variable. This allows the DAC and ADC to be run at constant rates so that the reconstruction and anti-alias (or IF) filters can be fixed. So this is the classic interpolation/decimation application, but at the same time the filter is frequency selective with a tightly controlled response shape. Often the coefficients are programmable in order to let the system be compatible with modulators or demodulators that use different pulse shapes. Naturally any decimating (i.e., rate reduction) polyphase needs to be frequency selective to prevent aliasing. Eric Jacobsen Minister of Algorithms, Intel Corp. My opinions may not be Intel's opinions. http://www.ericjacobsen.org
"robert bristow-johnson" <rbj@audioimagination.com> wrote in message
news:BE68FE6E.5945%rbj@audioimagination.com...
> in article c8CdnY7OTKPd7t7fRVn-qA@centurytel.net, Fred Marshall at > fmarshallx@remove_the_x.acm.org wrote on 03/24/2005 21:11: > > > "robert bristow-johnson" <rbj@audioimagination.com> wrote in message > > news:BE68CFCA.5934%rbj@audioimagination.com... > ... > >> i just look at it as a *collection* of FIR filters, each with
incremental
> >> fractional (plus some fixed integer to make them causal) delay and as
flat
> >> magnitude response as we can get. > >> > > > > rb-j, > > > > I don't get the part about flat magnitude response. > > That must be some property I've not focused on. > > i guess it doesn't *have* to be flat, but to be honest, i really don't
have
> a concept of the application of the polyphase filter concept except for > doing intersample interpolation, which is usually for use in sample rate > conversion or a (sub-sample) precision delay. in these applications,
there
> isn't any reason that i can think of that you would want to change
anything
> else (such as magnitude) other than the delay. > > when i use MATLAB's remez() or firls() to design a set of polyphase
filters,
> one design goal is flat frequency response for each polyphase coefficient > set. > > i dunno. when is not-flat frequency response desirable?
Hi r b-j Well, I had an application where I used a polyphase architecture with non-flat frequency response. While I'm not at liberty to go into too much detail, my application required several filters of similar (preferably exactly the same) frequency response (that was non-flat) at various bandwidths. I was able to use a polyphase architecture with one set of coefficients and just play with the output sample rate to generate the bank of filters without needing a final shaping filter. Cheers Bhaskar
> r b-j rbj@audioimagination.com > > "Imagination is more important than knowledge." > >
On Fri, 25 Mar 2005 09:56:48 -0800, "Bhaskar Thiagarajan"
<bhaskart@deja.com> wrote:

  (snipped)
> >Hi r b-j > >Well, I had an application where I used a polyphase architecture with >non-flat frequency response. >While I'm not at liberty to go into too much detail, my application required >several filters of similar (preferably exactly the same) frequency response >(that was non-flat) at various bandwidths. I was able to use a polyphase >architecture with one set of coefficients and just play with the output >sample rate to generate the bank of filters without needing a final shaping >filter. > >Cheers >Bhaskar
Hi Bjaskar, Ah, ... too bad we can't learn the details of your design. It sounds pretty darned interesting. See Ya', [-Rick-]
"robert bristow-johnson" <rbj@audioimagination.com> wrote in message 
news:BE6997D5.596A%rbj@audioimagination.com...
> in article haadneqO7t3IIN7fRVn-qg@centurytel.net, Fred Marshall at > fmarshallx@remove_the_x.acm.org wrote on 03/25/2005 02:27: > >> Well, also, to get sub-sample delay you need something like a lowpass to >> get >> it, right? > > yes, but that's an LPF in the hypothetically upsampled context. when the > LPF coefficients are unshuffled to get you N different FIR filters, each > one > of those will have as flat as possible magnitude in the whole passband. > > -- > > r b-j rbj@audioimagination.com > > "Imagination is more important than knowledge." > >
Oh, OK - I wasn't thinking only "passband"..... maybe I missed something. Fred
Fred Marshall wrote:
> "robert bristow-johnson" <rbj@audioimagination.com> wrote in message > news:BE68FE6E.5945%rbj@audioimagination.com... > >>in article c8CdnY7OTKPd7t7fRVn-qA@centurytel.net, Fred Marshall at >>fmarshallx@remove_the_x.acm.org wrote on 03/24/2005 21:11: >> >> >>>"robert bristow-johnson" <rbj@audioimagination.com> wrote in message >>>news:BE68CFCA.5934%rbj@audioimagination.com... >> >>... >> >>>>i just look at it as a *collection* of FIR filters, each with >>>>incremental >>>>fractional (plus some fixed integer to make them causal) delay and as >>>>flat >>>>magnitude response as we can get. >>>> >>> >>>rb-j, >>> >>>I don't get the part about flat magnitude response. >>>That must be some property I've not focused on. >> >>i guess it doesn't *have* to be flat, but to be honest, i really don't >>have >>a concept of the application of the polyphase filter concept except for >>doing intersample interpolation, which is usually for use in sample rate >>conversion or a (sub-sample) precision delay. in these applications, >>there >>isn't any reason that i can think of that you would want to change >>anything >>else (such as magnitude) other than the delay. >> >>when i use MATLAB's remez() or firls() to design a set of polyphase >>filters, >>one design goal is flat frequency response for each polyphase coefficient >>set. >> >>i dunno. when is not-flat frequency response desirable? > > > Well, also, to get sub-sample delay you need something like a lowpass to get > it, right? > > Fred > >
Fred, If you consider a brickwall decimation filter, with exact characteristics - by that I mean the sampling frequency is directly related to the cutoff freq. by the decimation factor. The overall response is just a lowpass filter. Each polyphase component is a (time shifted) decimated copy of that filter. Thus the passband now occupies the new full(decimated) sampling rate. In other words, if each of the individual polyphase filters is viewed at the new sampling rate it will totally flat - atleast optimally. Practical considerations will affect this. Hope that explanation helps. Cheers, David
"David Kirkland" <spam@netscape.net> wrote in message 
news:w6V1e.546$x8.223275@news20.bellglobal.com...
> Fred, > > If you consider a brickwall decimation filter, with exact > characteristics - by that I mean the sampling frequency is directly > related to the cutoff freq. by the decimation factor. The overall response > is just a lowpass filter. > > Each polyphase component is a (time shifted) decimated copy of that > filter. Thus the passband now occupies the new full(decimated) sampling > rate. In other words, if each of the individual polyphase filters is > viewed at the new sampling rate it will totally flat - atleast optimally. > Practical considerations will affect this. > > Hope that explanation helps. > > Cheers, > David
I'm sure that it will! :-) Let's see if I can play that back: First:
> Each polyphase component is a (time shifted) decimated copy of that > filter.
Well, OK - that's just the definition of a polyphase filter. Second:
>Thus the passband now occupies the new full(decimated) sampling rate.
I'd probably say that the new full (decimated) samplng rate is at least 2x the new passband. Let's say the factor was 2 and we used a halfband filter. The passband out is something less than half the sample rate out.
>In other words, if each of the individual polyphase filters is viewed at >the new sampling rate it will totally flat - atleast optimally.
Do you mean flat in the passband? What makes it "totally?" flat? What if it's an equiripple design? Is that still the case? I'm not really trying to be technically picky here except about language terms. I'm still missing something. Thanks, Fred
This generated some interesting posts - so it's been worth it so far.
Yet, I didn't get an answer to the question I tried to pose.  Let me try 
again:

Given that a polyphase filter is just another FIR except for particular 
observations about how the outputs are generated...
And:
Given that a polyphase filter can be implemented with clever software 
design.... (this is the only example *I* know of)
Then:
Other than the *applications* (Addresses why would a polyphase filter be 
encountered).  And, other than the clever software designs mentioned above, 
are there other *implementations* of polyphase filters that are useful? 
FPGA structures, etc?

(I note that Rick's book shows a commutator which was the thing that got me 
to understand polyphase filters in a new light!  In a real implementation, 
the commutator implies delay elements doesn't it?).

Thanks,

Fred