macです。 > もう少しA/Dの精度を上げれば、正確なピーク値を検出できるとは思うのですが、 > 限られたA/Dの値から、真のピーク値を探そうという大それたことを > かんがえています。 精度というよりはこの場合、分解能ですね。 > 平らな部分の最初の場所と最後の場所ではピーク確定時間が図の例では > 数msずれてしまいます。 リアルタイムの観点から、たぶん没ですが、 B スプラインによる、近似関数を時系列のまま、 リアルタイムに行う方法があり、 One pass B splineなどと呼ばれています。 スプライン関数とその応用 (シリーズ新しい応用の数学 20) http://www.bk1.co.jp/cgi-bin/srch/srch_detail.cgi/3f06a253987aa0103472?aid=&bibid=00145397&volno=0000 発行年月:1979.6 とかなり古い本で、サンプルもFortranで書かれていますが、 良書だと思います。 こうして一旦「関数」になってしまえば、 一次微分して、0になるところが、peakです。 そこまでしなくても、信号の周波数帯域が既知ならば、 Digital filterで、平滑化できるので、 その出力を数値微分する方法もあります。 さらに、ちょっといいかげんぽいのですが、 分解能は足りないが、速度は十分速いADCの場合、 入力に、正規分布乱数信号を故意に注入し、 その移動平均、もしくはローパスフィルタを掛けると、 見かけ上の分解能があがります。 -- mac