Source code for radarx.fundamentals.power
"""
Radar Power Calculations
=========================
Functions for computing peak power, average power, and minimum detectable signal.
.. autosummary::
:nosignatures:
:toctree: generated/
compute_peak_power
compute_average_power
compute_min_detectable_signal
References
----------
- Rinehart, R. E. (2004). Radar for Meteorologists. 4th ed.
- Doviak, R. J., & Zrnić, D. S. (1993). Doppler Radar and Weather Observations.
"""
__all__ = [
"compute_average_power",
"compute_min_detectable_signal",
"compute_peak_power",
]
from .constants import K_BOLTZMANN
[docs]
def compute_peak_power(voltage, impedance):
"""
Compute peak power from voltage and impedance.
Parameters
----------
voltage : float
Peak voltage [V].
impedance : float
System impedance [Ohms].
Returns
-------
float
Peak power [W].
References
----------
- Rinehart (2004), Ch. 2
"""
return voltage**2 / impedance
[docs]
def compute_average_power(peak_power, duty_cycle):
"""
Compute average power from peak power and duty cycle.
Parameters
----------
peak_power : float
Peak transmitted power [W].
duty_cycle : float
Duty cycle (0 < value < 1).
Returns
-------
float
Average power [W].
References
----------
- Rinehart (2004), Ch. 2
"""
return peak_power * duty_cycle
[docs]
def compute_min_detectable_signal(bandwidth, system_temp, snr_threshold=1):
"""
Compute minimum detectable signal power.
Parameters
----------
bandwidth : float
Receiver bandwidth [Hz].
system_temp : float
System temperature [K].
snr_threshold : float, optional
Minimum required SNR to detect signal (default is 1).
Returns
-------
float
Minimum detectable signal power [W].
References
----------
- Doviak and Zrnić (1993), Eq. 3.1.12
"""
return snr_threshold * K_BOLTZMANN * system_temp * bandwidth