调用 scipy.signal.spectrogram 后是否可以确定给定段的不同频率的强度?

即在执行以下操作后:

fs, data = wavfile.read(waveFile)

sampleFreqs, segmentTimes, sxx= signal.spectrogram(data, fs, nperseg=256, noverlap=128, nfft=512, window=('hamming'))

fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(12,4))
ax1.pcolormesh((len(segmentTimes)*segmentTimes/segmentTimes[-1]), sampleFreqs, 10*np.log10(sxx))
ax1.set_title('Spectrogram');
ax1.set_xlabel('Segment')
ax1.set_ylabel('Frequency')

它产生一个频谱图,如 this

例如,我可以从 sxx 中找出第 10 段的最强频率是多少吗?

干杯,
大卫

最佳答案

看看 numpy.argmax 。您的数据看起来足够干净,所以应该可以工作,不需要过滤。

关于python - signal.spectrogram 找到给定段的最大频率,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41780164/

10-12 16:36