教科書では、”通常一つの区間のデータに窓関数ををかけてからFFTを行う。 窓関数をかけると区間の両端の値が小さくなるので一部分を重複させながらずらしていく”とある。
その処理をやってみたいと思う。
図で表すとこんな感じ。 一つ前のフレームのデータを保存しておいて、一つ前のデータの後ろ半分と今のデータの前半分をFFT(赤)し、今のデータの全体をFFT(緑)する動作を繰り返す。
第一フレームはその前のデータがないので赤の処理は半分だけの処理になるが、最初だけなので無視する。
処理の概念としてはこれでいいと思うんだけど、実際にどうするか? 1フレームキャプチャして次のフレームをキャプチャするまでに2回FFTしなければいけないけど、間に合うか?
うちのPCはそんなに高性能じゃないので、ちょっと心配だけどまあ、やってみるしかないな..。