Anda di halaman 1dari 6

LAPORAN SEMENTARA

TEKNIK PENGKODEAN
KODE KONVOLUSI HARD DAN SOFT DECISION

Nama : Muhamad Fathur Rohman


NRP/Kelas : 1210151036/3D4TB

Program Matlat (prak6.m)

clc
clear all
close all
pesan_kirim=randint(20,1)
figure(1)
stem(pesan_kirim,'r')
title('Pesan Yang Dikirim')
xlabel('Bit-bit Pesan Dikirim')
ylabel('Amplitudo Pesan Yang Dikirim')

t=poly2trellis([3 3],[5 4 0;0 4 5]);


codeword=convenc(pesan_kirim,t)

tb=2;
pesan_terima=vitdec(codeword,t,tb,'trunc','hard')
cek=[pesan_kirim pesan_terima]

figure(2)
subplot(3,1,1); stem(pesan_kirim,'r')
title('Pesan Yang Dikirim')
subplot(3,1,2); stem(codeword,'b')
ylabel('Codeword')
subplot(3,1,3); stem(pesan_terima,'m')
xlabel('Pesan Yang Diterima')

[number,ratio]=biterr(pesan_kirim,pesan_terima)

info_kirim=randint(20,1)
trellis=poly2trellis(4,[11 15])
ns=64;
code=convenc(info_kirim,trellis)

tb=4;
delay=tb;
N=length(code);
noise=zeros(N,1);
noise([3,5],1)=1
ncoden=xor(code,noise);
noise_code=fix(ncoden);

quan_code=quantiz(noise_code,[0.01,0.1,0.3,0.5,0.7,0.9,0.999]);

infoterima_hard=vitdec(noise_code,trellis,tb,'term','hard');
infoterima_soft=vitdec(quan_code,trellis,tb,'trunc','soft',tb-1);
[numberhard,ratiohard]=biterr(infoterima_hard,info_kirim)
[numbersoft,ratiosoft]=biterr(infoterima_soft,info_kirim)

figure(3)
subplot(2,1,1); stem(info_kirim,'r');
title('Soft Decision')
xlabel('Pesan Kirim')
subplot(2,1,2); stem(infoterima_hard,'b')
xlabel('Pesan Terima')
LAPORAN SEMENTARA
TEKNIK PENGKODEAN
Nama : Muhamad Fathur Rohman
KODE KONVOLUSI HARD DAN SOFT DECISION NRP/Kelas : 1210151036/3D4TB

A. Pengkodean Tanpa Error


1. Masukan = Pesan = Informasi 2. Proses Pengkodean (Encoder)

Pesan Yang Dikirim


1
Amplitudo Pesan Yang Dikirim

0.8

0.6

0.4

0.2

0
0 2 4 6 8 10 12 14 16 18 20
Bit-bit Pesan Dikirim

3. Dekoder (Pengkodean Kembali)


Pesan Yang Dikirim
1

0.5

0
0 2 4 6 8 10 12 14 16 18 20
1
Codeword

0.5

0
0 5 10 15 20 25 30
1

0.5

0
0 2 4 6 8 10 12 14 16 18 20
Pesan Yang Diterima
B. Pengkodean Dengan Error
1. Mengkodekan informasi 2. Menambahkan Noise pada 3. Mengkodekan kembali
mejadi sebuah codeword Codeword codeword menjadi sebuah
menggunakan encoder informasi asal menggunakan
seperti pada gambar 2. viterbi hard decision dan
soft soft decision.

Soft Decision
1

4. Plot hasil pengkodean 0.5

0
0 2 4 6 8 10 12 14 16 18 20
Pesan Kirim

0.5

0
0 2 4 6 8 10 12 14 16 18 20
Pesan Terima
Tugas dalam praktikum
A. Pesan Sama, Encoder Berbeda, Decoder sama Hard Decision (tanpa Error)

clc; clear all; close all;


% TUGAS 1 B // TANPA ERROR
pesan_kirim1=randint(20,1)
pesan_kirim2=pesan_kirim1;
t1=poly2trellis(5,[17 33]) % PENULISAN DALAM OCTAL (5, [15 27])
t2=poly2trellis([5 4],[23 35 0;0 5 11]) % PENULISAN DALAM OCTAL

