Transmit (TX) Modulations
Est. read time: 1 minute | Last updated: November 07, 2024 by John Gentile
Contents
import numpy as np
import matplotlib.pyplot as plt
from rfproto import measurements, plot, sig_gen
Chirp
A chirp is a signal where the frequency increases (up-chirp) or decreases (down-chirp) with time, (also known as a frequency sweep).
Linear Frequency Modulated (LFM) Chirp
In LFM chirp, the instantaneous frequency, (in Hz), varies linearly with time:
where is the starting frequency (Hz), and is the constant chirp rate given an end frequency (Hz) and the sweep time between frequencies :
Since frequency is the derivative of phase (e.g. ), and frequency is linearly changing (increasing or decreasing), it is expected that phase changes quadratic over time, as shown by:
The corresponding time-domain output is simply the of this phase function, or for complex output.
f_start = 10e3
f_end = 40e3
fs = 100e3
num_samples = 10000
lfm_chirp_sig = sig_gen.cmplx_dt_lfm_chirp(1, f_start, f_end, fs, num_samples)
freq, y_PSD = measurements.PSD(lfm_chirp_sig, fs, norm=True)
plot.freq_sig(freq, y_PSD, "LFM Chirp Spectrum", scale_noise=True)
plt.show()
References
- Chirp - Wikipedia
- Coherent Processing of Up/Down Linear Frequency Modulated Chirps - Sandia National Lab