![]() |
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.