Hi to all,
I’m computing some spectrograms using the convenient functions defined in matplotlib.mlab.
I found something that I don’t completely understand. In computing the PSD the onesided power spectrum is scaled by a factor of 2 except for the first and the last bin:
https://github.com/matplotlib/matplotlib/blob/v1.4.2/lib/matplotlib/mlab.py#L776
in principle this should account for the contributions that in a two-sided spectrum is spread over negative and positive frequencies. However the lack of scaling in the highest frequency seems to cause a systematic underestimation on that frequency bin.
Is it possible that the power spectrum should be scaled, in the case of even-length signal, up to the last bin (so that -1 in the slicing should be removed)?
With correct scaling a signal comprised of two sinusoids of same power, one being at the Nyquist frequency, should have the same amplitude (excluding scallopping losses). I don’t have time to test it at the moment, but maybe someone more expert can already tell me if I’m missing something or the matplotlib scaling is wrong.
Thanks,
Antonio