Hamming CodeDeteksi dan Koreksi Kesalahan dengan Contoh

⚡ Ringkasan Cerdas

Kode Hamming adalah kode koreksi kesalahan linier yang menambahkan bit paritas redundan pada posisi pangkat dua, memungkinkan penerima untuk mendeteksi kesalahan hingga dua bit dan secara otomatis mengoreksi kesalahan satu bit selama transmisi data.

  • 🧭 Tujuan: Kode Hamming mendeteksi dan memperbaiki kesalahan transmisi dengan menyematkan bit paritas yang menunjukkan posisi pasti dari bit yang rusak.
  • 🔢 Bagian yang berlebihan: Jumlah bit paritas (p) memenuhi aturan 2^p ≥ n + p + 1, di mana n adalah jumlah bit data.
  • 📍 Penempatan: Bit paritas menempati posisi pangkat dua — 1, 2, 4, dan 8 — sedangkan bit data mengisi posisi yang tersisa.
  • 🧮 Hamming(7,4): Bentuk umum mengkodekan empat bit data menjadi total tujuh bit menggunakan tiga bit paritas.
  • 🧯 Keterbatasan: Kode Hamming standar hanya mengoreksi kesalahan satu bit; bit paritas keseluruhan tambahan menambahkan deteksi kesalahan ganda (SECDED).
  • 🤖 Bantuan AI: Dekoder pembelajaran mesin membantu menandai saluran yang bising dan pola kesalahan yang mungkin terlewatkan oleh kode tetap saja.

Deteksi dan koreksi kesalahan kode Hamming dengan bit paritas

Apa itu Kesalahan?

TransmitData yang dikirim dapat mengalami kerusakan selama komunikasi. Data tersebut kemungkinan terpengaruh oleh gangguan eksternal atau kegagalan fisik lainnya. Dalam situasi seperti itu, data masukan tidak mungkin sama dengan data keluaran. Ketidaksesuaian ini dikenal sebagai "Kesalahan."

Kesalahan data dapat menyebabkan hilangnya data penting atau data yang aman. Sebagian besar transfer data dalam sistem digital berbentuk "transfer bit," dan bahkan perubahan kecil pada satu bit saja dapat memengaruhi kinerja seluruh sistem. Dalam urutan data, jika angka 1 diubah menjadi 0, atau angka 0 diubah menjadi 1, hal itu disebut "kesalahan bit."

Jenis Kesalahan

Pada dasarnya ada tiga jenis kesalahan bit yang terjadi ketika data transmitdikirim dari pengirim ke penerima. Diagram di bawah ini menggambarkan bagaimana setiap jenis memengaruhi urutan data:

Diagram yang membandingkan kesalahan bit tunggal, bit ganda, dan kesalahan beruntun dalam urutan data biner.

  • Kesalahan bit tunggal
  • Kesalahan beberapa bit
  • Kesalahan meledak

Kesalahan Bit Tunggal

Perubahan yang dilakukan pada satu bit dalam keseluruhan rangkaian data dikenal sebagai "kesalahan satu bit". Terjadinya kesalahan satu bit tidak begitu umum. Hal ini sebagian besar terjadi dalam sistem komunikasi paralel, karena data ditransfer bit demi bit pada jalur terpisah, sehingga ada kemungkinan lebih tinggi bahwa satu jalur menjadi bising sementara jalur lainnya tetap bersih.

Kesalahan Beberapa Bit

Ketika dua bit atau lebih dari suatu urutan data berubah antara transmitPada terminal dan penerima, hal ini dikenal sebagai "kesalahan multi-bit."

Jenis kesalahan ini terjadi baik pada jaringan komunikasi data serial maupun paralel.

Kesalahan Meledak

Perubahan pada sekumpulan bit berurutan dalam suatu rangkaian data dikenal sebagai "kesalahan beruntun" (burst error). Panjang kesalahan beruntun diukur dari bit pertama yang berubah hingga bit terakhir yang berubah.

Apa itu Deteksi Kesalahan dan Koreksi Kesalahan?

