Upload
ercanbulus
View
170
Download
9
Embed Size (px)
Citation preview
Hata Saptama ve
Düzeltme Teknikleri
1[E.B]
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]
• Hata denetim süreçleri iki aşamada gerçekleştirilir: 1. Hatanın saptanması. 2. Hatanın düzeltilmesi.
3[E.B]
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]
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]
• 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]
• 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]
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]
• 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]
• 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]
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]
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 105 demek 100.000 bit
arasından l bitin belli bir zaman aralığındaki bozulmasıdır.
12[E.B]
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]
– 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]
• 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]
• 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]
• 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
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]
• 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]
• Ç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]
21[E.B]
Eşlik bitinin bir uygulama alanı da, 7 bit içeren ASCII karakterleridir.
• 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]
• 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]
• 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]
Ö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]
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]
• Ö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ığı
• 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]
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]
Giren Çıkan
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]
• 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]
• 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]
• 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) * 2n + 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]
• 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]
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]
1. Birinci adımda, bu iletinin içeriği 2n 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]
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]
39[E.B]
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]
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]
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]
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.
- 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.
HATA DURUMU • Alıcıya gelen bitler 1110111 olarak (yani 4- biti hatalı)
gelmiş olsun. Alıcı aldığı bu bitleri yine aynı üreteç polinoma (x3+ 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]
• Bu teknikte üreteç polinomunun seçimi çok önemlidir, çünkü polinom hangi tür hataların fark edileceğini tanımlar.
46[E.B]
• 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]
• 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]
CRC Etkisi
49[E.B]
Örnek:
50[E.B]
İleti 11100110 olsun, 11001 üreteç polinomu kullanarak CRC yöntemi ile iletilecek veriyi bulunuz. Bulunan veriyi kontrol ediniz.
• Üreteç: 11001 olduğuna göre n+1=5 tir.
• İletilecek verinin sonuna n=4 adet sıfır ilave edilerek veri ve üreteç xor’lanır.
51[E.B]
Çözüm 1
veya
52[E.B]
İletilecek olan: 111001100110
53[E.B]
54[E.B]
Kontrol
• üreteç 1001, Veri 101110 ise kontrol bit dizisini bulunuz.
Kontrol 011 olur
55[E.B]
soru
G(generator -üreteç) =1001 (n+1, n=3) D (Data-veri)=101110 R (remainder-kalan) bulunacak. Sonuç: 011
56[E.B]
=
GDremainderR
n2*
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]
• 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]
• 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]
• 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]
3.HATA DÜZELTME KODLARI
• Hata düzeltme teknikleri iki yaklaşımla gerçekleştirilir.
61[E.B]
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]
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]
– 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]
3.1. Hamming Uzaklığı ve
Hamming Kodlaması
65[E.B]
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]
• 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]
• 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]
• 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]
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]
• 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]
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]
• 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]
• İ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[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 +≤∈∀
• 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]
• Ö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]
• 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]
• 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]
• 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]
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]
• (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]
• 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
• 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[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.
• [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
• 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 =
Hata oluşması ve düzeltilmesi: • Eğer iletim sırasında tek bitlik bir hata meydana
gelirse;
88[E.B]
1 bit bozulursa
• bu hatalı matrisi H ile çarptığımız zaman elde edeceğimiz z matrisi bize hatalı olan bitin konumunu verir;
89[E.B]
• 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]
• Bunu bildiğimiz için 3. sıradaki biti çevirerek asıl datamıza ulaşırız;
91[E.B]