2011-01-06 17 views
0

MATLABでの経験はありません。残念ながら、私のプロジェクトはMATLABにあります。MATLABのビート抽出

基本的な目的は、音楽ソース(mp3形式が望ましいが、.wavもOK)をMATLABに読み込み、拍以外のすべてをフィルタリングするような方法でローパスフィルタを適用することです。次に、各ビートが発生する時間を取得し、結果をテキストファイルに書き込む必要があります。

答えて

4

MATLABは道だけでなく、そのようなもののためのユーティリティを持っているが、それは、私が思う.wavファイルで動作するようにかなり簡単ですが、実際にはそれはありません:ローパスフィルタを実装するためのReading .wav

最も簡単な方法は、移動であります平均フィルタ。

これを行う最も簡単な方法は、データをループしてn値の各グループの平均をとることです。私はカットオフ周波数がnに依存する方法を正確にはわかりませんが、少し実験することができます。

そうでなければ、私はオクターブのための信号処理ツールキットがあることを知っていると私は、MATLABが内蔵フィルタ機能を有することを考える:https://ccrma.stanford.edu/~jos/fp/Matlab_Filter_Implementation.html

がトップ上にある第三の方法は、FFTを実行することであろう周波数領域でのフィルタリングを行う。

信号の低周波部分を取得したら、振幅スレッショルドを上回るサンプルを確認し、データのどこにそれらが見つかったかを出力することができます。キーワードでGoogleで

+1

、あなたは自己相関関数を使用することができます(これは私が思うにはFFTを使用しています)、そのような信号の期間を見つけます。 – Marnix

0

MATLABで使用することができますし、最先端技術のマルチフィーチャービートトラッカーアルゴリズムは、アルゴリズムの情報はここに公開されます: J.R. Zapata、M. DaviesおよびE.Gómez、 "Multi-feature beat tracker"、音声、言語および言語処理に関するIEEE/ACMトランザクション22 multifeatureビートトラッカーの(4)、頁816から825まで、2014年http://dx.doi.org/10.1109/TASLP.2014.2305252

Matlabの実装は次のとおりです。あなたが低い部分を持っていたら https://github.com/JoseRZapata/MultiFeatureBeatTracking

関連する問題