Dalam sistem komunikasi digital, kesalahan dapat terjadi saat data berpindah dari satu perangkat ke perangkat lain. Jika kesalahan ini tidak terdeteksi dan diperbaiki, data akan hilang. Untuk komunikasi yang efektif, data harus ditransfer dengan akurasi tinggi, yang dicapai dengan terlebih dahulu mengidentifikasi kesalahan dan kemudian memperbaikinya.

Deteksi kesalahan adalah metode untuk menemukan kesalahan yang ada dalam data. transmitted dari sebuah transmitter ke penerima di komunikasi data sistem.

Kode redundansi digunakan untuk menemukan kesalahan ini dengan menambahkan bit tambahan ke data ketika data tersebut transmitDiambil dari sumbernya. Bagian tambahan ini disebut "kode pendeteksi kesalahan." Tiga jenis kode pendeteksi kesalahan yang paling umum adalah:

  • Pengecekan Paritas
  • Cyclic Redundancy Check (CRC)
  • Pemeriksaan Redundansi Longitudinal (LRC)

Pengecekan Paritas

  • Ini juga dikenal sebagai pemeriksaan paritas.
  • Ini menyediakan mekanisme yang hemat biaya untuk deteksi kesalahan.
  • Dalam teknik ini, bit redundan yang ditambahkan ke setiap unit data dikenal sebagai bit paritas. Bit ini diatur sedemikian rupa sehingga jumlah total angka 1 dalam unit menjadi genap (paritas genap) atau ganjil (paritas ganjil).

Pemeriksaan Redundansi Longitudinal

Dalam teknik deteksi kesalahan ini, blok bit disusun dalam sebuah tabel. Metode LRC menghitung bit paritas untuk setiap kolom, dan kumpulan bit paritas ini dikirim bersama dengan data asli. Blok bit paritas membantu penerima memeriksa redundansi dan mendeteksi kesalahan.

Pemeriksaan Redundansi Siklik

Cyclic Redundancy Check menambahkan serangkaian bit redundan ke akhir unit data sehingga unit data yang dihasilkan menjadi habis dibagi oleh bilangan biner kedua yang telah ditentukan sebelumnya.

Di tempat tujuan, data yang masuk dibagi dengan angka yang sama. Jika tidak ada sisa, unit data dianggap benar dan diterima. Jika tidak, itu menunjukkan bahwa unit data rusak selama transmisi, dan harus ditolak.

Apa itu Hamming? Code?

Kode Hamming adalah kode linier yang berguna untuk mendeteksi hingga dua kesalahan bit langsung dan mengoreksi kesalahan bit tunggal. Koreksi kesalahan jenis ini biasanya beroperasi pada lapisan tautan data, membingkai data dan memeriksa integritasnya antara node yang berdekatan.

Dalam kode Hamming, sumber mengkodekan pesan dengan menambahkan bit redundan. Bit redundan ini disisipkan dan dihasilkan pada posisi tertentu dalam pesan untuk melakukan proses deteksi dan koreksi kesalahan.

Sejarah Hamming Code

  • Kode Hamming adalah teknik yang dikembangkan oleh RW Hamming untuk mendeteksi dan memperbaiki kesalahan.
  • Metode ini dapat diterapkan pada unit data dengan panjang berapa pun dan menggunakan hubungan antara bit data dan bit redundansi.
  • Hamming mengerjakan masalah koreksi kesalahan dan mengembangkan serangkaian algoritma yang semakin canggih.
  • Pada tahun 1950, ia menerbitkan kode Hamming, yang masih banyak digunakan hingga saat ini dalam aplikasi seperti memori ECC.

Penerapan Hamming Code

Berikut beberapa aplikasi umum dari kode Hamming:

  • Satelit
  • Memori komputer (ECC RAM)
  • modem
  • Kamera Plasma
  • Buka konektor
  • Kawat terlindung
  • Prosesor tertanam

Keuntungan dari Hamming Code

  • Kode Hamming efektif pada jaringan di mana aliran data rentan terhadap kesalahan satu bit.
  • Ini tidak hanya mendeteksi kesalahan bit tetapi juga membantu Anda mengidentifikasi bit yang mengandung kesalahan sehingga dapat diperbaiki.
  • Kemudahan penggunaan kode Hamming membuatnya sangat cocok untuk memori komputer dan koreksi kesalahan tunggal.

