我没有MATLAB的经验,但是不幸的是我的项目是MATLAB的。
基本上,目标是将音乐源(最好是mp3格式,但.wav也可以)读入MATLAB,然后应用低通滤波器,以使其滤除节拍以外的所有内容。然后,它应该获取每个节拍发生的时间,并将结果写入文本文件。
回答:
我认为使用.wav文件要容易得多,尽管Matlab很好地具有处理此类问题的实用程序,但实际上确实如此:
读取.wav
实现低通滤波器的最简单方法是移动平均滤波器。
最简单的方法是遍历数据并取每组n个值的平均值。我不确定截止频率将如何取决于n,但是您可以尝试一下。
否则,我知道有一个用于Octave的信号处理工具包,我认为Matlab具有内置的过滤器功能:
https :
//ccrma.stanford.edu/~jos/fp/Matlab_Filter_Implementation.html
最重要的第三种方法是执行FFT并在频域中进行滤波。
一旦获得了信号的低频部分,您就可以检查样本是否超过幅度阈值,并输出在数据中找到这些样本的位置。
更多&回答...