使用Pytorch实现STFT与使用Libros实现STFT的结果略有不同

2024-04-25 13:30:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试用^{{cd2>}实现^{cd1>}。但是^{cd2>}实现的输出与^{{cd4>}的实现相比略有下降。

Librosa版本

import numpy as np
from librosa.core import stft
import matplotlib.pyplot as plt

np.random.seed(3)
y = np.sin(2*np.pi*50*np.linspace(0,10,2048))+np.sin(2*np.pi*20*np.linspace(0,10,2048)) + np.random.normal(scale=1,size=2048)

S_stft = np.abs(stft(y, hop_length=512, n_fft=2048,center=False))

plt.plot(S_stft)

enter image description here

Pythort版本

^{pr2}$

enter image description here

我的问题

这两个图看起来可能是相同的,但是如果我用^{{cd5>}检查两个输出,我们可以看到它们略有不同。

^{pr3}$

只有当我将公差调整到^{{cd6>}时,它才会给出^{{cd7>}结果

^{pr4}$

什么原因导致价值观的差异?是因为使用^{cd8>}进行数据转换吗?

我想在小于^{cd9>}的值上有一个差异,^{cd10>}更好些。


Tags: import版本asnppipltrandomsin