-
sdr.gaussian(time_bandwidth: float, span: int, sps: int, norm: 'power' | 'energy' | 'passband' =
'passband'
) NDArray[float_] Returns a Gaussian pulse shape.
- Parameters:¶
- time_bandwidth: float¶
The time-bandwidth product \(B T_{sym}\) of the filter, where \(B\) is the one-sided 3-dB bandwidth in Hz and \(T_{sym}\) is the symbol time in seconds. The time-bandwidth product can also be thought of as the fractional bandwidth \(B / f_{sym}\). Smaller values produce wider pulses.
- span: int¶
The length of the filter in symbols. The length of the filter is
span * sps + 1
samples. The filter orderspan * sps
must be even.- sps: int¶
The number of samples per symbol.
- norm: 'power' | 'energy' | 'passband' =
'passband'
¶ Indicates how to normalize the pulse shape.
"power"
: The pulse shape is normalized so that the maximum power is 1."energy"
: The pulse shape is normalized so that the total energy is 1."passband"
: The pulse shape is normalized so that the passband gain is 1.
- Returns:¶
The Gaussian pulse shape.
Notes¶
The Gaussian pulse shape has a transfer function of
\[H(f) = \exp(-\alpha^2 f^2) .\]The parameter \(\alpha\) is related to the 3-dB bandwidth \(B\) by
\[\alpha = \sqrt{\frac{\ln 2}{2}} \frac{T_{sym}}{B T_{sym}} = \sqrt{\frac{\ln 2}{2}} \frac{1}{B}.\]The impulse response is defined as
\[h(t) = \frac{\sqrt{\pi}}{\alpha} \exp\left[-\left(\frac{\pi}{\alpha} t\right)^2 \right]. \]References¶
Examples¶
In [1]: h_0p1 = sdr.gaussian(0.1, 5, 10); \ ...: h_0p2 = sdr.gaussian(0.2, 5, 10); \ ...: h_0p3 = sdr.gaussian(0.3, 5, 10); ...: In [2]: plt.figure(figsize=(8, 4)); \ ...: sdr.plot.impulse_response(h_0p1, label=r"$B T_{sym} = 0.1$"); \ ...: sdr.plot.impulse_response(h_0p2, label=r"$B T_{sym} = 0.2$"); \ ...: sdr.plot.impulse_response(h_0p3, label=r"$B T_{sym} = 0.3$") ...:
See the Pulse shapes example.