Pengkodean saluran adalah teknik yang digunakan dalam komunikasi digital untuk memastikan transmisi diterima dengan sedikit atau tanpa kesalahan. Berbagai metode pengkodean yang dapat digunakan dicapai dengan menjalin digit biner tambahan ke dalam transmisi. Ketika diterjemahkan di sisi penerima, transmisi dapat diperiksa untuk kesalahan yang mungkin terjadi dan, dalam banyak kasus, diperbaiki. Di lain waktu, penerima hanya meminta transmisi lagi.
Ide di balik pengkodean saluran dikembangkan karena adanya kesalahan yang tak terhindarkan pada jenis saluran komunikasi tertentu. Gelombang radio, sinyal listrik, dan bahkan gelombang cahaya melalui saluran serat optik akan memiliki sejumlah noise pada media, serta degradasi sinyal yang terjadi pada jarak tertentu. Menjadi seperti masalah umum dalam komunikasi, banyak teori tentang bagaimana menghadapinya telah dikembangkan di bawah cabang matematika terapan seperti teori informasi dan teori pengkodean.
Salah satu metode yang umum digunakan disebut automatic repeat request (ARQ), yang hanya melibatkan penerima memeriksa kesalahan transmisi dan meminta pengiriman ulang jika terjadi. Ini kadang-kadang disebut sebagai koreksi kesalahan mundur. Pengkodean saluran, di sisi lain, adalah teknik koreksi kesalahan maju (FEC). Pengirim menyiapkan bit untuk transmisi menggunakan algoritma khusus yang dikenal sebagai kode koreksi kesalahan, yang kemudian diterjemahkan di sisi penerima. Kedua metode ini juga sering digunakan secara hibrid, memungkinkan kesalahan kecil dalam transmisi diperbaiki dengan kode saluran, dengan kesalahan besar yang memerlukan transmisi ulang lengkap.
Teknik pengkodean saluran pertama diciptakan oleh seorang matematikawan bernama Richard Hamming, yang mengembangkan apa yang dikenal sebagai kode Hamming. Ini adalah kode koreksi kesalahan maju pertama, yang memerlukan dimasukkannya digit biner tambahan dalam transmisi yang disebut bit paritas. Perhitungan cerdas dari bit paritas di ujung penerima transmisi akan mengungkapkan jika ada kesalahan yang terjadi dalam transmisi, di mana mereka berada dalam string bit, dan bagaimana memperbaikinya untuk memulihkan transmisi asli.
Kode Hamming termasuk dalam keluarga metode pengkodean saluran yang disebut sebagai kode blok, yang banyak dikembangkan selama bertahun-tahun. Kode blok biasanya melibatkan bit yang dikumpulkan menjadi blok dengan panjang tetap, yang kemudian disebut sebagai kata kode. Setiap kata kode diberikan bit pengecekan yang sesuai untuk decoding oleh penerima. Metode kode blok cenderung meningkatkan ukuran transmisi karena penambahan bit dalam kata kode, yang dapat berdampak pada bandwidth saluran.
Metode pengkodean saluran lainnya dikenal sebagai kode konvolusi. Metode ini jauh lebih cepat dan dapat mengkodekan aliran bit dengan panjang berapa pun. Salah satu kode yang umum digunakan dari jenis ini disebut kode Viterbi, dibuat oleh matematikawan Italia Andrew Viterbi. Kelemahan dari metode ini adalah bahwa seiring bertambahnya panjang kode konvolusi, begitu pula kompleksitasnya saat decoding. Dalam banyak kasus, kode konvolusi digunakan dalam kombinasi dengan kode blok dalam apa yang dikenal sebagai kode koreksi kesalahan bersambung.