Veri haberleşmesinde hatalar 1
Hata türleri Sayısal iletişimde hata, bitlerin alınması ve gönderilmesi sırasında oluşur. 1 gönderildiğine 0 algılanması, ayad 0 gönderildiğinde 1 algılamsaı İki genel hata türü Tek bitlik hatalar Bir bit değişir Bitişik bitler etkilenmez Beyaz gürültü grup hatalar Genellikle impulsif gürültüler yada çok yollu algılama nedeniyle ortaya çıkar. B bitlik bir grubun, başlangıcı, sonu ve ortadaki bazı bitler hatalıdır. Daha sık rastlanır. Çözümü daha zordur. Yüksek hızlarda, daha etkindir. 2
Hata Algılama Veri çerçeveler halinde gönderildiğinde, çerçeveyi uzatmak, hata olasılığını artıracaktır. Çerçeve boyutlarının büyük olması daha verimli bir haberleşmeyi gerçekleştir. Bu nedenle bit hatalarını algılamak ve düzeltebilmek için çerçevelere ek bitler eklenir. Alıcı göndericinin ek bitleri üretmek için kullandığı yöntemin aynısını kullanarak yeniden ek bitleri elde eder. Eğer ek bitler aynı ise alınan veri doğrudur. Yinede algılanamayan hatalar olabilir. Bu hata algılama yapılarının etkinliği ile ilgilidir. 3
Hata algılama yapısı 4
Hata Algılama yöntemleri Üç önemli yöntemden bahsedilebilir Parity Check Kontrol Toplamları (Checksum) Peryodik Artıklık Kontrolü (CRC) 5
Parite kontrolü En basit kodlama yöntemidir. Her bir veri bloğuna parite biti eklenir. Parite biti o bloktaki, parite biti de dahil olmak üzere, birlerin sayısıdır Ya çift (even parity) yada tek (odd parity) olur Eğer ASCII G (1110001) çift parite ile aktarılacaksa Gönderilecek veri 11100010 (son bit parite bitidir) Eğer ASCII G (1110001) tek parite ile aktarılacaksa Gönderilecek veri 11100011 (son bit parite bitidir) Parite bitinin nerede gönderileceği standartlara göre değişir. Tek bitlik hatalarda çözüm sunar. Grup hatalarında etkin değildir. Hata algılamayı sağlar. Düzeltme sağlamaz. Uzun veri bloklarında, yada yüksek veri hızlarında uygun değildir. 6
Kontrol toplamları Basit bir yöntemdir. Bir yada daha fazla bit bozulmasında hata algılamayı sağlar. Birden fazla bit bozulmasında hata algılaması garantili değildir. Karakter tabanlı iletişimler için uygundur. Gönderilen veri dizisinin toplanmasıyla elde edilir. Aynı yöntem alıcıda da uygulanır. 7
Peryodik Artıklık Testi (CRC) Veri haberleşmesinde kullanılan daha karömaşık bir yapıdır. K bitlik bir blok için gönderici n bitlik bir dizi elde eder Gönderici, önceden belirlenmiş bir sayı (bölen) tarafından tam olarak bölünebilen k+n bitlik diziyi gönderir. Alıcı gelen k+n lik bloğu bölen sayısına böler. Eğer kalan olmaz ise, hata yoktur. Uygun bir biçimde belirlenmiş bölenler kullanıldığında, hemem, hemen tüm hataları algılar. Bu işlem modulo 2 aritmetikle Polinomlarla Gerçekleştirilebilir. 8
Mod 2 aritmetik CRC hesaplamasında mod 2 aritmetik kullanılır. Buda yalnızca bir EXOR işlemidir. 9
CRC örneği (Mod 2 aritmetik) Gönderilecek Mesaj: 11001 (5 bit) ve bölen 1101 olsun. 3 bitlik FCS. yi hesaplayın Gönderici Alıcı Kalan yok Gönderilen veri:11001010 10
Polinomsal Yaklaşım 11
Bölen = 1101011 10101 12
Ödev En çok kullanılan CRC bölen polinomlarından birisi 0x 8005 polinomudur. Bu polinomu kullanarak numaranızın ASCII karşılık tablosundan, Numaralarının son rakamı 0-1 olanlar ilk 4 rakamı Numaralarının son rakamı 2-4 olanlar ilk 5 rakamı Numaralarının son rakamı 5-7 olanlar ilk 6 rakamı Numaralarının son rakamı 8-9 olanlar ilk 7 rakamı kullanarak oluşturacakları veri bloğuna ilişkin CRC yi Matlab da hesaplayan yazılımı yazınız. Süre 2 haftadır. 13
İleri yönlü hata düzeltme (FEC) Bazı durumlarda alıcının hataları düzeltmesi istenir. Kablosuz haberleşme Uydu haberleşmesi Daha güçlü hata algılama yöntemleri, hata düzeltmeyi de sağlayabilir. Gönderilen veri dizisi, bitlerin hatalı olduğu yerleri düzeltebilmek için yeterince fazlalık bitine sahip olmalıdır. Bu kodun Hamming uzaklığı ile ölçülür. Hata yoksa orijinal veri çıkışa aktarılır. Bazı hatalar algılanabilir ve düzeltilebilir. Bazı hatalar algılanabilir ancak düzeltilemez Nadir durumlarda bazı hatalar algılanamaz 14
15
Blok kodlama Hamming uzaklığı d(v1,v2) arasındaki farklı bitleri göstermektedir. Örneğin d(011011,110001) = 3 tür Aşağıdaki haritalamayı düşünelim k=2, n=5 olsun Data Kod Kelimesi 00 00000 01 00111 10 11001 11 11110 Şimdi 00100 alınmış olsun. Böyle bir kod olmadığı için hata vardır. Peki düzeltilebilirmi. Algılana kodun diğerleriyle hamming uzaklığını hesaplayalım. d(00100,00000) = 1, d(00100,00111) = 2, d(00100,11001) = 4, d(00100,11110) = 3. Burada Hamming uzaklığı minimum olan doğru yanıt olacaktır. 16
Eğer algılanan dizinin hamming uzaklığına ilişkin minimuma iki yada daha fazla sayısa ayrı kodda karşılaşılırsa, bu hata düzeltilemez Şimdi Kodlar arasındaki hamming uzaklıklarını düşünelim d(00000,00111) = 3; d(00000,11001) = 3; d(00000,11110) = 4; d(00111,11001) = 4; d(00111,11110) = 3; d(11001,11110) = 3; Geçerli kodlar arasındaki minimum uzaklık 3 tür. Bunun anlamı 1 bitlik hataların mutlaka düzeltilebileceğidir. 2 bitlik hatalar algılanabilir. Ancak 3 bitlik hatalar bazen algılanamayabilir. Herbir bit hatası, Hamming uzalığını 1 artırır. Genel olarak t bitlik bir hatayı düzeltebilmek için kod kelimeleri arasındaki Hamming uzaklığı 2t+1olmalıdır. Bunu yanısıra konvolüsyonel kodlar, reed-solomon kodları da bu amaçla kullanılır. 17