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]