问题描述
我很困惑为什么我不能得到这个 scipy.signal.welch 计算的结果来匹配。首先,我创建一个正弦信号和 Blackman 窗口:
from matplotlib import pyplot as plt
from scipy.signal import welch
from numpy.fft import fft
from scipy.signal.windows import *
t_max = 1
dt = 0.0001
nSamples = int(t_max/dt)
t = np.linspace(0,t_max,nSamples,False)
x = np.sqrt(2)*100*np.cos(2*np.pi*50*t)
w = blackman(len(x))
plt.figure()
plt.plot(t,x)
首先,我使用带有内置 Blackman 窗口的 Welch 进行 DFT,我得到了我期望的结果,在基频处有一个大峰值和一个遥远的平坦的本底噪声。
f,sxx=welch(x,1/dt,nperseg=nSamples,detrend=False,scaling='spectrum',window='blackman')
plt.figure()
plt.semilogy(f,sxx)
如果我做同样的事情,除了在函数之外应用窗口,我会得到更多的衰减并且没有可辨别的本底噪声。
f,sxx=welch(x*w,window='Boxcar')
plt.figure()
plt.semilogy(f,sxx)
我完全被难住了。我错过了什么?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)