Questions regarding polyphase filter

Started by bcarmaint March 2, 2009
I am try to get a better understand of polyphae filter. There are several
questions I wonder if I can get some help:

1) Relationship of polyphase filter and Different signal
interpolation/decimation methods. One thing I am a bit confused about is
the relationship between different curve fitting type interpolation methods
(i.e., cubic bspline, cubic polynomial, linear etc.) and polyphase filter.
In some literation, there was some section detail of how to compute the
cubic polynomial coefficients, then another section describe the structure
of the polyphase filter used. Is it common to use cubic polynomial
interpolation, then followed by polyphase filter?

2) Variable interpolation/decimation factor for a given polyphase filter
structure. I understand this can be achieved by using Farrow type filter
structure. However, also use the conventional polyphase filter structure
and achieve multiple (not continuous) interpolation/decimation factors
without updating the polyphase filter coefficients?

For example, if I design the original filter with bandwidth <= 1/32; will
it be possible for me to get interpolation of 2,3,4,5..up to 32?

Thanks for the help. 


On Mar 2, 3:22 pm, "bcarmaint" <bing_carma...@yahoo.com> wrote:
> I am try to get a better understand of polyphae filter. There are several > questions I wonder if I can get some help: > > 1) Relationship of polyphase filter and Different signal > interpolation/decimation methods. One thing I am a bit confused about is > the relationship between different curve fitting type interpolation methods > (i.e., cubic bspline, cubic polynomial, linear etc.) and polyphase filter. > In some literation, there was some section detail of how to compute the > cubic polynomial coefficients, then another section describe the structure > of the polyphase filter used. Is it common to use cubic polynomial > interpolation, then followed by polyphase filter? > > 2) Variable interpolation/decimation factor for a given polyphase filter > structure. I understand this can be achieved by using Farrow type filter > structure. However, also use the conventional polyphase filter structure > and achieve multiple (not continuous) interpolation/decimation factors > without updating the polyphase filter coefficients? > > For example, if I design the original filter with bandwidth <= 1/32; will > it be possible for me to get interpolation of 2,3,4,5..up to 32? > > Thanks for the help.
I think you are confusing a method for implementation versus filters that arise from different approximation methods. A polyphase filter is a way of implementing an FIR filter if you use it as a filter for upsampling and/or downsampling, so that you reduce the number of taps that you compute. A farrow filter is a filter that implements fractional delay via polynomial approximation. Hope this helps, Julius
>On Mar 2, 3:22 pm, "bcarmaint" <bing_carma...@yahoo.com> wrote: >> I am try to get a better understand of polyphae filter. There are
several
>> questions I wonder if I can get some help: >> >> 1) Relationship of polyphase filter and Different signal >> interpolation/decimation methods. One thing I am a bit confused about
is
>> the relationship between different curve fitting type interpolation
methods
>> (i.e., cubic bspline, cubic polynomial, linear etc.) and polyphase
filter.
>> In some literation, there was some section detail of how to compute
the
>> cubic polynomial coefficients, then another section describe the
structure
>> of the polyphase filter used. Is it common to use cubic polynomial >> interpolation, then followed by polyphase filter? >> >> 2) Variable interpolation/decimation factor for a given polyphase
filter
>> structure. I understand this can be achieved by using Farrow type
filter
>> structure. However, also use the conventional polyphase filter
structure
>> and achieve multiple (not continuous) interpolation/decimation factors >> without updating the polyphase filter coefficients? >> >> For example, if I design the original filter with bandwidth <= 1/32;
will
>> it be possible for me to get interpolation of 2,3,4,5..up to 32? >> >> Thanks for the help. > >I think you are confusing a method for implementation versus >filters that arise from different approximation methods. > >A polyphase filter is a way of implementing an FIR filter if you >use it as a filter for upsampling and/or downsampling, so that >you reduce the number of taps that you compute. > >A farrow filter is a filter that implements fractional delay via >polynomial approximation. > >Hope this helps, >Julius >
Julius, Thanks for the response. I understand the relationship between Farrow structure and polyphase filter. My questions was the relationship between different interpolation method, such as cubin bspline interpolation and polyphase filter. Thanks, Ben
bcarmaint wrote:

   ...

