信号とは、何らかの変動する情報を伝えたり表現したりするために、その情報の変動を関数として表現したものである[1]。この信号から情報を抽出したり、記録したりするために、信号を変換したり加工したりすることを信号処理という[1]。連続的に変化する信号をアナログ信号といい、離散的に変化する信号をデジタル信号という。
アナログ信号をデジタル信号に変換し、デジタル信号に計算機で何かしらの処理を加えて、再びアナログ信号へと変換するような信号処理を、デジタル信号処理という。デジタル信号処理の一つに、音声信号処理が挙げられる。人間の発する音声はアナログ信号であるため、これを計算機で解析するには、デジタル信号に変換する必要がある。そのためには、音声をマイクロフォンなどを用いて音声信号から電気信号に変換する。変換した電気信号を一定間隔で測定することにより、音声を時間的に離散的な信号として収集する。この作業をサンプリング、もしくは標本化という。そして、サンプリングした値を量的に離散的な値にするために、有限個の値に近似する。この処理を量子化という。このようにして、サンプリングした値を量子化することで、アナログ信号をデジタル信号へと変換して音声信号を計算機で解析できるようになる。
ここで、音声のように複雑な信号が、どのような周波数の波で構成されるかを計算機で解析する、スペクトル解析について考える。波を分解するために、フーリエ級数展開、フーリエ変換、離散時間フーリエ変換、離散フーリエ変換のいずれかを行う。フーリエ級数展開と離散時間フーリエ変換は無限の総和を取る必要があるため、そのままでは計算機で使うことができない。フーリエ変換には積分が含まれているため、同じく計算機では使うことができない。よって、有限和を取るだけで計算ができる離散フーリエ変換を使う。しかし、離散フーリエ変換の計算量は
FFTは高速なアルゴリズムであるが、音声波形の周期性に問題がある。本来であれば、デジタル信号に変換した音声は不連続で非周期な関数であるため、離散時間フーリエ変換を使う必要がある。しかし、前述の通り離散時間フーリエ変換は無限の総和を取る必要があるため、計算機で使うことができない。そのため、有限和を取るだけで計算ができる離散フーリエ変換を使う。離散フーリエ変換における元の関数
このような問題を解決するために、FFTの計算時に生じる変動やノイズを低減する技法である窓関数が広く用いられている。代表的な窓関数の一つとして、ハニング窓(ハン窓)が挙げられる。ハニング窓
と定義される関数である。式
しかし、窓関数をかけた波形は、元のサンプリングした音声波形とは異なる波形になる。そのため、FFTを行って得られる理想的なスペクトルに対して、窓関数をかけてからFFTを行って得られるスペクトルは誤差を含んでいる。よって、解析する信号の種類や目的などに応じて、窓関数を使い分けることが重要となる。