gpt4 book ai didi

c# - 求解 WAV 文件中的振幅和频率

转载 作者:行者123 更新时间:2023-11-30 12:41:57 29 4
gpt4 key购买 nike

我也问过这个here在声音设计论坛上,但问题是沉重的计算机科学/数学,所以它实际上可能属于这个论坛:

因此,通过读取文件中的二进制文件,我能够成功地找到关于 WAV 文件的所有信息,除了 big sin 函数的振幅和频率(赫兹) ).只是为了验证我在说什么,该文件仅使用等式生成一个波:

F(s) = A * sin(T * s)

其中 s 是当前样本,A 是振幅,T 是周期。现在 T(周期)的等式是:

T = (2π * Hz)/(α * ω)

其中 Hz 是以赫兹为单位的频率,α 是每秒采样数,ω 是 channel 数。

现在我知道要求解振幅,我可以简单地找到 F(s) 的值,其中

s = (π/2)/T

因为那时正弦函数的值将是 1,最终值将等于 A。问题是要除以 T,我必须知道赫兹(或 Hz)。

有什么方法可以让我读取 WAV 文件以从数据中发现赫兹,假设该文件只包含一个波形。

最佳答案

为了澄清一些术语,您要查找的属性是频率,频率的单位是赫兹(每秒一次)。按照惯例,典型的 A 音符的频率为 440 赫兹。

实际上,你把函数弄错了。现实中的正弦波具有 F(s) = A * sin(2*pi*s/T + c) 的形式——你不知道它什么时候开始的,所以你得到一个常量 c那里。此外,您需要除以 T,而不是乘法。

获取振幅实际上相当容易。该正弦波具有一系列 op 波峰和波谷。找到每个峰值(高于两个相邻峰值)和每个谷值(较低),计算平均峰值和平均谷值,幅度是两者之差的两倍。挺容易。周期 T 可以通过计算峰到峰和谷到谷的平均距离来估计。

有一点你需要小心。如果有一点点噪音,您可能会在峰值附近出现轻微凹痕。您可能会得到 14 17 16 17 14 而不是 14 17 18 17 14。那个 16 不是山谷。一旦您对真实的波峰和波谷有了很好的估计,就扔掉所有扭曲的波峰。

关于c# - 求解 WAV 文件中的振幅和频率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35386382/

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