deteksi kesalahan dan perbaikan skema coding

32
SISTEM KOMUNIKASI NIRKABEL DAN SATELIT DOSEN : GEDE SUKADARMIKA TUGAS 2 Oleh: Rizky Aji Prayitno (1004405025) Komang oka kurniya devayama (1004405034) I Gusti Agung Made Yudhi Diasnanta (1004405081) I Gede Nengah Semara Putra (1004405087) FAKULTAS TEKNIK

Upload: oka-kurniya

Post on 28-Dec-2015

57 views

Category:

Documents


2 download

DESCRIPTION

error deteksion

TRANSCRIPT

Page 1: Deteksi Kesalahan Dan Perbaikan Skema Coding

SISTEM KOMUNIKASI NIRKABEL DAN SATELIT

DOSEN : GEDE SUKADARMIKA

TUGAS 2

Oleh:

Rizky Aji Prayitno (1004405025)Komang oka kurniya devayama (1004405034)I Gusti Agung Made Yudhi Diasnanta (1004405081)I Gede Nengah Semara Putra (1004405087)

FAKULTAS TEKNIK

UNIVERSITAS UDAYANA

2014

Page 2: Deteksi Kesalahan Dan Perbaikan Skema Coding

Deteksi Kesalahan dan Perbaikan

Skema Coding

Teknik pengkodean atau coding digunakan untuk beberapa alasan: pengurangan dc yang menyimpang, pengurangan interferensi intersymbol, dan kemampuan self-clocking. Masalah-masalah tersebut adalah untuk kepentingan engineering dalam transmisi data digital. Skema coding yang dibahas dalam bab ini adalah untuk deteksi dan koreksi kesalahan, khususnya teknik Forward Error Correction (FEC). Kode FEC dapat dibagi menjadi dua kelas kode, yaitu kode blok linear dan kode convolutional. Tergantung pada tujuan penggunaan kode, FEC memungkinkan penerima tidak hanya untuk mendeteksi kesalahan tetapi juga untuk memfasilitasi perbaikannya. Untuk meningkatkan pemahaman pembaca dari materi pelajaran, kita akan memperkenalkan prinsip channel coding, diikuti dengan skema coding dan decoding.

6.1 CHANNEL CODING

Noise dalam saluran transmisi pasti menyebabkan perbedaan atau kesalahan

antara input channel dan output channel. Suatu channel adalah bagian tertentu dari kapasitas pembawa informasi dari network interface yang ditentukan oleh tingkat transmisi tertentu. Coding memungkinkan penerima untuk mendecode sinyal kode yang masuk, tidak hanya untuk mendeteksi kesalahan tetapi juga untuk memperbaikinya. Efektif encoding sinyal. Dengan efektif meng-encode sinyal dari sumber diskrit dan mendekati batas Shannon yang ditentukan dapat dicapai dengan kombinasi simbol dalam blok besar dan dengan penerapan metode coding khusus seperti kode Huffman dan kode Fano1. Untuk klarifikasi, istilah ''kompresi data'' dan ''effective encoding” dapat dikatakan sebagai sinonim: berarti redundansi yang dihilangkan dari aslinya sinyal, yang berarti bahwa redundansi dieliminasi dari sinyal asli, dan kemudian dikodekan secara ekonomis dengan jumlah simbol biner seminimum mungkin. Sebuah encoder melakukan penghapusan redundansi. Penerapan metode encoding yang efektif pada dasarnya mengurangi tingkat saluran transmisi yang diperlukan. Secara umum, jika k digit biner memasuki encoder channel, dan output channel encoder n digit biner, maka tingkat kode dapat didefinisikan sebagai

Page 3: Deteksi Kesalahan Dan Perbaikan Skema Coding

Theorema channel-coding menentukan kapasitas Cc sebagai batas mendasar pada tingkat di mana transmisi pesan errorfree handal dapat terjadi melalui saluran memoryless diskrit (DMC). Konsep DMC telah dibahas dalam Bab. 3. Sebagai contoh, biarkan sumber memoryless diskrit dengan alfabet X memiliki H(X) entropi dan menghasilkan satu simbol setiap detik Ts. Andaikan bahwa DMC dengan kapasitas Cc (bit/simbol) digunakan sekali setiap detik Tc; maka jika

terdapat skema coding yang sumber outputnya dapat ditransmisikan melalui saluran tersebut dan akan diambil dan diperbaiki dengan probabilitas kesalahan yang kecil. Sebaliknya, mustahil untuk mentransfer informasi melalui saluran dan memperbaiki sumber sinyal dengan probabilitas kesalahan kecil jika

