私はコードを求めているのではなく、洞察を求めていることに注意してください。おそらく、すでに同様の問題に遭遇した人からのものです。
組み込みシステムでリアルタイムに実行されるコードを管理しています。安全上の理由から、新しいチェックを実装する必要があります。
このチェックは、特定の変数の積算値に基づいています。積分は、最後の "T_s" 秒にわたる必要があります。つまり、新しいサイクルごとに、変数が T_s 秒前に持っていた値を削除し、現在の値を追加する必要があります。
素朴なアプローチは、最後の T_s*frequency 浮動小数点値を配列に格納することです。
これは 62.5Hz で動作するため、多くの貴重で限られたメモリを急速に浪費します。
明らかに精度を犠牲にして、そのようなチェックのメモリフットプリントを大幅に削減する既知のアプローチはありますか?
値は実際のシステムからの測定値であり、関数によって生成されたものではありません。
M ポイントのそれぞれに N 個の平均値を格納し、N 個の平均値を統合することを考えました。これにより、メモリ要件が N+M の数値に削減され、T_s*frequency よりも大幅に小さくすることができますが、次のように思います。
これが調査され、「最適な」ポイントが見つかった場合 (たとえば、M の関数として)。検索しましたが、「数値積分」を含むものを検索しても探しているものにつながらないため、Google-fuが壊れているようです。
より良いアプローチがあれば
この投稿に C のタグを付けたのは、C がプロジェクトの公式言語であるためです。残念ながら、ANSI-C で機能しないソリューションは実行できません。