docs(GaussFIR): explain the sqrt(2) in the Doppler filter width constant - #4
Open
spinkham wants to merge 1 commit into
Open
docs(GaussFIR): explain the sqrt(2) in the Doppler filter width constant#4spinkham wants to merge 1 commit into
spinkham wants to merge 1 commit into
Conversation
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>
This was referenced Jul 28, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Comment-only change: documents why
GaussFIR::initusessigma = 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 aboveinit():sigma_t = Fs*sqrt(2)/(2*pi*F2sig)samples|H(f)|: Gaussian,sigma_f = F2sig/sqrt(2)|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