From: turboii on
I need to implement a particular filter that has 240 taps and it
works/designed for a sampling rate of 125kHz.

I want to change the sampling rate of the filter from 125kS/s to 250kS/s
to match the the hardware I am using, which operates at 250kS/s

if i run the filter as is (at 250kS/s), the spectrum of the filter is
stretched by 2. Is there an easy way to modify the filter taps to change
the filter's sampling rate?


From: Vladimir Vassilevsky on


turboii wrote:

> I need to implement a particular filter that has 240 taps and it
> works/designed for a sampling rate of 125kHz.

What is the purpose of this filter?

Usually, a FIR filter with more then few dozens of taps indicates a
lousy design. The task could be accomplished in more optimal way.

> I want to change the sampling rate of the filter from 125kS/s to 250kS/s
> to match the the hardware I am using, which operates at 250kS/s

So the length is going to be 480 taps. Incredible.

> if i run the filter as is (at 250kS/s), the spectrum of the filter is
> stretched by 2. Is there an easy way to modify the filter taps to change
> the filter's sampling rate?

A dull bruteforce solution is increase the number of taps by the factor
of 2 by sinc interpolation. The better way is usung two stages: one is
the legacy filter, the other is the filter to upsample the result by the
factor of 2.


Vladimir Vassilevsky
DSP and Mixed Signal Design Consultant
http://www.abvolt.com
From: turboii on
>
>> if i run the filter as is (at 250kS/s), the spectrum of the filter is
>> stretched by 2. Is there an easy way to modify the filter taps to
change
>> the filter's sampling rate?
>
>A dull bruteforce solution is increase the number of taps by the factor
>of 2 by sinc interpolation. The better way is usung two stages: one is
>the legacy filter, the other is the filter to upsample the result by the

>factor of 2.
>
>
>Vladimir Vassilevsky
>DSP and Mixed Signal Design Consultant
>http://www.abvolt.com
>

so to double the smapling rate, i would simply double the number of taps
and interpolate between each coefficient? so for example, if my taps
were:
[3, 5, 10, 10, 5, 3]
and i just used linear interpolation, the new coefficients would be:
[3, 4, 5, 7.5, 10, 10, 10, 7.5, 5, 4, 3]

is that correct? what is the advantage by using a sinc interpolator?
From: Tim Wescott on
On Tue, 22 Sep 2009 16:11:40 -0500, turboii wrote:


>>> if i run the filter as is (at 250kS/s), the spectrum of the filter is
>>> stretched by 2. Is there an easy way to modify the filter taps to
> change
>>> the filter's sampling rate?
>>
>>A dull bruteforce solution is increase the number of taps by the factor
>>of 2 by sinc interpolation. The better way is usung two stages: one is
>>the legacy filter, the other is the filter to upsample the result by the
>
>>factor of 2.
>>
>>
>>Vladimir Vassilevsky
>>DSP and Mixed Signal Design Consultant http://www.abvolt.com
>>
>>
> so to double the smapling rate, i would simply double the number of taps
> and interpolate between each coefficient? so for example, if my taps
> were:
> [3, 5, 10, 10, 5, 3]
> and i just used linear interpolation, the new coefficients would be: [3,
> 4, 5, 7.5, 10, 10, 10, 7.5, 5, 4, 3]
>
> is that correct?

Yes.

> what is the advantage by using a sinc interpolator?

For most filters, better performance because the sinc interpolator does a
better job of retaining the frequency-domain characteristics of the
filter.

--
www.wescottdesign.com
From: Randy Yates on
"turboii" <gtu89rx7(a)yahoo.com> writes:
> [...]
> what is the advantage by using a sinc interpolator?

A more accurate frequency response. Model the interpolation as a
convolution of the interpolating function (linear, sinc) with the
upsampled coefficients. Convolution in time ==> multiplication in
frequency, and the sinc interpolator has a rectangular frequency
response.
--
Randy Yates % "I met someone who looks alot like you,
Digital Signal Labs % she does the things you do,
mailto://yates(a)ieee.org % but she is an IBM."
http://www.digitalsignallabs.com % 'Yours Truly, 2095', *Time*, ELO