2

我尝试使用whelch方法,发现零频异常

import numpy as np
import scipy.signal as signal
import matplotlib.pyplot as plt

n = 100000
s = np.ones(n)
f, psd = signal.welch(s, return_onesided=False)
plt.plot(f, psd)
plt.show()

所以结果 PSD 为零。为什么 scipy.signal.welch 抑制零频率?

4

1 回答 1

4

再看一下文档字符串,welch 特别是注意detrend参数。

默认detrend值为'constant',在计算频谱之前从输入中减去平均值。要禁用去趋势,请使用detrend=False

In [57]: from scipy.signal import welch

In [58]: from scipy.fftpack import fftshift

In [59]: n = 1000

In [60]: s = np.ones(n)

In [61]: f, psd = signal.welch(s, return_onesided=False, detrend=False)

In [62]: plot(fftshift(f), fftshift(psd))
Out[62]: [<matplotlib.lines.Line2D at 0x10f8b6dd8>]

阴谋

于 2017-05-09T13:23:16.617 回答