タグ

2006年1月15日のブックマーク (1件)

  • cielacanthの日記

    掲示板に投稿したもの X[0.0 〜 2.0]の値を取る小数点数をY[0 .. 31]の整数型に量子化することを考える。普通に考えるとこうなる。 X が 2.0 を含まない場合 Y = trunc(X * 32 / 2.0) X が 2.0 を含む場合(Z = X * 31 / 2.0 と置く) Y = trunc(Z) Y = trunc(Z + 0.5) *1 X が 2.0 を含まない場合は全く問題ない。しかしそうで無い場合は2-2を使っても 0.0 <= Z < 0.5 → Y = 0 0.5 <= Z < 1.5 → Y = 1 30.5 <= Z <= 31.0 → Y = 31 *2 つまりY=0, 31の場合だけ、とれるZの範囲が半分になってしまう。この場合の量子化を正確に行うのは少し難しい。 改良案1) Z = X * (32 - delta) / 2.0 (delta

    cielacanthの日記
    okhra
    okhra 2006/01/15