From: Rob Gaddi on 10 Jun 2010 13:59 On 6/10/2010 2:37 AM, Rune Allnor wrote: > On 8 Jun, 18:35, Rob Gaddi<rga...(a)technologyhighland.com> wrote: >> On 6/8/2010 1:18 AM, Rune Allnor wrote: >> >> >> >> >> >>> On 8 Jun, 02:52, Vladimir Vassilevsky<nos...(a)nowhere.com> 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. >> >>> Would one do filter *design* with scarce computational >>> resources? I think of design as something done once up >>> front, on a PC, and then the coefficints might be >>> downloaded to whatever device that would actually run >>> the filter. >> >>>> If this is a case, I prefer interpolation >>>> between the sets of coefficients. >> >>> Sure. With FIRs this would be possible. But IIRs? >> >>> Rune >> >> Not sure if you could interpolate the coefficients, but you could at >> least interpolate the poles, then throw some quick math at it to turn >> them into biquads. > > Still don't see how this would work. Could you sketch an > example? > > Rune The interpolation between the poles (P' = P1*a + P2*(1-a) for P = [R theta]), or turning pole pairs into biquad coefficients? -- Rob Gaddi, Highland Technology Email address is currently out of order
First
|
Prev
|
Pages: 1 2 3 4 5 Prev: please DSP simple FPGA example Next: implementing MUSIC/Pisarenko algorithm in Matlab |