CF-FM bats such as horseshoe bats (Rhinolophus) emit long constant-frequency (CF) calls tuned to a narrow "reference frequency" where their inner ear is sharpest (an acoustic fovea). Flight speed alone would Doppler-shift the returning echo far outside that band, so the bat continuously lowers its outgoing call frequency in flight — Doppler Shift Compensation (DSC) — to keep the echo pinned near the reference frequency, first described by Schnitzler (1968).
Sound bounces off the target, so the shift is applied twice — once on the way out (bat as moving source), once on the way back (target as moving source):
f_echo = f0 · (c + v_tgt)(c + v_bat)
-------------------------
(c - v_bat)(c - v_tgt)
c = 343 m/s (speed of sound)
v_bat = bat's speed toward target (+ approaching)
v_tgt = target's speed toward bat (+ approaching)
With compensation on, the bat solves this equation for f0 so that f_echo always equals the reference frequency:
f0 = f_ref · (c - v_bat)(c - v_tgt)
-----------------------
(c + v_tgt)(c + v_bat)
- v_bat slider — the bat's own flight speed toward the target; faster flight needs a bigger downward call-frequency correction.
- v_tgt slider — the target's (moth's) speed component toward the bat; negative values mean the moth is fleeing.
- f0,manual slider — sets a fixed call frequency when compensation is switched off, so you can see how far the echo drifts without it.
- Compensation toggle — switch DSC on to watch the echo readout snap back to the 83 kHz reference regardless of speed; switch it off to see raw Doppler drift.
The colored pulses show the outbound call (orange→toward target) and the returning echo (cyan→toward bat); pulse color also encodes instantaneous frequency, from blue (below reference) through white (on reference) to red (above reference).