Parameter Cc / Tc disebut tingkat kritis. Ketika H(X)/Ts = Cc/Tc, sistem ini dikatakan beroperasi pada tingkat kritis (pada kapasitas). Baru-baru ini, bagaimanapun, kode convolutional paralel oncatenated telah mencapai kinerja yang mendekati batas teoritis ini. Secara umum, tujuannya adalah untuk mencapai transfer data maksimum bandwidth minimum tetap menjaga kualitas yang dapat diterima transmisi. Untuk mencapai hal ini, kode pendeteksi kesalahan harus dibuat. Solusi yang paling diinginkan adalah dengan menggunakan forward error correction (FEC) technique. Coding deteksi kesalahan adalah teknik untuk menambahkan berlebihan (tambahan) bit ke aliran data sedemikian rupa sehingga kesalahan dalam aliran data dapat dideteksi.

6.2 TEKNIK FORWARD ERROR CORRECTION CODING

Teknik Forward Error Correction (FEC) banyak digunakan dalam kontrol dan telekomunikasi sistem. Kode FEC dapat dibagi menjadi dua jenis besar: kode blok linier dan kode convolutional.

6.2.1 Blok Linear Codes

Dalam kode blok linear, encoder memecah aliran data yang masuk ke blok k digit dan proses setiap blok secara individu dengan menambahkan redundansi (tambahan angka) sebagai cek kecocokan menurut algoritma yang telah ditetapkan. Output dari encoder adalah codeword dengan digit n, di mana n> k. Bentuk umum dari blok codeword linear

Page 4: Deteksi Kesalahan Dan Perbaikan Skema Coding

di mana G adalah matriks generator yang menciptakan bit cek dari data bit, sedangkan input pesan vektor X dan kode (output) vektor Y telah komponen didefinisikan sebagai

Dari matematika dasar, perkalian matriks dapat dilakukan hanya ketika jumlah kolom dalam Y sama dengan jumlah baris dalam matriks X. Oleh karena itu generator matriks G akan memiliki k baris dengan n kolom:

Penambahan yang terjadi pada perkalian matriks mod-2 aritmatika; ini menjadi lebih jelas dalam contoh yang berikut.

Contoh 6.1: Pertimbangkan data pesan X menjadi word data 2-bit dan matriks generator

Kemudian, kodeword Y adalah

Dengan demikian, Y adalah (3, 2) codeword memiliki dua bit data dan satu bit kecocokan. Proses desain kode adalah proses penentuan unsur-unsur matriks pembangkit. Subyek

Page 5: Deteksi Kesalahan Dan Perbaikan Skema Coding

desain Tanpa loss pada umumnya, kode dalam Contoh 6.1 dapat dianggap sistematis. Sebuah kode adalah sistematis jika bit k pertama dari codeword Y merupakan pesan urutan X. Dengan demikian, kode yang sistematis, secara umum, akan memiliki generator matriks dalam bentuk:

Atau

dimana Ik adalah k dengan matriks identitas k. P adalah k sewenang-wenang oleh (n–k)dimensional matriks, yang mewakili (n-k) terakhir dari generator matriks. Kita sekarang siap untuk melihat teknik mendeteksi kesalahan dalam codeword, yang dilakukan dengan menggunakan cek paritas matriks HΔ. Cek paritas berkaitan erat dengan matriks generator berdasarkan

Perlu dicatat bahwa untuk kode sistematis cek paritas dapat ditulis dengan inspeksi dari generator matriks. Kesalahan deteksi dicapai dengan mengalikan codeword yang diterima Z, yang telah rusak, oleh parity check matrix HΔ. Ini adalah proses decoding kode blok linear. Perbanyakan Z dan HΔ disebut sindrom error, S:

Page 6: Deteksi Kesalahan Dan Perbaikan Skema Coding

Sindrom ini adalah kata tunggal dari panjang (n-k): Jumlah cek paritas bit dalam codeword. Jika codeword Z benar, Z = Y; menyiratkan bahwa,

dan

Jika codeword Z error, maka

kesalahan dalam codeword transmisi akan terdeteksi jika e tidak nol, di mana e adalah vektor error. jadi

Sejak YHD dari (6.12a) adalah nol, maka bahwa sindrom error

Jika sindrom S adalah nol, kita tahu bahwa kesalahan telah terjadi dalam transmisi codeword. Sebaliknya, jika sindrom S adalah nol, Z adalah codeword valid. Tentu saja, S juga mungkin nol untuk beberapa kombinasi dari beberapa kesalahan. Decoder efisien menggunakan sindrom untuk mewakili pola kesalahan, yang kemudian dapat diperbaiki. Kode cek paritas sistematis yang lebih rumit adalah kode Hamming. Kode Hamming adalah contoh dari sifat deteksi kesalahan kode blok linear.

Contoh 6.2: Anggap (7, 4) kode Hamming. Kode ini memiliki 4 bit pesan dan 3 bit cek paritas dalam codeword 7-bit. Generator matriks G untuk kode ini diberikan oleh

Page 7: Deteksi Kesalahan Dan Perbaikan Skema Coding

Dengan menggunakan (6.10) cek kecocokan matrik juga dapat berbentuk :

Jika kita menganggap pesan X = (1010), codeword sesuai Y, yang dihasilkan dari (6.4), adalah

Sindrom nya :

