2.2 MiRA - フーリエ変換の理解(Exploring the Fourier Transform)

2.2 MiRA - フーリエ変換の理解(Exploring the Fourier Transform)

▲ 目次へ戻る


この章では、フーリエ変換とその派生についてわかりやすく紹介します。スペクトラムアナライザーの背後にある技術を説明し、サウンドエンジニアがそのツールの能力と限界を理解するための助けとなります。

フーリエ変換の導入(Introduction to the Fourier Transform)

フーリエと信号の二重表現(Fourier and the Dual Representation of Signals)

音現象は、時間に伴う気圧の変化として記述できます。通常、この変化は、気圧の変化を電圧の変化に変換するマイクロホンと呼ばれるトランスデューサーを使って捉えます。

1768年から1830年まで生きたフランスの数学者・物理学者であるジョゼフ・フーリエは、あらゆる周期信号純音(pure tones)の和として表されることを最初に提唱しました。

周期信号とは、時間に対して一定で繰り返されるパターンを持つ信号です。パターンの長さは周期と呼ばれ、1秒間にパターンが繰り返される回数が信号の基本周波数です。周期信号は通常倍音(ハーモニクス)を示します。ハーモニクスとは、周期信号に存在する、基本周波数の整数倍の他の周波数です。

純音は、正弦波(サイノイド)としても知られる特定の周期信号に対応します。純音は、基本周波数のみを持ちハーモニクスを持たないという独特の性質を持ちます。この性質から、より複雑な周期信号は、対象信号のハーモニクスと純音の周波数・振幅に一致する複数の純音の和であると理解できます。これがフーリエ級数(Fourier Series)の原理です。

フーリエ級数は周期信号にのみ適用されます。しかし、現実の信号のほとんどは周期的ではありません。この問題を克服するため、フーリエはフーリエ級数を拡張し、あらゆる信号に適用できるフーリエ変換(Fourier Transform)を生み出しました。

フーリエ変換は、各バンドパスの出力振幅が特定の周波数範囲における音エネルギーの存在を示す、バンドパスフィルターバンクとして捉えることができます。

フーリエ変換は、多くのスペクトル解析の基礎です。

デジタルシステムにおけるフーリエ変換(Fourier Transform in digital systems)

これまでは、オーディオ信号をアナログ領域で考えてきました。アナログ領域は時間的連続性を特徴とし、オーディオ信号の値を任意の瞬間に決定できることを意味します。

コンピューターはアナログ信号を処理できません。どのような時間長についても無限の処理能力とメモリが必要になるからです。この限界を克服するため、アナログ信号をサンプリングします。つまり、一定間隔で値を取得し、連続関数を離散的な点の集合に変換します。値を取得する周波数はサンプリングレートと呼ばれ、デジタルシステムが正しくサンプリングできる最大周波数も規定します。シャノン・ナイキストの定理によると、サンプリングしたい信号の最高周波数の少なくとも2倍のサンプリングレートが必要です。人間の聴覚は一般に 20 kHz を超える音を検知しないとされているため、オーディオ信号の一般的なサンプリングレートはしばしば 40 kHz 前後です。この上限周波数はナイキスト周波数(Nyquist Frequency)と呼ばれます。

デジタルシステムは離散的なオーディオ信号を処理するため、フーリエ変換を計算可能なアルゴリズムに改変する必要があります。

フーリエ変換の定義は、デジタルシステムの文脈では2つの重大な限界をもたらします。

  1. フーリエ変換は、信号内のあらゆる可能な周波数を特定しようとします。デジタル領域でこの操作を行うには、限られた周波数範囲を定義する必要があります。
  2. また、フーリエ変換は信号がその全期間にわたって既知であると仮定します。この制約により、用途はオフライン解析に限定され、リアルタイムでの適用が不可能になります。

最初の問題に対処するために離散フーリエ変換(Discrete Fourier Transform)が導入されました。この手法は、完全に既知の入力信号を取り、信号長の整数倍の周期を持つすべての周波数をナイキスト周波数まで見つけます。

両方の問題に対処するためには、短時間離散フーリエ変換(STDFT)を使用します。この手法では、オーディオファイル全体ではなく、入力されるオーディオストリームを複数のチャンク(バッファ)に分けて解析できます。その後、離散フーリエ変換と同じ処理に従います。通常、各バッファの長さは窓解析長(window analysis length)と呼ばれます。STDFT は周波数ビンと呼ばれるものを出力します。各周波数ビンは、窓解析長の逆数に等しい幅を持つバンドパスフィルターとして解釈できます。

高速フーリエ変換(FFT)は、短時間離散フーリエ変換を計算するためによく使用される専用のアルゴリズムです。2のべき乗のバッファサイズに対して特に効率的であるという特性を持ちます。

不確定性原理(The uncertainty principle)

FFT を使ってオーディオ信号の内容を解析する際、窓解析の長さは正しく設定すべき非常に重要なパラメーターです。

