# Kodlama teorisi
Kodlama teorisi, kodların özelliklerinin ve bunların belirli uygulamalar için uygunluğunun incelenmesini sağlayan bir teoridir. Kodlar, veri sıkıştırma, kriptografi, hata algılama ve düzeltme, veri iletimi ve veri depolama için kullanılabilir. Kodlar, verimli ve güvenilir veri aktarım yöntemlerinin tasarlanması amacıyla bilgi teorisi, elektrik mühendisliği, matematik, dilbilim ve bilgisayar bilimi gibi çeşitli bilimsel disiplinler tarafından incelenir. Bu genellikle fazlalığın kaldırılmasını ve iletilen verilerdeki hataların düzeltilmesini veya tespit edilmesini içerir.
Dört tür kodlama tipi vardır:
  - Veri sıkıştırma (veya "kaynak kodlama")
  - Hata kontrolü (veya "kanal kodlaması")
  - Kriptografik kodlama
  - Hat kodlama
Veri sıkıştırma, verileri daha verimli bir şekilde iletmek için veri içinde bulunan fazlalığı bir kaynaktan kaldırmaya çalışır. Örneğin, ZIP veri sıkıştırması, İnternet trafiğini azaltmak gibi amaçlarla veri dosyalarını küçültür. Veri sıkıştırma ve hata düzeltme birlikte incelenebilir.
Hata düzeltme, veri aktarımı sırasında kanalı mevcut bozulmalara karşı daha sağlam hale getirmek için fazladan veri bitleri ekler. Sıradan bir kullanıcı, hata düzeltmeyi kullanan uygulamaların farkında olmayabilir. Tipik bir müzik CD'si, çizikleri ve tozu düzeltmek için Reed-Solomon kodunu kullanır. Bu uygulamada iletim kanalı CD'nin kendisidir. Cep telefonları ise radyo iletiminin zayıflamasını ve gürültüsünü düzeltmek için kodlama teknikleri kullanır. Veri modemleri, telefon aktarımları ve NASA Derin Uzay Ağı, örneğin turbo kodu ve LDPC kodları gibi bitleri almak için kanal kodlama tekniklerini kullanır.


## Sinirsel kodlama.
Sinirsel kodlama, duyusal ve diğer bilgilerin beyindeki nöron ağlarınca nasıl işlendiğini araştıran, sinirbilimle ilgili bir alandır. Sinirsel kodlamayı incelemenin temel amacı, uyaran ile bireysel veya toplu nöronal tepkiler arasındaki ilişkiyi ve topluluktaki nöronların elektriksel aktivitesi arasındaki ilişkiyi karakterize etmektir. Nöronların hem dijital hem de analog bilgiyi kodlayabildiği, nöronların bilgi teorisi prensiplerini takip edip bilgiyi sıkıştırdığı, beyin ve daha geniş sinir sistemi boyunca gönderilen sinyallerdeki hataları tespit edip düzelttiği düşünülmektedir.


## Kodlama teorisinin diğer uygulamaları.
Kodlama teorisinin bir başka amacıda senkronizasyona yardımcı olan kodlar tasarlamaktır. Bir kod, bir faz kaymasının kolayca tespit edilebileceği ve düzeltilebileceği ve aynı kanal üzerinde çok sayıda sinyalin gönderilebileceği şekilde tasarlanabilir. Bazı cep telefonu sistemlerinde kullanılan başka bir kod uygulaması, kod bölmeli çoklu erişimdir (CDMA). Her telefona, diğer telefonların kodlarıyla yaklaşık olarak ilgisiz olan bir kod dizisi atanır. İletim sırasında, kod sözcüğü sesli mesajı temsil eden veri bitlerini modüle etmek için kullanılır. Alıcıda, verileri kurtarmak için bir demodülasyon işlemi gerçekleştirilir. Bu kod sınıfının özellikleri, birçok kullanıcının (farklı kodlarla) aynı radyo kanalını aynı anda kullanmasına izin verir. Alıcıya, diğer kullanıcıların sinyalleri demodülatöre yalnızca düşük seviyeli bir gürültü olarak görünecektir.


### Grup testi.
Grup testi, kodları farklı bir şekilde kullanır. Çok azının belirli bir şekilde farklı olduğu geniş bir öğe grubunu düşünün (örneğin, kusurlu ürünler veya enfekte test denekleri). Grup testinin amacı, mümkün olduğunca az test kullanarak hangi öğelerin "farklı" olduğunu belirlemektir. Sorunun kökeni, İkinci Dünya Savaşı'nda Birleşik Devletler Hava Kuvvetleri'nin askerlerinin frengi için test başlatmasına dayanıyor.


### Analog kodlama.
Bilgi, beyinlerin sinir ağlarında, analog sinyal işlemede ve analog elektroniklerde benzer şekilde kodlanır. Analog kodlamanın yönleri arasında analog hata düzeltme, analog veri sıkıştırma ve analog şifreleme bulunur.


## Bibliyografya.
  - Elwyn R. Berlekamp (2014), "Algebraic Coding Theory", World Scientific Publishing (revised edition), .
  - MacKay, David J. C.. "Information Theory, Inference, and Learning Algorithms" Cambridge: Cambridge University Press, 2003. 
  - Vera Pless (1982), "Introduction to the Theory of Error-Correcting Codes", John Wiley & Sons, Inc., .
  - Randy Yates, "A Coding Theory Tutorial".