小编Den*_*men的帖子

如何查找 wav 文件的基频

我正在分析很多短的 .wav 文件,对于分析的一部分,我只想绘制文件的基频。我的信号处理有点生疏,但我现在得到的图看起来应该是正确的。我只是不明白为什么 y 轴刻度关闭(F0 约为 300Hz,而它应该约为 8000Hz)。所以我想在 .wav 文件的持续时间内绘制 F0,就像没有强度信息的频谱图一样。有人可以帮我吗?很高兴提供更多信息!

from scipy import signal
import numpy as np
import soundfile as sf

y, samplerate = sf.read('audiofile.wav') 
chunks = np.array_split(y,int(samplerate/2000))
peaks = []

for chunk in chunks:
    # simulated pure signal
    t = np.linspace(0, 1, samplerate)
    wave = chunk
    # compute the magnitude of the Fourier Transform and its corresponding frequency values
    freq_magnitudes = np.abs(np.fft.fft(wave))
    freq_values = np.fft.fftfreq(samplerate, 1/samplerate)
    # find the max. magnitude
    max_positive_freq_idx = np.argmax(freq_magnitudes[:samplerate//2 + 1])
    peaks.append(freq_values[max_positive_freq_idx])
Run Code Online (Sandbox Code Playgroud)

python signal-processing time-frequency

5
推荐指数
1
解决办法
5402
查看次数

标签 统计

python ×1

signal-processing ×1

time-frequency ×1