200回/1秒の頻度で取得した値を、24回/1秒の頻度のデータに落とすダウンサンプリングをするには
200fps[frame per second]で取得した値を、24fpsにダウンサンプリングしたいです。
24/200=0.12なので
0.12*1=0.12
.
.
.
0.12*8=0.96
0.12*9=1.08
と、0.96から1.08など、小数点以下を切り捨てた値が前後で異なった時に
前後どちらかのループ回数の時に値を取得すれば良いのではないかと思いました。
つまり
if not int((loop_count)*(low_fps/high_fps)) == int((loop_count+1)*(low_fps/high_fps))
となれば良いのではと思い、以下のように200回forループを回してprintをしてみたのですが
なぜか値が25回出力されてしまいます。(本当は24回出力されるのが正しいはず?)
loop_count=1
high_fps=200
low_fps=24
for num in range(200):
if loop_count == 1 or not int((loop_count)*(low_fps/high_fps)) == int((loop_count+1)*(low_fps/high_fps)) :
print(loop_count)
loop_count=loop_count+1