LFM chirp signal
Plugin name: lfm_chirp
Implementation: openstb.simulator.system.signal.LFMChirp
A linear frequency modulated (LFM) chirp sweeps between two frequencies with a linear rate of change. For a start frequency of \(f_a\), an end frequency of \(f_b\), a chirp length of \(\tau\) and an amplitude \(A\), the signal is
where \(K = (f_b - f_a)/\tau\) is the chirp rate or rate of change. The instantaneous frequency of this is
which changes linearly for the duration of the chirp as desired. Note that the frequency may increase (\(f_b > f_a\), meaning \(K > 0\)) or decrease (\(f_b < f_a\), meaning \(K < 0\)) during the chirp.
Parameters
Four parameters are required for the chirp:
f_start: the start frequency (\(f_a\)) of the chirp in Hertz.f_stop: the stop frequency (\(f_b\)) of the chirp in Hertz.duration: the length of the chirp (\(\tau\)) in seconds.rms_spl: the root-mean-square sound pressure level of the transmitted chirp, i.e., \(20\log_{10} (A / 10^{-6})\).
For example, for an up-chirp sweeping a bandwidth of 20kHz over 10ms centred at 100kHz with a SPL of 180dB (corresponding to 1000 Pascal):
[signal]
plugin = "lfm_chirp"
f_start = 90e3
f_stop = 110e3
duration = 10e-3
rms_spl = 180
Two optional parameters may also be given:
-
signal_window: details of a window to be applied to the chirp, for example to taper the ends to reduce ringing. By default no window is applied. -
rms_after_window: if set to true (which is the default), therms_splparameter is applied to the signal after the signal window. If set to false, therms_splparameter is applied to the signal before the window.
For example, to apply a Tukey window tapering the first and last 10% of the previous signal:
[signal]
plugin = "lfm_chirp"
f_start = 90e3
f_stop = 110e3
duration = 10e-3
rms_spl = 180
rms_after_window = false
[signal.window]
plugin = "tukey"
alpha = 0.2