窓を大きくすると、オーディオ信号内で探索される各周波数間のステップが小さくなり、スペクトル解析の精度が上がります。また、オーディオ信号において低域の分解能も向上します。しかし、窓が大きいと入力信号からより多くのサンプルが必要になり、信号の急速な変化への応答性が低下します。

簡単に言えば、周波数分解能と時間分解能を同時に良くすることはできません。

最初のまとめ(A first summarize)

信号のスペクトルを把握するには、フーリエ変換を使用する必要があります。デジタルの世界では、短時間フーリエ変換の最適化された実装である高速フーリエ変換を使用します。これはリアルタイムで実行できます。FFT には窓サイズが必要で、これはスペクトル解析で考慮されるサンプル数に対応します。窓サイズが大きいほどオーディオスペクトルの低域の分解能が高くなり、窓サイズが短いほど時間応答性が良くなります。FFT アルゴリズムは、非常に良い時間分解能と周波数分解能の両方を同時に持つことはできません。

リアルタイムスペクトラムアナライザーの理解(Understanding a Real-Time Spectrum Analyzer)

リアルタイムスペクトラムアナライザーは、FFT またはその派生手法を使って、入力されるオーディオストリームを解析します。このようなアルゴリズムは、上述のとおり周波数分解能に限界があるため、いくつかの固有の限界が観察されます。そのため、提示されたデータを正確に解釈するには、これらの制約を認識し理解することが重要です。

なぜ一部の純音は他より幅広く見えるのか?(Why do some pure tones seem wider than others?)

MiRA のリアルタイムスペクトラムアナライザーを実演するため、さまざまな純音を送って結果を解析するという単純なユースケースを行います。まず、主要設定を調整します。窓サイズは 1024、窓の形状は矩形とします。

注意: 自分の行っていることを絶対に確信している場合を除き、デフォルト設定を変更しないでください。

次に、サイン波ジェネレーターを 468.75 Hz に設定して結果を観察します。かなり狭い周波数スパイクが見られます。しかし、ジェネレーターの周波数をわずかに変更すると、大きく異なる結果が見られます。

468.75Hz のサイン波

450Hz のサイン波

450 Hz では、高いノイズフロアを伴う幅広い周波数ピークが生成されます。1024サンプル期間にわたる2つの波形を見て、何が起きているかを確認しましょう。

左側のプロットは、窓サイズの長さに正確に一致する波形を表しています。一方、右側のプロットには不連続が見られます。FFT アルゴリズムはこの不連続をクリック音として聴き取り、結果のプロットに上述の問題を引き起こします。

この現象は、オーディオエディターでフェードインやフェードアウトを適用せずに編集しようとしたときに起こることと同様に理解できます。そのときもクリック音が聞こえます!

フェードイン / フェードアウトとしての窓関数(Windowing functions as fade in/fade-out)

窓関数は、FFT 計算中に現れる可能性のある不連続を滑らかにするため、一定の時間間隔にわたって振幅係数を適用します。

さまざまな種類の窓関数の視覚的表現は次のとおりです。

MiRA のデフォルトの窓形状は Blackmann です。この窓関数を2つのサイン波に適用すると、次のようになります。

バッファの端がゼロにフェードし、不連続が除去されていることがわかります。

468.75Hz のサイン波(窓関数適用後)

450Hz のサイン波(窓関数適用後)

450 Hz の窓関数を適用したサイン波は明らかに良い結果になっていますが、468.75 Hz のサイン波ではわずかに精度が低下します。信号が FFT サイズの倍数の周波数のみを表示する理由はないため、窓関数を常に使用することが強く推奨されます。

周波数分解能の精度を高めるには、解析期間を長くできます。MiRA では、デフォルト値の 8192 が、周波数分解能と時間精度のバランスを一般的に取ります。

高速フーリエ変換の限界(Limitations of the Fast Fourier Transform)

高速フーリエ変換は有用なツールですが、いくつかの限界があります。主なものの一つは、周波数領域を一定の周波数ステップでサンプリングすることです。つまり、周波数に対する人間の対数的な知覚により、スペクトル高域では分解能が高く、低域では分解能が低くなります。たとえば、MiRA のデフォルトの窓長 8192 サンプルは、約 5 Hz の周波数ステップを与えます。この分解能はスペクトルの低域には許容できますが、高域では情報が多すぎて何が起きているか理解しづらくなります。また、それほど多くの点を計算するにはかなりの CPU リソースが必要です。

上記の 200 Hz のノコギり波を表すスペクトルでは、対数表示したとき低周波数域の分解能が劣ることがわかります。より豊かな信号では、高周波数域の細かい分解能がノイズのように見えることがあります。測定自体はノイズなわけではなく、点の密度が高いためプロットが読みづらくなることがあります。

Variable-Q RTA

FFT RTA

