• ベストアンサー

線形補完について

添付画像のようなグラフデータのデータの線間を補正する場合、どのような方式が誤差なく求められますでしょうか? 条件としては、 横軸のデータは等間隔で0から始まり、255点数があります。 縦軸は可変間隔でその範囲は0から255です。 点間に9点補完して増やし、2550点にしたいと考えております。 (速度的誤差的に問題がなければ点間を100点増やすかもしれません) スプライン曲線や凸関数というものを使えばよいのかなとぼんやりですが認識しています。 参考になるホームページ、書籍、プログラムコードなどがあればご教示いただけませんでしょうか? 以上よろしくお願いいたします。

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

  • ベストアンサー
  • FT56F001
  • ベストアンサー率59% (355/599)
回答No.4

まず,元のデータをグラフに描いて,部分ごとに大きく拡大し,どのくらい誤差を含んで暴れているか, それに対して,どこまで精度を出したいか/出せそうかを考えてください。 (1) 元のデータの誤差は小さそうだ。誤差はないと思って,元のデータ各点の上を通り,それらをつなぐ曲線を引く。 (2) 元のデータは,整数値に丸めたことによる量子化ノイズを含む。さらにランダムな測定ノイズも含む。 これらを除去して,元のデータ以上に精度がある近似曲線を引きたい。 すなわち,元のデータ点ひとつひとつの上を通るのではなく,それらを平均的に通る曲線を引きたい。 (1)なら比較的簡単です。(2)になると,ノイズを取り除く何らかの手続きが必要です。 (2)をやるとなると,例えば, 8~16点毎(?)くらいの区間に区切って最小二乗法で多項式近似する。ただし隣接区間となめらかにつながる条件をつける。 といった方法になろうかと思います。

uno326
質問者

補足

なるほど・・・ 量子化ノイズについてはサンプリングを細かくすることで対処しようと思います。 ランダムな測定ノイズについては何か特性がないか検討してみます。 問題が整理できてきたと思います。ありがとうございますー

その他の回答 (4)

回答No.5

元のデータ(縦軸,横軸)は数値データの表として与えられているのでしょうか? ⇒ yes その表には何桁の精度がありますか? ⇒ 元のデータは、2元で0~255までの256区分 ひょっとして0から255の整数値ですか? ⇒ yes  ~~~~~~~~~~~~~~~~~~~~~~~ その(x、y)の256組の元データを、各組の間に9組のデータを補間/補完するというのは、あえて、元データの数倍も虚偽データを追加することではないですか。 データを補間/補完すれば、補間/補完しただけ誤差を大幅に増加することになると思います。   元の(x、y)の256組の元データが、何かの現象の測定値であることが確かならば、その現象の理論をベースに測定値以外の部分を補完/補間したり、測定値そのものも誤差を含むものとして補正するようなこともあるかもしれませんが、そのような方法は一般論はないと思います。   仮に(xが経過時間とし、yが電圧値)とし、それを256点で示したものとしても、この測定タイミング以外では、瞬時値が突発しているか、あるいは正弦波が重畳しているか、あるいは示されたグラフの線間を単に3次スプライン曲線でスムージングしたものに似ているかは、まったくわかりません。  ~~~~~~~~~~~~~~~~~~~~~~~~ 合理性もないのに、データを補間する理由がわかりません。 例示されているグラフは十分にスムーズなので、補間が必要と思いません。

uno326
質問者

補足

すみません。例示のグラフはあくまでも例で実際はノイズが存在します。 たとえば、3次スプライン曲線で保管するにしてもランダムな測定ノイズを取り除くような処理をしたものに行わなければ正確とは言えないという風に理解しました。 ランダムな測定ノイズの特性を関数かできないか調べてみます。 その上でここにあがった線間補正の方法をためしてみようと思います。

  • FT56F001
  • ベストアンサー率59% (355/599)
回答No.3

元のデータ(縦軸,横軸)は数値データの表として与えられているのでしょうか? その表には何桁の精度がありますか? ひょっとして0から255の整数値ですか? (そうだとすると,量子化誤差を取り除く工夫が必要になります) グラフを拡大して見たとき,きれいに滑らかに増加していますか? それとも,微小なランダムノイズを拾っていますか?

uno326
質問者

補足

はい、0から255の整数値です。 はい、微小なランダムノイズを拾う場合も想定しています。条件としての指定漏れでした、失礼いたしました。

  • FT56F001
  • ベストアンサー率59% (355/599)
回答No.2

どの程度の精度が必要かによります。 横軸に255点もの点があるなら,単純に隣接2点間を直線補間する, すなわち255点を折れ線で結んだとしても,カクカク折れ曲がった変なグラフにはならないでしょう。 隣接する数点から,スプライン補間などすれば,より精度は上がりますが, そこまでしなくてよいような気がします。

uno326
質問者

補足

計算に時間がかかったとしても、可能な限り高精度のデータを求めています。 よろしくお願いいたします。

  • ONEONE
  • ベストアンサー率48% (279/575)
回答No.1

こういうのとか? http://www.cannula.jp/hokan.html その点列の理想的な曲線というのは関数で与えられているのでしょうか?なにで補間するのがいいのかというのはそのデータを扱う世界で文献として発表されていないのでしょうか?縦軸と横軸の関係から線形関係に変換できるなら線形で補間するのが簡単だと思います。

uno326
質問者

補足

URLありがとうございます。 理想的な曲線の関数は与えられておりません。 もしかすると文献があるのかもしれませんが探し方が悪いのと、数学的な知識が乏しくわかるところから手をつけていこうと思っています。 少しづつですが自分で調べながら理想的な方法を模索しています。 ここでの質問だけで答えが見つかるとは思っていませんが識者の方のアイデアをお借りできればと考えております。他力本願ですみませんm(_ _)m

関連するQ&A

専門家に質問してみよう