MTK449 Cebirsel Kodlama Teorisine Giriş

MTK449 Cebirsel Kodlama Teorisine Giriş - Final Sınavı Çözümleri
1
Soru 1. 010011100110000 sözcüğünü içeren 15–uzunluklu en küçük ikili devirli kodun bir
eşlik denetim matrisini yazınız. [20 puan]
Çözüm. Verilen sözcük polinom olarak u(x) = x + x4 + x5 + x6 + x9 + x10 şeklinde
temsil edilir. Bu sözcüğü içeren bir devirli kodun üreteç polinomu g(x) ise o zaman
g(x), u(x) polinomunu böler. Ayrıca g(x) | x15 −1 olduğunu da biliyoruz. Öyleyse g(x) |
ebob(u(x), x15 −1) olur. g(x)’in derecesi büyüdükçe ürettiği devirli kodun küçüldüğünü
biliyoruz. Dolayısıyla verilen sözcüğü içeren 15–uzunluklu en küçük ikili devirli kod
ebob(u(x), x15 − 1) tarafından üretilir. Şimdi ebob(u(x), x15 − 1) polinomunu bulalım.
Gerekli bölme işlemleri yapıldığıda aşağıdaki gibi bir Öklid algoritmasına ulaşılır
x15 + 1 = (x10 + x9 + x6 + x5 + x4 + x)(x5 + x4 + x3 + x2 ) + x9 + x8 + x5 + x4 + x3 + 1
x10 + x9 + x6 + x5 + x4 + x = (x9 + x8 + x5 + x4 + x3 + 1)x
olduğundan ebob(u(x), x15 − 1) = 1 + x3 + x4 + x5 + x8 + x9 olur. Alternatif olarak
u(x) = x(1 + x3 + x4 + x5 + x8 + x9 ) = x(1 + x5 )(1 + x3 + x4 )
= x(1 + x)(1 + x + x2 + x3 + x4 )(1 + x3 + x4 )
|
{z
}
u(x)’in bölenleri
olduğundan ebob(u(x), x15 − 1) = 1 + x3 + x4 + x5 + x8 + x9 bulunur. Dolayısıyla verilen
sözcüğü içeren en küçük ikili devirli kod 1 + x3 + x4 + x5 + x8 + x9 tarafından üretilen
ikili devirli koddur. Bu kodun eşlik denetim polinomu
x15 − 1
= 1 + x 3 + x4 + x5 + x6
3
4
5
8
9
1+x +x +x +x +x
polinomunun tersi olan 1 + x + x2 + x3 + x6 polinomudur.
Soru 2. C , g(x) = 1 + x4 + x6 + x7 + x8 tarafından üretilen 15–uzunluklu ikili devirli
kod olsun. C ’nin bir optimal patlamalı–hata–düzeltici kod olduğu bilinmektedir. Buna göre
w = 011100101011110 olarak alınan sözcüğü çözünüz. [25 puan]
Çözüm. C , uzunluğu 15 ve boyutu 7 olan bir optimal patlamalı hata düzeltici
kod olduğuna göre C , bir 15−7
= 4–patlamalı hata düzeltici koddur. Alınan sözcük
2
2
polinom olarak w(x) = x + x + x3 + x6 + x8 + x10 + x11 + x12 + x13 şeklinde yazılabilir.
i ≥ 0 için xi w(x)’in sendromlarını si (x), bu sendromların sözcük karşılıklarını ise si ile
gösterelim. Buna göre aşağıdaki tabloyu elde edebiliriz:
i
0
1
2
3
4
5
6
7
si (x)
x + x3 + x5
x2 + x4 + x6
x3 + x5 + x7
1 + x7
1 + x + x4 + x 6 + x7
1 + x + x2 + x4 + x5 + x6
x + x2 + x3 + x5 + x6 + x7
1 + x2 + x3
si
010101000000000
001010100000000
000101010000000
100000010000000
110010110000000
111011100000000
011101110000000
101100000000000
←
←
←
←
←
←
←
←
5–uzunluklu
5–uzunluklu
5–uzunluklu
8–uzunluklu
8–uzunluklu
7–uzunluklu
5–uzunluklu
4–uzunluklu
patlama
patlama
patlama
patlama
patlama
patlama
patlama
patlama
2
MTK449 Cebirsel Kodlama Teorisine Giriş - Final Sınavı Çözümleri
x15−7 s7 (x) = x8 (1 + x2 + x3 ) = x8 + x10 + x11 olduğundan hata polinomu e(x) = x8 +
x10 +x11 olur. Böylece w(x) olarak alınan sözcük w(x)−e(x) = x+x2 +x3 +x6 +x12 +x13
olarak çözülür.
Soru 3. C , 15–uzunluklu ve tasarlanmış uzaklığı 7 olan dar anlamlı BCH kodu olsun.
(a) C ’nin üreteç polinomunun g(x) = 1 + x + x2 + x4 + x5 + x8 + x10 olduğunu
gösteriniz. [10 puan]
(b) w = 000101100100011 olarak alınan sözcüğü çözünüz.
[30 puan]
Çözüm. (a) 15–uzunluklu ve tasarlanmış uzaklığı 7 olan dar anlamlı BCH kodunun
üreteç polinomu
ekok(M (1) (x), M (2) (x), . . . , M (6) (x))
polinomudur. 2’nin 15 modülüne göre 1, 2, 3, 4, 5, 6 sayılarını içeren ç.e.b. kümeleri
C1 = C2 = C4 = {1, 2, 4, 8}
C3 = {3, 6, 9, 12}
C5 = {5, 10}
şeklinde olduğundan
M (1) (x) = M (2) (x) = M (4) (x) = x4 + x + 1
M (3) (x) = x4 + x3 + x2 + x + 1
M (5) (x) = x2 + x + 1
minimal polinomları elde edilir. Buna göre bahsedilen BCH kodu, bu minimal polinomların en küçük ortak katı olan
(x2 + x + 1)(x4 + x + 1)(x4 + x3 + x2 + x + 1) = x10 + x8 + x5 + x4 + x2 + x + 1
polinomu tarafından üretilir.
(b) Alınan sözcüğü w(x) = 1 + x + x2 + x3 + x5 + x6 + x8 polinomu temsil eder.
δ = 7 = 2t + 1 ise t = 3 olur. Buna göre ağırlığı ≤ 3 olacak şeklide bir e(x) hata
sözcüğü bulmalıyız. w(x)’in sendromu (s0 , s1 , s2 , s3 , s4 , s5 ) denirse her 0 ≤ i ≤ 5 için
si = w(αi+1 ) olacağından, Zech logaritma tablosunu da kullanarak,
s0 = w(α) = |1 +
α + α2 + α3 + α5 + α6 + α8
{z } | {z } | {z }
α4
4
6
α6
9
α9
8
= α
+α +α +α =0
| {z } | {z }
α12
α12
MTK449 Cebirsel Kodlama Teorisine Giriş - Final Sınavı Çözümleri
3
2
s1 = w(α2 ) = 1 + α
+ α4 + α6 + α10 + α12 + α
| {z } | {z } | {z }
α10
10
7
= 1+α
+α +α
| {z }
α7
13
α13
6
=1+α
+ α13 = 0
| {z }
1
α6
s2 = w(α3 ) = 1 + α3 + α6 + α9 + 1 + α3 + α9
= α6
4
s3 = w(α4 ) = 1 + α
+ α8 + α12 + α5 + α9 + α2
| {z } | {z } | {z }
α5
5
14
= 1+α
+α +α
| {z }
α14
11
α12
α11
12
=1+α
+ α11 = 0
| {z }
1
10
+ 1 + α10
s4 = w(α5 ) = 1 + α5 + α10
+1+α
= 1 + α5 + α10 = 0
s5 = w(α6 ) = 1 + α6 + α12 + α3 + 1 + α6 + α3
= α12
elde edilir. Buna göre w(x)’in sendromu (0, 0, α6 , 0, 0, α12 ) şeklinde bulunur. Bunu polinom formunda s(x) = α6 x2 + α12 x5 şeklinde yazabiliriz. Aşağıdaki klasik bölme işlemlerini derecesi t − 1 = 3 − 1 = 2’den küçük veya eşit bir kalan elde edene kadar
yapalım:
z6
z 6 + α9 z 3
α9 z 3
α12 z 5 + α6 z 2
α3 z
5
z
α12
+ α6 z 2
12
5
α z
α9 z 3
α3 z 2
α6 z 2
Buna göre aşağıdakileri yazabiliriz:
z 6 = (α3 z)s(z) + α9 z 3
s(z) = (α3 z 2 )(α9 z 3 ) + α6 z 2
Buna göre
r0 (z)
r1 (z)
r2 (z)
q1 (z)
q2 (z)
=
=
=
=
=
z6
α9 z 3
α6 z 2
α3 z
α3 z 2
denirse, der(rb (z)) ≤t − 1 = 3 − 1 = 2 olacak şekildeki en küçük b 2’dir. Buna göre
y2 (z) polinomunu bulmalıyız.
y−1 (z) = 0, y0 (z) = 1 olmak üzere yi (z) = yi−2 (z) − qi (z)yi−1 (z)
4
MTK449 Cebirsel Kodlama Teorisine Giriş - Final Sınavı Çözümleri
olduğunu biliyoruz. O zaman
y1 (z) = q1 (z) = α3 z
y2 (z) = 1 + (α3 z 2 )(α3 z)
= 1 + α6 z 3
bulunur. y2 (0) = 1 olduğundan σ(z) = y2 (z) = 1 + α6 z 3 olur. Öte yandan σ(z) =
(1 + αi0 z)(1 + αi1 z)(1 + αi2 z) olması gerektiğini biliyoruz. σ(z)’nin kökleri α3 , α8 ve
α13 olduğundan
σ(z) = (1 + α2 z)(1 + α7 z)(1 + α12 z)
bulunur. Buna göre hata polinomu e(x) = x2 + x7 + x12 olarak bulunur. Dolayısıyla
alınan sözcük w(x) − e(x) = 1 + x + x3 + x5 + x6 + x7 + x8 + x12 , yani 110101111000100,
şeklinde çözülür.
Soru 4. 15–uzunluklu sadece iki adet kendi–dikgen ikili devirli kod vardır. Bu kodların üreteç
polinomlarını belirleyiniz. [15 puan]
Çözüm. C , 15–uzunluklu bir kendi–dikgen ikili devirli kod ve C ’nin üreteç polinomu g(x) olsun. g(x) | x15 − 1 dir. Ayrıca C ⊆ C ⊥ olduğundan C ’nin eşlik denetim
matrisi h(x), yani (x15 − 1)/g(x) polinomunun tersi, g(x)’i böler. Bunun mümkün olduğu iki olası durum vardır:
1) g(x) = (x + 1)(x2 + x + 1)(x4 + x3 + 1)(x4 + x3 + x2 + x + 1). Bu durumda
(x15 − 1)/g(x) = x4 + x + 1 polinomunun tersi x4 + x + 1 olacağından h(x) | g(x) olur.
2) g(x) = (x + 1)(x2 + x + 1)(x4 + x + 1)(x4 + x3 + x2 + x + 1). Bu durumda da
(x15 − 1)/g(x) = x4 + x3 + 1 polinomunun tersi x4 + x3 + 1 olacağından yine h(x) | g(x)
elde edilir.