この章では、フーリエ変換とその派生についてわかりやすく紹介します。スペクトラムアナライザーの背後にある技術を説明し、サウンドエンジニアがそのツールの能力と限界を理解するための助けとなります。
音現象は、時間に伴う気圧の変化として記述できます。通常、この変化は、気圧の変化を電圧の変化に変換するマイクロホンと呼ばれるトランスデューサーを使って捉えます。
1768年から1830年まで生きたフランスの数学者・物理学者であるジョゼフ・フーリエは、あらゆる周期信号が純音(pure tones)の和として表されることを最初に提唱しました。
周期信号とは、時間に対して一定で繰り返されるパターンを持つ信号です。パターンの長さは周期と呼ばれ、1秒間にパターンが繰り返される回数が信号の基本周波数です。周期信号は通常倍音(ハーモニクス)を示します。ハーモニクスとは、周期信号に存在する、基本周波数の整数倍の他の周波数です。

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

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

フーリエ変換は、各バンドパスの出力振幅が特定の周波数範囲における音エネルギーの存在を示す、バンドパスフィルターバンクとして捉えることができます。
フーリエ変換は、多くのスペクトル解析の基礎です。
これまでは、オーディオ信号をアナログ領域で考えてきました。アナログ領域は時間的連続性を特徴とし、オーディオ信号の値を任意の瞬間に決定できることを意味します。
コンピューターはアナログ信号を処理できません。どのような時間長についても無限の処理能力とメモリが必要になるからです。この限界を克服するため、アナログ信号をサンプリングします。つまり、一定間隔で値を取得し、連続関数を離散的な点の集合に変換します。値を取得する周波数はサンプリングレートと呼ばれ、デジタルシステムが正しくサンプリングできる最大周波数も規定します。シャノン・ナイキストの定理によると、サンプリングしたい信号の最高周波数の少なくとも2倍のサンプリングレートが必要です。人間の聴覚は一般に 20 kHz を超える音を検知しないとされているため、オーディオ信号の一般的なサンプリングレートはしばしば 40 kHz 前後です。この上限周波数はナイキスト周波数(Nyquist Frequency)と呼ばれます。

デジタルシステムは離散的なオーディオ信号を処理するため、フーリエ変換を計算可能なアルゴリズムに改変する必要があります。
フーリエ変換の定義は、デジタルシステムの文脈では2つの重大な限界をもたらします。
最初の問題に対処するために離散フーリエ変換(Discrete Fourier Transform)が導入されました。この手法は、完全に既知の入力信号を取り、信号長の整数倍の周期を持つすべての周波数をナイキスト周波数まで見つけます。
両方の問題に対処するためには、短時間離散フーリエ変換(STDFT)を使用します。この手法では、オーディオファイル全体ではなく、入力されるオーディオストリームを複数のチャンク(バッファ)に分けて解析できます。その後、離散フーリエ変換と同じ処理に従います。通常、各バッファの長さは窓解析長(window analysis length)と呼ばれます。STDFT は周波数ビンと呼ばれるものを出力します。各周波数ビンは、窓解析長の逆数に等しい幅を持つバンドパスフィルターとして解釈できます。
高速フーリエ変換(FFT)は、短時間離散フーリエ変換を計算するためによく使用される専用のアルゴリズムです。2のべき乗のバッファサイズに対して特に効率的であるという特性を持ちます。
FFT を使ってオーディオ信号の内容を解析する際、窓解析の長さは正しく設定すべき非常に重要なパラメーターです。
窓を大きくすると、オーディオ信号内で探索される各周波数間のステップが小さくなり、スペクトル解析の精度が上がります。また、オーディオ信号において低域の分解能も向上します。しかし、窓が大きいと入力信号からより多くのサンプルが必要になり、信号の急速な変化への応答性が低下します。
簡単に言えば、周波数分解能と時間分解能を同時に良くすることはできません。
信号のスペクトルを把握するには、フーリエ変換を使用する必要があります。デジタルの世界では、短時間フーリエ変換の最適化された実装である高速フーリエ変換を使用します。これはリアルタイムで実行できます。FFT には窓サイズが必要で、これはスペクトル解析で考慮されるサンプル数に対応します。窓サイズが大きいほどオーディオスペクトルの低域の分解能が高くなり、窓サイズが短いほど時間応答性が良くなります。FFT アルゴリズムは、非常に良い時間分解能と周波数分解能の両方を同時に持つことはできません。
リアルタイムスペクトラムアナライザーは、FFT またはその派生手法を使って、入力されるオーディオストリームを解析します。このようなアルゴリズムは、上述のとおり周波数分解能に限界があるため、いくつかの固有の限界が観察されます。そのため、提示されたデータを正確に解釈するには、これらの制約を認識し理解することが重要です。
MiRA のリアルタイムスペクトラムアナライザーを実演するため、さまざまな純音を送って結果を解析するという単純なユースケースを行います。まず、主要設定を調整します。窓サイズは 1024、窓の形状は矩形とします。
注意: 自分の行っていることを絶対に確信している場合を除き、デフォルト設定を変更しないでください。
次に、サイン波ジェネレーターを 468.75 Hz に設定して結果を観察します。かなり狭い周波数スパイクが見られます。しかし、ジェネレーターの周波数をわずかに変更すると、大きく異なる結果が見られます。