Jika bukan valid codeword yang diterima Y, kesalahan dimasukkan ke dalam bit kedua dengan mengubah 0-bit ke 1-bit, dan codeword rusak ditulis sebagai

dimana bit digarisbawahi adalah bit error, maka sindrom codeword yang baru diterima

Karena S adalah nol, dua kesalahan telah terdeteksi, menunjukkan bahwa codeword tidak benar.

Page 8: Deteksi Kesalahan Dan Perbaikan Skema Coding

Contoh 6.3: Jika kata pesan adalah sama seperti pada Contoh 6.2 untuk (7, 4) Hamming kode tapi menerima codeword rusak (i) 1011011 dan (ii) 1110100, menentukan apakah kesalahan ini dapat dideteksi.

Penyelesaian :

Membandingkan (i) dan (ii) dengan X pesan dalam Contoh 6.2 menunjukkan bahwa pesan yang diterima (i) memiliki satu kesalahan saat (ii) memiliki tiga kesalahan yang dimasukkan. Jadi sindrom mereka

Sebuah kesalahan telah terdeteksi sejak S ≠ [0], Menunjukkan bahwa codeword tidak valid.

Sindrom ini adalah nol. Kesalahan yang tidak terdeteksi, karena ini adalah codeword sah dalam (7, 4) set. Hal ini menunjukkan bahwa (7, 4) kode Hamming dapat selalu mampu mendeteksi hingga dua kesalahan: itu juga mengarah pada perumusan aturan berguna yang memberitahu kita berapa banyak kesalahan kode yang diberikan dapat mendeteksi atau benar. Aturan-aturan ini menentukan kemampuan kode blok linear dalam hal berat, WH, jarak, dH, dan jarak minimum, dH, min.

Aturan 1: Jarak minimum (atau jarak Hamming) dH, min dari kode blok linier adalah berat minimum (atau Hamming berat), w, dari setiap codeword nol, ringkas ditulis sebagai

Page 9: Deteksi Kesalahan Dan Perbaikan Skema Coding

Berat (atau Hamming berat) kode vektor Y adalah jumlah komponen nol Y. Jarak (atau jarak Hamming) antara dua kode vektor Y1 dan Y2 adalah jumlah komponen dimana mereka berbeda. Tabel 6.1 digunakan sebagai contoh bagaimana bobot dan jarak dihitung. Hal ini dapat dilihat pada Tabel 6.1 bahwa berat minimum adalah 3 dan jarak minimum juga 3.

Aturan 2: Jumlah kesalahan yang dapat dideteksi dalam kode dengan jarak minimal adalah

Jumlah kesalahan yang dapat dihitung ke integer berikutnya terendah adalah

Sebagai contoh, dari Tabel 6.1:

jarak minimum dH, min = 3:

Jumlah kesalahan yang dapat dideteksi nd = 2.

Jumlah kesalahan yang dapat dihitung nc = 1.

Contoh 6.3 telah menunjukkan bahwa mendeteksi lebih dari dua bit yang berada dalam kesalahan menjadi lebih sulit. Hal ini membatasi penggunaan dari aturan umum untuk linear blok teknik coding.

TABEL 6.1 codeword dan Bobot untuk (7,4)

Hamming Kode

Page 10: Deteksi Kesalahan Dan Perbaikan Skema Coding

Cyclic Code

Cyclic code adalah subset dari kode blok linear. Mereka adalah yang paling berguna dan populer karena encoding dan decoding dapat diimplementasikan dengan menggunakan register geser sederhana: deteksi dan koreksi kesalahan yang dicapai dengan register geser dan beberapa gerbang logika tambahan. Dengan kode siklik, pergeseran akhir-sekitar dari codeword yang menghasilkan codeword lain. Sebagai contoh, jika

adalah codeword, maka, menurut definisi, kode siklik juga merupakan codeword dalam bentuk

Ini mengikuti dari atas siklik deskripsi kode yang hanya n - 1 codeword dapat dihasilkan oleh pergeseran siklik dari codeword tunggal .

Encoding dicapai dengan baik menggunakan tahap shift n - k register atau register geser k - tahap . Perhitungan Syndrome untuk decoding dicapai oleh tahap shift n - k register atau register geser tahap k. Sebuah contoh encoding dan decoding dari kode siklik ditunjukkan pada Gambar . 6.1 .

Page 11: Deteksi Kesalahan Dan Perbaikan Skema Coding

Gambar . 6.1 ( a) adalah ( 7 , 4 ) encoder . Ini menghasilkan sebuah codeword 7 - bit menggunakan 3 -tahap register geser (r0 ; r1 ; r2) . Bit pesan membentuk 4 bit pertama dari 7 - bit codeword . Ketika gerbang ditutup dan saklar output diatur ke posisi 1 , bit paling signifikan bit pesan ditransmisikan pertama . Sebagai 4 bit pesan yang dikirim, pintu gerbang dibuka , memungkinkan bit data yang akan bergeser ke register 3 -shift . Setelah 4 bit telah dikirim dan dimasukkan ke dalam register geser , saklar output diatur ke posisi 2 . Isi dari register geser yang kemudian ditransmisikan , membentuk cek bit paritas 3 .

