-- Oct 31 In-Class Exercise Thread
a) <Δ> list = < 89,12,11,10,8,15>
b) <Γ> code = < 0000001 011001, 0001 100, 0001 011, 0001 010, 0001 000, 0001 111>
c) Mopt =
`ceil(log(2 - Nt/N) / -log(1-Nt/N))` = `ceil(log(2- 6/200)/-log(1 - 6/200))` = `ceil( 0.678/0.03)` = ceil(22.6) = 23
(here log base is taken as 10 and not 2, as only rice code uses base 2)
To find Golomb code:
for each k, q(k) = ⌊k−1/M⌋,r(k)=(k−1)modM; q(k)+1 in unary followed by r(k) as a ⌊log(M)⌋ bit or ⌈log(M)⌉ bit number
89 => ⌊89−1/23⌋ (89−1)mod23 = 3+1, 19 => {0001, 10011}
12 => ⌊12−1/23⌋,r(k)=(12−1)mod23 = 0+1, 11 => {1, 01011}
11 => ⌊11−1/23⌋,r(k)=(11−1)mod23 = 0+1, 10 => {1, 01010}
10 => ⌊10−1/23⌋,r(k)=(10−1)mod23 = 0+1, 9 => {1, 01001}
8 => ⌊8−1/23⌋,r(k)=(8−1)mod23 = 0+1, 7 => {1, 00111}
15 => ⌊15−1/23⌋,r(k)=(15−1)mod23 = 0+1, 14 => {1, 01110}
Goloumb code = 000110011, 101011, 101010, 101001, 100111 ,101110
(
Edited: 2018-11-05)
<pre>
a) <Δ> list = < 89,12,11,10,8,15>
<br/>
b) <Γ> code = < 0000001 011001, 0001 100, 0001 011, 0001 010, 0001 000, 0001 111>
<br/>
c) Mopt =
</pre>
@BT@ceil(log(2 - Nt/N) / -log(1-Nt/N))@BT@ = @BT@ceil(log(2- 6/200)/-log(1 - 6/200))@BT@ = @BT@ceil( 0.678/0.03)@BT@ = ceil(22.6) = 23
<pre>
(here log base is taken as 10 and not 2, as only rice code uses base 2)
To find Golomb code:
for each k, q(k) = ⌊k−1/M⌋,r(k)=(k−1)modM; q(k)+1 in unary followed by r(k) as a ⌊log(M)⌋ bit or ⌈log(M)⌉ bit number
89 => ⌊89−1/23⌋ (89−1)mod23 = 3+1, 19 => {0001, 10011}
12 => ⌊12−1/23⌋,r(k)=(12−1)mod23 = 0+1, 11 => {1, 01011}
11 => ⌊11−1/23⌋,r(k)=(11−1)mod23 = 0+1, 10 => {1, 01010}
10 => ⌊10−1/23⌋,r(k)=(10−1)mod23 = 0+1, 9 => {1, 01001}
8 => ⌊8−1/23⌋,r(k)=(8−1)mod23 = 0+1, 7 => {1, 00111}
15 => ⌊15−1/23⌋,r(k)=(15−1)mod23 = 0+1, 14 => {1, 01110}
Goloumb code = 000110011, 101011, 101010, 101001, 100111 ,101110
</pre>