櫻井さん> > 今は、前の値と今の値を比較して最大値を更新し、その時の時間を残す。 > 次に、最大値から5ポイント下がるまで取り込みを継続し、更にピークがなければ > 最終の最大値と時間をピーク値とピーク時間としています。 ここで言う「時間」と言うのは時刻の意味でしょうか?あるいはピーク値? が継続した「時間」という意味でしょうか? 以下は、時間=時刻という前提で書きます。 > ピーク値と時間はある程度リアルタイムに決定しなければなりません。 > 下記のようにピーク値が平らになった時ピーク時間が決まりません。 ピーク値はともかく、ピーク時刻を決定するためにはある程度データを 時系列的にサンプリングしなければなりませんよね。 リアルタイムに決定する必要があるとのことですが、問題はこの決定 するタイミングをどう考えるべきかと思います。 動作中のマイコンにしてみれば、過去と現在のAD値はわかるものの、 現在のピーク値が将来ずっと一定値をとるのかどうかは原理的に予 測不可能です。 例えば、現在のピーク値が t 秒間継続されたとするなら、t 秒後にその ピーク値が取りえた時刻はt/2と決定することができます。 (注:かりに一定値が連続した時間の1/2をピーク時刻とした場合) しかし、例えば無限に長い期間、一定値が継続される信号を考えた 場合、いつまでたってもピーク時刻を決定することはできません。 逆に言えば、どの時刻でも良いと言うことになるんじゃないでしょうか? 上は極端な例ですが、原理的に困難な命題のような気がします。 ハード側の制約等で、一定値を取りうる時間が有限であるなら、そこで 判定を打ち切ってピーク時刻を求めることができます。 ピーク時刻を知るという目的(用途)が良くわからないので、見当外れ なレスになっているかも知れません。 鈴木(正)