Source code for radarx.fundamentals.timing
"""
Timing Calculations
===================
Functions for radar timing-related calculations: PRF, duty cycle, blind range, etc.
.. autosummary::
:nosignatures:
:toctree: generated/
compute_blind_range
compute_duty_cycle
compute_max_unambiguous_range
compute_max_unambiguous_velocity
compute_prf
compute_pulse_repetition_interval
References
----------
- Doviak, R. J., & Zrnić, D. S. (1993). Doppler Radar and Weather Observations. Academic Press.
"""
__all__ = [
"compute_blind_range",
"compute_duty_cycle",
"compute_max_unambiguous_range",
"compute_max_unambiguous_velocity",
"compute_prf",
"compute_pulse_repetition_interval",
]
from .constants import C
[docs]
def compute_prf(pulse_width, duty_cycle):
"""
Compute Pulse Repetition Frequency (PRF).
Parameters
----------
pulse_width : float
Pulse width in seconds.
duty_cycle : float
Duty cycle (0 < duty_cycle < 1).
Returns
-------
float
PRF in Hz.
References
----------
- Doviak and Zrnić (1993), Eq. 3.3.2
"""
return duty_cycle / pulse_width
[docs]
def compute_duty_cycle(prf, pulse_width):
"""
Compute the duty cycle of the radar.
Parameters
----------
prf : float
Pulse repetition frequency [Hz].
pulse_width : float
Pulse width [s].
Returns
-------
float
Duty cycle (0 < value < 1).
References
----------
- Doviak and Zrnić (1993), Eq. 3.3.3
"""
return prf * pulse_width
[docs]
def compute_blind_range(pulse_width):
"""
Compute blind range (minimum detectable range) caused by transmission pulse.
Parameters
----------
pulse_width : float
Pulse width [s].
Returns
-------
float
Blind range [m].
Notes
-----
Targets within this range cannot be detected because the receiver is turned off.
References
----------
- Doviak and Zrnić (1993), Section 3.3
"""
return C * pulse_width / 2
[docs]
def compute_max_unambiguous_range(prf):
"""
Compute the maximum unambiguous range.
Parameters
----------
prf : float
Pulse repetition frequency [Hz].
Returns
-------
float
Maximum unambiguous range [m].
References
----------
- Doviak and Zrnić (1993), Eq. 3.3.4
"""
return C / (2 * prf)
[docs]
def compute_max_unambiguous_velocity(prf, wavelength):
"""
Compute the maximum unambiguous velocity.
Parameters
----------
prf : float
Pulse repetition frequency [Hz].
wavelength : float
Radar wavelength [m].
Returns
-------
float
Maximum unambiguous velocity [m/s].
References
----------
- Doviak and Zrnić (1993), Eq. 6.3.5
"""
return prf * wavelength / 4
[docs]
def compute_pulse_repetition_interval(prf):
"""
Compute Pulse Repetition Interval (PRI) from PRF.
Parameters
----------
prf : float
Pulse repetition frequency [Hz].
Returns
-------
float
Pulse repetition interval [s].
References
----------
- Doviak and Zrnić (1993), Eq. 3.3.1
"""
return 1.0 / prf