
これから、FFTのプログラムを組んでみようと思います。
音楽ファイルを読み込もうと思いますが、
音楽ファイルは、不連続信号だと思うのですが、
音声は、44100Hzだから、必要な区間は、44100*2=88200点で、
0-88199,88200-176399,176400-264599,...
という区間ごとに読み込んでいけばいいのでしょうか?
その際は、窓関数の、ハニング窓:Wk=0.5-0.5*cos(2πk/L)を(最初は、方形窓でするつもりですが、)データに掛けて、
その値をFFTしてやればいいのでしょうか?
88200点の近似点は、2の16乗(65536)か2の17乗(131072)なので、
こちらのデータ区間を使えばいいのでしょうか?
それとも、実際は、20000Hzしか使っていないので、44100点近くで、サンプリングす
ればいいのでしょうか?
また、区間ごとに得られた周波数を、区間ごとに処理していけばいいのでしょうか?
すみませんが、よろしくお願いします。
No.1ベストアンサー
- 回答日時:
多少誤解されているようなので,まずそこからご説明します。
DFT・FFT でのデータ数は,「どのくらいの長さについて周波数の分布を見たいか」によって決定するものです。データ数が多ければ,長い時間についての周波数の分布を調べることになります。このとき,データ数の増加に伴って【周波数の分解能が上がってきます】。
ですから,1 秒ごとに見たければ,サンプリング周波数 44100 Hz ならば 44100 点を DFT・FFT,ということです。
少しまとめてみると,
- 周波数分解能が低くても,時間分解能を上げたければ少ない点で DFT・FFT
- 時間分解能が低くても,周波数分解能を上げたければ多い点で DFT・FFT
することになります。用途に応じて設定してください。
窓がけについては,お書きの認識で結構です。区間に対して窓がけしたあとに DFT・FFT します。
また,時間を考慮した DFT・FFT(要するにスペクトログラムを求めるような操作)では,ある区間と次の区間をだぶらせることが多く行われます(オーバーラップ)。
たとえば,4096 点で FFT,1024 点オーバーラップと設定すれば,
- 0-4095
- 3072-7167
- 6144-10240
と区間を設定することになるでしょう。
データ点については,2 の累乗点でとれば,FFT がじゅうぶんに発揮されるのはご存じのとおりです。
参考に,大浦氏が作成された優秀な FFT ルーチン
http://www.kurims.kyoto-u.ac.jp/~ooura/fft-j.html
をご紹介します。また,簡単にスペクトルを得るソフトウェアとして,PRAAT
http://www.fon.hum.uva.nl/praat/
も参考になさるとよいでしょう。
以上,ご健闘をお祈りします。
回答ありがとうございます。
やり直しのための信号数学にも書いてあることでした。(P81)
簡潔明瞭にご回答くださりありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
教えて下さい
-
【エクセル】測定時間がバラバ...
-
この行は既に別のテーブルに属...
-
配列でデータが入っている要素...
-
エクセルで2つの時系列のデー...
-
EXCELVBAでSQLserverからデータ...
-
ブレーカー落ちで壊れたりしな...
-
FFTを使って信号から特定の周波...
-
VBA & easycomm で長時間測定の...
-
VBA 空白セルを削除ではない方...
-
VB6でCSVの取込をする
-
メモ帳(テキストデータ)をExc...
-
S9タイプからXタイプにデータ...
-
ExcelデータをVB.netで検索する...
-
マクロ初心者です、エクセルで...
-
データ取得時のエラーに関して
-
MSCommを用いたRS-232-Cデータ転送
-
C#にてDropDownListの値を動的...
-
[C言語] コメント文字列を無視...
-
Excel VBAでのオートフィルター...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
教えて下さい
-
【エクセル】測定時間がバラバ...
-
メモ帳(テキストデータ)をExc...
-
この行は既に別のテーブルに属...
-
多量のSUMIF式を軽くしたい
-
配列でデータが入っている要素...
-
EXCELVBAでSQLserverからデータ...
-
エクセルで2つの時系列のデー...
-
ACCESS VBA インデックスが有効...
-
二分探索の平均探索回数
-
Accessで該当データにフラグを...
-
ビットシフトについて
-
Rails4 Redirect_Toで送信
-
CString型の文字列連結について
-
[C言語] コメント文字列を無視...
-
ブレーカー落ちで壊れたりしな...
-
ActiveReportについて
-
バーコードリーダーの読込デー...
-
C# でDataTableの更新を高速化...
-
プログラミング python pandas ...
おすすめ情報