我正在尝试将MATLAB脚本转换为Python,并使用scipy v.1.17.0在MATLAB 2012a和Python之间运行spectrogram
函数的结果之间的细微差别。在MATLAB中我有代码:
WINDOW = 240;
NOVERLAP = 180;
NFFT = 1024;
Fs = 4;
[~,F,T,PP] = spectrogram(data,hanning(WINDOW),NOVERLAP,NFFT,Fs);
其中数据是大约15000个点的一维数组,这里PP将给出每个部分的PSD。
在Python中,代码看起来像这样:
from scipy.signal.spectral import spectrogram
WINDOW = 240
NOVERLAP = 180
NFFT = 1024
Fs = 4
[f, ts_i, pp] = spectrogram(data, fs=Fs, window='hanning', nperseg=WINDOW,
noverlap=NOVERLAP, nfft=NFFT, detrend=False)
当我比较输出(MATLAB - Python)时,我得到相似但不完全相同的结果。下面是第一段的图像 Python和MATLAB结果与绝对差异一起绘制 一点一点地说。此行为与其他段类似。再次 差异并不大,但我很好奇什么是最终的 这些差异的原因是什么?