-
-
Notifications
You must be signed in to change notification settings - Fork 7.9k
Added a test to default the value of Fs to 2 for Axes.specgram and ml… #12813
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
…ab.specgram to match docstring and mlab._spectral_helper() default value
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the contribution.
While there seems to be a bit of discussion about the right way to handle this (c.f. #9100 (comment) vs. #9221 (comment)), the proposed solution in _axes.py
fixes bug #9100 and should be merged as an improvement. Everything else can be discussed and handled separately.
@@ -1113,6 +1113,8 @@ def specgram(x, NFFT=None, Fs=None, detrend=None, window=None, | |||
noverlap = 128 # default in _spectral_helper() is noverlap = 0 | |||
if NFFT is None: | |||
NFFT = 256 # same default as in _spectral_helper() | |||
if Fs is None: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fs
is only passed through in this function. It's not used explicitly. Therefore, there is no need to set the default explicitly again here; and I thus prefer to not duplicate the default. It's different with NFFT
because its value is used in the warning.
@@ -7629,6 +7629,8 @@ def specgram(self, x, NFFT=None, Fs=None, Fc=None, detrend=None, | |||
Fc = 0 # same default as in mlab._spectral_helper() | |||
if noverlap is None: | |||
noverlap = 128 # same default as in mlab.specgram() | |||
if Fs is None: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As discussed in #9221 (comment), I think that Fs
should remain None, and the underlying function made to do the right thing with None
. This function should not be calculating frequencies, but should just take them from the frequency output of the spectral helper.
Sorry to be a pain, but I'm going to block on this. If you need more details to modify the PR, I will try and take a look later today.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Then I'll try to change the PR so as to modify the docstring so that it matches the fact that the default value is None. I will try to do this asap.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Well, I think there is a problem with the code as well, but I don't think setting Fs=2
is the solution. We should be making to Fs
from the freqs
array where it is needed in the code (Fs=freqs[-1] * 2
)
ie |
The docstring is in fact accurate as _spectral_helper already modifies the default value of Fs to be 2. It could be argued that is would be cleaner to simply have Fs=2 when declaring the functions but it is unnecessary. This PR is thus not useful. jklymak does seem to raise a valid point but it is another matter. |
…ab.specgram to match docstring and mlab._spectral_helper() default value.
Addresses issue #9100
PR Summary
PR Checklist