DSPRelated.com
Forums

FIR interpolator

Started by Vladimir Vassilevsky March 11, 2008
Recently I run into the problem with a basic task: design of a 
polyphase set of filters for the interpolation of a signal. The input is 
the sampled signal; the output should be the interpolated values spaced 
at 1/10 of the sample.

So, I designed the LPF at 10 x sample rate by the Parks-McClellan 
algorithm, and then decimated it into 10 subsets of the coefficients.

But, although the original filter is well within the specs, the 
decimated subsets (calculated to the original sample rate) are not! 
There is a significant difference is in the passband flatness as well as 
in the stopband.

Where is the mistake?


Vladimir Vassilevsky
DSP and Mixed Signal Design Consultant
http://www.abvolt.com


On Mar 11, 2:03&#4294967295;pm, Vladimir Vassilevsky <antispam_bo...@hotmail.com>
wrote:
> Recently I run into the problem with a basic task: design of a > polyphase set of filters for the interpolation of a signal. The input is > the sampled signal; the output should be the interpolated values spaced > at 1/10 of the sample. > > So, I designed the LPF at 10 x sample rate by the Parks-McClellan > algorithm, and then decimated it into 10 subsets of the coefficients. > > But, although the original filter is well within the specs, the > decimated subsets (calculated to the original sample rate) are not! > There is a significant difference is in the passband flatness as well as > in the stopband. > > Where is the mistake? > > Vladimir Vassilevsky > DSP and Mixed Signal Design Consultanthttp://www.abvolt.com
Why are you expecting each of the subsets to have a response like the original filter? Dirk

Vladimir Vassilevsky wrote:
> But, although the original filter is well within the specs, the > decimated subsets (calculated to the original sample rate) are not! > There is a significant difference is in the passband flatness as well as > in the stopband. > > Where is the mistake?
There may not be any mistake. Vaidyanathan discusses this in his multirate book. Intuitively, each of the subset filters will be horribly aliased because it represents an impulse response that was decimated without lowpass filtering. In a properly designed polyphase filter the aliases cancel among the phases and the net output is correct. Greg

Greg Berchin wrote:
> >>But, although the original filter is well within the specs, the >>decimated subsets (calculated to the original sample rate) are not! >>There is a significant difference is in the passband flatness as well as >>in the stopband. >> >>Where is the mistake? > > There may not be any mistake. Vaidyanathan discusses this in his > multirate book. Intuitively, each of the subset filters will be > horribly aliased because it represents an impulse response that was > decimated without lowpass filtering.
The original filter impulse response is band limited to the Nyquist frequency of the incoming signal. If the band limiting could be ideal, then there would be no aliasing. So, the stopband of the original filter is 10 times wrapped around the passband of the subset filters.
> In a properly designed polyphase > filter the aliases cancel among the phases and the net output is > correct.
I guess the proper procedure could be raising the requirements to the stopband attenuation of the original filter by the factor of 10 (or should it be a sqrt(10)?) Vladimir Vassilevsky DSP and Mixed Signal Design Consultant http://www.abvolt.com
On Mar 11, 2:40&#4294967295;pm, Vladimir Vassilevsky <antispam_bo...@hotmail.com>
wrote:
> The original filter impulse response is band limited to the Nyquist > frequency of the incoming signal. If the band limiting could be ideal, > then there would be no aliasing. So, the stopband of the original filter > is 10 times wrapped around the passband of the subset filters.
Yes, after I posted my previous response I started thinking about this some more. If we assume, for the moment, an ideal lowpass filter with amplitude response "1" up to the original Fs/2 and "0" above that (we're operating at 10*Fs now), then each of the ten phase filters will represent the sampling of a sinc function displaced by one sample relative to its neighbors on either side. So the amplitude response of all phase filters will be identical, but the phase responses will differ by one sample per phase. In the non-ideal case, though, if there is a large transition band in the original filter then the responses of the phase filters might differ appreciably, because those "wrap-around" passbands that you describe start to overlap.
> I guess the proper procedure could be raising the requirements to the > stopband attenuation of the original filter by the factor of 10 (or > should it be a sqrt(10)?)
Not the attenuation so much as the width of the transition band. Greg
On Mar 11, 11:23 am, Greg Berchin <gberc...@sentientscience.com>
wrote:
> Vladimir Vassilevsky wrote: > > But, although the original filter is well within the specs, the > > decimated subsets (calculated to the original sample rate) are not! > > There is a significant difference is in the passband flatness as well as > > in the stopband. > > > Where is the mistake? > > There may not be any mistake. Vaidyanathan discusses this in his > multirate book. Intuitively, each of the subset filters will be > horribly aliased because it represents an impulse response that was > decimated without lowpass filtering. In a properly designed polyphase > filter the aliases cancel among the phases and the net output is > correct. > > Greg
Parks-McClellan optimizes a set of coefficients. The optimization is performed only for the entire set. The benefit of window designs for resampling applications is that the base design produces a shape that has the design characteristic and that shape can be resampled at different delays or smaller sampling intervals to produce coefficient sets that retain the design characteristics. Dale B. Dalrymple http://dbdimages.com
On Mar 11, 2:23 pm, Greg Berchin <gberc...@sentientscience.com> wrote:
> Vladimir Vassilevsky wrote: > > But, although the original filter is well within the specs, the > > decimated subsets (calculated to the original sample rate) are not! > > There is a significant difference is in the passband flatness as well as > > in the stopband. > > > Where is the mistake? > > There may not be any mistake.
it's not. Vlad, think of what happens when your input is some non-zero DC (say +1/2 FS) and you convert with some sampling rate ratio of Fs2/Fs1 = M/ (M+1) where M is the number of FIR phases (number of uniformly-spaced fractional delays). what comes out? probably not pure DC. but, suppose you design the thing so that the frequency response of the interpolation LPF kernel has notches spaced equally at multiples of Fs1 (hmmm, i wonder how someone can do that....). THEN, what would you expect coming out if nonzero DC was going in? in that case, it would be AC free and as such, at least the DC gain of each coefficient set would satisfy H_m(0) = constant for 0 <= m < M . r b-j
On Mar 11, 10:03 am, Vladimir Vassilevsky <antispam_bo...@hotmail.com>
wrote:
> Recently I run into the problem with a basic task: design of a > polyphase set of filters for the interpolation of a signal. The input is > the sampled signal; the output should be the interpolated values spaced > at 1/10 of the sample. > > So, I designed the LPF at 10 x sample rate by the Parks-McClellan > algorithm, and then decimated it into 10 subsets of the coefficients. > > But, although the original filter is well within the specs, the > decimated subsets (calculated to the original sample rate) are not! > There is a significant difference is in the passband flatness as well as > in the stopband. > > Where is the mistake?
The Park-McClellen or Remez method usually produces filters with equiripple characteristics, instead of decaying stop-band ripple (as would a windowed-Sinc). Subsampling your interpolation filter in the time domain causes the frequency response of the filter to periodically repeat in the transform domain, which causes the tails of the filter response to overlap multiple times. Since the equiripple tails don't fall off with distance from the transistion band, the overlapping tails may add up to a greater level than if you used a filter with decaying stopband ripple. IMHO. YMMV. -- rhn A.T nicholson d.0.t C-o-M

Vladimir Vassilevsky wrote:

> > Recently I run into the problem with a basic task: design of a polyphase > set of filters for the interpolation of a signal. The input is the > sampled signal; the output should be the interpolated values spaced at > 1/10 of the sample. > > So, I designed the LPF at 10 x sample rate by the Parks-McClellan > algorithm, and then decimated it into 10 subsets of the coefficients. > > But, although the original filter is well within the specs, the > decimated subsets (calculated to the original sample rate) are not! > There is a significant difference is in the passband flatness as well as > in the stopband. > > Where is the mistake?
What happens: when the original interpolator LPF response is decimated by the factor of N, its stopband gets aliased by the factor of N also. This alters the frequency response of the subset filters. So, if it is desired to keep the passband flatness, then the stopband attenuation of the original filter has to be increased. In the worst case, the increase should be by the factor of N, however you can probably get by the smaller factors. Thanks to everybody! The question is clear now. Vladimir Vassilevsky DSP and Mixed Signal Design Consultant http://www.abvolt.com
On Mar 11, 3:58&#4294967295;pm, Vladimir Vassilevsky <antispam_bo...@hotmail.com>
wrote:
> Vladimir Vassilevsky wrote: > > > Recently I run into the problem with a basic task: design of a polyphase > > set of filters for the interpolation of a signal. The input is the > > sampled signal; the output should be the interpolated values spaced at > > 1/10 of the sample. > > > So, I designed the LPF at 10 x sample rate by the Parks-McClellan > > algorithm, and then decimated it into 10 subsets of the coefficients. > > > But, although the original filter is well within the specs, the > > decimated subsets (calculated to the original sample rate) are not! > > There is a significant difference is in the passband flatness as well as > > in the stopband. > > > Where is the mistake? > > What happens: when the original interpolator LPF response is decimated > by the factor of N, its stopband gets aliased by the factor of N also. > This alters the frequency response of the subset filters. So, if it is > desired to keep the passband flatness, then the stopband attenuation of > the original filter has to be increased. In the worst case, the increase > should be by the factor of N, however you can probably get by the > smaller factors. > > Thanks to everybody! The question is clear now. > > Vladimir Vassilevsky > DSP and Mixed Signal Design Consultanthttp://www.abvolt.com- Hide quoted text - > > - Show quoted text -
If the net effect is a flat passband on the whole filter, what is the concern about the individual partial filters? Dirk