オーバーサンプリング
(0)
- 僕の探し方が悪いんだと思うけど、以下の内容のページをうまく見つけられなかったのでここに書いておくことにした。
(1)
- たとえばここに z = f(x, y) で表せるような標高データがあったとする。ここでfは関数のように表現しているが実際はただのデータのかたまりみたいなものだと思ってほしい(たとえば2次元配列のようなもので、東西・南北に軸を取って、それぞれ1mきざみで標高を観測して記録してあるとか)。
- この標高データを適当な平面で切って、その断面を取り出したいとしよう。たとえば、 x = 3 の面(今は3次元空間で考えて、yとzには拘束条件が無いからこれは平面になる)で z = f(x, y) を切れば、 z = f(3, y) になるから、断面図は容易に得られる。 y = 5 の面で切った断面も簡単に得られるだろう。これらは配列データから必要なデータを並べてグラフをかくこともできる。
- しかし断面図は常に東西や南北に平行に必要になるとは限らない。時には、 y = 2 x + 3 の面で切りたくなるかもしれない。このとき f(0, 3), f(1, 5), f(2, 7) のデータは存在するから、これを結んでいけばとりあえず断面図は作れる。しかしこの断面図は点の間隔が2.236mであり、先ほどまでの1m間隔とは異なる。もし1m間隔でのデータがほしいとなればいったいどうしたらいいだろう。・・・さらに、切り出したい平面がもし y = 2 x + 3.4 だったらどうだろう。これはデータのある点を通らない。これじゃあグラフをかくことができない。
- そこで2つの考え方があると思う。一つは y = 2 x + 3 ならそのまま2.236m間隔のデータでいいのでグラフをかき、その後でそのグラフの間の隙間を埋めて(たとえば点を線で結んでいけばとりあえず間のデータは作り出せる)、それで1m間隔のデータを得る。 y = 2 x + 3.4 なら y = 2 x + 3 と y = 2 x + 4 のグラフをそれぞれ作って同じことをし、この2枚の断面から y = 2 x + 3.4 の断面を推測する。このようなやり方を「補間」という〈と思う)。
- そしてもう一つの方法がこれから紹介するオーバーサンプリングである。オーバーサンプリングでは、 y = 2 x + 3 の断面を書くときに、まず f(0, 3) のデータを使うが、次に必要なのは、1m先の f(0.4472, 3.8944) のデータだとする(この座標は、ベクトル (1 2) を単位ベクトルに規格化すれば簡単に算出できる)。そして1m間隔でしか用意されていない(=1m間隔でしかサンプルされていない)データから、サンプルされていない点のデータを強引に算出しようというわけだ。
こめんと欄