LTspice:「結構レベルが上がったな」
画蔵:「まあな」
scilab:「レベル 20 になったから転職できるんじゃないの?」
画蔵:「いや、もう少しここで頑張る」
Excel:「何かと勘違いしているような...」
今までさんざん悩まされてきた端数の周波数の影響ですが、普通ならば観測時間を決めた段階で周波数分解能が決まってしまいます。今回はその分解能を上げられないか考えてみたいと思います。特に低い周波数ほど分解能を上げたくなりますよね。
そこで端数の周波数が入ってきた場合の FFT の結果に端数の程度による傾向が見つかれば、ある程度の推定が出来るのではないかと考えてみます。とはいっても端数の分解能がどこまで可能か試そうとするとキリがなさそうなので、ここでは 1 /4 を目安にデータを見直してみることにします。
10Hz、10.25Hz、10.5Hz、10.75Hz、11Hz の周波数が観測時間内にあったとして、それぞれの FFT の出力を矩形窓とカイザー窓を拡大してみました。


矩形窓を見てみると、前にも示したとおり 10Hz、11Hz はしっかり分離することが出来て、それ以外の端数はノイズフロアが上がっています。ですが、10Hz と 11Hz 付近だけを見るとたとえば 10.5Hz は 10Hz と 11Hz がほぼ同じレベルになっていて 9Hz 以下と 12Hz 以上が上がっていることから、この付近に一つだけ周波数があるはずというのがあらかじめ分かっていれば、その辺りの特徴を捉えて 10.5Hz と判断しても良さそうです。同様に 10.25Hz と 10.75Hz もそれぞれピークは 10Hz、11Hz にあるわけですが、たとえば 9Hz のレベルや 11Hz のレベルなどから 10.25 Hz と判断したりできそうです。
カイザー窓の場合は端数でない周波数もちょっとぼんやりしてしまいますが、1 / 4 刻みぐらいなら分離しているといって良さそうです。矩形窓だと端数の周波数の時にノイズフロアが上がってしまって、見えるべきものが見えなくなることを考えるとカイザー窓をまずは使わざるを得なくて、その中で端数の周波数を想定されるプロファイルと照らし合わせてだいたいこの位の端数か、というやり方が現実的かな、と思います。検出された周辺周波数(この場合は 8Hz から 13Hz ぐらい)とこのプロファイルとの差分を自乗和して平方根を計算するなどでもっとも偏差が小さくなるプロファイルの周波数だとすることになると思います。
また、カイザー窓の場合はαを調整することでプロファイルの分離をよくしたり鈍くしたりすることが可能なので、色々試してみる価値はあると思います。
ちなみに 10.5Hz は 10Hz と 11Hz が同じレベルで出てしまっていますが、実は本当に同じレベルの 10Hz と 11Hz がいた、というのと区別がつくのかというと、この場合は以下のような結果が出ます。


矩形窓の場合はノイズフロアが上がっていないのですぐ分かります。カイザー窓の場合はちょっと微妙ですかね。αを小さくすると区別がつきやすくなると思います。
端数の周波数を推定する手段としてどうでしょうか。
画蔵:「まあな」
scilab:「レベル 20 になったから転職できるんじゃないの?」
画蔵:「いや、もう少しここで頑張る」
Excel:「何かと勘違いしているような...」
今までさんざん悩まされてきた端数の周波数の影響ですが、普通ならば観測時間を決めた段階で周波数分解能が決まってしまいます。今回はその分解能を上げられないか考えてみたいと思います。特に低い周波数ほど分解能を上げたくなりますよね。
そこで端数の周波数が入ってきた場合の FFT の結果に端数の程度による傾向が見つかれば、ある程度の推定が出来るのではないかと考えてみます。とはいっても端数の分解能がどこまで可能か試そうとするとキリがなさそうなので、ここでは 1 /4 を目安にデータを見直してみることにします。
10Hz、10.25Hz、10.5Hz、10.75Hz、11Hz の周波数が観測時間内にあったとして、それぞれの FFT の出力を矩形窓とカイザー窓を拡大してみました。


矩形窓を見てみると、前にも示したとおり 10Hz、11Hz はしっかり分離することが出来て、それ以外の端数はノイズフロアが上がっています。ですが、10Hz と 11Hz 付近だけを見るとたとえば 10.5Hz は 10Hz と 11Hz がほぼ同じレベルになっていて 9Hz 以下と 12Hz 以上が上がっていることから、この付近に一つだけ周波数があるはずというのがあらかじめ分かっていれば、その辺りの特徴を捉えて 10.5Hz と判断しても良さそうです。同様に 10.25Hz と 10.75Hz もそれぞれピークは 10Hz、11Hz にあるわけですが、たとえば 9Hz のレベルや 11Hz のレベルなどから 10.25 Hz と判断したりできそうです。
カイザー窓の場合は端数でない周波数もちょっとぼんやりしてしまいますが、1 / 4 刻みぐらいなら分離しているといって良さそうです。矩形窓だと端数の周波数の時にノイズフロアが上がってしまって、見えるべきものが見えなくなることを考えるとカイザー窓をまずは使わざるを得なくて、その中で端数の周波数を想定されるプロファイルと照らし合わせてだいたいこの位の端数か、というやり方が現実的かな、と思います。検出された周辺周波数(この場合は 8Hz から 13Hz ぐらい)とこのプロファイルとの差分を自乗和して平方根を計算するなどでもっとも偏差が小さくなるプロファイルの周波数だとすることになると思います。
また、カイザー窓の場合はαを調整することでプロファイルの分離をよくしたり鈍くしたりすることが可能なので、色々試してみる価値はあると思います。
ちなみに 10.5Hz は 10Hz と 11Hz が同じレベルで出てしまっていますが、実は本当に同じレベルの 10Hz と 11Hz がいた、というのと区別がつくのかというと、この場合は以下のような結果が出ます。


矩形窓の場合はノイズフロアが上がっていないのですぐ分かります。カイザー窓の場合はちょっと微妙ですかね。αを小さくすると区別がつきやすくなると思います。
端数の周波数を推定する手段としてどうでしょうか。