codeword1=convenc(pesan_kirim1,t1)
codeword2=convenc(pesan_kirim2,t2)
tb=2;

pesan_terima1=vitdec(codeword1,t1,tb,'trunc','hard')
pesan_terima2=vitdec(codeword2,t2,tb,'trunc','hard')

cek1=[pesan_kirim1 pesan_terima1]
cek2=[pesan_kirim2 pesan_terima2]

infoterima_hard1=vitdec(codeword1,t1,tb,'trunc','hard');
infoterima_hard2=vitdec(codeword2,t2,tb,'trunc','hard');
[numberhard1,ratiohard1]=biterr(infoterima_hard1,pesan_kirim1)
[numberhard2,ratiohard2]=biterr(infoterima_hard2,pesan_kirim2)

figure(1)
subplot(3,1,1)
stem(pesan_kirim1,'r')
title('pesan yang dikirm ke trellis (5,[17 33])')
subplot(3,1,2)
stem(codeword1,'b')
ylabel('codeword')
subplot(3,1,3)
stem(pesan_terima1,'m')
xlabel('pesan yang diterima')

figure (2)
subplot(3,1,1)
stem(pesan_kirim2,'r')
title('pesan yang dikirm ke trellis ([5 4],[23 35 0;0 5 11])')
subplot(3,1,2)
stem(codeword2,'b')
ylabel('codeword')
subplot(3,1,3)
stem(pesan_terima2,'m')
xlabel('pesan yang diterima')
pesan yang dikirm ke trellis (5,[17 33])
1

0.5

0
0 2 4 6 8 10 12 14 16 18 20
codeword 1

0.5

0
0 5 10 15 20 25 30 35 40
1

0.5

0
0 2 4 6 8 10 12 14 16 18 20
pesan yang diterima

pesan yang dikirm ke trellis ([5 4],[23 35 0;0 5 11])


1

0.5

0
0 2 4 6 8 10 12 14 16 18 20
1
codeword

0.5

0
0 5 10 15 20 25 30
1

0.5

0
0 2 4 6 8 10 12 14 16 18 20
pesan yang diterima
B. Pesan Sama, Encoder Berbeda, Decoder berbeda Hard Decision dan Soft Decision (ditambah Error)

clc; clear all; close all


% tugas2prak6 dengan error
tb1=4;
info_kirim1=randint(40,1);
trellis1=poly2trellis([3 3],[5 4 0;0 4 5])
ns=64;
code1=convenc(info_kirim1,trellis1);
N1=length(code1);
noise1=zeros(N1,1);
noise1([2,4,5],1)=1
ncoden=xor(code1,noise1);
noise_code1=fix(ncoden);
quan_code1=quantiz(noise_code1,[0.01,.1,.3,.5,.7,.9,.999]);
infoterima_hard1=vitdec(noise_code1,trellis1,tb1,'cont','hard');
infoterima_soft1=vitdec(quan_code1,trellis1,tb1,'trunc','soft',tb1-1);
[numberhard1,ratiohard1]=biterr(infoterima_hard1,info_kirim1)
[numbersoft1,ratiosoft1]=biterr(infoterima_soft1,info_kirim1)
cekhard=[info_kirim1 infoterima_hard1]
ceksoft=[info_kirim1 infoterima_soft1]
figure(3)
subplot(4,1,1)
stem(info_kirim1,'r')
title('info kirim')
xlabel('pesan dikirim')
subplot(4,1,2)
stem(code1,'b')
xlabel('Codeword')
subplot(4,1,3)
stem(infoterima_hard1,'b')
xlabel('pesan terima (Hard Decision)')
subplot(4,1,4)
stem(infoterima_soft1,'b')
xlabel('pesan terima (Soft Decision)')

info kirim
1

0.5

0
0 5 10 15 20 25 30 35 40
pesan dikirim
1

0.5

0
0 10 20 30 40 50 60
Codeword
1

0.5

0
0 5 10 15 20 25 30 35 40
pesan terima (Hard Decision)
1

0.5

0
0 5 10 15 20 25 30 35 40
pesan terima (Soft Decision)