The output buffer dari encoder adalah codeword 7 - bit panjang , yang dimasukkan ke dalam sindrom membentuk bagian dari decoder pada Gambar . 6.1 ( b ) . Output sindrom AND- gated , bertindak sebagai detektor kesalahan . Gerbang AND memberikan biner '' 1 '' keluaran hanya ketika AND masukan sama dengan 100 . Jika DAN output '' 0 , '' bit saat ini dalam codeword yang diterima adalah benar dan urutan yang diterima kemudian bergeser keluar dari decoder .

Kode siklik memiliki kaya sifat aljabar , yang memungkinkan untuk teknik decoding efisien . Sejumlah buku , termasuk Peterson, Lin dan, dan Shamnugam, telah memberikan perlakuan matematis yang sangat baik dari kode siklik yang bertanya pembaca harus berkonsultasi .

Kode BCH

Kode BCH (Bose-Chaudhuri-Hocquenghem) mungkin adalah kelompok yang paling kuat dan fleksibel siklik kesalahan kode koreksi yang tersedia.

Page 12: Deteksi Kesalahan Dan Perbaikan Skema Coding

GAMBAR 6.1 A (7, 4) kode siklik Generator: (a) encoder; (b) decoder.

Desain mereka sangat mudah: menggunakan register geser dan logika sirkuit untuk coding dan decoding. Misalnya, untuk diberikan panjang blok n, kode dapat dirancang dengan jumlah gerbang dan kemampuan koreksi kesalahan. Jika ''ek'' adalah jumlah kesalahan diperbaiki per codeword, kode BCH akan memiliki sifat sebagai berikut:

Panjang register geser: tahap mk:

Block panjang:

Minimum jarak Hamming:

Jumlah cek paritas bit:

Page 13: Deteksi Kesalahan Dan Perbaikan Skema Coding

Bila terjadi kesalahan dalam semburan, jumlah cek paritas bit yang diperlukan untuk memperbaiki kesalahan meledak panjang q memiliki batas bawah yang diberikan oleh

Code ratenya adalah

Contoh 6.4: Anggap (7, 4) kode BCH. Dalam hal ini, n = 7, k = 4. Menggunakan sifat-sifat di atas,

Hasil empiris menunjukkan bahwa kode Hamming adalah satu-mengoreksi kesalahan kode BCH.

Sebuah kelas penting dari kode BCH nonbinary adalah kode Reed-Solomon di mana simbol adalah blok-blok bit. Penting mereka adalah adanya teknik decoding praktis, serta kemampuan mereka untuk memperbaiki semburan kesalahan.

Satu catatan terakhir pada teknik koreksi kesalahan. Dimana serangkaian codeword memiliki short-burst sifat koreksi kesalahan yang baik, seperti link microwave terestrial dengan memudar pendek tapi mendalam, interleaving bit menyediakan teknik alternatif untuk mengoreksi kesalahan pada penerima. Sebagai ilustrasi, jika kita membiarkan bit individu dari sebuah codeword yang diberikan untuk spasi dc bit terpisah, ledakan panjang dc akan merusak hanya satu bit di setiap dc codeword. Error tunggal ini dapat dengan mudah diperbaiki pada penerima, membuat transmisi tahan terhadap semburan kesalahan lagi.

6.2.2. Kode Convolutional

Sebuah coder convolutional adalah sistem memori yang terbatas. Nama'' convolutional'' mengacu pada fakta bahwa bit redundant tambah yang dihasilkan oleh mod-2 convolutions. Sebuah convolutional encoder umum ditunjukkan pada Gambar. 6.2. Ini terdiri dari sebuah shift register tahap L, n penambah mod-2, komutator, dan jaringan koneksi umpan balik antara register geser dan penambah. Jumlah bit dalam aliran data input k. Jumlah bit output untuk setiap urutan k-bit n bit. Sejak n bit yang diproduksi pada output untuk setiap masukan k bit, tingkat kode masih Rc = k / n, sama seperti (6.1).

Page 14: Deteksi Kesalahan Dan Perbaikan Skema Coding

GAMBAR 6.2 kode Convolutional encoder.

Sebuah parameter yang sangat penting dalam pertimbangan pengkodean convolutional adalah kendala atau panjang memori. Panjang kendala didefinisikan sebagai jumlah pergeseran di mana sedikit pesan tunggal dapat mempengaruhi output encoder. Sebagai contoh, jika data pesan input dalam kelompok k bit dan dimasukkan ke register geser tahap L, maka register dapat terus (L/k) kelompok. Mengingat bahwa masing-masing kelompok menghasilkan n bit output, kendala atau panjang memori

Ungkapan ini juga merupakan waktu memori encoder. Contoh 6.5 dan 6.6 akan memberikan pembaca perasaan yang lebih baik untuk operasi encoding convolutional.

