微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

声音分析器,使用naudio获得48000个样本/秒的声音我可以使用1024的循环样本大小吗?

如何解决声音分析器,使用naudio获得48000个样本/秒的声音我可以使用1024的循环样本大小吗?

我需要创建一个声音分析器来隔离某些歌曲频率。目前,我对低音(60-250Hz)感兴趣。

对于1024个块,我读取信号(IEEE浮点数):进行FFT,然后提取与每个频率相对应的值。

我不明白的是:我知道FFT需要2的幂才能工作。我看过使用512块的代码,使用2048、4096等的代码

我已经确定为1024(每秒大约可以提供47个数据点)。我是否假设使用2048(例如)可以相同,每秒给我23.5个数据点,而唯一的区别是准确性(当然以及计算速度)是否正确?

我还需要读取1024个边界块吗?例如,假设我只是跳过了前200个浮点数,结果最终会变得非常相似吗? (我的测试似乎说是)

最新编辑:更新了标题,使其更易于理解

解决方法

1024 / 48kHz仅比60 Hz信号的一个周期长。太短,无法确定信号是否完全是周期性的(重复)。人类通常需要大约6个重复周期才能听到声音具有确定的音调。

60 Hz为B1。您可能需要2 Hz的分辨率才能将B1与C1分开,并且在两个最近的FFT频率仓之间有明显的间隙。为此,仅使用FFT幅度结果,将需要48kHz / 2Hz或半秒或更长时间的FFT。对于48ksps样本,最近的2的幂是32768。

对于音乐音调频率,与使用裸FFT或FFT频率峰值幅度相比,音调检测器/估算器要好得多,因为它们可以解决在录制的乐器音乐或声乐音乐中常见的基本问题。这些音高估计器可以在比半秒更短的时间间隔窗口内工作,但是比裸露的FFT幅度峰值选取需要更多的计算。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。