DSPRelated.com
Forums

interpolation revisited

Started by Unknown January 11, 2007
I'm attempting to interpolate a bandlimited sampled signal s(nT) to
some arbitrary point s(nT+u) 0<=u<=T.  I've seen a number of texts
define the continuous time impulse response of several interpolating
filters, linear, cubic etc and also the corresponding frequency
responses - which generally show nulls centred around the image
frequencies.

For example, a linear interpolator has a continuous time impulse
response of h(t) = 1-abs(t/T) and zero for abs(t) >= T (basically a
triangular function of width 2T).  The corresponding frequency response
of this interpolator shows a null at the image frequencies +/- 1/T, 2/T
and rather large sidelobes.  If we were to implement this type of
interpolator, we could oversample our signal s(nT) by some large factor
M - filter - and then downsample by U to get an arbitrary interpolation
point.  If we do these operations, i can easily see the aliasing
effects of the image frequencies based on the frequency response of my
filter h(t) - for linear interpolation it isn't very nice.

However, if i simply stick my signal s(nT) through a filter h = (1-u) +
uz^{-1}, then i obtain a linear interpolated signal at the output
evaluated at an arbitrary point s(nT+u) but i haven't had to worry
about image frequencies or aliasing.  My bandlimited sampled signal
s(nT) only exists between +/- Fs/2 and also my filter h only exists
between +/- Fs/2.

What am i missing here?

col

c...@hotmail.com wrote:
> I'm attempting to interpolate a bandlimited sampled signal s(nT) to > some arbitrary point s(nT+u) 0<=u<=T. I've seen a number of texts > define the continuous time impulse response of several interpolating > filters, linear, cubic etc and also the corresponding frequency > responses - which generally show nulls centred around the image > frequencies.
they won't *generally* do that, but most of those polynomial filters *do* do that (put nulls at non-zero integer multiples of the sampling frequency).
> For example, a linear interpolator has a continuous time impulse > response of h(t) = 1-abs(t/T) and zero for abs(t) >= T (basically a > triangular function of width 2T). The corresponding frequency response > of this interpolator shows a null at the image frequencies +/- 1/T, 2/T > and rather large sidelobes. If we were to implement this type of > interpolator, we could oversample our signal s(nT) by some large factor > M - filter - and then downsample by U to get an arbitrary interpolation > point. If we do these operations, i can easily see the aliasing > effects of the image frequencies based on the frequency response of my > filter h(t) - for linear interpolation it isn't very nice.
if you do decent oversampling (by some integer ratio) before using linear interpolation between those *new* oversampled samples, the sinc^2(fT) function ("T" is now your new and reduced sampling period) is so close to zero for any part of the image that survives oversampling, that it *should* be "very nice". so i am not sure what you mean or what the problem is.
> However, if i simply stick my signal s(nT) through a filter h = (1-u) + > uz^{-1}, then i obtain a linear interpolated signal at the output > evaluated at an arbitrary point s(nT+u) but i haven't had to worry > about image frequencies or aliasing. My bandlimited sampled signal > s(nT) only exists between +/- Fs/2 and also my filter h only exists > between +/- Fs/2. > > What am i missing here?
you don't just "simply stick [your] signal s(nT) through a filter h = (1-u) + uz^{-1}" because "u" isn't anything in this discrete-time filter. what you do, when you do linear interpolation is stick the signal T * SUM{ s(nT) * delta(t - nT) } through a filter with impulse response h(t) = 1/T *(1 - |t/T|) for |t|<T which happens to have (sinc(fT))^2 as a frequency response. maybe this formality is what you're missing. i dunno. r b-j
robert bristow-johnson wrote:
> c...@hotmail.com wrote: > > I'm attempting to interpolate a bandlimited sampled signal s(nT) to > > some arbitrary point s(nT+u) 0<=u<=T. I've seen a number of texts > > define the continuous time impulse response of several interpolating > > filters, linear, cubic etc and also the corresponding frequency > > responses - which generally show nulls centred around the image > > frequencies. > > they won't *generally* do that, but most of those polynomial filters > *do* do that (put nulls at non-zero integer multiples of the sampling > frequency). > > > For example, a linear interpolator has a continuous time impulse > > response of h(t) = 1-abs(t/T) and zero for abs(t) >= T (basically a > > triangular function of width 2T). The corresponding frequency response > > of this interpolator shows a null at the image frequencies +/- 1/T, 2/T > > and rather large sidelobes. If we were to implement this type of > > interpolator, we could oversample our signal s(nT) by some large factor > > M - filter - and then downsample by U to get an arbitrary interpolation > > point. If we do these operations, i can easily see the aliasing > > effects of the image frequencies based on the frequency response of my > > filter h(t) - for linear interpolation it isn't very nice. > > if you do decent oversampling (by some integer ratio) before using > linear interpolation between those *new* oversampled samples, the > sinc^2(fT) function ("T" is now your new and reduced sampling period) > is so close to zero for any part of the image that survives > oversampling, that it *should* be "very nice". so i am not sure what > you mean or what the problem is. >
rbj, Yes, the higher the oversampling, the more each of the image frequencies will be pushed down. In effect, the image frequencies get hit from both sides of the interpolation filter as it wraps around with period 1/2T where T is the new sampling period. This makes sense now. I was comparing linear, cubic and quadratic interpolation methods but couldn't understand why the linear interpolation was winning hands down all the time. My oversampling is approx 3-4 times, so really there's not a lot of difference between the methods because the interpolation filters are removing most of the aliasing. Just out of interest, is there a rule of thumb when it comes to oversampling vs interpolation filter selection? i.e. if you have an oversampling rate of M then linear will do fine. My feeling is that it depends on the characteristics of the signal s(t) and whether it has any components close to Fs/2, just curious. One last question if i may. If s(t) is noisy be it via Gaussian noise or whatever, does it make sense to optimise the interpolation filter to yield a least squares solution? I'm assuming that knowledge of the statistics of the noise/interference is required? col <snipped rest of my crap>
> In effect, the image frequencies get > hit from both sides of the interpolation filter as it wraps around with > period 1/2T where T is the new sampling period.
Just re-read the above and it's complete hogwash. I was thinking continuous and typing discrete. I really meant that the upper and lower sidebands of the image frequencies get hit by the filter response from the extension into postive and negative freq. A diagram would be much easier at this point! col