2. 1. HATA DENETİMİ
• Uygulamaların hiçbiri hataya karşı toleranslı
olmadığından birçok çok uygulama için,
– hatayı saptamakla yetinmeyip,
– verinin hatasız bir başka kopyasının elde
edilmesinin de sağlanmasına
hata denetimi denir.
2[E.B]
3. • Hata denetim süreçleri iki aşamada
gerçekleştirilir:
1. Hatanın saptanması.
2. Hatanın düzeltilmesi.
3[E.B]
4. 2. HATA SAPTAMA YÖNTEMLERİ
• Hata saptama yöntemlerinde kullanılan iki
yaklaşım vardır:
1. İleri hata denetimi (forward error
control)
2. Geribeslemeli hata denetimi (feedback
error control)
4[E.B]
5. 2.1. İleri hata denetimi
(forward error control):
• Bu yaklaşımda,
– gönderilen her karakter veya çerçeve
bilgisinin (bitlerinin) yanı sıra,
– fazla ve yinelenen bilgi içeren bitler
gönderilir.
5[E.B]
6. • Bu sayede,
– alıcı hatayı fark eder ve
– çerçeve ile birlikte gönderilen ek bilgi
bitleri bunu saptayacak bilgiler içerdiğinde
hatanın hangi bit veya bitlerde olduğunu da
bulur.
6[E.B]
7. • Hatasız veri, ek bilgi bitlerinden elde edilir.
• Güvenilir bir ileri hata denetimine
erişebilmek için gereken ek bit sayısı,
gönderilen bilgideki bit sayısı arttıkça artar.
7[E.B]
8. 2.2. Geribeslemeli hata denetimi
(feedback error control)
• Bu yaklaşımda, gönderilen her karakter veya
çerçeve, alıcının yalnızca veride hata
bulunduğunu saptamasına yetecek kadar ek bilgi
biti içerir.
• Alıcı, bu bilgi bitlerini kullanarak veride hata olup
olmadığını denetler.
8[E.B]
9. • Veride hata saptandığında ise, ek bilgi bitleri
hatanın düzeltilmesine olanak tanımayacağından,
alıcı gönderilmiş olan hatalı verinin doğru bir
kopyasının gönderilmesi için istekte bulunur.
9[E.B]
10. • Bu nedenle geri beslemeli hata denetimi iki
aşamada ele alınır:
1. Güvenli bir şekilde hatayı saptamayı
sağlayan teknikler.
2. Hata durumunda, yeniden gönderim
denetim tekniklerini sağlamak için
kullanılan algoritmalar.
10[E.B]
11. 2.2.1. BER ve Hata Patlaması Kavramları
• Hata saptama türlerini belirleyen etkenler:
1. BER kavramı,
2. Hata patlaması (error burst) kavramı
11[E.B]
12. 1. BER (Bit Error Rate), bir iletişim sistemi
üzerinden iletilen bir bit in belli bir zaman
aralığındaki bozulma olasılığıdır.
– Örneğin, BER 10
5
demek 100.000 bit
arasından l bitin belli bir zaman aralığındaki
bozulmasıdır.
12[E.B]
13. 2. Hata patlaması,
– yıldırım ve benzeri doğal olayların,
– çevre koşullarının veya iletişim ortamındaki
şiddetli bir elektromanyetik etkileşimin,
olay süresince iletişim ortamından geçen bitleri
etkileyip bozmasıyla oluşan hatalardır.
13[E.B]
14. – Hata patlaması, yanlış alınmış bir bitle
başlar, bir süre doğru veya yanlış bit dizisi
ile devam eder ve hatalı bir bit ile biter.
14[E.B]
15. • Hata patlaması, birbirini izleyen hatalı 2 bit
arasındaki bitlerin sayısı olarak tanımlanır.
• Bu sayıya hatalı 2 bit de dahildir.
15[E.B]
16. • Ayrıca bir hata patlamasının uzunluğunu
belirlerken patlamadaki son hatalı bit (1. hata
patlamasının son biti) ve onu izleyen ilk
patlamadaki (2. hata patlamasının başı) ilk
hatalı bit ve N de 1. hata, hata patlamasının
uzunluğu olmak üzere N veya daha fazla doğru
bitle ayrılmalıdır.
16[E.B]
17. • Hata türü önemlidir, çünkü farklı hata türleri için
farklı hata bulma yöntemleri kullanılır.
• Ayrıca, bazı yöntemlerde kullanılan bit sayısı,
fark edilecek patlama uzunluğunu tanımlar.
• En fazla kullanılan yöntemlerden bazıları, eşlik
biti denetimi (parity) ve CRC dönüşümlü fazlalık
denetimidir. 17[E.B]
Hata Patlaması Örneği
18. 2.2.1.1. Eşlik biti Denetimi
(Parity Check)
• Eşzamansız ve eşzamanlı gönderimde, eşlik biti en sık
kullanılan hata saptama yöntemlerinden birisidir.
18[E.B]
19. • Eşlik biti (parity bit), ikili gösterimdeki bir
sayıda 1’lerin toplamının her zaman tek (ya da
çift) olmasını sağlayacak şekilde sözcüğe
eklenen bittir.
19[E.B]
20. • Çift eşlik (even parity), eşlik biti de içinde olmak üzere
bir karakterin içerisindeki l bitlerinin sayısının çift
olması durumudur.
• Tek eşlik ise (odd parity), yine eşlik biti de içinde
olmak üzere, karakterdeki l'lerin sayısının tek olması
durumudur.
20[E.B]
22. • AVANTAJ: Yalnızca bir bit kullanarak hata
kontrolü yapması bu yöntemi avantajlı kılar.
• Ancak kontrol için tek bit kullandığından, çok
güvenilir olmayan hata denetimleri yapılabilir.
22[E.B]
23. • SAKINCA: bu yöntemin iletilen sayıda iki bit
birden bozulmaya uğrarsa bunu tespit
edememesidir.
• Bu kontrolde hangi bitin hatalı olduğunu
anlama imkanı olmadığından veri parçası
tamamen ihmal edilir ve hedef, kaynaktan
verinin tekrar ister.
23[E.B]
24. • Gürültülü bir iletim ortamında bu yöntemle
verinin iletilmesi çok uzun zaman alabilir
veya hiç gerçekleşmeyebilir.
24[E.B]
25. Örnek:
1)Aşağıdaki 8 bitlik kod sözcüklerinden hangisi çift
eşlik (even parity) biti kullanıldığında bir hata
durumunu gösterir?
a. 01100101
b. 01111000
c. 10000011
d. 00010100
e. 11000110
cevap c
25[E.B]
26. 2)Aşağıdaki 8 bitlik kod sözcüklerinden hangisi tek
eşlik (odd parity) biti kullanıldığında bir hata
durumunu gösterir?
a. 01010100
b. 01111001
c. 10011000
d. 01100101
e. 11001101
Çözüm:d
26[E.B]
27. • Örneğin, 1010011 0 bit dizisinin çift eşlik kullanılarak
gönderildiğini varsayalım.
• Bu ikil dizisi alıcıya 10110110 şeklinde , yani 4. biti
hatalı alınarak ulaşsın.
• Alıcı çift eşlik kullanıldığını ve l'lerin sayısının çift
olması gerektiğini bildiğinden, bu bit dizisinin
kendisine hatalı ulaştığını anlar ve yeniden
gönderilmesini ister.
27[E.B]
Eşlik biti (Parity Check) Denetiminin zayıflığı
28. • Aynı bit dizisinin (1010011 0 ) bu kez 4. ve 7.
bitlerinin hatalı (10110100) ulaştığını varsayalım.
• Bit dizisi alıcıya şeklinde ulaştığında, alıcı bu bit
dizisi içerisinde hata olduğunu fark edemeyecek
ve karakteri hatalı alacaktır.
• Bu nedenle, çift bit hatalarını ve hata patlamalarını
saptayacak başka yöntemler kullanılmalıdır.
28[E.B]
29. 2.2.1.2. İki-Boyutlu Eşlik İkili Yöntemi
(2-Dimensional Parity)
• İki boyutlu eşlik, bir çerçevenin içerdiği
karakterlerin her birine karşı gelen her bit konumu
için benzer bir hesaplama yapar.
• Bu işlem, her karakter için bir eşlik bitine ek
olarak, fazladan bir eşlik byte’ından oluşmasına
neden olur.
29[E.B]
31. 2.2.1.3. CRC (cyclic redundancy check),
Dönüşümlü Fazlalık Sınama Kodu
• Eşlik biti yöntemi, Çift bit hatalarını fark edemediğinden,
çerçeve veya blok iletim yöntemlerinde polinom kodlar
kullanılır.
• Bu yöntemde, çerçeveyi gönderen bilgisayar tarafından
çerçevenin içeriğine göre ve çerçevenin sonuna eklenecek
şekilde her çerçeve için ayrı bir denetim seti (check digits)
hesaplanır.
• Daha sonra alıcı, çerçeve ve denetim sayıları üstünde benzer
bir hesaplama yapar.
• İletilen çerçevede hiç hata yoksa, bilinen bir sonuç elde
edilmelidir.
• Farklı bir cevap bulunursa bu bir hata olduğunu gösterir.
31[E.B]
32. • Denetim seti, iletişim ortamının ve beklenen iletim
hatalarının türüne uyacak şekilde seçilir.
• Ancak 16 ve 32 bit denetim sayıları, en sık
kullanılanlardır ve çerçeve denetim dizisi (frame
check squence) FCS veya hata saptama kodu
olarak bilinir.
• Hata saptama kodları içerisinde en fazla kullanılan
ve hata saptama oranı en fazla olan kod,
dönüşümlü fazlalık sınama kodu, kısaca CRC'dir
(Cyclic Redundancy Check).
32[E.B]
33. • Bu teknikte, gönderilecek olan ileti ikili düzende
kodlanmış (binary) uzun bir sayıdır (çerçevedir).
• Bu sayı, bir başka ikili asal sayıya (asal bir üreteç
polinoma) bölünür.
• Bu bölme işlemi sonucunda kalan bitler
gönderilecek olan iletinin sonuna eklenir ve ileti
gönderilir.
• Alıcı, iletiyi aynı asal polinoma böler.
• Bu bölme işlemi sonucunda kalan, 0 olmalıdır.
• Kalan 0 değilse alıcı bir hata olduğunu anlar ve
çerçevenin yeniden gönderilmesini ister.
33[E.B]
34. • Bu yöntemin matematiksel temeli şudur. Polinom
kodları mod-2 aritmetiği kullanılarak 2'li düzendeki
sayıların aşağıdaki özelliğini kullanır.
– M(x): gönderilecek k bitli bit dizisi (gönderilecek olan
çerçeve)
– G(x): (n+l) bitli sayı (bölen, yani üreteç polinom)
– R(x): kalan n bitli sayı (k>n).
• Buradan aşağıdaki eşitlik yazılabilir
– (M(x) * 2
n
+ R(x) ) /G(x) = Q(x) + (R(x) /G(x))+(R(x)
/G(x))
• Bu da Q(x)'e eşittir. Çünkü biti düzende bir sayının
kendisiyle toplamı 0'dır. Bu da kalanın 0 olacağını
gösterir.
34[E.B]
35. • Bu işlemleri gerçekleştirirken, ikili düzende bölme
işleminin EXCLUSIVE -OR (eldesiz toplama)
işlemi ile gerçekleştirildiğini anımsayalım.
• CRC algoritması karmaşık görünmekle birlikte,
donanım üzerinde kolayca gerçekleştirilir.
35[E.B]
36. Algoritmanın bir örnek yardımıyla incelenmesi
• Öncelikle, gönderilecek olan iletiyi M ile tanımlayalım.
• Bu ileti n bitlik bir CRC sayısı ile korunsun (yani iletinin sonuna
n tane bit eklensin).
Örnek: dört bitlik bir ileti 1111, 1101 üreteç polinomu
kullanılarak CRC yöntemi ile korunmuş olsun CRC
sınama bitlerini oluşturalım.
36[E.B]
37. 1. Birinci adımda, bu iletinin içeriği 2
n
ile çarpılır. Bu
işlem iletinin sonuna n tane 0 eklemeye eşdeğerdir.
– iletiye önce 3 sıfır eklendi, çünkü CRC üç bitten
oluşacaktır.
(üreteç polinomun bit sayısı 4'tür, n+1 = 4).
– 1111000
37[E.B]
38. 2. ikinci adımda ileti, sonuna eklenen n tane 0 ile birlikte,
daha önce belirlenmiş bir üreteç polinomuna bölünür.
Üreteç polinomdaki bit sayısı n+l'dir. Yani denetim
bitleri sayısından l fazladır.
• CRC sınama bitlerini bulabilmek için iletinin sonuna
3 tane sıfır biti ekleyelim (n=3) ve 1101 polinomuna
(1.x3+l.x2+0.x1 + l.x0 yani x3 + x2+l) bölelim.
• Yukarıda da belirttiğimiz gibi mod 2 bölme işlemi
tek tek bitler alınarak paralel bir şekilde exclusive-
OR işlemini gerçekleştirmeğe eşdeğerdir.
38[E.B]
40. 3. Üçüncü adımda, bu bölme işleminden kalan n
tane bit, gönderilecek olan iletinin sonuna
eklenir (1. adımda , iletinin sonuna n tane 0
eklerken, şimdi n tane sıfırın yerine n tane kalan
biti eklediğimizi anımsayalım).
İletilecek olan çerçeve: 1111111
40[E.B]
41. 4. Dördüncü adımda, ileti özgün ileti + bölme
işleminden kalan bitlerle birlikte bir iletişim
hattı üzerinden alıcısına gönderilir.
1111111
41[E.B]
42. 5. Beşinci adımda, alıcı iletiyi alır ve aynı üreteç polinoma
böler. Doğal olarak kalan 0 olmalıdır. Kalan 0 ise alıcı,
iletiyi doğru aldığını anlar, iletinin sonundaki n tane
denetim bitini atar ve özgün iletiyi saklar.
42[E.B]
43. 6. Altıncı adımda, alıcı tarafındaki bölme
işleminden kalan sonuç 0'dan farklıysa, alıcı,
bundan sonraki bölümde anlatılacak
yöntemlerden birini kullanarak iletinin
yeniden gönderilmesi isteğinde bulunur.
44. - Alıcıya gelen bitler 1111111 olarak (yanı
hatasız) gelmiş olsun. Alıcı aldığı bu bitleri
aynı üreteç polinoma bölerek (x3 + x2+l,
1101) kalanı bulacaktır.
- Bu bölme işleminden kalan 0 olduğu için
iletiyi hatasız aldığını anlayacaktır. Bunun
üzerine iletilen CRC sınama bitlerini atarak
(1111) özgün iletiyi saklayacaktır.
45. HATA DURUMU
• Alıcıya gelen bitler 1110111 olarak (yani 4- biti hatalı)
gelmiş olsun. Alıcı aldığı bu bitleri yine aynı üreteç
polinoma (x
3
+ x2+ 1) bölerek kalanı bulacaktır.
• Kalan '101' yani 0'dan farklı. Bu durumda alıcı iletiyi
hatalı olarak aldığını saptayacak ve ileride anlatılacak
yöntemlerden birisi ile bu iletinin hatalı alındığını ve
yeniden gönderilmesi gerektiğini kaynak bilgisayara
bildirecektir.
45[E.B]
46. • Bu teknikte üreteç polinomunun seçimi çok
önemlidir, çünkü polinom hangi tür hataların
fark edileceğini tanımlar.
46[E.B]
47. • CRC yöntemiyle şunları belirleyebiliriz:
– Tüm tek bit hatalarını
– Tüm çift bit hatalarını
– Tüm tek sayılı bit hatalarını
– R'den küçük tüm hata patlamalarını (R
üreteç polinomun derecesidir)
– R'den büyük çok fazla hata patlamasını
47[E.B]
48. • Uygulamada kullanılan CRC örneklerinin biri,
CRC-16'dır (16- bit CRC kod) ve l 1000 0000
0000 0l0l'dir. Ethernet CRC-32 (32-bit CRC kod)
kullanır.
48[E.B]
55. • üreteç 1001, Veri 101110 ise kontrol bit dizisini
bulunuz.
Kontrol 011 olur 55[E.B]
soru
56. G(generator -üreteç) =1001 (n+1, n=3)
D (Data-veri)=101110
R (remainder-kalan) bulunacak.
Sonuç: 011
56[E.B]
=
G
D
remainderR
n
2*
57. 2.2.1.4. internet Sağlama-Toplamı
(Checksum) Algoritması
• Bu yöntem OSI (Open Systems Interconnection)
başvuru modelinin veri bağlantı katmanında
kullanılmamakla birlikte, CRC ve eşlik biti ile
aynı işlevi sağlar.
57[E.B]
58. • CRC yöntemi kadar kesin koruma yöntemi
sağlayamaz, fakat veri bağlantı katmanının
üstündeki katmanlar için güvenle kullanılabilir.
• Çünkü veri bağlantı katmanında hata bulma
teknikleri (genelde CRC) zaten uygulanmaktadır.
58[E.B]
59. • internet sağlama toplamı algoritmasının temeli
oldukça basittir. Şöyle ki;
1. Gönderdiğin tüm kelimeleri (word) topla
2. Elde ettiğin toplamı sağlama toplama olarak
gönder
59[E.B]
60. • Alıcı da aynı işlemleri tekrar ederek, bulduğu
sağlama toplamını gönderilenle karşılaştırır.
• Bir hata durumunda sonuçlar farklı çıkacağından,
alıcıyı iletimde bir hata olduğu konusunda uyarır.
• Bu yöntem, farklı şekillerde kullanılabilir, internet
protokolü (IP) 16 bit uzunluğunda bir sağlama
toplamı kullanır.
60[E.B]
62. 1. Hatanın saptanıp, iletinin yeniden
gönderilmesinin sağlanması.
– alıcı tarafında hatanın saptanmasını izleyen ve
hatalı çerçevelerin yeniden gönderilmesini
sağlayan Otomatik Tekrar İstemi (ARQ-
Automatic Repeat Request) protokolleri
aracılığıyla gerçekleştirilir (Bu konu ve ilgili
protokoller, sonra ayrıntılı olarak anlatılacaktır).
62[E.B]
63. 2. Hatanın alıcıda düzeltilebilmesinin sağlanması.
– Göndericinin bir hata durumunda,
• aynı çerçeveyi yeniden göndermesinin çok güç
olduğu,
• iletişim ortamlarının çok pahalı olduğu
• bir çerçevenin yeniden iletilmesinin çok fazla
zaman kaybına yol açtığı durumlarda,
hatanın alıcıda düzeltilebilmesini sağlayan çeşitli
teknikler geliştirilmiştir.
63[E.B]
64. – Bu gibi durumlarda, çerçevedeki hata çok
büyük bir hata patlaması değilse, alıcıda
düzeltilmeye çalışılır.
– Bu teknikler arasında en sık kullanılan
yöntem, Hamming kodlamasıdır.
64[E.B]
66. 3.1.a. Richard Wesley Hamming (11 Şubat
1915 – 7 Ocak 1998) kimdir?
• Yaptığı çalışmalar ile bilgisayar
bilimleri ve telekomünikasyon
alanlarını bir hayli etkilemiş bir
matematikçidir.
• Katkıları arasında Hamming kodu
(Hamming matrisini kullanır),
Hamming penceresi, Hamming
sayıları, küre paketleme (veya
hamming sınırı) ve Hamming
mesafesi vardır.
66[E.B]
67. • Chicago'da doğmuş ve Monterey,
California'da hayata gözlerini
yummuştur.
• Lisans derecesini 1937 yılında
Chicago Üniversitesi'nden, yüksek
lisansını 1939'da Nebraska
Üniversitesi'nden ve doktora
derecesini de 1942 yılında Urbana-
Champaign'deki Illinois
Üniversitesi'nden almıştır.
67[E.B]
68. • II. Dünya Savaşı sırasında
Lousville Üniversitesi'nde
profesörlük yapmış ve 1945
yılında Manhattan Projesi üzerinde
çalışmak için bu görevini
bırakmıştır.
• Bu proje kapsamında fizikçilerin
ortaya koydukları denklemlerin
çözülmesi için ilk elektronik
sayısal bilgisayarlardan bir kısmını
programlamıştır.
• Programın amacı atom bombasının
ateşlenmesinin Dünya
atmosferinde yanmaya yol açıp
açmayacağını tespit etmek idi. 68[E.B]
69. • Bu hesaplamanın sonucunda atmosferde bir
yanma meydana gelmeyeceği anlaşılmış ve
ABD bombayı önce New Mexico'da
denemiş ardından da iki kere Japonya'ya
karşı kullanmıştır.
• Daha sonra, 1946-1976 yılları arasında Bell
Telefon Laboratuvarlarında çalışan
Hamming, Claude E. Shannon ile işbirliği
yapmıştır.
• 23 Temmuz 1976 yılında donanma yüksek
okulunda 1997 yılına dek öğretim görevlisi
olarak çalıştı ve emekli profesör oldu.
• Hamming, Association for Computing
Machinery organizasyonunun kurucuları
arasındadıdr ve başkanlık da yapmıştır.
69[E.B]
70. 3.1.b. Gelişimi
• Hamming 1940’larda Bell Laboratuarları’nda
manyetiksel röle bazlı, zaman döngüsü saniye olan
Bell Model V adlı bir bilgisayarda çalışmıştır.
• Giriş hataları okunabilen punch kartlarına
yüklenirdi.
• Operatörler problemi düzeltmesi için günler
boyunca özel kodlar hataları bulur ve ışık yakardı.
• Mesaiden sonraki periyotlarda ve hafta sonlarında,
operatörler olmadığından makine diğer işlemlere
geçerdi.
70[E.B]
71. • Hamming hafta sonları çalışırdı ve kart
okuyucunun güvenilmez olduğundan
programlarına ilk satırdan başlamak zorunda
kalması onu deli ediyordu.
• Yıllar içinde hata düzeltme problemi üzerinde
çalışarak çok güçlü bir dizi algoritma yarattı.
• 1950 yılında bugünkü adıyla aynı olan ve hala
kullanılan Hamming Kodu'nu yayımladı.
71[E.B]
72. 3.1.c.tanım
• Bir iletişim ortamı üzerinden iletilen bit dizisinin
en fazla k bitinin bozulması durumunda, bit dizisi
içerisindeki hata düzeltilebiliyorsa, bu koda k-bit
hata bağışıklığı denir.
72[E.B]
73. • Kodlama terminolojisinde veri bitleri ile veriye
eklenen hata saptama bitlerini birleştiren birleşik ileti
birimi kod sözcük (codeword) olarak adlandırılır.
• Örneğin, m bitten oluşmuş bir veri, r bitlik hata
denetim veya tekrar bitleri ile (n = m + r)-bitlik bir
kod sözcük oluşturur.
– Örnek: m=4 bit r=3bit → n=4+3=7 7-bitlik kod sözcüğü
73[E.B]
74. • İki geçerli kod sözcüğün farklılaştığı en düşük bit
konumu sayısı, kodun Hamming uzaklığı (hamming
distance) olarak bilinir.
ÖRNEK:
• "toned" ile "roses" arasında 3.
• 1011101 ile 1001001 arasında 2.
• 2173896 ile 2233796 arasında 3.
• Ercan ile Erkan arasında 1.
74[E.B]
75. 75[E.B]
Tanım (Uzaklık Fonksiyonu) : u ve v, R
n
kümesinin iki
elemanı olmak üzere u ve v arasındaki Hamming uzaklığı
{ }ii vuivud ≠=),(
şeklinde tanımlanır ve
{ }0: ∪→× INRRd nn
( ) ( )vudvu ,, →
şeklinde tanımlanan bu dönüşüm aşağıdaki özellikleri sağlar .
i ) ( ) ( ) vuvudvudiçinRvu n
=⇔=≥∈∀ 0,,0,,
ii) ),(),(, uvdvudiçinRvu n
=∈∀
ii) ),(),(),(,, vtdtudvudiçinRtvu n
+≤∈∀
76. • iki kod sözcük arasında kaç bit konumunun
değiştiğini bulmak için, önce iki kod sözcüğe
XOR işleci (operatör) uygulanır ve sonra bu
işlem sonucunda elde edilen l'lerin sayısı
toplanır.
76[E.B]
77. • Örneğin, her karakterin 7 veri biti ve bir eşlik biti ile
gösterildiği bir kod sözcük düşünelim. Çift eşlik
kullanıldığını varsayarsak bu şemayı izleyen kod
sözcükler:
0000000 0
0000001 1
0000010 1
0000011 0
• Geçerli her kod sözcük en az iki bit konumunda farklı
olduğundan Hamming uzaklığının 2 olduğunu
çıkarabiliriz.
• Bu da sonuçtaki bit yapısı farklı, ancak geçerli bir kod
sözcük olacağından, bu şemanın 2 bitli hataları
saptayamayacağını gösterir. 77[E.B]
78. • Bununla birlikte, bir kod sözcükteki tek bir bit
bozulursa, geçersiz bir kod sözcük ortaya
çıkacağından bütün tek bitli hataları saptayabilir.
• Örneğin, Hamming uzaklığı 3 olan bir kod sözcük
tek bitli hataları düzeltebilir, 2 bitli hataları bulabilir.
78[E.B]
79. • Eğer iki kod sözcük arasındaki Hamming uzaklığı
u ise, bir kod sözcüğü diğerine çevirmek için, u,
tek bit hatası gerekecektir.
• u hatayı saptamak için, u+1 koda,
• u hatayı düzeltmek için ise 2u+ l koda gerek
duyulur.
79[E.B]
80. • Günümüzde Hamming kodlama deyince akıllara ilk
olarak 1950 yılında açıklanan (7,4) lük Hamming
kodlama yöntemi gelmektedir.
• Bu Hamming kodlama yönteminde her 4 bitlik data
için 3 bit kontrol biti eklenir.
• Hamming’ in geliştirdiği bu (7,4) algoritması her
hangi bir tek bitlik hatayı düzeltebilir ya da bütün
tek veya iki bitlik hataları tespit edebilir.
80[E.B]
81. 3.1.d. (7,4) Hamming Kodlama
• Bu Hamming kodlama yönteminde her 4 bitlik
data için 3 bit kontrol biti eklenir.
• Hamming’ in geliştirdiği bu (7,4) algoritması her
hangi bir tek bitlik hatayı düzeltebilir ya da bütün
tek veya iki bitlik hataları tespit edebilir.
• Hamming kodu parity matrislerini çoklayarak
genişletilmesinden oluşan ve “Hamming matrisi”
adı verilen matrislerle çalışır.
81[E.B]
82. • (7,4) lük Hamming kodlama da birbirleriyle
bağlantılı olan Kod üretici matris G ve Parity
(eşlik) kontrol matrisi H olan 2 çeşit matris
kullanırız;
• Bu yöntemde 4 bit veri iletilir.
82[E.B]
83. • Göndereceğimiz 4 bitlik data “1001” olsun. Bu
datayı göndermek için kullanacağımız vektör p
olur.
83[E.B]
örnek
84. • Datamızı paketlemek için G matrisini kullanırız.
• 7*4’lük G matrisi ile asıl datamızı taşıyan 4*1’lik
p matrisinin mod 2 ye göre çarpılmasından elde
edeceğimiz 7*1’lik bir x matrisi (7,4) lük
Hamming kodlama yöntemi ile paketlenmiş
veriyi oluşturacaktır.
84[E.B]
?
85. 85[E.B]
• Mod 2’de çarpım işlemi yalnızca bir dizi mantıksal AND
ve XOR işlemidir.
• [1000] satır vektörü ile [1001] sütun vektörünün çarpımı
mod 2’de şu şekilde olur:
1000
& 1001
1000
• [1000] vektörünün mod 2 toplamı: 1^0^0^0=1
olur bu da x matrisinin ilk elemanını verir.
86. • [0100] satır vektörü ile [1001] sütun vektörünün
çarpımı mod 2’de şu şekilde olur:
0100 & 1001 = 0000
• [0000] vektörünün mod 2 toplamı:
0^0^0^0=0
olur bu da x matrisinin ikinci elemanını verir.
• Devamı bu şekilde hesaplanır.
86[E.B]
= r
87. • Bir hata oluşmazsa alınan veri matrisi
r, iletilen veri matrisi x’ e eşit
olmalıdır.
• Alıcı terminal, eğer varsa hatalı bitin
tespiti için kullanacağı z matrisini
elde etmek için H ve r matrislerini
çarpar.
• Sonuç doğrudur.
87[E.B]
r =
88. Hata oluşması ve düzeltilmesi:
• Eğer iletim sırasında tek bitlik bir hata meydana
gelirse;
88[E.B]
1 bit
bozulursa
89. • bu hatalı matrisi H ile çarptığımız zaman elde
edeceğimiz z matrisi bize hatalı olan bitin
konumunu verir;
89[E.B]
90. • Burada z matrisinin gösterdiği 3*1’lik ifade H
matrisindeki sütunlardan birine eşittir.
• İşte bu sütunun sırası aynı zamanda bize iletilen
datada ki bozulan bitin sırasıdır.
• Yukarıdaki örnek için hatalı bit 3. sıradakidir.
90[E.B]
91. • Bunu bildiğimiz için 3. sıradaki biti çevirerek asıl
datamıza ulaşırız;
91[E.B]