ハン窓の作り方
FFT処理やグラニュラー処理などでもよくお世話になる窓関数には様々な種類のものがあります。
今回はこれらの中で最もよく使われるものの1つ、ハン窓の作り方を紹介します。
ハン窓は以下の方程式によって作成できます。
これをPdのパッチの中でプログラムとして作ってみると以下のようになります。
まず「until」は2048を受け取ると、2048回連続でbangを出力します。そして、カウンターに入っているので0から2047までがカウントされます。
それを「/ 2048」で割っているため出力が0からおよそ1までにスケーリングされます。それに2πである6.2819を掛けて、「cos」オブジェクトに入力することで余弦を算出し、0.5を掛け、その値を0.5から引いています。
このような面倒くさい計算は「expr」にやらせてしまうのも1つの手です。「expr」を使って書くと以下のようになります。
この例ではhann窓は2048サンプルに固定されていますが、他のサイズの窓も作りたいのでプログラムをより柔軟にしてみましょう。
以下の例では、512、1024、2048などのサンプル数を指定すると、まずArray「hann」のサイズを変更し、その後、カウンターをリセットしてからhann窓の書き込みを行うようにしています。
この項のパッチをダウンロード