私は実装しようとしているFFTアルゴリズムに役立つWAVファイルからデータを抽出する方法を探しています。これまでのところ、左右のオーディオチャンネルには16進数の値がたくさんありますが、これをFFTの時間ドメインと周波数ドメインにどのように変換するかについて少し迷っています。ここでFFTで使用するためにWAVファイルからデータを抽出する方法
は、私は、たとえば必要なものです:
3.6 2.6
2.9 6.3
5.6 4.0
4.8 9.1
3.3 0.4
5.9 4.8
5.0 2.6
4.3 4.1
そして、これはFFTのデータを取り込む関数のプロトタイプです:
Nはのためのポイント数であるvoid fft(int N, double (*x)[2], double (*y)[2])
FFT、xは時間領域サンプルへのポインタ、yは周波数領域サンプルへのポインタです。
ありがとうございます!
ここで指定したWAVE形式を使用してデータの頻度を決定しましたか:https://ccrma.stanford.edu/courses/422/projects/WaveFormat/?このリンクはこのSOの質問から来ました:http://stackoverflow.com/questions/9499270/reading-wav-file-in-matlab-coder – macduff
あなたが学術的な理由であなた自身のFFTを書いていない限り、http://をチェックしてくださいwww.fftw.org/。そして、waveファイルを読むために:http://www.mega-nerd.com/libsndfile/ –
@oexcz - 明確にするために、時間領域サンプルは入力(デコードwavファイル)であり、周波数領域サンプルはあなたの出力。これがFFTの機能です - 時間領域から周波数領域への変換 - そうですか? – hooleyhoop