Contoh 6.5: Pertimbangkan biner encoder convolutional, tingkat 1 / 2, ditunjukkan pada Gambar. . 6.3 dengan panjang kendala 3, node keluaran n = 2 dan masukan satu digit k = 1 Register geser (r0, r1, r2) pada awalnya diatur untuk membersihkan (yaitu, semua-zero state). Bit pertama dari input stream dimasukkan ke r0. Selama ini pesan bit interval sampel komutator, pada gilirannya, penambah output dan b. Akibatnya, hasil bit tunggal, dalam kasus ini, dua bit keluaran kode; menggunakan fungsi aljabar

Oleh karena itu, encoder adalah tingkat 1 / 2. Pesan berikutnya (input) bit kemudian memasuki r0, sedangkan bit awalnya transfer r0 ke r1, dan komutator lagi

Page 15: Deteksi Kesalahan Dan Perbaikan Skema Coding

GAMBAR 6.3 Tingkat 1/2 convolutional encoder.

sampel dua mod-2 output adder. Proses ini berlanjut sampai akhirnya bit terakhir dari pesan (input) bit telah masuk ke r0. Setelah itu, untuk memastikan bahwa setiap data input bit dapat melanjutkan sepenuhnya melalui register geser, dan karenanya harus terlibat dalam proses coding selesai, cukup nol'' 0'' ditambahkan ke pesan untuk mentransfer bit pesan terakhir melalui r2 dan, dengan demikian , dari register geser. Register geser menemukan dirinya dalam awal state -semua nol (seperti dalam Tabel 6.2, Kolom 1, Shift 8). Hal ini dapat diverifikasi, dengan contoh.

Jika input stream ke encoder adalah urutan lima-bit:

maka output stream bit dikodekan (lihat Tabel 6.2)

TABEL 6.2 Tabel Daftar Isi untuk Decoding

Page 16: Deteksi Kesalahan Dan Perbaikan Skema Coding

Metode alternatif menggambarkan kode konvolusi adalah diagram pohon, diagram teralis, dan diagram state. Contoh 6.6 akan digunakan untuk mengeksplorasi metode alternatif.

Contoh 6.6: Pertimbangkan biner encoder convolutional, tingkat 1/3, ditunjukkan pada Gambar. 6.4. Angka ini mirip dengan Gambar. 6.3 kecuali bahwa output ” v1” diberi makan langsung dari r0. Untuk setiap pesan (input) bit, urutan (v1 v2 v3) yang dihasilkan. Ini mengikuti dari Gambar. 6.4 bahwa urutan keluaran diberikan oleh

Karena bit pertama dalam urutan output adalah bit pesan, kode ini convolutional tertentu sistematis. Akibatnya, v2 dan v3 dapat dilihat sebagai cek paritas bit.

Urutan output untuk urutan masukan sewenang-wenang sering ditentukan dengan menggunakan pohon kode. Sebagai contoh, diagram pohon untuk convolutional encoder di atas diilustrasikan pada Gambar. 6.5. Awalnya, encoder diatur untuk sebuah state semua nol. Diagram pohon menunjukkan bahwa jika pesan pertama (input) bit ''0'', urutan output ''000'' dan, jika pertama bit input ''1'', urutan output 111. Jika pertama bit input sekarang ''1'' dan bit kedua adalah ''0'', set kedua dari tiga bit output akan 001. Melanjutkan melalui pohon, kita akan mampu menunjukkan bahwa jika bit input ketiga adalah ''0'' output akan 011.

Page 17: Deteksi Kesalahan Dan Perbaikan Skema Coding

GAMBAR 6.4 Tingkat 1/3 convolutional encoder.

Jika bit masukan ketiga '' 1 '' , output akan 100 . Misalkan bahwa urutan tertentu membawa kita ke node tertentu di pohon , aturan percabangan memungkinkan kita untuk mengikuti cabang atas jika bit input berikutnya adalah ''0'' dan cabang yang lebih rendah jika bit input ''1'' . Akibatnya , jalan tertentu melalui pohon dapat ditelusuri untuk urutan masukan tertentu . Hal ini dapat diamati bahwa pohon yang dihasilkan oleh encoder ini convolutional (Gambar 6.4 ) menunjukkan bahwa struktur berulang setelah tahap ketiga. Diagram pohon sehingga muncul ke tahap ketiga , seperti pada Gambar . 6.5 . Perilaku ini konsisten dengan kenyataan bahwa panjang kendala adalah 3 (Lc = 3 ) : diartikan sebagai urutan output 3 - bit pada setiap tahap ditentukan oleh bit input dan 2 bit yang terkandung dalam dua tahap pertama (r0 ; r1 ) dari register geser .

