ios - 无法在 iphone 上获得正确的频率值

标签 ios audio signal-processing core-audio frequency

我正在尝试分析 iOS 平台上的频率检测算法。所以我找到了几个使用 FFT 和 CoreAudio 的实现(example 1example 2)。但是在这两种情况下都存在频率上的一些不精确:

  • (1) 对于 A4 (440Hz),显示 441.430664 Hz。
  • (1) 对于 C6 (1046.5 Hz),显示 1518.09082 Hz。
  • (2) 对于 A4 (440Hz) 显示 440.72 Hz。
  • (2) 对于 C6 (1046.5 Hz) 显示 1042.396606 Hz。

为什么会发生这种情况,如何避免这种问题并以更准确的方式检测频率?

最佳答案

频域中的分辨率与 FFT bin 的数量成反比。您需要:

  • 增加 FFT 的大小以获得更精细的分辨率
  • 使用相邻 bin 的大小来调整频率估计
  • 使用替代方法进行频率估计而不是 FFT,例如参数模型

关于ios - 无法在 iphone 上获得正确的频率值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9477535/

相关文章:

java - 播放采样声音javax.sound.sampled时的巨大延迟

python - python fft 的正确幅度(对于偏斜正态分布)

python - 如何从时间序列信号中解卷积阶跃函数

ios - 使用应用委托(delegate)启动 iOS 应用

ios - 在 .gitmodules 中找不到子模块路径 'Pods' 的 url

c# - CSCore应用程序音频混音器名称+峰值

python - 无法使用pip语法错误安装PyAudio

使用 bash 或 C 比较 iOS 上的应用程序二进制文件

ios - 警告 : iPad only apps should not include an armv6 architecture (current ARCHS = "armv6 armv7")

audio - 处理标准音频输出