Difference:
f[k] => - f[k-1]/2 + f[k] - f[k+1]/2 [ f0 ] [ 1 -1 0 0 0 0 0 0 0 0 0 ] [ f0 ] [ f1 ] [ -1 2 -1 0 0 0 0 0 0 0 0 ] [ f1 ] [ f2 ] [ 0 -1 2 -1 0 0 0 0 0 0 0 ] [ f2 ] [ f3 ] [ 0 0 -1 2 -1 0 0 0 0 0 0 ] [ f3 ] [ f4 ] [ 0 0 0 -1 2 -1 0 0 0 0 0 ] [ f4 ] [ f5 ] = 1/2 [ 0 0 0 0 -1 2 -1 0 0 0 0 ] [ f5 ] [ f6 ] [ 0 0 0 0 0 -1 2 -1 0 0 0 ] [ f6 ] [ f7 ] [ 0 0 0 0 0 0 -1 2 -1 0 0 ] [ f7 ] [ f8 ] [ 0 0 0 0 0 0 0 -1 2 -1 0 ] [ f8 ] [ f9 ] [ 0 0 0 0 0 0 0 0 -1 2 -1 ] [ f9 ] [ f10 ] [ 0 0 0 0 0 0 0 0 0 -1 1 ] [ f10 ]And note that we don't have currency conservation, since the sum of columns = 0, instead of 1. Originally I thought this thing would be useful (eg, for edge detection in images), but so far, not particularly.
Next is smooth, and this one is clearly useful.
Smooth:
f[k] => f[k-1]/4 + f[k]/2 + f[k+1]/4 [ f0 ] [ 3 1 0 0 0 0 0 0 0 0 0 ] [ f0 ] [ f1 ] [ 1 2 1 0 0 0 0 0 0 0 0 ] [ f1 ] [ f2 ] [ 0 1 2 1 0 0 0 0 0 0 0 ] [ f2 ] [ f3 ] [ 0 0 1 2 1 0 0 0 0 0 0 ] [ f3 ] [ f4 ] [ 0 0 0 1 2 1 0 0 0 0 0 ] [ f4 ] [ f5 ] = 1/4 [ 0 0 0 0 1 2 1 0 0 0 0 ] [ f5 ] [ f6 ] [ 0 0 0 0 0 1 2 1 0 0 0 ] [ f6 ] [ f7 ] [ 0 0 0 0 0 0 1 2 1 0 0 ] [ f7 ] [ f8 ] [ 0 0 0 0 0 0 0 1 2 1 0 ] [ f8 ] [ f9 ] [ 0 0 0 0 0 0 0 0 1 2 1 ] [ f9 ] [ f10 ] [ 0 0 0 0 0 0 0 0 0 1 3 ] [ f10 ]Now an example representation in BKO:
smooth |f0> => 0.75|f0> + 0.25|f1> smooth |f1> => 0.25|f0> + 0.5|f1> + 0.25|f2> smooth |f2> => 0.25|f1> + 0.5|f2> + 0.25|f3> smooth |f3> => 0.25|f2> + 0.5|f3> + 0.25|f4> smooth |f4> => 0.25|f3> + 0.5|f4> + 0.25|f5> smooth |f5> => 0.25|f4> + 0.5|f5> + 0.25|f6> smooth |f6> => 0.25|f5> + 0.5|f6> + 0.25|f7> smooth |f7> => 0.25|f6> + 0.5|f7> + 0.25|f8> smooth |f8> => 0.25|f7> + 0.5|f8> + 0.25|f9> smooth |f9> => 0.25|f8> + 0.5|f9> + 0.25|f10> smooth |f10> => 0.25|f9> + 0.75|f10> sa: matrix[smooth] [ f0 ] = [ 0.75 0.25 0 0 0 0 0 0 0 0 0 ] [ f0 ] [ f1 ] [ 0.25 0.5 0.25 0 0 0 0 0 0 0 0 ] [ f1 ] [ f2 ] [ 0 0.25 0.5 0.25 0 0 0 0 0 0 0 ] [ f2 ] [ f3 ] [ 0 0 0.25 0.5 0.25 0 0 0 0 0 0 ] [ f3 ] [ f4 ] [ 0 0 0 0.25 0.5 0.25 0 0 0 0 0 ] [ f4 ] [ f5 ] [ 0 0 0 0 0.25 0.5 0.25 0 0 0 0 ] [ f5 ] [ f6 ] [ 0 0 0 0 0 0.25 0.5 0.25 0 0 0 ] [ f6 ] [ f7 ] [ 0 0 0 0 0 0 0.25 0.5 0.25 0 0 ] [ f7 ] [ f8 ] [ 0 0 0 0 0 0 0 0.25 0.5 0.25 0 ] [ f8 ] [ f9 ] [ 0 0 0 0 0 0 0 0 0.25 0.5 0.25 ] [ f9 ] [ f10 ] [ 0 0 0 0 0 0 0 0 0 0.25 0.75 ] [ f10 ]Some notes:
1) this clearly has currency conservation, since all columns sum to 1.
2) this thing rapidly approaches a Gaussian smooth, if you iterate it a few times. eg, in image edge enhancement, smooth^20 gave good results. See here. In the case of mapping posting times to 1440 buckets in a day, 300 to 500 smooths gave the best results.
No comments:
Post a Comment