
No.2ベストアンサー
- 回答日時:
>f'(x)=f(x+1)-f(x)<0.0001, f''(x)=f'(x+1)-f'(x)<0 ....
基本はこれでOKなので、「f(x)が滑らかでない場合」に引っかかりそうなケースを考えてみましょう。
[誤検出しそうな例]
(1) サンプリングしたデータでは、ピークでの増分が 0.0001 未満とは限らない。(つまり、とんがり気味のピークは検出できない)
(2) 真のピークではなく、裾野の細かいうねりまで検出するおそれがある。
[対策例]
(1) 単純に、f'(x)が正から負へ極性反転したらピークとみなす。
(2) #1 さんの「平滑化」処理を適用する。
(2)' あるいは、f'(x)が正から負へ極性反転したピークの高さに閾値を設定しておく。(つまり、細かなピークは無視する)
ピーク検出には、適用分野に応じたノウハウが多数あるようです。
この回答への補足
(1)f'(x)が正から負へ極性反転したらピーク←これはabs(f'(x))<0.0001の条件を使わずにf''(x)<0だけを使うという条件と等価でしょうか?
お礼の内容訂正させて頂きます。よく考えてみると等価のはずがありません。傾きの変化が小さくなっただけでもf''(x)<0ですから。
「f'(x+1) < 0 AND f'(x) > 0」の条件になったときのxをピークとみなすということですね!
回答ありがとうございます。私の質問内容に誤りがありましたので訂正させて頂きます。正しくはabs(f'(x))=abs(f(x+1)-f(x))<0.0001です。
(1)f'(x)が正から負へ極性反転したらピーク←これはabs(f'(x))<0.0001の条件を使わずにf''(x)<0だけを使うという条件と等価でしょうか?
(2)'閾値をピークの高さに設定しておく←これは有効そうですね。データの性質を観測して、f(x)を一番最初に極性反転した位置の何%かに設定しておいて、あとはこの設定値を使うみたいな感じにすればできそうですね。
No.3
- 回答日時:
私が学生時代のとき(ずいぶん前)、分光スペクトルの1階微分(オージェスペクトル)や2階微分スペクトル(ピークが強調される)を取るためにこの手法を使いました。
カーブフィッティングするにはピーク位置を知る必要があるのでこの方法が有用です(最近は測定装置にソフトが組み込まれているので実際に計算することはないでしょうが)。これは微分係数を求めるものなので、ピーク位置の検出では、微分値=0となる x を求めるアルゴリズムが別途必要です。>これをそのまま使えばノイズが取れるのでしょうか?
はい。Excelでちょっと実験してみましたが、普通の数値微分ではむちゃくちゃになるノイズ重畳データでも、割ときれいな微分データが得られました。これは Savitsky-Golay filter あるいは Savitsky-Golay smoothing と呼ばれるものです。
>係数やhという値がありますが、どういう原理でこの値が出てきたのでしょうか?
h は x の刻み (x[i+1]-x[i])ですが、詳しくは参考資料 [1],[2] を見てください(私はちゃんと理解していませんので)。
データ点 x[i] を何点とるかで、いろいろなパターンがあります。[3] は微分でなく、平滑化の係数です。微分処理前や微分後に使うと、ノイズが取れると思います。
>一つ思ったのが、この方法はノイズの周波数を自在にこちらで決めて係数を設定したりできるのでしょうか?
周波数ドメインの処理はデジタルフィルターを使うのがいいのではないでしょうか。
[1] Savitzky-Golay アルゴリズム http://www.hulinks.co.jp/support/flexpro/v7/data …
[2] 1階微分の5点以降の係数の求め方(ANo.1の回答) http://okwave.jp/qa1371554.html
[3] 平滑化の係数表(PDF 79ページ:5~25点) http://www.biochem.northwestern.edu/Keck/PDF%20d …
回答ありがとうございます。
>はい。Excelでちょっと実験してみましたが、普通の数値微分ではむちゃくちゃになるノイズ重畳データでも、割ときれいな微分データが得ら
>れました。これはSavitsky-Golay filterあるいはSavitsky-Golay smoothingと呼ばれるものです。
こちらでも試してみましたが、実際にきれいな微分データが得られました。一方、N点の近似微分公式では、局所的な微分データが出ているようで、元データを大局的に見たときの綺麗な微分データは得られないようでした。Savitsky-Golayのアルゴリズムがかなり有効であることが分かりました。
No.1
- 回答日時:
平滑化数値微分というのがあります[1]。
これでもノイズが取れないときは、この数値微分の前に、生データの移動平均処理を行って、ある程度データを滑らかにしてやればいいでしょう。そのとき、移動平均のデータ数を変えて最適な値を探すのが良い思います。[1] PDFファイルの52ページ http://teils.eng.shizuoka.ac.jp/di2.pdf
回答ありがとうございます。平滑化数値微分のページを拝見させて頂きました。これをそのまま使えばノイズが取れるのでしょうか?係数やhという値がありますが、どういう原理でこの値が出てきたのでしょうか?一つ思ったのが、この方法はノイズの周波数を自在にこちらで決めて係数を設定したりできるのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
サイン二乗xの微分を教えてく...
-
log(1+x)の微分
-
授業で「yをxで微分する」とい...
-
デルタの意味
-
y=logxA(Aは定数)をxで微分
-
-1/(1-x)の微分を教えて下さい
-
三角関数の微分の問題なんです...
-
sinx^2の微分って2xcosx^2であ...
-
2階微分d^2y/dx^2を詳しく教え...
-
f(x)=0はxで微分可能か
-
これらの数式を声に出して読む...
-
逆三角関数のn回微分
-
微分積分を理解できない人って...
-
第3次導関数は,何を表してい...
-
e^sinxの微分
-
z = x^y の偏微分
-
絶対値 微分 問題
-
3階微分って何がわかるの??
-
二回微分して 上に凸下に凸 が...
-
微分について なんで2回微分は...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
サイン二乗xの微分を教えてく...
-
授業で「yをxで微分する」とい...
-
log(1+x)の微分
-
2階微分d^2y/dx^2を詳しく教え...
-
-1/(1-x)の微分を教えて下さい
-
分母が文字の分数を微分する方...
-
y=e^x^x 微分 問題
-
sinx^2の微分って2xcosx^2であ...
-
これらの数式を声に出して読む...
-
3階微分って何がわかるの??
-
三角関数の微分の問題なんです...
-
lim[x→0](e^x - e^-x)/x
-
y^2をxについて微分してください
-
微分積分を理解できない人って...
-
y=1-sinxを微分せよ
-
【数学】積分したあとに微分す...
-
逆三角関数のn回微分
-
y=logxA(Aは定数)をxで微分
-
e^sinxの微分
-
f(x)=0はxで微分可能か
おすすめ情報