electricpy.sim.digifiltersim

electricpy.sim.digifiltersim(fin, filter, freqs, NN=1000, dt=0.01, title='', legend=True, xlim=False, xmxscale=None, figsize=None)[source]

Digital Filter Simulator.

Given an input function and filter parameters (specified in the z-domain) this function will plot the input function over NN time-steps of an unspecified size (the step-size must be specified outside the scope of this function). This function will also plot the resultant (output) function over the NN time-steps after having been filtered by that filter which is specified.

The applied filter should be of the form:

\[\frac{b_0+b_1z^{-1}+b_2z^{-2}}{1-a_1z^{-1}-a_2z^{-2}}\]

Where each row corresponds to a 1- or 2-pole filter.

Parameters:
  • fin (function) – The input function, must be callable with specified step-size.

  • filter (array_like) –

    The filter parameter set as shown here:

    [[ a11, a12, b10, b11, b12],
    [ a21, a22, b20, b21, b22],
    [           ...          ],
    [ an1, an2, bn0, bn1, bn2]]
    

  • freqs (list of float) – The set of frequencies to plot the input and output for.

  • NN (int, optional) – The number of time-steps to be plotted; default=1000

  • dt (float, optional) – The time-step size; default=0.01

  • title (str, optional) – The title presented on each plot; default=””

  • xlim (list, optional) – Limit in x-axis for graph plot. Accepts tuple of: (xmin, xmax). default=False.

  • xmxscale (float, optional) – Scaling limit of the x-axis, will set the maximum of the x-axis to xmxscale/(dt*freq) where freq is the current frequency being plotted.

  • legend (str, optional) – An argument to control whether the legend is shown, default=True.

  • figsize (tuple, optional) – The figure dimensions for each subplot, default=None