From: Vladimir Vassilevsky on


Jerry Avins wrote:
> On 6/7/2010 8:18 AM, PaulTapper wrote:
>
>> Hi,
>>
>> Is there a standard way of converting an IIR filter to a different sample
>> rate?
>>
>> What I mean by this is, if I have an IIR filter F0 with a particular
>> frequency response at sample rate S0, and I want to create a filter F1 to
>> give, as near as possible, the same frequency response, at a different
>> sample rate S1, is there a standard way of calculating the
>> coefficients of
>> F1 from F0?
>>
>> My initial thoughts are that maybe I can find the zeroes and poles, and
>> then rotate them around the unit circle or something, but I suspect there
>> may be a standard solution to this problem?
>
>
> Why not design a new filter to the original response specs? Even if
> there were a simple transformation, the prewarping would be wrong.

The problem stated by OP is quite common. Of course, it is possible to
design a filter to a new sample rate from scratch. However this implies
pretty extensive floating point math with libraries which could be too
heavy for the target hardware. If this is a case, I prefer interpolation
between the sets of coefficients.


Vladimir Vassilevsky
DSP and Mixed Signal Design Consultant
http://www.abvolt.com
From: pnachtwey on
On Jun 7, 5:18 am, "PaulTapper" <paul__tapper(a)n_o_s_p_a_m.hotmail.com>
wrote:
> Hi,
>
> Is there a standard way of converting an IIR filter to a different sample
> rate?
>
> What I mean by this is, if I have an IIR filter F0 with a particular
> frequency response at sample rate S0, and I want to create a filter F1 to
> give, as near as possible, the same frequency response, at a different
> sample rate S1, is there a standard way of calculating the coefficients of
> F1 from F0?
>
> My initial thoughts are that maybe I can find the zeroes and poles, and
> then rotate them around the unit circle or something, but I suspect there
> may be a standard solution to this problem?
>
> Thanks for any help.
>
> Paul
I just posted a similar question
http://groups.google.com/group/comp.dsp/browse_frm/thread/9eee0eb0c9ca6e82#
I am not able to work on the solution now but I will next week. I
tried use an inverse Tustin's to s domain and then Tustin's to z
domain but that was not very accurate. It was accurate to about 3
decimal places. The Tustin's approximation also introduced zeros that
weren't there before. Not good. I also have an offset that you may
not have. When I am able I will look into using the inverse matched z
transforms and match z transforms. This problem seems to have stump
this news group.

How many terms do you have in your IIR filter? I may be able to help
with something simple but at this time I don't have a general
solution. There may not be a general solution. I do know I can wok
out a solution for a specific case given time using the same
techniques I used for the simple first order IIR in my pdf files.

Peter Nachtwey
From: Jerry Avins on
On 6/7/2010 8:52 PM, Vladimir Vassilevsky wrote:
>
>
> Jerry Avins wrote:
>> On 6/7/2010 8:18 AM, PaulTapper wrote:
>>
>>> Hi,
>>>
>>> Is there a standard way of converting an IIR filter to a different
>>> sample
>>> rate?
>>>
>>> What I mean by this is, if I have an IIR filter F0 with a particular
>>> frequency response at sample rate S0, and I want to create a filter
>>> F1 to
>>> give, as near as possible, the same frequency response, at a different
>>> sample rate S1, is there a standard way of calculating the
>>> coefficients of
>>> F1 from F0?
>>>
>>> My initial thoughts are that maybe I can find the zeroes and poles, and
>>> then rotate them around the unit circle or something, but I suspect
>>> there
>>> may be a standard solution to this problem?
>>
>>
>> Why not design a new filter to the original response specs? Even if
>> there were a simple transformation, the prewarping would be wrong.
>
> The problem stated by OP is quite common. Of course, it is possible to
> design a filter to a new sample rate from scratch. However this implies
> pretty extensive floating point math with libraries which could be too
> heavy for the target hardware. If this is a case, I prefer interpolation
> between the sets of coefficients.

Had the OP written that he needs to design his filter on target
hardware, the suggestions would have been different. A program's needing
to adapt to a new sample rate it couldn't anticipate must be rather rare.

Jerry
--
Engineering is the art of making what you want from things you can get.
�����������������������������������������������������������������������
From: Tim Wescott on
On 06/07/2010 06:57 PM, pnachtwey wrote:
> On Jun 7, 5:18 am, "PaulTapper"<paul__tapper(a)n_o_s_p_a_m.hotmail.com>
> wrote:
>> Hi,
>>
>> Is there a standard way of converting an IIR filter to a different sample
>> rate?
>>
>> What I mean by this is, if I have an IIR filter F0 with a particular
>> frequency response at sample rate S0, and I want to create a filter F1 to
>> give, as near as possible, the same frequency response, at a different
>> sample rate S1, is there a standard way of calculating the coefficients of
>> F1 from F0?
>>
>> My initial thoughts are that maybe I can find the zeroes and poles, and
>> then rotate them around the unit circle or something, but I suspect there
>> may be a standard solution to this problem?
>>
>> Thanks for any help.
>>
>> Paul
> I just posted a similar question
> http://groups.google.com/group/comp.dsp/browse_frm/thread/9eee0eb0c9ca6e82#
> I am not able to work on the solution now but I will next week. I
> tried use an inverse Tustin's to s domain and then Tustin's to z
> domain but that was not very accurate. It was accurate to about 3
> decimal places. The Tustin's approximation also introduced zeros that
> weren't there before. Not good. I also have an offset that you may
> not have. When I am able I will look into using the inverse matched z
> transforms and match z transforms. This problem seems to have stump
> this news group.
>
> How many terms do you have in your IIR filter? I may be able to help
> with something simple but at this time I don't have a general
> solution. There may not be a general solution. I do know I can wok
> out a solution for a specific case given time using the same
> techniques I used for the simple first order IIR in my pdf files.

Well, I wouldn't say that I'm stumped per se, just that I don't have the
information at my fingertips and -- much as I think you're a cool guy --
I'm not willing to work it all out for free. I think it's a very
solvable problem, however.

--
Tim Wescott
Control system and signal processing consulting
www.wescottdesign.com
From: Mikolaj on
On 08-06-2010 at 02:52:13 Vladimir Vassilevsky <nospam(a)nowhere.com> wrote:

> The problem stated by OP is quite common. Of course, it is possible to
> design a filter to a new sample rate from scratch. However this implies
> pretty extensive floating point math with libraries which could be too
> heavy for the target hardware. If this is a case, I prefer interpolation
> between the sets of coefficients.
>
>
> Vladimir Vassilevsky
> DSP and Mixed Signal Design Consultant
> http://www.abvolt.com

Entry: resampling.
Am I right?

--
Mikolaj