Hamming Kodu: Örneklerle Hata Tespiti ve Düzeltme
Hata Nedir?
İletilen veriler iletişim sırasında bozulabilir. Dış gürültüden veya diğer fiziksel arızalardan etkilenmesi muhtemeldir. Böyle bir durumda giriş verileri, çıkış verileriyle aynı olamaz. Bu uyumsuzluğa "Hata" adı verilir.
Veri hataları, önemli veya güvenli verilerin kaybolmasına neden olabilir. Dijital sistemlerde veri aktarımının büyük bir kısmı 'Bit aktarımı' şeklinde olacak. Küçük bir değişiklik bile tüm sistemin performansını etkileyebilir. Bir veri dizisinde 1'in 0'a veya 0'ın 1'e değiştirilmesine "Bit hatası" denir.
Hata Türleri
Verinin göndericiden alıcıya iletilmesi sırasında oluşan bit hatasının başlıca üç türü vardır.
- Tek bit hataları
- Çoklu bit hataları
- Patlama hataları
Tek Bit Hataları
Tüm veri dizisindeki bir bitte yapılan değişikliğe "Tek bit hatası" denir. Ancak, tek bit hatasının ortaya çıkması o kadar yaygın değildir. Dahası, bu hata yalnızca paralel iletişim sistemlerinde meydana gelir çünkü veriler tek bir satırda bitsel olarak iletilir. Bu nedenle, tek bir satırın gürültülü olma olasılığı daha yüksektir.
Çoklu Bit Hataları
Veri dizisinde, vericiden alıcıya giden veri dizisinin iki veya daha fazla bitinde değişiklik olması durumuna “Çoklu bit hataları” denir.
Bu tür hatalar çoğunlukla hem seri hem de paralel tip veri iletişim ağlarında meydana gelir.
Patlama Hataları
Veri dizisindeki bit kümesinin değişmesine "Seri çekim hatası" denir. Bu tür veri hatası, ilk bit değişikliğinden son bit değişikliğine kadar hesaplanır.
Hata Tespiti ve Hata Düzeltme Nedir?
Dijital iletişim sisteminde hata bir iletişim sisteminden diğerine aktarılacaktır. Bu hatalar tespit edilip düzeltilmezse veriler kaybolacaktır. Etkin iletişim için sistem verilerinin yüksek doğrulukla aktarılması gerekir. Bu öncelikle hataların tespit edilmesi ve düzeltilmesiyle yapılacaktır.
Hata tespiti, bir veri iletişim sisteminde vericiden alıcıya iletilen verilerde bulunan hataların tespit edilmesine yönelik bir yöntemdir.
Burada, kaynaktan iletilen verilere ekleyerek bu hataları bulmak için artıklık kodlarını kullanabilirsiniz. Bu kodlara “Hata tespit kodları” denir.
Üç tür hata algılama kodu şunlardır:
- Parite Kontrolü
- Döngüsel Artıklık Kontrolü (CRC)
- Boyuna Artıklık Kontrolü (LRC)
Parite Kontrolü
- Aynı zamanda parite kontrolü olarak da bilinir.
- Hata tespiti için uygun maliyetli bir mekanizmaya sahiptir.
- Bu teknikte yedek bit, eşlik biti olarak bilinir. Her veri birimi için eklenir. Birimdeki 1'lerin toplam sayısı eşit olmalıdır, buna eşlik biti denir.
Boyuna Artıklık Kontrolü
Bu hata tespit tekniğinde, bir bit bloğu tablo formatında düzenlenir. LRC yöntemi, her sütun için eşlik bitini hesaplamanıza yardımcı olur. Bu paritenin seti de orijinal verilerle birlikte gönderilir. Eşlik bloğu fazlalığı kontrol etmenize yardımcı olur.
Döngüsel Artıklık Kontrolü
Döngüsel Artıklık Kontrolü, ünitenin sonuna eklenmesi gereken bir artıklık dizisidir. Bu nedenle ortaya çıkan veri biriminin, önceden belirlenmiş ikinci bir ikili sayıya bölünebilir hale gelmesi gerekir.
Hedefte, gelen verinin aynı sayıya bölünmesi gerekir. Kalan yoksa, veri biriminin doğru olduğu varsayılır ve kabul edilir. Aksi takdirde, veri biriminin iletimde hasar gördüğü ve dolayısıyla reddedilmesi gerektiği belirtilir.
Hamming kodu nedir?
Hamming kodu, iki anlık bit hatasına kadar hata tespiti için yararlı olan bir satır kodudur. Tek bitlik hatalar yapabilir.
Hamming kodunda kaynak, mesaja gereksiz bitler ekleyerek mesajı kodlar. Bu yedek bitler çoğunlukla hata tespiti ve düzeltme işlemini gerçekleştirmek için mesajın belirli konumlarına eklenir ve oluşturulur.
Hamming kodunun tarihi
- Hamming kodu, RWHamming tarafından hataları tespit etmek için geliştirilmiş bir tekniktir.
- Hamming kodu herhangi bir uzunluktaki veri birimlerine uygulanmalıdır ve veriler ile artıklık bitleri arasındaki ilişkiyi kullanır.
- Hata düzeltme yöntemi sorunu üzerinde çalıştı ve Hamming kodu adı verilen giderek daha güçlü bir algoritma dizisi geliştirdi.
- 1950 yılında günümüzde ECC hafıza gibi uygulamalarda yaygın olarak kullanılan Hamming Kodunu yayımladı.
Hamming kodunun uygulanması
Hamming kodunu kullanmanın bazı yaygın uygulamaları şunlardır:
- uydular
- Bilgisayar hafızası
- modemler
- PlazmaCAM
- Bağlayıcıları açın
- Koruyucu tel
- Gömülü İşlemci
Hamming kodunun avantajları
- Hamming kod yöntemi, veri akışlarının tek bitlik hatalar için verildiği ağlarda etkilidir.
- Hamming kodu yalnızca bir bit hatasının algılanmasını sağlamakla kalmaz, aynı zamanda düzeltilebilmesi için bit içeren hatayı girintilemenize de yardımcı olur.
- Hamming kodlarının kullanım kolaylığı, onları bilgisayar belleğinde kullanıma ve tek hata düzeltmeye uygun hale getirir.
Hamming kodunun dezavantajları
- Tek bitlik hata algılama ve düzeltme kodu. Ancak birden fazla bit hatalı bulunursa sonuç, doğru olması gereken başka bir bitin değiştirilmesiyle sonuçlanabilir. Bu, verilerin daha da hatalı olmasına neden olabilir.
- Hamming kod algoritması yalnızca tek bitlik sorunları çözebilir.
Hamming Kodunda bir mesaj nasıl kodlanır
Göndericinin mesajı kodlamak için kullandığı süreç aşağıdaki üç adımı içerir:
- Toplam yedek bit sayısının hesaplanması.
- Yedekli bitlerin konumu kontrol ediliyor.
- Son olarak bu yedekli bitlerin değerlerinin hesaplanması.
Yukarıdaki gereksiz bitler mesajın içine yerleştirildiğinde kullanıcıya gönderilir.
) 1 Adım Toplam yedek bit sayısının hesaplanması.
Mesajın şunları içerdiğini varsayalım:
- n– veri bitlerinin sayısı
- p – np'nin en az (n + p + 1) farklı durumu gösterebilmesi için kendisine eklenen yedek bitlerin sayısı.
Burada (n + p), (n + p) bit konumlarının her birindeki hatanın konumunu gösterir ve bir ekstra durum, hata olmadığını gösterir. P bitleri 2'yi gösterebileceğindenp eyaletler, 2p en azından (n + p + 1)'e eşit olmalıdır.
) 2 Adım Yedekli bitlerin doğru konumlarına yerleştirilmesi.
Yedekli bitler, 2'nin kuvvetleri olan bit konumlarına yerleştirilmelidir. Örneğin, 1, 2, 4, 8, 16, vb. Bunlara p denir.1 (1. konumda), p2 (2. konumda), p3 (4. konumda), vb.
) 3 Adım Yedek bitin değerlerinin hesaplanması.
Yedekli bitler, 1'lerin sayısını çift veya tek yapan eşlik bitleri olmalıdır.
İki tür parite nelerdir?
- Mesajdaki toplam bit sayısının eşit yapılmasına çift eşlik denir.
- Mesajdaki toplam bit sayısının tek hale getirilmesine tek eşlik denir.
Burada tüm yedek bit p1'in eşlik olarak hesaplanması gerekir. İkili gösterimi p1 konumu hariç 1. konumda 1 içermesi gereken tüm bit konumlarını kapsamalıdır.
P1, ikili temsili 1 Beğeni (1, 3, 5, 7, ….) içermeyen daha az önemli konumda 9 içeren konumlardaki her veri biti için eşlik bitidir.
P2, ikili gösterimi sağdan 1. konumda 2 içeren, 2 Beğeni (3, 6, 7, 10, 11,…) içermeyen konumlardaki her veri biti için eşlik bitidir.
P3, ikili gösterimi sağdan 1. konumda 3 içeren, 4 Beğeni içermeyen (5-7, 12-15,…) konumlardaki her bit için eşlik bitidir.
Hamming kodundaki bir Mesajın şifresini çözmek
Alıcı, hataları bulmak ve düzeltmek için yeniden hesaplamalar yapmayı gerektiren gelen mesajları alır.
Yeniden hesaplama işlemi aşağıdaki adımlarla gerçekleştirilir:
- Yedekli bitlerin sayısını saymak.
- Tüm yedek bitlerin doğru konumlandırılması.
- Eşlik kontrolü
) 1 Adım Yedekli bitlerin sayısını sayma
Kodlama için aynı formülü, yedekli bitlerin sayısını kullanabilirsiniz.
2p ? n + p + 1
Burada veri bitlerinin sayısı ve p ise yedek bitlerin sayısıdır.
) 2 Adım Tüm gereksiz bitlerin doğru şekilde konumlandırılması
Burada p, 2'nin kuvvetlerinin bit konumlarında bulunan yedek bir bittir; Örneğin, 1, 2, 4, 8, vb.
) 3 Adım Eşlik kontrolü
Eşlik bitlerinin, veri bitlerine ve yedek bitlere göre hesaplanması gerekir.
p1 = parite(1, 3, 5, 7, 9, 11…)
p2 = parite(2, 3, 6, 7, 10, 11… )
p3 = parite(4-7, 12-15, 20-23… )
ÖZET
- İletilen veriler iletişim sırasında bozulabilir
- Üç tür Bit hatası vardır: 1) Tek Bit Hataları 2) Çoklu Bit Hatası 3) Burst Bit hataları
- Veri dizisinin tamamında bir bitte yapılan değişiklik “Tek bit hatası” olarak bilinir.
- Veri dizisinde, vericiden alıcıya giden veri dizisinin iki veya daha fazla bitinde değişiklik olması durumuna “Çoklu bit hataları” denir.
- Veri dizisindeki bit kümesinin değişmesine "Seri çekim hatası" denir.
- Hata tespiti, bir veri iletişim sisteminde vericiden alıcıya iletilen verilerde bulunan hataların tespit edilmesine yönelik bir yöntemdir.
- Üç tür hata algılama kodu vardır: 1) Eşlik Denetimi 2) Döngüsel Artıklık Denetimi (CRC) 3) Boyuna Artıklık Denetimi (LRC)
- Hamming kodu, iki anlık bit hatasına kadar hata tespiti için yararlı olan bir satır kodudur. Tek bitlik hatalar yapabilir.
- Hamming kodu, RWHamming tarafından hataları tespit etmek için geliştirilmiş bir tekniktir.
- Hamming kodunu kullanmanın yaygın uygulamaları Uydu Bilgisayar Belleği, Modemler, Gömülü İşlemci vb.'dir.
- Hamming kod yönteminin en büyük faydası veri akışlarının tek bitlik hatalar için verildiği ağlarda etkili olmasıdır.
- Hamming kod yönteminin en büyük dezavantajı yalnızca tek bitlik sorunları çözebilmesidir.
- Hamming kodu yardımıyla mesajın şifrelenmesi ve çözülmesi işlemini gerçekleştirebiliyoruz.