Kelemahan Hamming Code

  • Ini adalah kode deteksi dan koreksi kesalahan satu bit. Jika beberapa bit ditemukan salah, hasilnya dapat membalik bit lain yang sebenarnya benar, sehingga merusak data lebih lanjut.
  • Algoritma kode Hamming hanya dapat menyelesaikan masalah bit tunggal.

Cara Mengenkode Pesan di Hamming Code

Proses yang digunakan pengirim untuk mengenkode pesan melibatkan tiga langkah berikut:

  • Hitung jumlah total bit yang berlebihan.
  • Tentukan posisi bit yang berlebihan.
  • Hitung nilai setiap bit yang berlebihan.

Ketika bit-bit yang berlebihan disematkan di dalam pesan, kode kata lengkap akan dikirim ke penerima.

Langkah 1) Hitung jumlah total bit redundan.

Anggaplah pesan tersebut berisi n bit data dan p bagian yang berlebihan, ditambahkan sehingga 2p dapat menunjukkan setidaknya (n + p + 1) keadaan yang berbeda.

Di sini, (n + p) memperhitungkan lokasi kesalahan di setiap posisi bit (n + p), dan satu keadaan tambahan menunjukkan tidak ada kesalahan. Karena p bit paritas dapat menunjukkan 2p negara bagian, 2p harus setidaknya sama dengan (n + p + 1).

Langkah 2) Tempatkan bagian-bagian yang berlebihan pada posisi yang tepat.

Bit-bit redundan p ditempatkan pada posisi bit yang merupakan pangkat 2 — misalnya, 1, 2, 4, 8, dan 16. Bit-bit ini disebut sebagai p.1 (di posisi 1), hal2 (di posisi 2), hal3 (pada posisi 4), dan seterusnya.

Langkah 3) Hitung nilai setiap bit redundan.

Setiap bit redundan adalah bit paritas yang membuat jumlah angka 1 dalam kelompoknya menjadi genap atau ganjil. Dua jenis paritas tersebut adalah:

  • Kesetaraan: Jumlah total angka 1 pada posisi yang tertutupi dibuat genap.
  • Paritas ganjil: Jumlah total angka 1 pada posisi yang tertutupi dibuat ganjil.

Setiap bit paritas mencakup serangkaian posisi tertentu, yang ditentukan oleh representasi biner dari nomor posisi:

  • p1 Memeriksa setiap posisi yang nilai binernya memiliki angka 1 pada bit paling tidak signifikan — posisi 1, 3, 5, 7, 9, 11, dan seterusnya.
  • p2 Memeriksa setiap posisi yang nilai binernya memiliki angka 1 pada bit kedua dari kanan — posisi 2, 3, 6, 7, 10, 11, dan seterusnya.
  • p3 Memeriksa setiap posisi yang nilai binernya memiliki angka 1 pada bit ketiga dari kanan — posisi 4 hingga 7, 12 hingga 15, dan seterusnya.

Contoh yang dikerjakan (7,4): Perhatikan keempat bit data tersebut 1011Tiga bit paritas diperlukan (23 = 8 ≥ 4 + 3 + 1), menghasilkan codeword tujuh bit yang disusun sebagai p1 p2 d1 p3 d2 d3 d4. Penempatan data menghasilkan posisi 3, 5, 6, 7 = 1, 0, 1, 1. Menggunakan paritas genap: p1 mencakup posisi 1, 3, 5, 7 (bit 1, 0, 1 → p1 = 0); hal.2 mencakup 2, 3, 6, 7 (bit 1, 1, 1 → p)2 = 1); hal.3 mencakup 4, 5, 6, 7 (bit 0, 1, 1 → p)3 = 0). Yang transmitoleh karena itu kode rahasia ted adalah 0110011.

Cara Menerjemahkan Pesan di Hamming Code

