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
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.
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
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
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
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
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
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 (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
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).
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
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.
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:
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.