首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >非log 2的快速傅里叶变换

非log 2的快速傅里叶变换
EN

Stack Overflow用户
提问于 2013-10-09 15:29:54
回答 2查看 527关注 0票数 0

我想在Java中实现用于和弦识别的快速傅里叶变换,但我并不真正理解它。它说样本的数量应该是2的幂,那么对于一首没有样本数等于2幂的歌曲,我们应该做什么呢?另外,我想知道有关STFT的情况。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-09 16:11:25

您通常在整个文件的滑动窗口上生成一个STFT。选择窗口的大小是为了给出一个合理的时间周期,在此时间段内,声音的特性不会发生很大的变化。通常,一个窗口可能在10 ms左右,所以如果您的采样率是44.1kHz,那么您可以使用一个窗口大小N= 512,这样您就可以得到所需的持续时间和2的幂。然后,通过文件获取大小为N的连续块样本,并为每个N个点块生成FFT。(注意:在大多数情况下,您实际上需要FFT输出的大小,以便得到功率谱的估计。)为了提高分辨率,块可以重叠,例如50%,但这当然会增加处理负荷。最终的结果是一系列的短期光谱,因此实际上你有一个三维矩阵(振幅v,频率v,时间),它描述了声音在频域的内容。

票数 3
EN

Stack Overflow用户

发布于 2013-10-09 15:32:52

通常,你所做的就是用零来填充数据,使其成为2的幂。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19276295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档