【问题标题】:Why does scipy.signal.welch suppress zero frequency?为什么 scipy.signal.welch 抑制零频率?
【发布时间】:2017-10-07 19:53:59
【问题描述】:

我尝试使用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 抑制零频率?

【问题讨论】:

    标签: python scipy signals signal-processing spectral-density


    【解决方案1】:

    再看看the docstring for 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>]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-07
      • 2018-01-03
      • 1970-01-01
      • 2016-09-27
      • 2019-02-08
      • 1970-01-01
      相关资源
      最近更新 更多