diff --git a/content/SMHD.typ b/content/SMHD.typ index 1b56a77..d58fe2b 100644 --- a/content/SMHD.typ +++ b/content/SMHD.typ @@ -230,14 +230,31 @@ As for metric 2, we can apply the same strategy and find the points for the vert Analytically, the offset we are applying to $cal(E)(2, 2, tilde(x))$ can be defined as -$ phi = lr(frac(1, 2^n dot s)mid(|))_(n=2, s=2) = 1 / 8 $ +$ phi = lr(frac(1, 2^n dot s dot 2)mid(|))_(n=2, s=2) = 1 / 16 $ -This is also shown in @fig:smhd_2_2_reconstruction, as our quantizer curve is moved $1/8$ to the left and the right. +This is also shown in @fig:smhd_2_2_reconstruction, as our quantizer curve is moved $1/16$ to the left and the right. ==== Odd number of metrics -If a odd number of metrics is given, the offset can still be calculated using @eq:offset. Additionally, we will keep the original quantizer used during enrollment. +If a odd number of metrics is given, the offset can still be calculated using @eq:offset. Additionally, we will keep the original quantizer used during enrollment (@fig:smhd_3_2_reconstruction). +Comparing @fig:smhd_2_2_reconstruction, @fig:smhd_3_2_reconstruction and their respective values of @eq:offset, we can observe, that the offset $phi$ gets smaller the more metrics we use. +] + + +#figure( + table( + columns: (11), + inset: 7pt, + align: center + horizon, + [$m$], + [1],[2],[3],[4],[5],[6],[7],[8],[9],[10], + [$phi$],[$1/8$],table.cell(fill: gray)[$1/16$], [$1/24$], table.cell(fill:gray)[$1/32$], [$1/40$], table.cell(fill:gray)[$1/48$], [$1/56$], table.cell(fill:gray)[$1/64$], [$1/72$], table.cell(fill:gray)[$1/80$] + ), + caption: [Offset values for 2-bit configurations] +) + +Before we can go deeper into the properties of the offset value $phi$, we will introduce a way to programmatically find the offset values for all s quantizers. #figure( kind: "algorithm", supplement: [Algorithm], diff --git a/graphics/quantizers/s-metric/2_2_found_quantizer1.typ b/graphics/quantizers/s-metric/2_2_found_quantizer1.typ index ddb97ed..5cd8759 100644 --- a/graphics/quantizers/s-metric/2_2_found_quantizer1.typ +++ b/graphics/quantizers/s-metric/2_2_found_quantizer1.typ @@ -9,14 +9,14 @@ y-label: $cal(Q)(2, 2, tilde(x))$, x-label: $tilde(x)$, y-tick-step: none, - y-ticks: ((3/16, [00]), (7/16, [01]), (11/16, [10]), (15/16, [11])), + y-ticks: ((1/4, [00]), (2/4, [01]), (3/4, [10]), (4/4, [11])), axis-style: "left", x-min: 0, x-max: 1, y-min: 0, y-max: 1,{ - plot.add(((0,3/16), (3/16,3/16), (7/16,7/16), (11/16,11/16), (15/16, 15/16), (15/16, 3/16), (1, 3/16)), line: "vh", style: line_style) - plot.add-hline(3/16, 7/16, 11/16, 15/16, style: dashed) + plot.add(((0,1/4), (3/16,1/4), (7/16,2/4), (11/16,3/4), (15/16, 4/4), (15/16, 1/4), (1, 1/4)), line: "vh", style: line_style) + plot.add-hline(1/4, 2/4, 3/4, 1, style: dashed) plot.add-vline(3/16, 7/16, 11/16, 15/16, style: dashed) }) }) diff --git a/graphics/quantizers/s-metric/2_2_reconstruction.typ b/graphics/quantizers/s-metric/2_2_reconstruction.typ index d3a7b53..fb9940d 100644 --- a/graphics/quantizers/s-metric/2_2_reconstruction.typ +++ b/graphics/quantizers/s-metric/2_2_reconstruction.typ @@ -18,8 +18,8 @@ x-max: 1, y-min: 0, y-max: 1,{ - plot.add(((0,1/4), (1/8,1/4), (3/8,2/4), (5/8,3/4), (7/8, 1), (7/8, 1/4), (1, 1/4)), line: "vh", style: line_style, label: [Metric 1]) - plot.add(((0, 1), (1/8, 1), (1/8, 1/4), (3/8, 1/4), (5/8, 2/4), (7/8, 3/4), (7/8, 1), (1, 1)),line: "vh", style: line_style2, label: [Metric 2]) + plot.add(((0,1/4), (3/16,1/4), (7/16,2/4), (11/16,3/4), (15/16, 1), (15/16, 1/4), (1, 1/4)), line: "vh", style: line_style, label: [Metric 1]) + plot.add(((0, 1), (1/16, 1), (1/16, 1/4), (5/16, 1/4), (9/16, 2/4), (13/16, 3/4), (13/16, 1), (1, 1)),line: "vh", style: line_style2, label: [Metric 2]) plot.add-hline(1/4, 2/4, 3/4, 1, style: dashed) plot.add-vline(1/4, 2/4, 3/4, 1, style: dashed) }) diff --git a/graphics/quantizers/s-metric/3_2_reconstruction.typ b/graphics/quantizers/s-metric/3_2_reconstruction.typ index 449123f..ce288d5 100644 --- a/graphics/quantizers/s-metric/3_2_reconstruction.typ +++ b/graphics/quantizers/s-metric/3_2_reconstruction.typ @@ -19,9 +19,9 @@ x-max: 1, y-min: 0, y-max: 1,{ - plot.add(((0, 1/4), (2/12, 1/4), (5/12, 2/4), (8/12, 3/4), (11/12, 1), (11/12, 1/4), (1, 1/4)),line: "vh", style: line_style, label: [Metric 1]) + plot.add(((0, 1/4), (5/24, 1/4), (11/24, 2/4), (17/24, 3/4), (23/24, 1), (23/24, 1/4), (1, 1/4)),line: "vh", style: line_style, label: [Metric 1]) plot.add(((0,1/4), (1/4,1/4), (2/4,2/4), (3/4,3/4), (4/4, 4/4)), line: "vh", style: line_style2, label: [Metric 2]) - plot.add(((0, 1),(1/12, 1), (1/12, 1/4), (4/12, 1/4), (4/12, 2/4), (7/12, 3/4), (10/12, 1), (1, 1)), line: "hv", style: line_style3, label: [Metric 3]) + plot.add(((0, 1),(1/24, 1), (1/24, 1/4), (7/24, 1/4), (7/24, 2/4), (13/24, 3/4), (19/24, 1), (1, 1)), line: "hv", style: line_style3, label: [Metric 3]) plot.add-hline(1/4, 2/4, 3/4, 1, style: dashed) plot.add-vline(1/4, 2/4, 3/4, 1, style: dashed) }) diff --git a/main.pdf b/main.pdf index a54db61..656a2cd 100644 Binary files a/main.pdf and b/main.pdf differ diff --git a/pseudocode/find_quantizers.typ b/pseudocode/find_quantizers.typ index bf26bbd..0b62446 100644 --- a/pseudocode/find_quantizers.typ +++ b/pseudocode/find_quantizers.typ @@ -1,16 +1,10 @@ #import "@preview/lovelace:0.3.0": * -#pseudocode-list(booktabs: true, numbered-title: [My cool algorithm])[ - + do something - + do something else - + *while* still something to do - + do even more - + *if* not done yet *then* - + wait a bit - + resume working - + *else* - + go home - + *end* - + *end* +#pseudocode-list(booktabs: true, numbered-title: [Find quantizer offsets])[ + + $p$: initial offset value + + $a$: amount of offsets + + *while* $(i = 1) <= a$: + + *return* $i dot p$ + + *end* ]