AOYAMA Koji's PROGRAMMING BLOG

フーリエ変換による周波数成分への分解と合成

2025/03/02

 本記事では、音の圧縮体験ツールに使用したフーリエ変換による周波数成分への分解について解説します。 各周波数成分の合成するツールも用意しています。


フーリエ変換


 フーリエ変換では、波はすべて基本的な波の合成で表せるという理論に従い、 元データを周波数成分に分解します。

波の合成の例


 実際に周波数成分に分解された波を見てみましょう。

 例えば、この、ややふにゃっとした線ですが、これは以下の3種類の波の合成で表せます。 つまり、この線を周波数成分に分解すると、以下の波が得られます。

 合成された波と、各周波数成分の波、すべて重ねてみるとこんな感じです。

 この3種類だけというのがちょっと意外というか、 波の合成で色々な形が作れるものだなと思います。

フーリエ変換で得られる要素


 フーリエ変換で得られる要素は、各周波数ごとに、振幅位相です。 これが周波数「0」から「データ量-1」まで得られます。
 ここでいう周波数は、波が上下に一回ずつ動いて戻って来るのを1つと数えた場合に、データ全体に対して波がいくつあるか、という意味で使用しています。 周波数1なら波1つ、2なら波2つ。0は横一直線の波です。横一直線が波と呼べるかはわかりませんが。

振幅


 振幅は波の高さを表します。 図では縦方向の大きさです。

位相


 位相は波の位置を表します。 図では横方向の移動量です。

波の合成体験ツール


 3つの波の合成を体験できるツールを作成しました。 簡易的なものではありますが、ぜひ触って、波の合成を資格的に確認してみてください。
 波の1番が、2番が、3番がで表現されています。 黒い波が合成されたものです。 パラメータ次第で特徴のある波が作れると思います。



まとめ


 本記事では、フーリエ変換による周波数成分への分解の理解のため、波の合成を視覚的に確認することで解説しました。
 次回の記事では、フーリエ変換の高速化について、プログラミングの最適化の一般論を交えて解説します。

補足


・今回説明したフーリエ変換は、厳密には離散フーリエ変換です。これはデジタルデータを処理するフーリエ変換です。

カテゴリー:オーディオ推し,アプリケーション
著者プロフィール
青山公士(あおやま こうじ)
中学2年生からゲームプログラミングに明け暮れる。ゲーム開発者としての代表作に「スーパー桃太郎電鉄II」(ハドソン)メインプログラマー、[PR]『ドラゴンクエストX オンライン』(スクウェア・エニックス)テクニカルディレクター/プロデューサーなどがある。[PR]「ドラゴンクエストXを支える技術」(技術評論社)著者。本ブログは今までの経験を活かしプログラミングが楽しいと感じる人が少しでも増えるようなものにしたい。 @kojibm
株式会社ロジック推し
推し情報を論理的にわかりやすく紹介することで「世の中をちょっと楽しく」をミッションに活動中。 HP X Instagram
privacy policy
ピックアップ
Loading...
最新記事
Loading...
関連記事
Loading...