Skip to main content

gmsk_pulse

Function gmsk_pulse 

Source
pub fn gmsk_pulse(t: f64, bt: f64) -> f64
Expand description

The Gaussian frequency pulse of GMSK, centred at 0, with $T = 1$ (Murota & Hirade, 1981): the response of the Gaussian low-pass filter of 3 dB bandwidth $B$ to a rectangular pulse of one symbol,

$$ g(t) = \frac{1}{2}\left[Q\left(\frac{2 \pi B}{\sqrt{\ln 2}}\left(t - \frac{1}{2}\right)\right) - Q\left(\frac{2 \pi B}{\sqrt{\ln 2}}\left(t + \frac{1}{2}\right)\right)\right], \qquad \int_{-\infty}^{\infty} g(t) \, dt = \frac{1}{2}. $$

§Examples

use comnum_waveform::cpm::gmsk_pulse;
// the pulse is symmetric and its area is 1/2 (Simpson's rule over ±4 symbols)
let area = comnum_math::simpson(|t| gmsk_pulse(t, 0.3), -4.0, 4.0, 800);
assert!((area - 0.5).abs() < 1e-9);
assert!((gmsk_pulse(0.7, 0.3) - gmsk_pulse(-0.7, 0.3)).abs() < 1e-15);