Perlu dicatat bahwa bit pada tahap terakhir (r2 ) dari register digeser keluar dan tidak mempengaruhi output : seperti ditunjukkan dalam Tabel 6.2 Contoh 6.5 . Pada dasarnya, dapat dikatakan bahwa bit 3 - output untuk setiap bit input ditentukan oleh bit input dan empat state mungkin diberi label a, b , c dan d pada Gambar . 6,5 dan masing-masing dilambangkan dengan 00 , 01 , 10 , dan 11 . Dengan label ini , dapat diamati pada Gambar . 6,5 itu , pada tahap ketiga,

Ada dua node masing-masing dengan label a, b, c atau d, Semua cabang yang berasal dari dua node dan memiliki label yang sama menghasilkan output urutan identik. Ini berarti bahwa dua node memiliki label yang sama dapat digabungkan.

Dengan penggabungan dua node memiliki label yang sama dalam kode diagram pohon pada Gbr . 6.5 , diagram lain muncul , seperti ditunjukkan pada Gambar . 6.6 . Diagram ini disebut diagram teralis . Garis putus-putus menunjukkan output yang dihasilkan oleh cabang bawah dari pohon kode dengan masukan bit ''1'' , sedangkan garis padat menunjukkan output yang dihasilkan oleh cabang atas pohon kode dengan masukan bit ''0''.

Page 18: Deteksi Kesalahan Dan Perbaikan Skema Coding

Struktur benar-benar berulang diagram teralis pada Gambar . 6.6 menunjukkan bahwa pengurangan lebih lanjut mungkin dalam representasi kode untuk diagram state . Sebuah diagram state , ditunjukkan pada Gambar . 6.7 , adalah cara lain untuk mewakili state (a , b , c , dan d ) transisi dari satu keadaan ke keadaan lain . Arrows mewakili transisi dari state ke state . state-state dari diagram state diberi label sesuai dengan negara bagian diagram teralis . Tiga bit ditampilkan di samping setiap baris sementara mewakili bit output.

Dari diskusi sebelumnya , kita berada dalam posisi untuk menarik pohon kode , diagram teralis , dan diagram negara untuk tetap 1/2 -rate coder convolutional Gambar. 6.3 . Pesan urutan 10111 digunakan sebagai masukan untuk encoder pada Gambar . 6.3 . Pohon kode Gambar . 6.8 ditarik . Prosedur pohon - gambar adalah sama seperti yang dijelaskan sebelumnya untuk encoder pada Gambar . 6.3 dengan bergerak naik pada tingkat percabangan pertama , turun di kedua dan ketiga , dan naik lagi pada tingkat keempat untuk menghasilkan output yang ditambahkan ke cabang dilalui .

Page 19: Deteksi Kesalahan Dan Perbaikan Skema Coding

GAMBAR 6.5 Kode diagram pohon pada Gbr. 6.4. Cabang-cabang sesuai dengan simbol input. Cabang ke atas sesuai dengan input bit ''0'' sedangkan cabang ke bawah sesuai dengan bit masukan ''1''.

Page 20: Deteksi Kesalahan Dan Perbaikan Skema Coding

GAMBAR 6.6 Trellis diagram Gambar. 6.4. Garis padat menunjukkan output yang dihasilkan oleh input bit'' 0'' sedangkan garis putus-putus menunjukkan output yang dihasilkan oleh input bit'' 1''. Label a, b, c, dan d menunjukkan empat kemungkinan negara bagian register geser.

GAMBAR 6.7 Diagram state Gambar. 6.4. Garis padat menunjukkan bahwa bit input ''0'' sedangkan garis putus-putus menunjukkan bahwa bit input ''1''. Tiga bit ditambahkan ke setiap baris sementara mewakili bit output.

Page 21: Deteksi Kesalahan Dan Perbaikan Skema Coding

GAMBAR 6.8 Kode diagram pohon tingkat 1/2 coder Gambar. 6.3. Cabang-cabang sesuai dengan simbol input. Cabang ke atas sesuai dengan input bit ''0'' sedangkan cabang ke bawah sesuai dengan bit masukan'' 1''.

Page 22: Deteksi Kesalahan Dan Perbaikan Skema Coding

GAMBAR 6.9 Trellis diagram Gambar. 6.3. Garis padat menunjukkan output yang dihasilkan oleh input bit'' 0'' sedangkan garis putus-putus menunjukkan output yang dihasilkan oleh input bit'' 1''.

GAMBAR 6.10 Diagram state Gambar. 6.3. Garis padat menunjukkan bahwa bit input'' 0'' sedangkan garis putus-putus menunjukkan bahwa bit input ''1''. Dua bit ditambahkan ke setiap baris sementara mewakili bit output.

Setelah tiga cabang , struktur menjadi berulang-ulang : sebuah perilaku yang konsisten dengan panjang kendala encoder ; yaitu 3 (Lc = 3 ) . Dari pohon kode , teralis dan negara diagram digambar seperti yang ditunjukkan pada Gambar . 6,9 dan 6,10 , masing-masing.

Page 23: Deteksi Kesalahan Dan Perbaikan Skema Coding

Generalisasi dari prosedur sebelumnya dapat dibuat , tanpa kehilangan kepercayaan , untuk kode tingkat Rc = k/n . Kita telah mengamati bahwa diagram pohon akan memiliki 2k

