DSPRelated.com
Forums

Invariable FIR

Started by pardon_232000 February 14, 2004
Hello,

I am looking for a way to keep a FIR the same using to different
sampling rate.

I explain :
I havean an incoming signal sampling at 1048 Hz in which i want to
suppress everything above 50 Hz so i make a low-pass FIR filter (i
know a0, a1,.... filter coefficient). But i want to keep the same
filter behaviour with the same signal but sampling this time at 10008
Hz for example.

Is there a sample way to adjust my coefficient in order to obtain a
new filter of the same order which could suppress all above 50 Hz in
the same way as the initial one ?
"pardon_232000" <pardon_232000@yahoo.fr> wrote in message
news:ef9acc9e.0402141503.50c6bca8@posting.google.com...
> Hello, > > I am looking for a way to keep a FIR the same using to different > sampling rate. > > I explain : > I havean an incoming signal sampling at 1048 Hz in which i want to > suppress everything above 50 Hz so i make a low-pass FIR filter (i > know a0, a1,.... filter coefficient). But i want to keep the same > filter behaviour with the same signal but sampling this time at 10008 > Hz for example. > > Is there a sample way to adjust my coefficient in order to obtain a > new filter of the same order which could suppress all above 50 Hz in > the same way as the initial one ?
Maybe, it depends on your requirements. In essence what you want to do is to shrink the filter's frequency response by a factor of 10008/1048. So, in a really simple-minded way, this means you need to expand the filter's time response by that same factor. Expanding the time response means interpolating it so you'd need to pick an expansion factor that makes sense like 9 or 10 instead of around 9.5. It means increasing the number of coefficients by a factor of 10. A more detailed analysis would suggest that it's keeping the transition width from passband to stopband that is driving this change - rather than the passband width of the filter. So, given those "facts", why not just design another filter that approximates the parts of "sameness" that you need and see what you get? Fred
In article <ef9acc9e.0402141503.50c6bca8@posting.google.com>,
pardon_232000 <pardon_232000@yahoo.fr> wrote:
>I am looking for a way to keep a FIR the same using to different >sampling rate. > >I explain : >I havean an incoming signal sampling at 1048 Hz in which i want to >suppress everything above 50 Hz so i make a low-pass FIR filter (i >know a0, a1,.... filter coefficient). But i want to keep the same >filter behaviour with the same signal but sampling this time at 10008 >Hz for example. > >Is there a sample way to adjust my coefficient in order to obtain a >new filter of the same order which could suppress all above 50 Hz in >the same way as the initial one ?
If you have the equation for your low-pass FIR filter, then you just need to expand it in the time domain by fnew/fold and recalculate all the coefficients (the number of which will expand by about the same amount). If you don't have or can't construct the equation for your FIR coefficients, then you could still expand the filter coefficients in the time domain (e.g. plot points at 0, 9.55, 19.1,...) and polynomial interpolate (Lagrange, spline, Bezier, sinc, etc.) at all the integer abscissi (at 0, 1, 2,...) for your new coefficients. However, this will introduce distortions if you don't start with enough original taps, or the filter is too wide in the frequency domain for your interpolation method. Another possibility would be to downsample your original signal by 1048/10008 (~ 1/9.55) while filtering to the Nyquist f, and then run your FIR filter on that intermediate filtered signal. IMHO. YMMV. -- Ron Nicholson rhn AT nicholson DOT com http://www.nicholson.com/rhn/ #include <canonical.disclaimer> // only my own opinions, etc.