Hamming kodu nasıl hesaplanır

Hamming kodlarının uygulanması kolaydır ve sıklıkla hata düzeltme için kullanılır.

1. Adım

Veri kelimesini oluştur. Eşitlik bilgisi için, ikisinin (birinci, ikinci, dördüncü vb.) İktidarı olan herhangi bir biti ayrılmalıdır. Veri kaynağına ve eşlik bitlerine uyarlamanız gereken bir kelimenin uzunluğunu kullanın.

Örneğin:

1 1 0 1 0 0 1 0 olur _ _ 1 _ 1 0 1 _ 0 0 1 0

Bitler aynı sırada kalır ancak parite bitlerini barındırmak için genişletilmiştir.

2. Adım

Önce parite biti hesapla. İlk bitle başlayarak biraz okuyun, ardından biraz atlayın ve bulunanların sayısını hesaplarken işlemi tekrarlayın. Parite bitleri sıfır olarak sayılır.

Bunların sayısı eşit ise, ilk biti sıfır olarak koyun. Aksi halde, bir tane olarak koyun.

Örneğin:

1, 3, 5, 7, 9 ve 11, 1, 1, 1, 0, 0, 0, 11101, 4'ü içerir. Bu bile, ilk bit sıfır olarak ayarlanır: 0 _ 1 _ 1 0 1 _ 0 0 1 0.

3. adım

Kalan parite bitlerini hesaplayın. Bit iki, iki bit iki biti okur, sonra iki atlar ve tekrarlar. Bit dört dört bit okur, sonra dört atlar ve dördüncü ile başlar. Hesaplanacak parite bitleri kalmayıncaya kadar bu desenle devam edin.

Örneğin:

Bit 2: 0 _ 1 _ 1 0 1 _ 0 0 1 0 revize _1, 01, 01, hangi 3'ü içerir, bu yüzden bit 2 1'e ayarlanmıştır. Bit 4: 0 1 1 _ 1 0 1 _ 0 0 1 0 revize _101, 0, hangi 2 içerir, bu yüzden bit 4 0'a ayarlanır. Bit 8: 0 1 1 0 1 0 1 _ 0 0 1 0 _0010 düzeltmek, sadece bir tane ile, bit 8 olarak ayarlayın 1.

Kodlanan sözcük bu nedenle 011010110010'dur.

4. Adım

Kelimeyi onaylayın. Bir kelime bozuksa, eşlik bitleri beklenenden eşleşmeyecektir. Bir kelimenin bozuk olmadığını doğrulamak için, yalnızca iki ve üç numaralı adımlarla eşlik bitlerini hesaplamanız gerekir. Eğer bitlerden herhangi biri uyuşmuyorsa, pozisyonlarını kaydedin.

Adım 5

Kötüyü tamir et. Yanlış eşlik bitlerini bulursanız, yalnızca bitlerin konumlarını ekleyin. Toplam yanlış bitin pozisyonudur. Bu konumdaki bitin değerini taşıyın.

Örneğin, eşlik biti bir ve dört bit yanlışsa, hatayı düzeltmek için beşinci beşinci değerin değerini çevirin.