Anda di halaman 1dari 27

SISTEM KOMUNIKASI NIRKABEL DAN

SATELIT
DOSEN : GEDE SUKADARMIKA

TUGAS 2

Oleh:
Rizky Aji Prayitno
Komang oka kurniya devayama
I Gusti Agung Made Yudhi Diasnanta
I Gede Nengah Semara Putra

(1004405025)
(1004405034)
(1004405081)
(1004405087)

FAKULTAS TEKNIK
UNIVERSITAS UDAYANA
2014

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

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

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

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:

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

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.

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

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

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 .

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.

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:

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 sifatsifat 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).

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

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

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 v 1 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.

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 (L c = 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 (r 2 ) 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''.

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 .

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''.

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.

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''.

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.

Generalisasi dari prosedur sebelumnya dapat dibuat , tanpa kehilangan kepercayaan , untuk
kode tingkat Rc = k/n . Kita telah mengamati bahwa diagram pohon akan memiliki 2 k
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 2 k setelah
cabang Lc pertama . Ini berarti bahwa semua jalan dengan k(L c -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
2kLc ? 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 d U(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:

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 2 k(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.

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 .

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, 10981101.
4. Fano, R.M. (1963). A heuristic discussion of probabilistic decoding, IEEE Trans.
Information Theory, 9, 6474.
5. Okunev, I.B. (1997). Phase
Communications. Artech House.

and

Phase-Difference

Modulation

in

Digital

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, 821.
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, 6879.
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, 260269.
15. Viterbi, A.J. and Omura, J.K. (1979). Principles of Digital Communication and
Coding. McGraw-Hill.

16. Battail, G. (1989). Building long codes by combination of simple ones, thanks to
weighted-output decoding, Proc. URSI ISSSE, Erlangen, 634637.
17. Berrou, C. and Glavieux, A. (1996). Near optimum error correcting coding and
decoding, IEEE Trans. Communications, 44:10, 12611271.
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, 540547.
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, 835848.

Anda mungkin juga menyukai