リアルタイムスロープとピークの検出と計算


9

500kHzでサンプリングする信号があります。入力データの上昇、下降、ピークを検出しようとしています。ピークのベースは250マイクロ秒または2.5ミリ秒の場合があり、振幅はノイズフロアより6dbまたは15db高い場合があります。残念ながら私は良いsnrを持っていません。信号のDCレベルは一定ではありませんが、ACコンポーネントよりもはるかに遅く移動します。  

決定点では、上昇と下降の勾配を知る必要があります。これはハードリアルタイムシステムであり、下り勾配がDCレベルに達した後、100usecで決定を行う必要があります。 

まともなアルゴリズムを効率的に実装するにはどうすればよいかという提案を探しています。  

現在、私は移動平均を行い(過去25データポイントを合計)、傾向を検出しようとしています。上昇傾向を検出したら、下降傾向を探し始め、検出すると、おそらくさらに50個のサンプルを収集して計算を開始します。 

ノイズはこのアルゴリズムを簡単に台無しにするので、問題になります。 

更新

他の人の利益のために、私は移動平均、続いてインテグレーターを実装することになりました。過去64のデータの移動平均は十分に平滑化されましたが、ある程度上昇を失い、最後の8つの値を統合することで上昇を取り戻し、単純に上昇と下降を求め、後で勾配の線形回帰を行いました。大丈夫ではありませんが、大丈夫です。


現在のアルゴリズムが失敗したデータシーケンスのプロットを投稿できますか?
Jim Clay

大きなノイズにもかかわらず、このようなことをするのは非常に困難です。フアンチョの差別化案の提案はおそらく良いものです。
ダニエルRヒックス

回答:


5

帯域制限された微分器(微分器の後にローパスフィルターが続くのと同等)から始める必要があります。微分器は低周波の傾向を取り除き、ピークとスロープに鋭敏に反応します。ローパスコンポーネントは、カットオフ周波数を超えるノイズを除去します。

スロープのクリーンなパルスが得られるように、カットオフ周波数を設計する必要があります。

正の傾きは正のパルスとして遅くなります。負のパルスは負のパルスとして傾き、ピークは正と負の間のゼロ交差に対応します。

このタイプのフィルターは通常、FIRフィルターとして実装されます。フィルターのサンプル数は、リアルタイムの制約、カットオフ周波数での鋭さ、およびカットオフ周波数自体によって異なります。


DSPに精通していません。可能な実装を教えていただけますか?あなたの答えと私の限られた知識に基づいて、リンク(holoborodko.com/pavel/numerical-methods/numerical-derivative/…)はあなたの言っていることを正確に実行すると思います。私がそのようなアプローチを使用するとしたら、私は知りません1)私の周波数をどのように決定するのですか?2)フィルター係数の選択方法は?
Ktuncer

また、次のリンクは同様の問題を解決し、多数のリンクが含まれています。dsprelated.com/showmessage/123740/1.php
Ktuncer
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.