gpt4 book ai didi

python - 数字信号处理器 : audio processing : squart or log to leverage fft?

转载 作者:太空宇宙 更新时间:2023-11-04 03:53:27 25 4
gpt4 key购买 nike

上下文:

我正在探索 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与此相关。

最佳答案

你的问题看起来很困惑,但你显然已经尝试了一些东西,这很好。让我退后一步,为您推荐一条总体路线:

  • 首先将您的音频分成一定大小的 block ,比如 N。
  • 对 N 个样本的每个 block 执行 FFT。
  • 然后担心将数据显示为 RMS(平方方法)或 dB(基于 ln 的方法)。

实际上,您可以将这些值视为显示的比例因子。

如果您需要有关 FFT 本身的帮助,我关于使用 FFT 检测音高的博文可能会有所帮助:http://blog.bjornroche.com/2012/07/frequency-detection-using-fft-aka-pitch.html

关于python - 数字信号处理器 : audio processing : squart or log to leverage fft?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20057831/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com