Thanks to visit codestin.com
Credit goes to github.com

Skip to content

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

Closed
wants to merge 2 commits into from

Conversation

m4laclypse
Copy link

@m4laclypse m4laclypse commented Nov 15, 2018

…ab.specgram to match docstring and mlab._spectral_helper() default value.
Addresses issue #9100

PR Summary

PR Checklist

  • Has Pytest style unit tests
  • Code is Flake 8 compliant
  • New features are documented, with examples if plot related
  • Documentation is sphinx and numpydoc compliant
  • Added an entry to doc/users/next_whats_new/ if major new feature (follow instructions in README.rst there)
  • Documented in doc/api/api_changes.rst if API changed in a backward-incompatible way

m4laclypse and others added 2 commits November 15, 2018 09:11
…ab.specgram to match docstring and mlab._spectral_helper() default value
Copy link
Member

@timhoffm timhoffm left a 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:
Copy link
Member

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:
Copy link
Member

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.

Copy link
Author

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.

Copy link
Member

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)

@jklymak
Copy link
Member

jklymak commented Nov 20, 2018

ie pad_xextent = (NFFT-noverlap) / freqs[-1] / 4

@m4laclypse
Copy link
Author

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.

@m4laclypse m4laclypse closed this Nov 21, 2018
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.

3 participants