Skip to content

docs(GaussFIR): explain the sqrt(2) in the Doppler filter width constant - #4

Open
spinkham wants to merge 1 commit into
bubnikv:masterfrom
spinkham:doc/gaussian-doppler-sqrt-note
Open

docs(GaussFIR): explain the sqrt(2) in the Doppler filter width constant#4
spinkham wants to merge 1 commit into
bubnikv:masterfrom
spinkham:doc/gaussian-doppler-sqrt-note

Conversation

@spinkham

Copy link
Copy Markdown

Comment-only change: documents why GaussFIR::init uses sigma = Fs*sqrt(2)/(2*pi*F2sig).

The fading process must have a Gaussian power spectrum with 2-sigma width F2sig (Watterson / ITU-R F.1487 convention). Since the PSD of filtered white noise is |H(f)|^2, the filter's amplitude response has to be the square root of that Gaussian — itself Gaussian-shaped but sqrt(2) wider — and that sqrt(2) is exactly what the width constant implements. PathSim gets this right, and the derivation chain is now spelled out above init():

  • impulse response: sigma_t = Fs*sqrt(2)/(2*pi*F2sig) samples
  • amplitude |H(f)|: Gaussian, sigma_f = F2sig/sqrt(2)
  • power |H(f)|^2: Gaussian, sigma = F2sig/2 (2-sigma = F2sig)

Why bother documenting it: the prose in the original PathSim technical guide (§4.1.5, "a Gaussian shaped low pass filter") doesn't call the square root out, and we recently traced a downstream open-source reimplementation that followed the description, dropped the sqrt(2), and has been realizing a ~0.71x-narrow Doppler spread ever since (a 1 Hz "poor" channel fading like ~0.7 Hz). A comment at the constant is the cheapest way to stop that from happening again.

No functional change.

🤖 Generated with Claude Code

The filter's amplitude response must be the square root of the target
Gaussian Doppler power spectrum (PSD of filtered noise = |H|^2), which
is what the SQRT2 in the sigma constant implements. The original
PathSim technical guide's prose describes the construction without
calling this out, and at least one downstream reimplementation dropped
the sqrt(2) and realized a ~0.71x-narrow Doppler spread as a result.
Comment-only change.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant