-
sdr.plot.group_delay(filter: FIR | IIR | ArrayLike | tuple[ArrayLike, ArrayLike], sample_rate: float | None =
None, N: int =1024, ax: plt.Axes | None =None, x_axis: 'auto' | 'one-sided' | 'two-sided' | 'log' ='auto', decades: int =4, **kwargs) Plots the group delay \(\tau_g(\omega)\) of the IIR filter.
- Parameters:¶
- filter: FIR | IIR | ArrayLike | tuple[ArrayLike, ArrayLike]¶
The filter definition.
- sample_rate: float | None =
None¶ The sample rate \(f_s\) of the signal in samples/s. If
None, the x-axis will be labeled as “Normalized frequency”.- N: int =
1024¶ The number of samples \(N\) in the frequency response.
- ax: plt.Axes | None =
None¶ The axis to plot on. If
None, the current axis is used.- x_axis: 'auto' | 'one-sided' | 'two-sided' | 'log' =
'auto'¶ The x-axis scaling. Options are to display a one-sided spectrum, a two-sided spectrum, or one-sided spectrum with a logarithmic frequency axis. The default is
"auto"which selects"one-sided"for real-valued filters and"two-sided"for complex-valued filters.- decades: int =
4¶ The number of decades to plot when
x_axis="log".- **kwargs¶
Additional keyword arguments to pass to
matplotlib.pyplot.plot().
Examples
See the FIR filters example.
In [1]: h_srrc = sdr.root_raised_cosine(0.5, 10, 10) In [2]: plt.figure(); \ ...: sdr.plot.group_delay(h_srrc); ...:
See the IIR filters example.
In [3]: zero = 0.6; \ ...: pole = 0.8 * np.exp(1j * np.pi / 8); \ ...: iir = sdr.IIR.ZerosPoles([zero], [pole, pole.conj()]) ...: In [4]: plt.figure(); \ ...: sdr.plot.group_delay(iir) ...:
In [5]: plt.figure(); \ ...: sdr.plot.group_delay(h_srrc, x_axis="two-sided"); ...:
In [6]: plt.figure(); \ ...: sdr.plot.group_delay(iir, x_axis="log", decades=3) ...: