微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法获得匹配的 scipy.signal.welch 窗口结果

如何解决无法获得匹配的 scipy.signal.welch 窗口结果

我很困惑为什么我不能得到这个 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)

Attempt 1 Results

如果我做同样的事情,除了在函数之外应用窗口,我会得到更多的衰减并且没有可辨别的本底噪声。

f,sxx=welch(x*w,window='Boxcar')
plt.figure()
plt.semilogy(f,sxx)

Attempt 2 Results

我完全被难住了。我错过了什么?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。