【问题标题】:signal.spectrogram find maximum frequency for given segmentsignal.spectrogram 找到给定段的最大频率
【发布时间】:2017-06-06 10:00:44
【问题描述】:

在调用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 段的最强频率是多少?

干杯, 大卫

【问题讨论】:

    标签: python scipy signal-processing fft spectrogram


    【解决方案1】:

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

    【讨论】:

    • 谢谢。我期望 sxx 的形状是(segmentTimes,sampleFreqs)以匹配频谱图,但实际上形状是(sampleFreqs,segmentTimes)。现在我意识到这一点,我可以按预期确定值。
    猜你喜欢
    • 2020-01-25
    • 1970-01-01
    • 2019-07-24
    • 1970-01-01
    • 1970-01-01
    • 2022-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多