gpt4 book ai didi

c++ - 我如何从WAV文件中获取时域频率?

转载 作者:行者123 更新时间:2023-12-03 02:08:54 25 4
gpt4 key购买 nike

换句话说,我正在尝试播放.wav文件,为此,我需要知道频率和持续时间;我正在使用的API有一种方法需要将带有两个字段(频率和时间)的 vector 作为参数!

我尝试使用快速傅立叶变换,但是它给了我频率和幅度!


/ \
|
|
-| ------>频率

但是我需要这样的东西:
频率
/ \
|
|
-| ------>时间

我想知道是否可以从wav文件中获取这些信息!

最佳答案

数字音频信号是成对的系列(幅度,时间)。
或者您可以说这是时间的函数。
如果您获取音频信号序列并对该序列执行傅立叶变换(DFT / FFT),您将获得一个新的序列,其中包含成对的(幅度,频率)。
或者您可以说频率的函数。

该序列描述了频域中信号的属性。
它根本不包含任何时间信息。

我想,您想要的是一个函数,它描述音频信号的频率分量随时间的变化。这无法通过简单的FFT来完成。

您可以做的是:

  • 取N个音频数据流样本,样本(0,...,N-1)
  • 执行FFT
  • 用m << N
  • 提取音频数据流的另外N个样本(m,...,m + N-1)
  • 执行FFT
  • 另取N个音频数据流样本(2m,...,2m + N-1)
  • 执行FFT

  • 如果采样时间为ts,则在T = m * ts之后将获得新的频率分析。

    也许,这就是您想要的。

    关于c++ - 我如何从WAV文件中获取时域频率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25893112/

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