谱图到功率谱密度

时间:2018-04-06 16:43:30

标签: python scipy signal-processing spectrogram

如何根据频谱图计算功率谱密度?我找到了以下代码,但与welch的方法进行比较时有一些差异。另外我不太明白为什么我要除以2和nperseg?

fs = 10e3
N = 1e5
amp = 2*np.sqrt(2)
freq = 1234.0
noise_power = 0.001 * fs / 2
time = np.arange(N) / fs
x = amp*np.sin(2*np.pi*freq*time)
x += np.random.normal(scale=np.sqrt(noise_power), size=time.shape)

_, pxx_welch = signal.welch(x, fs, nperseg=1024)
_, _, Sxx = signal.spectrogram(x, fs=fs, nperseg=1024,scaling='density', mode='magnitude')
pxx_sp = (np.sum(Sxx, axis=1)/2)**2/1024
print(scipy.linalg.norm(pxx_welch-pxx_sp)) # 0.16650645176066306

0 个答案:

没有答案
相关问题