468.75Hz のサイン波

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

左側のプロットは、窓サイズの長さに正確に一致する波形を表しています。一方、右側のプロットには不連続が見られます。FFT アルゴリズムはこの不連続をクリック音として聴き取り、結果のプロットに上述の問題を引き起こします。
この現象は、オーディオエディターでフェードインやフェードアウトを適用せずに編集しようとしたときに起こることと同様に理解できます。そのときもクリック音が聞こえます!
窓関数は、FFT 計算中に現れる可能性のある不連続を滑らかにするため、一定の時間間隔にわたって振幅係数を適用します。
さまざまな種類の窓関数の視覚的表現は次のとおりです。

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

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

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

450Hz のサイン波(窓関数適用後)
450 Hz の窓関数を適用したサイン波は明らかに良い結果になっていますが、468.75 Hz のサイン波ではわずかに精度が低下します。信号が FFT サイズの倍数の周波数のみを表示する理由はないため、窓関数を常に使用することが強く推奨されます。
周波数分解能の精度を高めるには、解析期間を長くできます。MiRA では、デフォルト値の 8192 が、周波数分解能と時間精度のバランスを一般的に取ります。
高速フーリエ変換は有用なツールですが、いくつかの限界があります。主なものの一つは、周波数領域を一定の周波数ステップでサンプリングすることです。つまり、周波数に対する人間の対数的な知覚により、スペクトル高域では分解能が高く、低域では分解能が低くなります。たとえば、MiRA のデフォルトの窓長 8192 サンプルは、約 5 Hz の周波数ステップを与えます。この分解能はスペクトルの低域には許容できますが、高域では情報が多すぎて何が起きているか理解しづらくなります。また、それほど多くの点を計算するにはかなりの CPU リソースが必要です。

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

Variable-Q RTA

FFT RTA
理想的には、人間の対数的な音の知覚に対応したフーリエ変換が望まれます。MiRA にはこの問題に対処できる2つの実装があります。Variable-Q 変換と適応分解能変換(Adaptive Resolution Transform)です。
このセクションでは、FLUX:: 独自の2つの変換、Variable-Q 変換と ART について説明します。オーディオ解析における単純な FFT に対する利点と、その主なユースケースを詳述します。
FLUX:: Variable-Q Transform(VQT)は、聴覚的な知覚に一致するアルゴリズムです。繰り返しになりますが、人間の周波数の知覚は対数的です。たとえば、2つの音の間に1オクターブの差を知覚する場合、高い方の音は2倍の周波数を持ちます。VQT の背後にある考え方は、1オクターブあたりの周波数ビン数を一定に保ち、知覚に対して一定の分解能を維持することです。
この手法にはいくつかの利点があります。
Variable-Q 変換は、周波数情報を表示する各スコープのデフォルトエンジンであるため、MiRA のリアルタイム周波数解析の要です。
FLUX:: ART アルゴリズムは、2つの問題を解決しようとします。
ART の考え方は、対象とするオクターブに応じて異なるサイズの複数の FFT を使用することです。高いオクターブでは非常に短い FFT サイズを使用でき、優れた時間分解能を得られます。同時に、考慮しているスペクトル部分に対して良好な周波数分解能を保ちます。一方、低いオクターブでは、良好な周波数分解能を維持するために FFT サイズが大きくなります。
これらのデータを組み合わせると、人間の対数的な知覚を考慮したかなり一貫した点の分布が得られ、同時にトランジェントのような非常に速い情報にもかなり敏感に反応します。
したがって、ART は伝達関数スコープのデフォルトアルゴリズムです。
参照元情報:Exploring the Fourier Transform – FLUX:: MiRA User Guide
https://doc.flux.audio/mira/Appendix_Fourier_Transform.html