cabang yang berasal dari masing-masing node percabangan . Mengingat bahwa efek dari kendala atau memori panjang Lc akan sama , jalur ditelusuri untuk node muncul dari label yang sama dalam diagram pohon akan mulai Emerge kembali dalam kelompok 2k setelah cabang Lc pertama . Ini berarti bahwa semua jalan dengan k(Lc -1) data bit yang sama akan bergabung bersama , memproduksi teralis dari keadaan 2k(Lc -1) dengan semua branchings dan mergings muncul dalam kelompok 2k cabang . Juga , diagram state akan memiliki 2kðLc ? 1th negara , dengan masing-masing negara memiliki cabang masukan 2k datang ke dalamnya . Dengan demikian , Lc dapat dikatakan untuk mewakili jumlah k-tuple disimpan dalam register geser .

Decoding Convolutional Codes

Seperti disebutkan sebelumnya, fungsi decoder adalah untuk melacak transisi state encoder dan merekonstruksi aliran data input. Secara konseptual, decoding dicapai dengan mengambil bit yang diterima dan menemukan jalan melalui pohon kode yang terletak paling dekat dalam jarak Hamming ke bit yang diterima . Pendekatan ini mungkin tidak praktis dalam kasus urutan data yang lama karena aliran data simbol k akan membutuhkan

Algoritma Viterbi. Dalam makalahnya, Viterbi mengembangkan algoritma decoding convolutional memiliki kendala panjang Lc relatif singkat. Seperti disebutkan sebelumnya, algoritma decoding dapat dikembangkan secara konseptual dengan mengambil urutan diterima dan menemukan jalan melalui pohon kode yang terletak paling dekat dalam jarak Hamming dengan urutan yang diterima. Setelah menggabungkan jalur metrik yang sama, hanya jalan hidup dan metrik yang dari urutan yang diterima disimpan. The Viterbi algoritma, sampai saat ini, telah menjadi paling praktis untuk coding convolutional.

Algoritma Viterbi umum digambarkan sebagai berikut. Menunjukkan keadaan sebuah decoder sebagai s, dengan metrik sebagai m(s,t) setiap saat t, di mana s = a, b, c atau d. Menunjukkan jarak Hamming untuk cabang atas dan bawah memasuki state sebagai dU(s,t) dan dL(s,t), masing-masing. Sebuah jarak Hamming didefinisikan oleh (6.22). Inisialisasi pada t = 0 dengan menetapkan metrik semua state 'ke nol. kemudian:

1. Untuk teralis node yang diberikan atau state s dan waktu t, membandingkan codeword yang diterima dengan masing-masing cabang codeword memasuki node teralis atau state.

2. Hitung dU(s,t) dan dL(s,t).

3. Memodifikasi jalan dengan menghitung DU dan DL dari jarak cabang atas dan bawah menggunakan metrik keadaan sebelumnya dan saat ini:

Page 24: Deteksi Kesalahan Dan Perbaikan Skema Coding

dimana DU dan DL adalah istilah abstrak.

4. Mengidentifikasi cabang yang masih hidup memasuki state pada waktu t mempertimbangkan:

a. Jika DU < DL memilih cabang atas sebagai korban. Kemudian tuliskan DU sebagai akhir matrik m(s,t) untuk state. Jika tidak memilih cabang yang lebih rendah sebagai korban dan menulis DL sebagai akhir orthopaedi metric bagi state,

b. Jika DU = DL kedua jalur adalah pesaing yang sama; acak memilih m(s,t) cabang sebagai korban.

c. Buang cabang yang tidak selamat.

5. Ulangi langkah (1) sampai (4) sampai akhir pohon teralis pada waktu t = t rec, di mana trec

adalah waktu ketika state teralis akhir telah tercapai.

6. Bentuk semua metrik keadaan akhir, yaitu m(s,t)

7. Pilih minimum jarak (dmin) atau metrik, menelusuri jalan dari state ini, dan perhatikan digit biner yang sesuai dengan cabang, yang merupakan jalur yang telah ditelusuri kembali diproduksi.

Sebuah kata dari hati-hati! The Viterbi decoding algoritma tidak bekerja sama dengan baik dengan semua kode konvolusi mungkin. Pengetahuan tentang mekanisme yang terlibat dalam kegagalan decoding Viterbi dapat digunakan untuk merancang atau pilih kode yang bekerja dengan baik dalam Viterbi decoding.

Secara umum, Viterbi decoder mampu mempertahankan informasi tentang 2k(Lc -1) jalur untuk kinerja yang memuaskan. Untuk alasan praktis, terutama untuk mengurangi kapasitas penanganan data yang diperlukan dari decoder convolutional, kedalaman teralis didekatkan ke 5Lc node. Hal ini memungkinkan decoding hanya tertua urutan diterima dalam teralis dan memilih jalan dengan kesalahan paling sedikit, saat menghapus jalur yang tersisa.

