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)。