MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   资料存档 (https://www.labfans.com/bbs/forumdisplay.php?f=72)
-   -   MATLAB-缺少FFT的基础知识 (https://www.labfans.com/bbs/showthread.php?t=24137)

poster 2019-12-10 20:48

MATLAB-缺少FFT的基础知识
 
我目前正在从事四年级项目(计算机科学),该项目涉及音乐的自动转录->乐谱。目前,我正在Matlab中进行此操作,但在某个阶段必须将其转换为Java。

我的问题:我的程序返回的是纯正弦音的正确音符,现在从自然乐器演奏的音符中检索基本频率时遇到了问题。对于某些音符,代表音符基本面的峰值似乎完全消失了。例如,当我从车库乐队演奏G3音符时,它显示为G4,因为我的绘图中仅出现1次,3次,5次和7次谐波。我尝试添加图片,但是因为这是我的第一篇帖子,所以我不允许这样做。朝正确方向的任何指针将不胜感激。



[B]回答:[/B]

这并不罕见。对于男性声音,大型弦乐器和许多其他音调音源,基本音缺失或几乎缺失是很常见的。

与正弦波函数生成器相反,这使得仅使用FFT峰值结果来确定实际乐器的音符非常困难。这是因为音调与峰值频谱频率不同。音调是一种心理声学的感知现象。这就是您需要继续阅读的内容。关于该主题有大量研究论文。

因此,您需要查看一套完全不同的算法。尝试进行倒谱(倒谱分析),谐波乘积谱,自相关和类似函数(AMDF,ASDF等滞后),RAPT(鲁棒性音高跟踪算法),YAAPT等。

添加:我[URL="http://www.musingpaw.com/2012/04/musical-pitch-is-not-just-fft-frequency.html"]在博客文章中对基音缺失的音调声音进行[/URL]了更详细的[URL="http://www.musingpaw.com/2012/04/musical-pitch-is-not-just-fft-frequency.html"]说明[/URL] 。



[url=https://stackoverflow.com/questions/4227420]更多&回答...[/url]


所有时间均为北京时间。现在的时间是 05:08

Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.