2024-04-26 08:11:00 发布
网友
我试着分析一首歌在某个特定时间点的频率。在
我正在使用化学信号谱图产生这些频率。歌曲的长度是2:44,即164秒,并且scipy.wav文件读数是44100。在
当我使用光谱图时:
f, t, Sxx= signal.spectrogram(data[:, 1], sr)
f的长度很小,有129个元素。t变长了,为32322,但与原来的7240320采样窗口相比,还有很长的距离wavfile.read文件. 在
(data[:,1]是音频数据的右声道)
频率阵列f受采样频率加上零频率的一半的限制,因此
f.size = int(1 + sampling_frequency / 2)
而时间数组受到基于nperseg和noverlap的数据数组提取段数量的限制,如下所示
如果你想象有两个nperseg=8和noverlap=1的段,你需要一个至少有15个样本的信号,这就更容易理解了。在
f的长度stft256的默认nperseg除以2(仅频率刻度的正边)+1(频率0)。 通过以下方法获得及时的样本数量
stft
nperseg
t.size = len(data[:, 1]) / nperseg * (1 + noverlap)
其中noverlap是256/8=32。在
noverlap
256/8=32
频率阵列f受采样频率加上零频率的一半的限制,因此
而时间数组受到基于nperseg和noverlap的数据数组提取段数量的限制,如下所示
^{pr2}$如果你想象有两个nperseg=8和noverlap=1的段,你需要一个至少有15个样本的信号,这就更容易理解了。在
f的长度
stft
256的默认nperseg
除以2(仅频率刻度的正边)+1(频率0)。 通过以下方法获得及时的样本数量其中
noverlap
是256/8=32
。在相关问题 更多 >
编程相关推荐