500kHzでサンプリングする信号があります。入力データの上昇、下降、ピークを検出しようとしています。ピークのベースは250マイクロ秒または2.5ミリ秒の場合があり、振幅はノイズフロアより6dbまたは15db高い場合があります。残念ながら私は良いsnrを持っていません。信号のDCレベルは一定ではありませんが、ACコンポーネントよりもはるかに遅く移動します。
決定点では、上昇と下降の勾配を知る必要があります。これはハードリアルタイムシステムであり、下り勾配がDCレベルに達した後、100usecで決定を行う必要があります。
まともなアルゴリズムを効率的に実装するにはどうすればよいかという提案を探しています。
現在、私は移動平均を行い(過去25データポイントを合計)、傾向を検出しようとしています。上昇傾向を検出したら、下降傾向を探し始め、検出すると、おそらくさらに50個のサンプルを収集して計算を開始します。
ノイズはこのアルゴリズムを簡単に台無しにするので、問題になります。
更新
他の人の利益のために、私は移動平均、続いてインテグレーターを実装することになりました。過去64のデータの移動平均は十分に平滑化されましたが、ある程度上昇を失い、最後の8つの値を統合することで上昇を取り戻し、単純に上昇と下降を求め、後で勾配の線形回帰を行いました。大丈夫ではありませんが、大丈夫です。