これから、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で質問しましょう!
似たような質問が見つかりました
- その他(コンピューター・テクノロジー) ハードドライブのデータ記憶方法 USBメモリーなどの半導体記憶デバイスは、ビット毎の 0 or 1 1 2023/02/25 12:41
- システム CSVファイルのマッピング処理の省力化 1 2022/11/24 00:01
- スピーカー・コンポ・ステレオ 【人間が聴こえない周波数帯】昔は人間が聴こえない周波数帯域も拾えるだけ拾った方 3 2023/02/04 22:28
- 画像編集・動画編集・音楽編集 YouTubeを録音できるソフトを教えてください。 5 2023/02/12 10:19
- 物理学 フーリエ級数展開をExcelのFFTでシミュレートする 5 2023/07/03 22:02
- その他(AV機器・カメラ) ピアノ演奏の録画録音 3 2022/10/28 14:01
- 数学 フーリエ変換後の負の周波数成分の扱いについて 4 2022/09/03 10:18
- 物理学 2種類の風切り音の周波数の違い 1 2023/04/20 07:39
- 数学 ヒストスプライン平滑化をする際の節点の決め方ついて教えてください。 9 2022/08/08 16:17
- C言語・C++・C# このプログラミング誰か教えてくれませんか 3 2022/05/13 17:27
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
教えて下さい
-
配列でデータが入っている要素...
-
VBA 空白セルを削除ではない方...
-
メモ帳(テキストデータ)をExc...
-
大学のゼミのレポートがムカつ...
-
S9タイプからXタイプにデータ...
-
配列の勉強をしています。使用...
-
二分探索の平均探索回数
-
特定のデータの抽出方法を教え...
-
多量のSUMIF式を軽くしたい
-
ユーザーフォームのテキストボ...
-
DataGridViewのデータの引渡し...
-
この行は既に別のテーブルに属...
-
Accessで該当データにフラグを...
-
シーケンサにパソコンからアク...
-
【エクセル】測定時間がバラバ...
-
MSCommを用いたRS-232-Cデータ転送
-
ページ数を求めたい
-
C# ソケット通信でデータ受信時...
-
ブレーカー落ちで壊れたりしな...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
教えて下さい
-
配列でデータが入っている要素...
-
【エクセル】測定時間がバラバ...
-
メモ帳(テキストデータ)をExc...
-
VBA 空白セルを削除ではない方...
-
多量のSUMIF式を軽くしたい
-
この行は既に別のテーブルに属...
-
S9タイプからXタイプにデータ...
-
Excelのマクロでワードのテキス...
-
エクセルで2つの時系列のデー...
-
Accessで該当データにフラグを...
-
ユーザーフォームのテキストボ...
-
シーケンサにパソコンからアク...
-
VBAを使ってOutlookメール本文...
-
EXCELVBAでSQLserverからデータ...
-
[C言語] コメント文字列を無視...
-
プログラミング python pandas ...
-
VBA 毎日取得するデータを順番...
-
<VB>String→Object
-
カンマからスラッシュに
おすすめ情報