Penerima menerima pesan yang masuk dan melakukan perhitungan ulang untuk menemukan dan memperbaiki kesalahan. Proses perhitungan ulang menggunakan langkah-langkah berikut:

  • Hitung jumlah bit yang berlebihan.
  • Atur posisi semua bagian yang berlebihan dengan benar.
  • Lakukan pengecekan paritas.

Langkah 1) Hitung jumlah bit yang berlebihan. Gunakan rumus yang sama seperti untuk pengkodean: 2p ≥ n + p + 1, di mana n adalah jumlah bit data dan p adalah jumlah bit redundan.

Langkah 2) Posisikan semua bit yang berlebihan dengan benar. Setiap bit redundan berada pada posisi bit yang merupakan pangkat 2 — misalnya, 1, 2, 4, dan 8.

Langkah 3) Lakukan pengecekan paritas. Bit paritas dihitung ulang dari bit data dan bit redundan yang diterima:

  • p1 = paritas(1, 3, 5, 7, 9, 11, …)
  • p2 = paritas(2, 3, 6, 7, 10, 11, …)
  • p3 = paritas(4–7, 12–15, 20–23, …)

Bit paritas yang dihitung ulang bersama-sama membentuk bilangan biner. Jika bilangan tersebut nol, tidak ada kesalahan; jika tidak, nilainya memberikan posisi pasti dari bit yang rusak, yang kemudian dibalik untuk memperbaiki pesan.

Pertanyaan Umum Demo Slot

Jarak Hamming adalah jumlah posisi bit di mana dua string biner dengan panjang yang sama berbeda. Dalam kode koreksi kesalahan, jarak Hamming minimum antara codeword yang valid menentukan berapa banyak kesalahan yang dapat dideteksi atau dikoreksi. Kode Hamming standar memiliki jarak minimum tiga.

Hamming(7,4) mengkodekan empat bit data menjadi codeword tujuh bit dengan menambahkan tiga bit paritas. Ia mengoreksi kesalahan satu bit dan mendeteksi kesalahan dua bit. Notasi (n, k) menyatakan panjang codeword total n dan jumlah bit data k.

Satu bit paritas hanya mendeteksi sejumlah kesalahan bit ganjil dan tidak dapat menemukan atau memperbaikinya. Kode Hamming menggunakan beberapa bit paritas pada posisi pangkat dua, sehingga dapat menentukan bit yang gagal secara tepat dan memperbaikinya secara otomatis.

Kode Hamming dasar mengoreksi kesalahan satu bit tetapi mungkin salah mengoreksi kesalahan dua bit. Menambahkan satu bit paritas keseluruhan yang mencakup seluruh codeword menciptakan SECDED (koreksi kesalahan tunggal, deteksi kesalahan ganda), meningkatkan jarak minimum menjadi empat dan mendeteksi kesalahan dua bit dengan andal.

Deteksi dan koreksi kesalahan terutama terjadi pada lapisan tautan data. Model OSI, yang membingkai data dan memeriksa integritasnya antara node yang berdekatan. Protokol lapisan transport menambahkan pemeriksaan ujung-ke-ujung, sementara media fisik memperkenalkan gangguan yang dihindari oleh kode-kode ini.

Kode Hamming adalah kode blok linier. Kode ini memproses blok bit data berukuran tetap sekaligus dan menambahkan bit paritas, tidak seperti kode konvolusi yang mengkodekan aliran bit kontinu menggunakan memori bit sebelumnya. Hal ini membuat kode Hamming sederhana dan cepat.

Model pembelajaran mesin mempelajari pola derau suatu saluran dan memprediksi kemungkinan kesalahan bit, sehingga meningkatkan akurasi dekoding melampaui skema tetap. Dekoder berbasis AI untuk kode LDPC dan polar kini membantu sistem 5G dan penyimpanan modern di mana kode Hamming klasik saja tidak mencukupi.

Kopilot GitHub Dapat membuat kerangka fungsi encoder dan decoder, menghasilkan mask bit paritas, dan menyusun uji unit dari komentar singkat. Memverifikasi perhitungan posisi bit dan grup paritas.pingPerhatikan dengan saksama, karena pengindeksan yang salah satu posisi sering menjadi sumber kesalahan dalam kode yang dihasilkan.

Ringkaslah postingan ini dengan: