# FIR interpolator

Started by 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?

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

```
```On Mar 11, 2:03&#2013266080;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?
>
> 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
```
```
> 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)?)

DSP and Mixed Signal Design Consultant
http://www.abvolt.com
```
```On Mar 11, 2:40&#2013266080;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.

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:
> > 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:
> > 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
```
```

>
> 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.

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

```
```On Mar 11, 3:58&#2013266080;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?
>
> 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.
>