BUG:signal: Fix median bias in csd(..., average="median") #15611
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.
This commit fixes the bug that wrongly computes _median_bias from the
number of frequency instead of the number of frames.
A test is added to check (at least) the same bias is applied for both
cases where
x is y
, andx is not y
.Reference issue
Closes #15601
What does this implement/fix?
The original CSD with
average='median'
returns results with incorrect scale when the return value is complex.This PR fix this behavior and adds a test that calls
csd
2 times withx is y
setting andx is not y
, butx==y
setting.The former expected to return real-valued array, where the latter expected to return complex-valued array (with zeroed imag-part).
This test fails if the scalefactor is wrongly applied depending on whether result is complex or not.
Additional information