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

Skip to content

Commit fa95b58

Browse files
authored
Merge pull request #7845 from vollbier/specgram_overlap_err
Fixed bug with default parameters NFFT and noverlap in specgram()
2 parents cf83cd5 + 37481ad commit fa95b58

File tree

2 files changed

+11
-2
lines changed

2 files changed

+11
-2
lines changed

lib/matplotlib/axes/_axes.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7200,8 +7200,12 @@ def specgram(self, x, NFFT=None, Fs=None, Fc=None, detrend=None,
72007200
if not self._hold:
72017201
self.cla()
72027202

7203+
if NFFT is None:
7204+
NFFT = 256 # same default as in mlab.specgram()
72037205
if Fc is None:
7204-
Fc = 0
7206+
Fc = 0 # same default as in mlab._spectral_helper()
7207+
if noverlap is None:
7208+
noverlap = 128 # same default as in mlab.specgram()
72057209

72067210
if mode == 'complex':
72077211
raise ValueError('Cannot plot a complex specgram')

lib/matplotlib/mlab.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1273,7 +1273,12 @@ def specgram(x, NFFT=None, Fs=None, detrend=None, window=None,
12731273
12741274
"""
12751275
if noverlap is None:
1276-
noverlap = 128
1276+
noverlap = 128 # default in _spectral_helper() is noverlap = 0
1277+
if NFFT is None:
1278+
NFFT = 256 # same default as in _spectral_helper()
1279+
if len(x) <= NFFT:
1280+
warnings.warn("Only one segment is calculated since parameter NFFT " +
1281+
"(=%d) >= signal length (=%d)." % (NFFT, len(x)))
12771282

12781283
spec, freqs, t = _spectral_helper(x=x, y=None, NFFT=NFFT, Fs=Fs,
12791284
detrend_func=detrend, window=window,

0 commit comments

Comments
 (0)