DSPRelated.com
Forums

FIR filter

Started by rosy...@gmail.com January 12, 2006
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

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