フーリエ変換とは?

シェアする

  • このエントリーをはてなブックマークに追加
最近の記事
  • 8/22 【Neural Network Console】CPU/GPU処理の設定切替
  • 8/21 【Neural Network Console】Learning Rate(学習率)の設定
  • 8/20 ソニーの無償AIソフト Neural Network Consoleの入手ダウンロード、インストール
  • 8/20 Deep Learning
  • 8/20
  • 8/19 古いバージョンのVisual Studio Community/Expressの入手ダウンロード
  • 8/19 CUDAの入手、ダウンロード、インストール方法
  • 8/17 【C#.NET】マイクロソフト仕様のアフィン変換
  • 8/5 【C#】ファイルを開くダイアログボックスの表示
  • 8/2 キャノンプリンターのCDトレイはどこ?!
  • 7/6 【参考書籍】画像処理・機械学習プログラミング OpenCV 3対応
  • 6/20 【Python,matplotlib】動くグラフをAnimationGifに保存する方法
  • 6/17 シグモイド関数の微分
  • 6/15 シグモイド関数
  • 6/13 合成関数の微分
  • 6/12 WordPressで数式エディタ風に数式を入力したい
  • 6/11 PythonをVisual Studioでインストールする方法
  • 6/9 【Python】OpenCVをAnacondaでインストール(Windows編)
  • 6/6 【Python】Anacondaで複数バージョンの環境切り替え
  • 6/6 画像センシング展2017に出展します。
  • 6/1 【Office365】Web版Outlookのフォントサイズ変更
  • 6/1 【Anaconda】モジュールのアップデートでエラー発生
  • 6/1 【Anaconda】コマンドリストの表示
  • 5/29 Windows10パソコン購入
  • 5/24 Anacondaのアンインストール
  • 5/24 【Jupyter Notebook】新規プログラムの作成
  • 5/23 【Python】開発環境の構築
  • 5/23 Pythonはじめました
  • 4/6 【Office365】Web版Outlookのスレッド表示を解除する方法
  • 4/5 【Excel】フーリエ解析(FFT)
  • 3/20 Canny edge detection
  • 3/20 【Excel2016】分析ツールの表示
  • 3/5 【Visual Studio】黒い背景色を白に変更する方法
  • 2/8 【Windows10】拡張モニタに表示されたウィンドウを元に戻す
  • 2/7 複素数の計算
  • 1/18 【Excel】棒グラフの横軸の目盛を0始まりにする
  • 1/16 【Excel】フーリエ変換
  • 1/6 【OpenCV】疑似カラー(カラーマップ)
  • 11/8 【Visual Studio】検索結果のウィンドウ表示
  • 11/3 ニコン 一眼レフカメラ D5500レビュー
  • 10/26 カラーカメラはモノクロカメラを兼ねない
  • 9/6 (Free Soft)Animation GIF Builder
  • 8/30 【C#】タブの無いTabControlっぽいものを作る
  • 8/29 【OpenCvSharp】サンプルプログラムの公開
  • 8/28 【PowerPoint】部分的にカラーにする(セレクトカラー処理)
  • 8/27 【C#】引数の値渡し、参照渡し(ref, out)
  • 8/26 【Word/Excel】図形内に文字を挿入する
  • 8/25 【C#】NumericUpDownコントロール
  • 8/24 ニコン D3400 VS D5500 仕様比較
  • 8/22 【C#】MDIフォームにリサイズ可能なPanelを設置する

  • フーリエ変換は何をしているのか???

    下図の示すように、任意波形を各周波数の成分に分解し、その大きさ(振幅)および位置(位相)を求める計算がフーリエ変換となります。

    逆に、振幅と位相から元の波形を求める計算が逆フーリエ変換となります。

    フーリエ変換とは?

    このフーリエ変換を行うと何が良いのか???

    用途は様々なのですが、

    • 振幅から、どの周波数成分が強いのか?解析を行う。
    • 位相から、位相のズレで距離(形状)を算出する。
    • 特定周波数の振幅を0(ゼロ)にして、逆フーリエ変換を行い、フィルタ処理(ノイズ除去など)を行う。
    • 振幅および位相から元のデータを算出する事で、元のデータを少ない値から算出する。
      (データ圧縮)

    などなど。

    ここで、私がなかなかフーリエ変換を理解できなかったポイントですが、

    「任意波形はサイン波形を足し合わせると求める事ができる!」

    みたいな説明が良くあります。さらに位相についても触れられていない場合が多いです。

    しかし、この説明だとsin(0°)は、いつも0(ゼロ)なので、いくら各周波数成分を足し合わせても0°の値は0になってしまいます。

    そのため、sin波形で考えるのではなく、cos波形で考えた方が良いと思います。

    この時、各周波数の成分は下記の式で表されます。

    フーリエ変換とは

    ただし、

    N:データ個数

    t = 0、1、2、・・・・N-1

    n = 0、1、2、・・・・N-1

    t:tの時の振幅

    φt:tの時の位相

    t:データ全体に含まれる1周期分の波の個数。この値で周波数を調整します。

    また、一度は聞いた事があるであろうパワースペクトルの値は振幅そのものを求めていない場合が多い。

    (この事にはついては、別の記事で説明したいと思います。)

    画像処理をやった事がある人では、フーリエ変換は、各周波数をテンプレートとしたテンプレートマッチングを行い、相関値がフーリエ変換のパワースペクトルに相当していると思えば、感覚的には似ています。

    (ただし、数学的には異なります。)

    と、ざっくりなイメージはこんな感じです。

    もう少し、まじめにフーリエ変換を理解したい場合は内積正規直交規定を理解しておくと、良いかと思います。

    フーリエ変換へ戻る

    コメント