フーリエ変換とは?

シェアする

  • このエントリーをはてなブックマークに追加
最近の記事
  • 10/21 【C#】寸法線の描画
  • 10/21 【C#】GraphicsPathの領域取得
  • 10/20 【C#】GraphicsPathの描画
  • 10/18 【C#】GraphicsPath
  • 10/17 【C#】Bitmap画像データの拡大縮小
  • 10/15 【C#】画像の座標系
  • 10/14 【C#】画像の上下左右反転、90,180,270度回転
  • 10/3 【C#】SplitContainerのPanel固定方法
  • 9/7 【Neural Network Console】学習データの出力方法
  • 9/3 Deep Learning向け学習画像撮り込みソフト公開
  • 9/1 【Neural Network Console】新規画像のDataset作成方法
  • 8/28 【Neural Network Console】GUI表示スケールの変更
  • 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】疑似カラー(カラーマップ)

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

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

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

    フーリエ変換とは?

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

    用途は様々なのですが、

    • 振幅から、どの周波数成分が強いのか?解析を行う。
    • 位相から、位相のズレで距離(形状)を算出する。
    • 特定周波数の振幅を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周期分の波の個数。この値で周波数を調整します。

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

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

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

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

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

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

    フーリエ変換へ戻る

    コメント