当我在Matlab和Python中对相同的数据运行welch函数时,我得到了略微的PSD估计差异,而样本频率是相同的。
以下是我在Matlab和Python中使用的参数: Matlab的:
winlength=512;
overlap=0;
fftlength=1024;
fs=127.886;
[PSD, freqs] = pwelch(data, winlength, overlap, fftlength, fs);
的Python:
freqs, PSD = welch(data, fs=127.886, window='hamming', nperseg=512,
noverlap=None, nfft=1024)
这是一个展示差异的情节: enter image description here
有没有人知道我应该改变什么来获得相同的PSD结果?
答案 0 :(得分:0)
在Matlab文档https://se.mathworks.com/help/signal/ref/pwelch.html中,它表示重叠参数必须是正整数,因此0不是有效值。
如果省略重叠值 - (或声明无效值),参数自动设置为50%重叠,即更改曲线。
尝试将Python函数设置为50%重叠并查看它们是否匹配。
顺便说一句,你很少想要零重叠,因为这可能会导致信号瞬变。