Page 25: Deteksi Kesalahan Dan Perbaikan Skema Coding

6.3 RINGKASAN

Transmisi data melalui link komunikasi sangat mungkin mengakibatkan beberapa kesalahan yang terjadi pada data yang diterima , setidaknya sebagian kecil dari waktu , karena kebisingan ditambahkan oleh media transmisi dan sistem . Beberapa teknik tentang bagaimana kesalahan dapat dideteksi dan koreksi dilakukan telah dieksplorasi dalam bab ini . Teknik-teknik ini merupakan forward error mengoreksi , luas diklasifikasikan dalam dua judul : kode blok dan kode convolutional .

Dalam teknik block coding, encoder ini terbagi aliran data yang masuk ke dalam blok - terbatas jumlah digit dan proses setiap blok dengan menambahkan bit tambahan ( disebut redundancy ) sesuai dengan algoritma yang telah ditetapkan . Output dari encoder adalah codeword dengan jumlah terbatas lain digit . Beberapa subset dari kode blok linear , seperti Hamming , siklik , dan BCH , juga telah dibahas . Penting mereka adalah adanya teknik decoding praktis.

Dalam teknik pengkodean convolutional , encoder memproses aliran data yang masuk terus menerus sementara decoder menggunakan algoritma Viterbi antara lain . Kode convolutional sangat populer karena mereka sederhana dalam konsep dan dalam praktek untuk memanfaatkan .

Contoh yang hemat digunakan sebagai alat ilustrasi untuk menjelaskan teknik koreksi kesalahan ke depan .

Page 26: Deteksi Kesalahan Dan Perbaikan Skema Coding

BIBLIOGRAPHY

1. Berlekamp, E.R. (1968). Aljabar Coding Theory. McGraw-Hill: New York.

2. Hagenauer, J. dan Hoeher, P. (1989). Algoritma AViterbi dengan output soft-keputusan dan aplikasinya, GLOBECOM'89 Dallas, Texas Konferensi Proc., 1680-1686.

REFERENSI

1. Feher, K. (1984) Digital Communications: Satellite=Earth Station Engineering. Prentice-Hall.

2. Shannon, C.E. (1948). A mathematical theory of communication, Bell System Tech J., vol. 26.

3. Huffman, D.A. (1952). A method for the construction of minimum redundancy codes, Proc. IRE, 40, 1098–1101.

4. Fano, R.M. (1963). A heuristic discussion of probabilistic decoding, IEEE Trans. Information Theory, 9, 64–74.

5. Okunev, I.B. (1997). Phase and Phase-Difference Modulation in Digital Communications. Artech House.

6. Lee, E.A. and Messerschmitt, D.G. (1994). Digital Communication. Kluwer Academic.

7. Lin, S. (1970). An Introduction to Error Correcting Codes. Prentice-Hall.

8. Huber, J. and Rueppel, A. (1990). Reliability estimation for symbols detected by Trellis decoders (in German), AEU, 44, 8–21.

9. Lin, S. and Costello, D.J. (1983). Error Control Coding: Fundamentals and Applications. Prentice-Hall.

10. Shamnugam, K.S. (1979). Digital and Analog Communication Systems. John Wiley.

11. Peterson, W.W. (1972). Error Correcting Codes. MIT Press.

12. Bose, R.C and Ray-Chaudhuri, D.K. (1960). On a class of error correcting binary group codes, Information Control, 3, 68–79.

13. Pratt, T. and Bostian, C.W. (1986). Satellite Communications. John Wiley.

14. Viterbi, A.J. (1967). Error bounds for convolutional codes and an asymptotically optimum decoding algorithm, IEEE Trans. Information Theory, 13, 260–269.

15. Viterbi, A.J. and Omura, J.K. (1979). Principles of Digital Communication and Coding. McGraw-Hill.

Page 27: Deteksi Kesalahan Dan Perbaikan Skema Coding

16. Battail, G. (1989). Building long codes by combination of simple ones, thanks to weighted-output decoding, Proc. URSI ISSSE, Erlangen, 634–637.

17. Berrou, C. and Glavieux, A. (1996). Near optimum error correcting coding and decoding, IEEE Trans. Communications, 44:10, 1261–1271.

18. Proakis, J.G. (1995). Digital Communications. McGraw-Hill.

19. Hashimoto, T. (1987). A list-type reduced-constraint generalization of the Viterbi algorithm, IEEE Trans. Information Theory, 26, 540–547.

20. Sundberg, C.W. (1992). Generalizations of the Viterbi algorithm with applications in radio systems in Advanced Methods for Satellite and Deep Space Communications. Springer-Verlag.

21. Rorabaugh, C.B. (1996). Error Coding Cookbook; Practical C=Cþþ Routines and Recipes for Error Detection and Correction. McGraw-Hill.

22. Heller, J.A. and Jacobs, I.M. (1981). Viterbi decoding for satellite and space communications, IEEE Trans. Communications, 19, 835–848.