たれぱんのびぼーろく

わたしの備忘録、生物学とプログラミングが多いかも

サブバンド

例: 125 ms長のFIRフィルタ
125 msに含まれるサンプル数はsrに依存.
sr=16kHzだと2000サンプル、sr=8kHzだと1000サンプル.

帯域を2分割すると 16kHz/2000サンプル => 8kHz/1000サンプルx2 になる.
新しいサンプルが来るたびにFIRフィルタをかけるため、フルバンドでは2000サンプル処理を1回、2バンドでは1000サンプル処理を2回する.
なので1セットで実行される処理量は変わらない。FLOPSもメモリ消費も一緒.
ところで「新しいサンプルが来る」頻度を見ると、サブバンドは1/2の頻度になってる.
つまりRTFが半分になる. 素晴らしい.

別の見方

サンプル数に着目すると、サブバンドはsrを落としただけバンド数が増えるので変化がない.
間引きで系列を分割するようなものなので当たり前.
しかし、各サンプルに課される計算量が変わる.
固定時間長の処理なら、単位時間あたりのサンプル密度が減ってるので計算量が減る.
サブバンド化で問題が解きやすくなりモデルサイズが減らせて計算量が減ることもあるかも.