Source code for acoustics.doppler

"""
Doppler
=======

Doppler shift module.
"""
SOUNDSPEED = 343.0
"""Speed of sound
"""


[docs]def velocity_from_doppler_shift(f1, f2, c=SOUNDSPEED): r"""Calculate velocity based on measured frequency shifts due to Doppler shift. :param c: Speed of sound :math:`c`. :param f1: Lower frequency :math:`f_1`. :param f2: Upper frequency :math:`f_2`. .. math:: v = c \cdot \left( \frac{f_2 - f_1}{f_2 + f_1} \right) The assumption is made that the velocity is constant between the observation times. """ return c * (f2 - f1) / (f2 + f1)
[docs]def frequency_shift(frequency, velocity_source, velocity_receiver, soundspeed=SOUNDSPEED): r"""Frequency shift due to Doppler effect. :param frequency: Emitted frequency :math:`f`. :param velocity_source: Velocity of source :math:`v_s`. Positive if the source is moving away from the receiver (and negative in the other direction). :param velocity_receiver: Velocity of receiver :math:`v_r`. Positive if the receiver is moving towards the source (and negative in the other direction); :param soundspeed: Speed of sound :math:`c`. .. math:: f = \frac{c + v_r}{c + v_s} f_0 """ return (soundspeed + velocity_receiver) / (soundspeed + velocity_source) * frequency