查看单个帖子
旧 2019-12-14, 20:38   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 MATLAB中的节拍提取

我没有MATLAB的经验,但是不幸的是我的项目是MATLAB的。

基本上,目标是将音乐源(最好是mp3格式,但.wav也可以)读入MATLAB,然后应用低通滤波器,以使其滤除节拍以外的所有内容。然后,它应该获取每个节拍发生的时间,并将结果写入文本文件。



回答:

我认为使用.wav文件要容易得多,尽管Matlab很好地具有处理此类问题的实用程序,但实际上确实如此: 读取.wav

实现低通滤波器的最简单方法是移动平均滤波器。

最简单的方法是遍历数据并取每组n个值的平均值。我不确定截止频率将如何取决于n,但是您可以尝试一下。

否则,我知道有一个用于Octave的信号处理工具包,我认为Matlab具有内置的过滤器功能: https : //ccrma.stanford.edu/~jos/fp/Matlab_Filter_Implementation.html

最重要的第三种方法是执行FFT并在频域中进行滤波。

一旦获得了信号的低频部分,您就可以检查样本是否超过幅度阈值,并输出在数据中找到这些样本的位置。



更多&回答...
poster 当前离线   回复时引用此帖