ワトソン選手のフィルタの中身を見てみました。
原理というか手順は、
1. x(t) →フーリエ変換 → y(f)
2. y(f) × a(f) → y'(f)
3. y'(f) → 逆フーリエ変換 → x'(t)
です。x(t) は元の波形、x'(t) がフィルタ後の波形、y(f)とy'(f) はそれぞれフィルタ前後のフーリエ領域での波形です。
ここで、a(f) は取り除きたい周波数 f のときに 0、通過させたい周波数 f に対して 1 となる関数です。たとえば、20Hz のローパスフィルタでは、f=0~20 のとき 0、f>20 では1 です。
注意点が3つあります。
フーリエ変換後の波形は配列で取り出すので、実際には y(f) と a(f) は周波数の関数ではありません。したがって、20Hz は何番目の指標に含まれているかを計算する必要があります。ワトソン選手の VI では左下のあたりで、この計算をやっています。
ストップバンドの周波数領域に対しては 0 をかけると書きましたが、実際には 1E-9 をかけています。本当に 0 をかけてしまうと、位相が大きくずれてしまいます。それを防ぐために、1E-9 くらいで手を打っているそうです。
最後に、長い波形を、ちょっとずつ区切りながらフィルタリングすると、波形の継ぎ目がおかしくなる場合があります。バトルのときには、ワトソン選手のコメントにもあったよ うに、波形の継ぎ目での値が 0、勾配も 0 に近かったのでうまくいっていたようです。

