Tugas Matlab Pengkodean Kanal (El-5054) : Oleh
Tugas Matlab Pengkodean Kanal (El-5054) : Oleh
Oleh :
Ryan Alfian
23215306
SOAL
Implementasikan Encoder dan decoder pada matlab :
A. Encoder
1. dengan fungsi bawaan poly2trellis.m
2. dengan fungsi bawaan sendiri
B. Decoder
1. dengan fungsi bawaan vitdec.m
2. dengan fungsi bawaan sendiri
Penyelesaian :
A. Encoder
1. menggunakan fungsi bawaan Poly2trellis.m
Analisa : dari hasil perhitungan dengan menggunakan fungsi bawaan, didapatkan nilai BER
minimum sebesar 0.0013 dan BER maksimum sebesar 0.1228
Code matlab :
clear all;close all; clc;
% probability bit error BSC
pb_bsc = [10^-1 10^-2];
monte_carlo = 50;
for m = 1:monte_carlo
for j = 1:length(pb_bsc)
[BER_UN(j) BER(j)] = task1(pb_bsc(j));
end
av_BER(m,:) = BER;
av_BER_no_e(m,:) = BER_UN;
end
biterr = mean(av_BER);
biterr_no_e = mean(av_BER_no_e);
%% Encoder
N_data = 1e5; % Number of input data bits
g1 = str2num(dec2base(bin2dec('1111'),8)); % Generator Polynomial path 1
g2 = str2num(dec2base(bin2dec('1101'),8)); % Generator Polynomial path 2
constrainL = 3; % Constaint Length
trellis = poly2trellis(constrainL,[g1 g2]); % Build trellis
% data = [1 0 1 1 1]
data = randi([0 1],1,N_data); % Create binary input data sequence
coded = convenc(data,trellis); % Encode input data