作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 wav 文件,我想获取频率、幅度和相位。我尝试过这样做,但我得到的却无法得到口译员
import math
import numpy as np
from matplotlib.pyplot import *
import scipy.io.wavfile as wave
from numpy.fft import fft
rate,data = wave.read('test.wav')
n = data.size
duree = 1.0*n/rate
print rate
spectre = np.fft.fft(data[5:10])
#freq = np.fft.fftfreq(n, 1)
print spectre
我获得例如
[[ -9.27766766e+08+0.j -9.27557398e+08+0.j]
[ -1.86505703e+09+0.j 2.16973235e+09+0.j]
[ -2.33588876e+08+0.j 2.33467572e+08+0.j]
[ 1.76254287e+09+0.j 1.76250750e+09+0.j]
[ 9.96780365e+08+0.j -2.30269509e+09+0.j]]
最佳答案
你必须学习FFT算法才能理解这一切。正如您所看到的,它管理复数,因此需要一些添加工作来解释输出。
作为快捷方式,输出的一半是 redundant 。要查看频谱,只需按以下步骤操作:
import numpy as np
import matplotlib.pyplot as plt
import scipy.io.wavfile as wave
rate,data = wave.read('57.wav')
spectre = np.fft.fft(data)
freq = np.fft.fftfreq(data.size, 1/rate)
mask=freq>0
plt.plot(freq[mask],np.abs(spectre[mask]))
对于
关于python - 通过fft查找wav文件的频率幅度和相位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36494645/
下面是比较 fft 相位图与 2 种不同方法的代码: import numpy as np import matplotlib.pyplot as plt import scipy.fftpack p
我使用 apache commons 数学库来转换我的音频样本缓冲区上的 FFt 和 IFFT。 FFT 的输出给了我一组复数。频率在中间镜像。样本缓冲区大小为 4096 个样本,我得到 2048 个
我是一名优秀的程序员,十分优秀!