# Change filter frequency sample by its coefficients

I have a 3 stage biquad filter, so I have 15 coefficients, that filter was created for a 48kHz signal,

AFAIK, filter coefficients are calculated in a normalized frequency matter, can they be scaled of calculated for another frequency sample? ie. 96kHz? getting the same freq response?

currently using Matlab for this

can they be scaled of calculated for another frequency sample?

There is no one-size-fits-all method to do this. In your example, the frequency response is defined from 0 to 24 kHz (half the sampling rate). If you want a filter sampled at 96 kHz, the frequency response is now defined from 0Hz to 48kHz so you need to define what happens at all these new frequencies.

One way to do this is to calculate the impulse response, resample it (which will lowpass filter the new frequencies) and then refit it's Fourier Transform to a new IIR filter.

You can also transform the poles and zeros of the original filter into the s-plane and then transform them back into the z-plane at the new sample rate. This will result in some amount of warping error at high frequencies which may or may not be a problem.

If you have a "standard" filter type (Butterworth, Elliptic) you can simply re-design at the new sample rate.

• What about halving the angle for each pole and zero? Commented Aug 26, 2023 at 20:41
• @DanBoschen: that doesn't work particularly well for real poles and zeros. I think this is just would be a approximation of $Z \rightarrow S \rightarrow Z^{'}$, but I'm currently too lazy to slog through the math :) Commented Aug 27, 2023 at 6:42
• Yes I see—your intuition is with the “aliasing” interaction of a root with it’s conjugate I assume. So an increasing issue as roots approach DC and Nyquist. Well that’s interesting; never tried but your post made me curious about that approach and to what extent it holds up. If I have time for slogging I might play with that for the insights it might offer. Commented Aug 27, 2023 at 12:18