• ベストアンサー

重み関数とはどういうものかがわかりません

重み関数とはどういうもので、どういう使われ方をするのか、高校生レベルでも分かるように教えていただけないでしょうか。 仕事で物体の表面粗さパラメータインター測定について勉強していますが、フィルタ処理の説明にある重み関数という言葉が理解できません。ネットで調べても難しい説明ばかりでさっぱりわかりません。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • hashioogi
  • ベストアンサー率25% (102/404)
回答No.1

フィルタ処理というのは色々な目的で使用されますから以下の説明が適当かどうかわかりませんが、ある直線に沿って等間隔にデータを測定したとしましょう。 x=0, 1, 2, …, nに対して測定値y=y0, y1, y2, …, ynが得られたとします。 測定には誤差がつきものですから、測定値がガタガタしています。そこで測定値を少し平滑化して全体の傾向を把握したいとします。 すぐに思いつくのは前後のデータを勘案して平均してしまうということだと思います。 例えば、x=5の値を(y4+y5+y6)/3で代替すれば元データよりも平滑化された値になります。x=6の値は(y5+y6+y7)/3で代替することになりますね。 でも元データに比べて大分なまってしまうと感じる場合があります。もう少し元データの形を残した感じで平滑化も行いたい。そういう場合はx=5の値を(y4+y5×2+y6)/4で代替するということが考えられます。(y4+y5×3+y6)/5で代替すればより元データに近くなります。 このような場合、y=-1, 0, 1に対してw=1, 2, 1、またはw=1, 3, 1であるような重み関数が使用されたということになります。実は最初の単なる3点平均はw=1, 1, 1の重み関数を使用したと言えます。 y=-2, -1, 0, 1, 2に対してw=1, 2, 3, 2, 1のような重み関数も考えられますね。 画像処理などでは3×3の行列、5×5の行列の形の重み関数を使用したフィルタ処理でノイズ除去や輪郭強調や水平/垂直成分の抽出などを行います。

kfssaj
質問者

お礼

早速のご回答ありがとうございます。 おかげで重み関数のイメージを持つことができました。 単純に各要素を足して割るのではなく、足し合わされる各要素に掛け算の重み付けをするから「重み」関数と呼ぶのだと理解しました。 挙げて頂いた例から、ノイズの多いギザギザした曲線のスムージング処理も重み関数の一種と理解しました。

その他の回答 (3)

  • hashioogi
  • ベストアンサー率25% (102/404)
回答No.4

Q. 「y=-1, 0, 1」とはどういうことなのか分かりません。 A. 失礼しました。「x=-1, 0, 1」の間違いです。重み関数の原点を求めたいデータの位置に合わせます。ですからx=5の値を求めたい場合に、y4、y5、y6に対してそれぞれ。重み関数のx=-1, 0, 1のw値を対応させて乗じることになります。フィルタ処理の調査はできたらフーリエ変換の調査から始められた方が良いと思いますが。

kfssaj
質問者

お礼

ご回答いただきましてありがとうございます。 内容を理解できました。 まずはフーリエ変換から勉強しようと思います。

  • hashioogi
  • ベストアンサー率25% (102/404)
回答No.3

#1です。 「y=-1, 0, 1に対してw=1, 2, 1、またはw=1, 3, 1の重み関数」というような書き方をしましたが、 「y=-1, 0, 1に対してw=1/4, 2/4, 1/4、またはw=1/5, 3/5, 1/5の重み関数」というように読み替えてください。

kfssaj
質問者

お礼

ご回答いただきましてありがとうございます。 理解不足のため「y=-1, 0, 1」とはどういうことなのか分かりませんが、「w=1/4, 2/4, 1/4」のように係数の合計が「1」になるように掛け算するのが重み関数ということは理解しました。 重み関数のイメージは持つことができましたが、まだ理解が浅いため、周辺知識も含めもっと勉強しようと思います。 ありがとうございました。

noname#221368
noname#221368
回答No.2

 パラメータインター測定がどんなものかわからないので、漠然とした話になりますが・・・。  フィルタ処理は何のために行うかと言えば、生の測定データでは、誤差を含んでそのグラフがギザギザし過ぎていたり、そうでなくても、全体の大まかな傾向を知りたい時などに使います。やってる事は、生の測定データから不要と考えられる情報を落とす事です。あっさり言えば、必要と思える代表値を計算する事です。  代表値の代表(?)は、例えば平均値です。表面の粗度が、場所xの関数f(x)として測定される場合、その平均値Fは、   F=(∫f(x)dx)/L   (1) で定義されます。ここでLは積分区間(測定領域)の長さです。  (1)は、全ての場所xの測定値を平等に扱っています。でも、場所x=aの測定値が特に重要だと思える場合も、あるはずです。つまり他の場所の影響は、余り考慮したくない時です。こういう時に「重み関数」が出てきます。   F=(∫w(x,a)・f(x)dx)/L   (2)  (2)のw(x,a)は、x=aにピークを持つ、0≦w≦1の値を取る関数だと想像して下さい。w(a,a)=1なので、f(a)は(1)と同様に扱われますが、他のf(x)は、(1)より少ない影響で、Fの値に寄与します。だから「重み」です。  実際には、もっと複雑な状況だと思います。そして「重み関数の選択」には、測定者が何を見たいかの、意志が関係します。あなたが選ぶんです。  実験や現実の測定は、やってみなけりゃわからない部分もけっこうありますから、何らかの装置を用いているならメーカーに問い合わせるとか、またはその測定や実験に詳しい人に、アドバイスを仰いだ方が良いと思います。重み関数は、(2)のような単純なものばかりではありません。  #1さんとの関連で言うと、w(x,a)のaを少しずつづらして(2)を計算したらどうなるか?、という話です。それの最も単純なやり方が、移動平均になります。1000個のサンプル点があった時、例えば最初の10個で平均を取り、それを5.5個目の値とみなし、10個の区間を1個ずつづらして平均値を並べる、というやり方です。  これがけっこうハイカット・フィルターのかわりになったりして(Excelでもできたりして)、生データのグラフが汚い時には、とりあえずやってみて、全体の形を眺めます(まず、全体の傾向を知りたいから)。

kfssaj
質問者

お礼

ご回答いただきましてありがとうございます。 申し訳ございません。質問文にあります「表面粗さパラメータインター測定」は表記ミスで、正しくは「表面粗さパラメータ測定」です。仕事でJIS B 0601に記載されているRaなどの表面粗さパラメータを測定していますが、特にデータのフィルタ処理のところがよくわからず、勉強しています。 重み関数とは移動平均と似た用途で使われますが、違いは目的のデータが強調されるような重みの掛け算がされていることと理解しました。 ありがとうございます。

関連するQ&A