MATLAB中的最佳提取

时间:2011-01-06 21:11:30

标签: matlab audio mp3 signal-processing wav

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

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

3 个答案:

答案 0 :(得分:4)

使用.wav文件我觉得相当容易一些,虽然Matlab很好地为这些事情提供了实用工具,事实上它确实如此:Reading .wav

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

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

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

超越顶部的第三种方法是执行FFT并在频域中进行滤波。

获得信号的低频部分后,您可以检查高于幅度阈值的样本,并输出找到数据的位置。

答案 1 :(得分:2)

使用关键字“节拍提取matlab ”在谷歌上播放30秒会产生以下两个代码来源

  1. Music Audio Tempo Estimation and Beat Tracking
  2. Beat This A Beat Synchronization Project

答案 2 :(得分:1)

在Matlab中你可以使用和最先进的多功能节拍跟踪器算法,算法的信息在这里发布: J.R. Zapata,M。Davies和E.Gómez,“多功能节拍跟踪器”,IEEE / ACM音频,语音和语言处理交易。 22(4),pp.816-825,2014。http://dx.doi.org/10.1109/TASLP.2014.2305252

多功能节拍跟踪器的Matlab实现是: https://github.com/JoseRZapata/MultiFeatureBeatTracking