welch 的哪些参数决定了输出的长度? (python)
Which parameters of welch do determin the length of the output? (python)
我在 python 中使用 welch。
welch 中的哪个参数定义了输出数组的长度?
根据我的试验,输出长度与nperseg/2有关;但我无法理解它的原因和数学。而且,我不确定其他参数对输出长度的影响。
此外,它的文档中没有足够的解释(https://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.welch.html)
如果有人能帮助我,我将非常高兴。我在网上找不到任何明确的信息!
解析文档中的句子
Welch’s method [1] computes an estimate of the power spectral density by dividing the data into overlapping segments, computing a modified periodogram for each segment and averaging the periodograms.
def periodogram(x, Ts=1.0):
'''
This function will compute one score for each period
in
'''
return abs(np.fft.rfft(x))**2
然后他们说数据被分割成重叠的段然后相加,所以是这样的
def welsh(data, nperseg, noverlap, window):
stride = nperseg - noverlap
return sum(periodogram(data[i*stride:i*stride+nperseg])
for i in range((len(data) - nperseg) // stride))
即你取长度为 nperseg 的段来计算周期图,因为你只能得到 Nyquist frequency 的周期图,你最终得到 nperseg/2
(对于 nperseg)。
我在 python 中使用 welch。 welch 中的哪个参数定义了输出数组的长度? 根据我的试验,输出长度与nperseg/2有关;但我无法理解它的原因和数学。而且,我不确定其他参数对输出长度的影响。
此外,它的文档中没有足够的解释(https://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.welch.html)
如果有人能帮助我,我将非常高兴。我在网上找不到任何明确的信息!
解析文档中的句子
Welch’s method [1] computes an estimate of the power spectral density by dividing the data into overlapping segments, computing a modified periodogram for each segment and averaging the periodograms.
def periodogram(x, Ts=1.0):
'''
This function will compute one score for each period
in
'''
return abs(np.fft.rfft(x))**2
然后他们说数据被分割成重叠的段然后相加,所以是这样的
def welsh(data, nperseg, noverlap, window):
stride = nperseg - noverlap
return sum(periodogram(data[i*stride:i*stride+nperseg])
for i in range((len(data) - nperseg) // stride))
即你取长度为 nperseg 的段来计算周期图,因为你只能得到 Nyquist frequency 的周期图,你最终得到 nperseg/2
(对于 nperseg)。