計測器・測定器玉手箱
フーリエ変換と窓関数
フーリエ変換と窓関数
デジタル技術の発達によって、FFTアナライザなどを使った周波数解析が手軽にできるようになりました。
時間領域のアナログ信号(=波形)を周波数領域のデジタルデータ(スペクトラム)に変換するためには、A/D変換と離散的フーリエ変換という二つの手順をふみます。
そしてこの過程でいくつかの不確かさの要因を生じます。
ここでは、それらの中で時間窓による問題を採り上げます。
まず、図1のような連続した正弦波を考えます。
正弦波にひずみが無いとすれば、単一の周波数成分しか持たないので、そのスペクトラムは図2のように一本だけになるはずです。
FFTアナライザなどを使って解析する場合はどうでしょうか。
この場合、図1に示したように信号のある区間を切り出して、その信号をデジタル化した後にフーリエ変換の演算をすることになります。
そしてフーリエ変換の演算は、取り込んだデータと同じデータが無限に並んでいるものとして計算されます。
もし、図1のようにデータの取り込み区間が信号の周期とぴったり一致していれば解析結果は連続した正弦波と同じになりますから、スペクトラムは図2と同じになります。
ところが、図3のようにデータの取り込み区間と信号の周期が一致しない場合は、アナライザは同図の下の波形として演算をしてしまいます。
下の波形は連続正弦波とは大きく異なるので、当然そのスペクトラムも連続正弦波とは異なり、図4のように本来のスペクトラムの周りに漏れを生じて大きく拡がりを持ってしまいます。
このように、有限の時間範囲でデータを切り取ってしまうために生じる不確かさ(誤差)は時間窓による誤差あるいはトランケーションによる誤差などと呼ばれます。これはA/D変換の量子化誤差などと比べてもかなり大きな誤差です。
FFTを利用するアプリケーションでは信号の周期と取り込み区間を同期できるとは限りません。むしろ同期できない方がずっと多いので、この問題は深刻です。
そこで、FFTアナライザでは時間窓による誤差を軽減するために、「窓関数」という処理を施します。
信号を取り込み区間で切り取るということは、信号(という時間関数)に、信号を取り込まないときはゼロ、信号を取り込んでいるときは「1」になるちょうど図5のような方形波状の関数を掛けることと同じです。こうした関数のこと関数を「窓関数」と呼びます。
ちなみに、図5は方形波の窓関数ですので、レクタンギュラ・ウインドウと呼ばれます。
実は、時間窓によるスペクトラムの拡がり方は、窓関数によって決まります。窓関数のスペクトラムが拡がりのスペクトラムになります。
図6は方形波の窓関数のスペクトラムを表しています。
窓関数のスペクトラムは、アナライザの取り込み区間を固定して、信号の周波数をスイープさせたときのアナライザの応答と考えることもできます。
その場合、スペクトラムの形状としては、中央(周期と一致する周波数)だけにレスポンスがあってほかはゼロというのが理想です。
また、レスポンスの中央部をメインローブ、脇の拡がりをサイドローブといいます。
この言い方をすれば、メインローブの幅が細く、サイドローブの拡がりが小さいほど誤差が少ないことになります。
メインローブの幅が広いと、計測の周波数分解能が悪くなって近接した信号を分離できなくなります。
また、サイドローブの減衰が小さいと計測のダイナミックレンジが狭くなってしまいます。
図6を見ると、サイドローブの拡がりが大きく、周波数がかなり離れても-20~-30dB程度しかないので、レベルの大きな信号とレベルの小さな信号が混合された波形のような場合はその分離が難しいことが解ります。
レベルの大きな信号成分のスペクトラムの拡がりが、レベルの小さな成分の存在を見えなくしてしまうからです。
ところで、前出の図3で、信号に同期しない波形をつなげた波形と連続信号とを比べると、波形のつなぎ目部分が大きく異なっています。特につなぎ目部分で波形が切り立ってしまうので、このことが大きく影響しそうです。
もし、波形を切り出した後で、波形のつなぎ目に近いところは感度を低くできれば、連続波形とは異なるものの、滑らかなつながりが得られるはずです。
感度を時間に比例して変えていくとすれば、感度のグラフは図7のような三角波になります。
方形波の時と同じに考えるならば、図7のような三角波状の窓関数を掛ける、という表現になるでしょう。
さらに別な言い方をすれば、図7の関数でデータに重み付けをする、ということでもあります。
図8は図7の三角波窓関数のスペクトラムです。
レクタンギュラ・ウインドウと比べてみると、メインローブは広くなってしまいますが、サイドローブの減衰がずっと大きくなって改善されていることが解ります。
方形波の窓関数はダイナミックレンジが得られず、三角波の窓関数では周波数分解能が十分ではありませんでした。
そこで、広いダイナミックレンジと高い周波数分解能を併せ持った窓関数が研究されました。
時間窓による誤差は原理的なものなので、いかなる窓関数によっても根本的に解決することはできません。
しかし多くの研究の結果、計測信号の特質に見合った窓関数を使えば実用上は十分なものがいくつか見つかりました。
市販されているFFTアナライザの多くは、こうした窓関数のいくつかを内蔵しており、計測者が任意に選択できるようになっています。
以下にその代表的なものを掲げます。
● ハニング・ウインドウ
サイドローブがシャープに切れ落ちた特性を持ったウインドウです。従って、ダイナミックレンジの広い計測ができます。最もポピュラーなウインドウであり、デフォルトがハニング・ウインドウに設定されている製品も数多くあります。
ただし、メインローブに近い部分のサイドローブが比較的大きいので、周波数が近接した複数信号の計測にはあまり向いていません。
● ハミング・ウインドウ
メインローブのすぐ脇に出るサイドローブの大きさを抑えた窓関数です。
従って、周波数が近接した複数信号の計測に向いていると言えますが、全体としてのサイドローブの減衰が鈍いので、広ダイナミックレンジは望めません。
前出のハニング・ウインドウと名前が似ているので混同しないように注意が必要です。
● ブラックマン・ウインドウ
サイドローブの減衰特性が良い窓関数です。従って、大きな信号と小さな信号が周波数を隔てて存在する場合などは有用です。
逆に、近接した信号などでは分離ができずにひとつのスペクトラムとして観測される危険があります。
● フラットトップ・ウインドウ
周期的な信号の計測精度を向上させるために考案されたウインドウです。
フラットトップという名称から、レクタンギュラ・ウインドウと混同されやすいので注意してください。
フラットトップ・ウインドウのフラットというのは、窓関数の波形(時間領域のカタチ)がフラットなのではなく、窓関数のメインローブのスペクトラムがフラットという意味です。
メインローブの幅が極めて広いので、計測信号の周期と取り込み区間の幅が少し違っいても、レベル的には誤差の小さな計測が可能です。
時間領域の波形は図13のように方形波とは大きく異なっています。
窓関数には上記のほかに、ガウスの波形を使ったものなどたくさんの種類がありますが、前述のように全ての要求を満たす窓関数は原理的に存在しないので、利用に当たっては適切な使い分けが必要です。
例えば、レクタンギュラ・ウインドウはダイナミックレンジは狭いものの、メインローブの幅が狭く、周波数分解能は極めて高いので、データを切り取るエッジ付近に信号が存在しない孤立的な波形や過渡現象などの観測にはふさわしい窓関数です。
実用的には、レクタンギュラ、ハニング、フラットトップを使い分けることができれば十分でしょう。
ウインドウ関数 | 用 途 |
---|---|
レクタンギュラ | 過渡現象、周期波形で同期信号が得られる場合 |
ハニング | ランダム波形 |
フラットトップ | 周期波形 |