【发布时间】:2013-12-02 04:42:26
【问题描述】:
上下文:
我正在探索 DSP 的广阔领域。是的,我是初学者。
我的目标:
对audiolab给出的音频数组应用fft,得到信号的不同频率。
问题:
一个问题:感谢 audiolab,我无法处理包含音频数据的 numpy 数组。 :
import numpy as np
from scikits.audiolab import Sndfile
f = Sndfile('first.ogg', 'r')
# Sndfile instances can be queried for the audio file meta-data
fs = f.samplerate
nc = f.channels
enc = f.encoding
print(fs,nc,enc)
# Reading is straightfoward
data = f.read_frames(10)
print(data)
print(np.fft.fft(data))
现在我得到了我的数据。
读数
我在这里读到了这两篇不错的文章:
Analyze audio using Fast Fourier Transform(接受的答案很棒)
和
http://www.onlamp.com/pub/a/python/2001/01/31/numerically.html?page=2
现在有两种技术:显然一种建议正方形(第一个链接),而另一种建议是对数,尤其是:10ln10(abs(1.10**-20 + value))
哪个最好?
总结:
我想对我的阵列进行傅立叶分析,但这两个答案中的任何一个似乎都只强调信号而不隔离组件。
我可能错了,我还是个菜鸟。
那我该怎么办呢?
谢谢,
更新:
我问这个问题: DSP - get the amplitude of all the frequencies 和这个有关。
【问题讨论】:
标签: python audio numpy signal-processing fft