dポイントプレゼントキャンペーン実施中!

離散フーリエ変換について、下のURLで非常にわかりやすく説明されていますが、
しかし一つわからないことがあります。
http://www.geocities.jp/supermisosan/fourier.html

「どうやって1秒を決めているか」
という点についてです。

周波数を決定するためには、「何個の数値が1秒に得られた数値であるのか」という情報が必要であるように思います。

問題をもっと簡単にして、10回振動するの正弦波があり、その離散データ(数字の配列)を得たとします。
この波全体が何秒で得られたのかがわからないことには、周波数の解析ができないのではないかと思いますが、しかしURLの方法では、その時間の情報無しにスペクトル抽出できているような印象を受けます。

この疑問がなかなか解決しません。どなたか、教えていただけると幸いです。
よろしくお願いいたします。

A 回答 (3件)

絶対的な周波数は得られませんが, 「データの収集時間に対する比率」としての周波数 (というか周期) ならわかります. どういうことかというと,


1. 10 Hz の正弦波信号をサンプリング周波数 100 Hz で 1 s の間収集する
2. 100 Hz の正弦波信号をサンプリング周波数 1000 Hz で 0.1 s の間収集する
として得られた信号を DFT すると, 結果は全く同一になります. どちらも
・周期 0.1T の正弦波信号をサンプリング周期 0.01T で時間 T の間収集する
(ただし 1 では T = 1 s, 2 では T = 0.1 s) と, 全く同じ形で書くことができるからです.

言い換えると, DFT は「データの収集時間」を T としたときに, 周波数が n/T (n は整数) であるような周期信号成分に分解するという操作です.
    • good
    • 0

>問題をもっと簡単にして、10回振動するの正弦波があり、その離散データ(数字の配列)を得たとします。



この場合は元のデータの正弦波の中に振動数情報が含まれてますよね?
正弦波なのだから。

周波数の情報はあなたがとる離散データの間隔ではなく、元のデータの中に含まれてしかるべきです。

いいかえると、データ間隔に依存するような取り方をしてしまうと計算結果にずれが生じます。


それを保証するのが確か、サンプリング定理とよばれるもので、どの程度の間隔で連続関数からデータを抽出すれば、変換において結果が正しく吐き出せるかというものがあります。

>周波数を決定するためには、「何個の数値が1秒に得られた数値であるのか」という情報が必要であるように思います。

これは、周波数が云々というよりも、このサンプリング定理よりの問題であるように思います。
質問者さんがプログラマーなら、試しにプログラム組んでみてください。

元の関数を離散化するときにサンプルの取り方によって、トンチキな結果が得られるでしょう。
    • good
    • 0

「どうやって1秒を決めているか」、おそらく時間は決めていません。



周波数を決定するためには、「何個の数値が1秒に得られた数値であるのか」という情報は必要ありません。

周波数を決定するためには、周期性が解ればいいのです。周期性がわからなければ、その離散データ(数字の配列)の全データの全体時間が1周期になります。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!