理想的には、人間の対数的な音の知覚に対応したフーリエ変換が望まれます。MiRA にはこの問題に対処できる2つの実装があります。Variable-Q 変換適応分解能変換(Adaptive Resolution Transform)です。

MiRA 独自の変換(MiRA Proprietary Transforms)

このセクションでは、FLUX:: 独自の2つの変換、Variable-Q 変換と ART について説明します。オーディオ解析における単純な FFT に対する利点と、その主なユースケースを詳述します。

Variable-Q 変換(The Variable-Q Transform)

FLUX:: Variable-Q Transform(VQT)は、聴覚的な知覚に一致するアルゴリズムです。繰り返しになりますが、人間の周波数の知覚は対数的です。たとえば、2つの音の間に1オクターブの差を知覚する場合、高い方の音は2倍の周波数を持ちます。VQT の背後にある考え方は、1オクターブあたりの周波数ビン数を一定に保ち、知覚に対して一定の分解能を維持することです。

この手法にはいくつかの利点があります。

  • Variable-Q 変換は単純な FFT よりもわずかに多くの計算能力を必要としますが、生成するデータ量が少なく、MiRA での使用においてはるかに効率的です。
  • デフォルトの窓サイズ 8128 サンプルで、VQT は低域と高域の両方で良好な分解能を提供します。

Variable-Q 変換は、周波数情報を表示する各スコープのデフォルトエンジンであるため、MiRA のリアルタイム周波数解析の要です。

ART(適応分解能変換 / Adaptive Resolution Transform)

FLUX:: ART アルゴリズムは、2つの問題を解決しようとします。

  • 対数スケールで考えたときの FFT の不均一な分解能。
  • 良好な時間分解能と周波数分解能を同時に得ることの難しさ。

ART の考え方は、対象とするオクターブに応じて異なるサイズの複数の FFT を使用することです。高いオクターブでは非常に短い FFT サイズを使用でき、優れた時間分解能を得られます。同時に、考慮しているスペクトル部分に対して良好な周波数分解能を保ちます。一方、低いオクターブでは、良好な周波数分解能を維持するために FFT サイズが大きくなります。

これらのデータを組み合わせると、人間の対数的な知覚を考慮したかなり一貫した点の分布が得られ、同時にトランジェントのような非常に速い情報にもかなり敏感に反応します。

したがって、ART は伝達関数スコープのデフォルトアルゴリズムです。


▲ 目次へ戻る


参照元情報:Exploring the Fourier Transform – FLUX:: MiRA User Guide
https://doc.flux.audio/mira/Appendix_Fourier_Transform.html

    • Related Articles

    • MiRA ユーザーガイド(目次 / User Guide Index)

      FLUX:: MiRA ユーザーガイドの目次です。各項目から該当記事をご覧いただけます。 1. はじめに(Welcome to MiRA) 1.1 MiRAへようこそ(Welcome to MiRA) 1.2 インストールとアクティベーション(Installation and activation) 1.3 ライセンスとMiRAのバージョン(Licenses and MiRA Versions) 1.4 クイックスタートと標準的なセットアップ(Quick start and typical ...
    • 2.1 MiRA - オーディオ解析の概要(Introduction to Audio Analysis)

      ▲ 目次へ戻る サウンドエンジニアとしての主な役割は、音を収録・加工・再生し、目指す音質を実現することです。この分野で優れるには、オーディオ解析に関するしっかりとした理解が不可欠です。オーディオ解析には、オーディオ信号を調べ・測定・解釈するためのさまざまな手法やツールが含まれます。ここでは、サウンドエンジニアにとって重要な主要な概念・ツール・手法に焦点を当て、オーディオ解析の入門的な概要を提供します。 ...
    • 1.1 MiRA - MiRAへようこそ(Welcome to MiRA)

      ▲ 目次へ戻る 製品ページ(Product Page) | ショップページ(Shop Page) この度は FLUX::MiRA ...
    • 1.3 MiRA - ライセンスとMiRAのバージョン(Licenses and MiRA Versions)

      ▲ 目次へ戻る MiRA には、MiRA Session、MiRA Studio、MiRA Live の3つのソフトウェアバージョンがあります。MiRA Ultimate は、Live と Studio をまとめたバンドルです。 主な違いは次のとおりです: MiRA Session MiRA Studio MiRA Live リファレンス入出力(Reference Inputs/Outputs) 1つのRTA構成(最大2チャンネル) 複数のRTA構成(各RTA構成は最大24チャンネル) ...
    • 6.3 MiRA - スコープ一覧(Scope List)

      ▲ 目次へ戻る 付録 C — スコープ一覧 この表は、MiRA の各バージョンで利用できるすべてのスコープとその収録バージョンを一覧にしたものです。 名称 カテゴリ 収録バージョン Spectrum Analyzer スペクトラム解析 MiRA Session Spectrogram スペクトラム解析 MiRA Session Nebula stereo スペクトラム解析 MiRA Session Wave Scope スペクトラム解析 MiRA Session Vector scope ...