Fitting filters to frequency response

PyDynamic.identification.fit_filter.LSFIR(H, N, tau, f, Fs, Wt=None)[source]

Least-squares fit of a digital FIR filter to a given frequency response.

Parameters:
  • H (ndarray) – frequency response values
  • N (int) – FIR filter order
  • tau (int) – delay of filter
  • f (ndarray) – frequencies
  • Fs (float) – sampling frequency of digital filter
  • Wt – (optional) vector of weights
Returns:

filter coefficients bFIR (ndarray) of shape (N,)

PyDynamic.identification.fit_filter.LSIIR(Hvals, Nb, Na, f, Fs, tau=0, justFit=False)[source]

Least-squares IIR filter fit to a given frequency response.

This method uses Gauss-Newton non-linear optimization and pole mapping for filter stabilization

Parameters:
  • Hvals – numpy array of frequency response values
  • Nb – integer numerator polynomial order
  • Na – integer denominator polynomial order
  • f – numpy array of frequencies at which Hvals is given
  • Fs – sampling frequency
  • tau – integer initial estimate of time delay
  • justFit – boolean, when true then no stabilization is carried out
Returns:

IIR filter coefficients as numpy arrays tau: filter time delay in samples

Return type:

b,a

References: * Eichstädt et al. 2010 [Eichst2010] * Vuerinckx et al. 1996 [Vuer1996]