> My questions was the relationship between different interpolation method, > such as cubin bspline interpolation and polyphase filter.
A polyphase filter is not an interpolation technique. It is an efficient implementation method. Jerry -- Engineering is the art of making what you want from things you can get. &#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;
On Mar 2, 7:11&#2013266080;pm, "bcarmaint" <bing_carma...@yahoo.com> wrote:
[snip]
> > Thanks for the response. I understand the relationship between Farrow > structure and polyphase filter. > > My questions was the relationship between different interpolation method, > such as cubin bspline interpolation and polyphase filter. > > Thanks, Ben
I'm with Jerry, I think you are confusing an efficient implementation method (polyphase filter) with a mathematical tool for approximation (cubic bspline interpolation). For example, you can implement a cubic bspline interpolator as a polyphase filter. So I don't understand what your question is, sorry. Reading your original question again, I think that where you are confused is between: * the formula for computing the coefficients of a filter to apply to a signal, for example for interpolation. * the efficient implementation of a filter, in fact any filter. The first one includes the cubic spline formula, etc etc etc. The second one includes polyphase structures, lattice filters, etc. As for your second question, yes, if your original filter has bandwidth <= 1/32 as a fraction of the digital bandwidth, then you can use it for variable rate interpolation, as long as that bandwidth is not so narrow that your signal is distorted. Hope this helps, Julius
>On Mar 2, 7:11=A0pm, "bcarmaint" <bing_carma...@yahoo.com> wrote: >[snip] >> >> Thanks for the response. I understand the relationship between Farrow >> structure and polyphase filter. >> >> My questions was the relationship between different interpolation
method,
>> such as cubin bspline interpolation and polyphase filter. >> >> Thanks, Ben > >I'm with Jerry, I think you are confusing an efficient implementation >method >(polyphase filter) with a mathematical tool for approximation (cubic >bspline >interpolation). For example, you can implement a cubic bspline >interpolator >as a polyphase filter. So I don't understand what your question is, >sorry. > >Reading your original question again, I think that where you are >confused >is between: >* the formula for computing the coefficients of a filter to apply to a >signal, > for example for interpolation. >* the efficient implementation of a filter, in fact any filter. > >The first one includes the cubic spline formula, etc etc etc. The >second >one includes polyphase structures, lattice filters, etc. > >As for your second question, yes, if your original filter has >bandwidth ><=3D 1/32 as a fraction of the digital bandwidth, then you can use it >for >variable rate interpolation, as long as that bandwidth is not so >narrow >that your signal is distorted. > >Hope this helps, >Julius >
Julius, Jerry Thanks for the clarifications about the second question. About my first question, I still have some confusion... I can't seem to relate a cubic spline coefficients with a 32 phase polyphase filter. Do you by any chance have some example in this regard? Ben
bcarmaint wrote:
>> On Mar 2, 7:11=A0pm, "bcarmaint" <bing_carma...@yahoo.com> wrote: >> [snip] >>> >>> Thanks for the response. I understand the relationship between >>> Farrow structure and polyphase filter. >>> >>> My questions was the relationship between different interpolation >>> method, such as cubin bspline interpolation and polyphase filter. >>> >>> Thanks, Ben >> >> I'm with Jerry, I think you are confusing an efficient implementation >> method >> (polyphase filter) with a mathematical tool for approximation (cubic >> bspline >> interpolation). For example, you can implement a cubic bspline >> interpolator >> as a polyphase filter. So I don't understand what your question is, >> sorry. >> >> Reading your original question again, I think that where you are >> confused >> is between: >> * the formula for computing the coefficients of a filter to apply to >> a signal, >> for example for interpolation. >> * the efficient implementation of a filter, in fact any filter. >> >> The first one includes the cubic spline formula, etc etc etc. The >> second >> one includes polyphase structures, lattice filters, etc. >> >> As for your second question, yes, if your original filter has >> bandwidth >> <=3D 1/32 as a fraction of the digital bandwidth, then you can use it >> for >> variable rate interpolation, as long as that bandwidth is not so >> narrow >> that your signal is distorted. >> >> Hope this helps, >> Julius >> > Julius, Jerry > > Thanks for the clarifications about the second question. About my > first question, I still have some confusion... I can't seem to relate > a cubic spline coefficients with a 32 phase polyphase filter. Do you > by any chance have some example in this regard? > > Ben
Ben, Here is a really simple way to get at such questions: 1) Figure out the filter you want / need. 2) Does the filter have a bunch of regular zeros in the unit sample response? (i.e. the coefficients?). Below, I will use the case where the coefficients alternate between non-zero and zero valued. 3) If 2 applies then you can think of doing something like this: - Get a sequence of samples for the input. Note that only half of them will be multiplied by nonzero coefficients for the next output. - Add an input sample. Note that only half of the "new" sample sequence will be multiplied by nonzero coefficients for the next output. AND note that these samples were the ones which were NOT operated on in the previous sample interval. So, half of the samples are operated on in the first sample instant and the other half of the samples are operated on in the next sample instant. So, if you effectively commutate the sample sequence so that there are two paths with half the sample rate and you apply these decimated sequences to two identical filters then the sum of the outputs of the two filters will have the original sample rate and will be the same as if you had not done this and just used a single filter at the original sample rate. Thus, the idea of a polyphase filter is born. It's all about the coefficient structure having lots of zeros in it....... Is the filter you're interested in like that? If so, then consider a polyphase implementation. If not, forgeddaboudit. As others have pointed out, polyphase is but an implementation thing. First you have to decide that it's useful in your situation. Fred
On Mar 3, 6:56&#2013266080;am, "bcarmaint" <bing_carma...@yahoo.com> wrote:
> >On Mar 2, 7:11=A0pm, "bcarmaint" <bing_carma...@yahoo.com> wrote: > >[snip] > > >> Thanks for the response. I understand the relationship between Farrow > >> structure and polyphase filter. > > >> My questions was the relationship between different interpolation > method, > >> such as cubin bspline interpolation and polyphase filter. > > >> Thanks, Ben > > >I'm with Jerry, I think you are confusing an efficient implementation > >method > >(polyphase filter) with a mathematical tool for approximation (cubic > >bspline > >interpolation). &#2013266080;For example, you can implement a cubic bspline > >interpolator > >as a polyphase filter. &#2013266080;So I don't understand what your question is, > >sorry. > > >Reading your original question again, I think that where you are > >confused > >is between: > >* the formula for computing the coefficients of a filter to apply to a > >signal, > > &#2013266080;for example for interpolation. > >* the efficient implementation of a filter, in fact any filter. > > >The first one includes the cubic spline formula, etc etc etc. &#2013266080;The > >second > >one includes polyphase structures, lattice filters, etc. > > >As for your second question, yes, if your original filter has > >bandwidth > ><=3D 1/32 as a fraction of the digital bandwidth, then you can use it > >for > >variable rate interpolation, as long as that bandwidth is not so > >narrow > >that your signal is distorted. > > >Hope this helps, > >Julius > > Julius, Jerry > > Thanks for the clarifications about the second question. About my first > question, I still have some confusion... I can't seem to relate a cubic > spline coefficients with a 32 phase polyphase filter. Do you by any chance > have some example in this regard? > > Ben
Ben, A generic explanation of the resampling process is as follows: 1. Upsample to a higher rate (i.e., insert zeros between existing samples) 2. Use an interpolator to figure out what the values of the samples should be at the new points (where you inserted zeros) 3. Possibly downsample to achieve the desired rate Now you can implement step (2) of the process in one of several ways. One way is to use a linear combination of samples around the point you want - eg. x(t) = 0.5(x(t0)+x(t1)). Basically, the linear combination of samples with different weights is what constitutes a filter - so what you have is an "interpolating filter". Now, you could also choose not to be restricted to a linear technique for interpolation, i.e., you could use square, cubic, and higher order terms of the samples to do the interpolation. For example, x(t) = a0.x(t0)^2 + b0.x(t0) + a1.x(t1)^2 + b1.x(t1) + c. What you have here is a polynomial interpolation technique. In a sense, the linear interpolating technique is a specific case of the polynomial technique, with the order of the polynomial restricted to one. So when do you choose one over the other? The linear filtering technique is a low computational complexity technique and you can use a number of filter design techniques to design your interpolating filter. On the other hand, in situations where the spacing between your samples is not constant, or, if the spacing between your interpolating instant and the sampling instant changes, then the filter needs to change. The filtering technique falls short because your filter was designed assuming a particular fixed spacing of samples on the time axis and does not hold if that changes. The greatest advantage of polynomial interpolation is that it can be implemented in a way that factors in the time interval between sampled and interpolated points - for example, x(t) = x(t0) + (x(t1)-x(t0)).(t-t0)/(t1-t0) This has the advantage that the interpolation holds even if the relative spacing between the interpolating instant, t, and sampling instants t0 and t1, changes. In the case of a communications receiver for example, the receiver clock can be at a slightly different frequency from the transmitter clock - so assuming that the two clocks are in sync at the first sample, the second sample is off by dT, the third by 2dT, etc. If you can estimate this difference, you could use a polynomial interpolator to interpolate existing received samples to the transmitter rate. And as others have said, a polyphase filter is simply a structure that allows for efficient implementation of the filter. - Ravi
>On Mar 3, 6:56=A0am, "bcarmaint" <bing_carma...@yahoo.com> wrote: >> >On Mar 2, 7:11=3DA0pm, "bcarmaint" <bing_carma...@yahoo.com> wrote: >> >[snip] >> >> >> Thanks for the response. I understand the relationship between
Farrow
>> >> structure and polyphase filter. >> >> >> My questions was the relationship between different interpolation >> method, >> >> such as cubin bspline interpolation and polyphase filter. >> >> >> Thanks, Ben >> >> >I'm with Jerry, I think you are confusing an efficient implementation >> >method >> >(polyphase filter) with a mathematical tool for approximation (cubic >> >bspline >> >interpolation). =A0For example, you can implement a cubic bspline >> >interpolator >> >as a polyphase filter. =A0So I don't understand what your question
is,
>> >sorry. >> >> >Reading your original question again, I think that where you are >> >confused >> >is between: >> >* the formula for computing the coefficients of a filter to apply to
a
>> >signal, >> > =A0for example for interpolation. >> >* the efficient implementation of a filter, in fact any filter. >> >> >The first one includes the cubic spline formula, etc etc etc. =A0The >> >second >> >one includes polyphase structures, lattice filters, etc. >> >> >As for your second question, yes, if your original filter has >> >bandwidth >> ><=3D3D 1/32 as a fraction of the digital bandwidth, then you can use
it
>> >for >> >variable rate interpolation, as long as that bandwidth is not so >> >narrow >> >that your signal is distorted. >> >> >Hope this helps, >> >Julius >> >> Julius, Jerry >> >> Thanks for the clarifications about the second question. About my
first
>> question, I still have some confusion... I can't seem to relate a
cubic
>> spline coefficients with a 32 phase polyphase filter. Do you by any
chanc=
>e >> have some example in this regard? >> >> Ben > >Ben, > >A generic explanation of the resampling process is as follows: >1. Upsample to a higher rate (i.e., insert zeros between existing >samples) >2. Use an interpolator to figure out what the values of the samples >should be at the new points (where you inserted zeros) >3. Possibly downsample to achieve the desired rate > >Now you can implement step (2) of the process in one of several ways. >One way is to use a linear combination of samples around the point you >want - eg. x(t) =3D 0.5(x(t0)+x(t1)). Basically, the linear combination >of samples with different weights is what constitutes a filter - so >what you have is an "interpolating filter". > >Now, you could also choose not to be restricted to a linear technique >for interpolation, i.e., you could use square, cubic, and higher order >terms of the samples to do the interpolation. For example, > >x(t) =3D a0.x(t0)^2 + b0.x(t0) + a1.x(t1)^2 + b1.x(t1) + c. > >What you have here is a polynomial interpolation technique. In a >sense, the linear interpolating technique is a specific case of the >polynomial technique, with the order of the polynomial restricted to >one. > >So when do you choose one over the other? The linear filtering >technique is a low computational complexity technique and you can use >a number of filter design techniques to design your interpolating >filter. On the other hand, in situations where the spacing between >your samples is not constant, or, if the spacing between your >interpolating instant and the sampling instant changes, then the >filter needs to change. The filtering technique falls short because >your filter was designed assuming a particular fixed spacing of >samples on the time axis and does not hold if that changes. > >The greatest advantage of polynomial interpolation is that it can be >implemented in a way that factors in the time interval between sampled >and interpolated points - for example, > >x(t) =3D x(t0) + (x(t1)-x(t0)).(t-t0)/(t1-t0) > >This has the advantage that the interpolation holds even if the >relative spacing between the interpolating instant, t, and sampling >instants t0 and t1, changes. In the case of a communications receiver >for example, the receiver clock can be at a slightly different >frequency from the transmitter clock - so assuming that the two clocks >are in sync at the first sample, the second sample is off by dT, the >third by 2dT, etc. If you can estimate this difference, you could use >a polynomial interpolator to interpolate existing received samples to >the transmitter rate. > >And as others have said, a polyphase filter is simply a structure that >allows for efficient implementation of the filter. > >- Ravi >
Ravi, Thanks a lot. I think I confused "interpolation filter" and the polyphae implementation of the anti-aliasing filter used after the interpolation. Here is my understanding of a overall interpolation procedure: 1) First I will need interpolate the signal (may need to use both upsampling and downsampling to achieve the required factor); in this process, I may choose different interpolation techniques you described above. 2) Implement anti-aliasing/anti-imaging lowpass filter to reduce artifects. In this step, I can choose the cutoff bandwidth to be the smallest possible bandwidth I need to support (determined by the highest interpolation factor, for example, if the factor is 32, then the cutoff bandwidth should be 1/32); A typical filter like this may have several hundre taps, and a good choise to implement this filter is polyphase filter. With this structure, I can support the filtering of interpolation of 2,3,4...32 discrete steps. Does this looks correct to you? Thanks for the help from all of you, Regards, Ben
On Mar 3, 7:56&#2013266080;pm, "bcarmaint" <bing_carma...@yahoo.com> wrote:
> >On Mar 3, 6:56=A0am, "bcarmaint" <bing_carma...@yahoo.com> wrote: > >> >On Mar 2, 7:11=3DA0pm, "bcarmaint" <bing_carma...@yahoo.com> wrote: > >> >[snip] > > >> >> Thanks for the response. I understand the relationship between > Farrow > >> >> structure and polyphase filter. > > >> >> My questions was the relationship between different interpolation > >> method, > >> >> such as cubin bspline interpolation and polyphase filter. > > >> >> Thanks, Ben > > >> >I'm with Jerry, I think you are confusing an efficient implementation > >> >method > >> >(polyphase filter) with a mathematical tool for approximation (cubic > >> >bspline > >> >interpolation). =A0For example, you can implement a cubic bspline > >> >interpolator > >> >as a polyphase filter. =A0So I don't understand what your question > is, > >> >sorry. > > >> >Reading your original question again, I think that where you are > >> >confused > >> >is between: > >> >* the formula for computing the coefficients of a filter to apply to > a > >> >signal, > >> > =A0for example for interpolation. > >> >* the efficient implementation of a filter, in fact any filter. > > >> >The first one includes the cubic spline formula, etc etc etc. =A0The > >> >second > >> >one includes polyphase structures, lattice filters, etc. > > >> >As for your second question, yes, if your original filter has > >> >bandwidth > >> ><=3D3D 1/32 as a fraction of the digital bandwidth, then you can use > it > >> >for > >> >variable rate interpolation, as long as that bandwidth is not so > >> >narrow > >> >that your signal is distorted. > > >> >Hope this helps, > >> >Julius > > >> Julius, Jerry > > >> Thanks for the clarifications about the second question. About my > first > >> question, I still have some confusion... I can't seem to relate a > cubic > >> spline coefficients with a 32 phase polyphase filter. Do you by any > chanc= > >e > >> have some example in this regard? > > >> Ben > > >Ben, > > >A generic explanation of the resampling process is as follows: > >1. Upsample to a higher rate (i.e., insert zeros between existing > >samples) > >2. Use an interpolator to figure out what the values of the samples > >should be at the new points (where you inserted zeros) > >3. Possibly downsample to achieve the desired rate > > >Now you can implement step (2) of the process in one of several ways. > >One way is to use a linear combination of samples around the point you > >want - eg. x(t) =3D 0.5(x(t0)+x(t1)). Basically, the linear combination > >of samples with different weights is what constitutes a filter - so > >what you have is an "interpolating filter". > > >Now, you could also choose not to be restricted to a linear technique > >for interpolation, i.e., you could use square, cubic, and higher order > >terms of the samples to do the interpolation. For example, > > >x(t) =3D a0.x(t0)^2 + b0.x(t0) + a1.x(t1)^2 + b1.x(t1) + c. > > >What you have here is a polynomial interpolation technique. In a > >sense, the linear interpolating technique is a specific case of the > >polynomial technique, with the order of the polynomial restricted to > >one. > > >So when do you choose one over the other? The linear filtering > >technique is a low computational complexity technique and you can use > >a number of filter design techniques to design your interpolating > >filter. On the other hand, in situations where the spacing between > >your samples is not constant, or, if the spacing between your > >interpolating instant and the sampling instant changes, then the > >filter needs to change. The filtering technique falls short because > >your filter was designed assuming a particular fixed spacing of > >samples on the time axis and does not hold if that changes. > > >The greatest advantage of polynomial interpolation is that it can be > >implemented in a way that factors in the time interval between sampled > >and interpolated points - for example, > > >x(t) =3D x(t0) + (x(t1)-x(t0)).(t-t0)/(t1-t0) > > >This has the advantage that the interpolation holds even if the > >relative spacing between the interpolating instant, t, and sampling > >instants t0 and t1, changes. In the case of a communications receiver > >for example, the receiver clock can be at a slightly different > >frequency from the transmitter clock - so assuming that the two clocks > >are in sync at the first sample, the second sample is off by dT, the > >third by 2dT, etc. If you can estimate this difference, you could use > >a polynomial interpolator to interpolate existing received samples to > >the transmitter rate. > > >And as others have said, a polyphase filter is simply a structure that > >allows for efficient implementation of the filter. > > >- Ravi > > Ravi, > > Thanks a lot. I think I confused "interpolation filter" and the polyphae > implementation of the anti-aliasing filter used after the interpolation. > > Here is my understanding of a overall interpolation procedure: > > 1) First I will need interpolate the signal (may need to use both > upsampling and downsampling to achieve the required factor); in this > process, I may choose different interpolation techniques you described > above. > > 2) Implement anti-aliasing/anti-imaging lowpass filter to reduce > artifects. In this step, I can choose the cutoff bandwidth to be the > smallest possible bandwidth I need to support (determined by the highest > interpolation factor, for example, if the factor is 32, then the cutoff > bandwidth should be 1/32); A typical filter like this may have several > hundre taps, and a good choise to implement this filter is polyphase > filter. With this structure, I can support the filtering of interpolation > of 2,3,4...32 discrete steps. > > Does this looks correct to you? > > Thanks for the help from all of you, > > Regards, Ben
You need to be a little careful here. You need to put your anti- aliasing filter BEFORE downsampling. Looked at in the frequency domain, the downsampling process causes the frequency response to stretch and causes aliasing. So basically, you can combine the interpolating filter and the anti-aliasing filter, provided you choose your filter bandwidth properly.