Hi,
In a signal processing practice the problem formulates as the
following: "how to change sampling rate preserving spectral data". For
example, if current sampling is 16 kHz, target rate is 32kHz and the
input vector is a chirp signal 0-8kHz then the output should be a chirp
0-8kHz (i.e. half-band reps to 32kHz sampling rate) having twise more
samples than original.
Note, if above is a downsampling (16 -> 8) problem, then the output is
a chirp 0-4kHz (all above 4kHz should be zero).
Looking at a FIR/IRR equation one can easily cath that a feeding of a
single sample at the filter input derives a single output sample. So,
there is no interpolation.
Known fact is that the insertion of n-zeros between samples has a
spectrum reflection effect in a frequency domain ("inverse" situation
takes place in a samples removal case). That is why you need a filter -
to remove unnecessary spectrum components. The length determines how
flat is your filter. Cutoff position (normalized) is dependent on
interp. factor 2x - .5, 3x - .3 ...
Using zeros inserting/removing + filtering you can perform
up/down-sampling at any integer factor. (2.1x times interpolation = 21
times up and 10 times down)
For a fractional factors one have to use big integer multipliers and
spline interpolation is more preferable this case, but it has a
drawbacks in a frequency domain.
Dmitry
Reply by Emiliano●January 13, 20062006-01-13
> A really simple 2X interpolator filter is [1/2 1 1/2]. Here's how it
> works:
Hi, i have the same problem:
What about a 2.1X interpolator? Really I don't understand the relation
between the interpolator factor and filter's coefficent. Can you tell me
more?
Thanks in advance, Emiliano.
Reply by Fred Marshall●January 12, 20062006-01-12
<rosy27@gmail.com> wrote in message
news:1137100662.292055.259180@g44g2000cwa.googlegroups.com...
> Hello Everybody,
>
> I am a novice in Signal Processing field. I saw few messages on
> Interpolation. I have a similar doubt. I have a complex chirp signal.
> And I wanna interpolate this signal to get intermediate values.I tried
> to interpolate using an FIR filter with coefficients calculated using
> sinc interpolation but i could nt get the desired reult even with a
> large filter length. I dont know how to design an FIR filter for this
> problem?
>
> Rose
>
The details of the filter design may be the least of your worries.
What you need to do is stuff zeros in between the existing samples and then
use a filter.
Is that your problem? i.e. not doing the zero stuffing first?
Somehow you need to get the sample rate up to affect interpolation. So,
adding zero-valued samples in between the existing samples does that. Then,
filtering will make the zeros into non-zero values - hence interpolation.
Note that the interpolating filter will have coefficients that operate on
all the samples, including the zero-valued ones. In other words, the filter
will have a unit delays equal to the new sample interval.
A really simple 2X interpolator filter is [1/2 1 1/2]. Here's how it works:
Original sequence to interpolate:
[1 2 3 4 5 6 5 6 5 6 5 4 3 2 1]
Add zeros to increase the sample rate:
[1 0 2 0 3 0 4 0 5 0 6 0 5 0 6 0 5 0 6 0 5 0 4 0 3 0 2 0 1]
Convolve with the filter from above to get the interpolated sequence:
[0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6 5.5 5 5.5 6 5.5 6 5.5 5 4.5 4 3.5 3 2.5
2 1.5 1 0.5]
Once you have this well in mind, then consider half-band filters for the
same purpose.
Fred
Fred
Reply by rosy...@gmail.com●January 12, 20062006-01-12
Hello Everybody,
I am a novice in Signal Processing field. I saw few messages on
Interpolation. I have a similar doubt. I have a complex chirp signal.
And I wanna interpolate this signal to get intermediate values.I tried
to interpolate using an FIR filter with coefficients calculated using
sinc interpolation but i could nt get the desired reult even with a
large filter length. I dont know how to design an FIR filter for this
problem?
Rose