>櫻井です。 >わさびぃ様 ありがとうございます。 様なしで結構ですので・・ 今日、櫻井さんのおかげで、ピークが平らで、取れる方法「ゲッツ!」(←おぃ!) しました。 リアルタイムという点でかなりNGですが、 Data(i-2) < Data(i) Data(i-1) < Data(i) Data(i+1) < Data(i) Data(i+1) < Data(i) という条件で、Data(i)は、ピークですが、 これでは、ピークが平らだと漏れます。 で、考えたのですが, (★A) Data(i-3) < Data(i) && Data(i-2) < Data(i) && Data(i-1) < Data(i) && Data(i+1) - Data(i) < 0.05;//0.05っていうのは、ちっちゃい数の意味です ので・・ のような条件ですと、平らになる直前ないしは、一番最初のデータが 条件にはまります。 反対に右あるいは、平らな右端のデータ、または、データが平らから下がると きは、 (★B) Data(i-1) - Data(i) < 0.05 &&;//=ある程度以下ちっちゃいの意味です.適 宜加工してください Data(i+1) < Data(i) && Data(i+2) < Data(i) && Data(i+3) < Data(i) のようにするといいですよね。 もしも、平らの真ん中がピーク(分解能が低くて見えないけれども)だとしま すれば、 この(★A)と(★B)の中点だとしてあげたらどうでしょうか? いい加減ですが、まぁどうせ見えないわけですし。 私の場合、平らになっているところでは、AD値が飽和しています。 そこで、(★A)と(★B)を使う条件としては、AD値がある閾値(MAXに 近い値) を超えたところで、出番としてます。 それ以下は、ピークが一点になります。 櫻井さんの場合には、(★A)と(★B)を常に使うということになりませんか? ご検討ください。 なお、私の場合、アルゴリズムの探索方法は、たとえば以下です。 マイコンなどから、AD後のデータを取得し、これをパソコンに転送します。 (アスキーとしてテキストなどに落とした) これを、エクセルに読み込んで、VBAで簡単な条件を出して どうしたらピークなり平らな箇所のエッジがとれるかを 黙々と探し出しました。 macさんの言われているような、よりDSPっぽい方法なら、 バチッとピークは出てくるはずです。 (が、具体的にわかんないっす。はい) #株価チャートっていうのは、忘れてもらって結構です。 #出所はありません。一応わさびぃ自作のアルゴリズムです。(っていうほど すごくないです) わさびぃ