使用Matlab和Python之间的welch函数的不同结果

时间:2017-04-04 07:16:44

标签: python matlab

当我在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结果?

1 个答案:

答案 0 :(得分:0)

在Matlab文档https://se.mathworks.com/help/signal/ref/pwelch.html中,它表示重叠参数必须是正整数,因此0不是有效值。

如果省略重叠值 - (或声明无效值),参数自动设置为50%重叠,即更改曲线。

尝试将Python函数设置为50%重叠并查看它们是否匹配。

顺便说一句,你很少想要零重叠,因为这可能会导致信号瞬变。