LAMPIRAN A LISTING PROGRAM

dokumen-dokumen yang mirip
Analisis Kinerja Convolutional Coding dengan Viterbi Decoding pada Kanal Rayleigh Tipe Frequency Non-Selective Fading

Implementasi dan Evaluasi Kinerja Kode Konvolusi pada Modulasi Quadrature Phase Shift Keying (QPSK) Menggunakan WARP

Implementasi Encoder dan decoder Hamming pada TMS320C6416T

BAB I PENDAHULUAN. Modulation. Channel. Demodulation. Gambar 1.1. Diagram Kotak Sistem Komunikasi Digital [1].

SIMULASI LOW DENSITY PARITY CHECK (LDPC) DENGAN STANDAR DVB-T2. Yusuf Kurniawan 1 Idham Hafizh 2. Abstrak

BAB III PEMODELAN MIMO OFDM DENGAN AMC

LAMPIRAN A. File ini merupakan fungsi utama untuk menjalankan simulasi standar IS-95 untuk forward link.

BAB III PEMODELAN SISTEM

BAB IV HASIL SIMULASI DAN ANALISIS

BAB IV HASIL SIMULASI DAN ANALISIS

BAB 3 MEKANISME PENGKODEAAN CONCATENATED VITERBI/REED-SOLOMON DAN TURBO

III. METODE PENELITIAN

BAB III PERANCANGAN SISTEM DAN SIMULASI

TTG3B3 - Sistem Komunikasi 2 Convolutional Coding

ABSTRAK. sebesar 0,7 db.

VISUALISASI KINERJA PENGKODEAN MENGGUNAKAN ALGORITMA VITERBI

BAB III Perencanaan Jaringan VSAT Pada Bank Mandiri dengan CDMA

Perbandingan rate kode konvolusi dan aplikasinya pada cdma

SANDI PROTEKSI GALAT YANG TIDAK SAMA SECARA SERIAL BERDASARKAN MODULASI TRELLIS TERSANDI DENGAN KONSTELASI SINYAL ASK

ANALISIS UNJUK KERJA CODED OFDM MENGGUNAKAN KODE CONVOLUTIONAL PADA KANAL AWGN DAN RAYLEIGH FADING

Perancangan Dan Simulasi Punctured Convolutional Encoder Dan Viterbi Decoder Dengan Code Rate 2/3 Menggunakan Raspberry Pi

JURNAL TEKNIK ITS Vol. 4, No. 2, (2015) ISSN: ( Print) A-192

ANALISA KINERJA ESTMASI KANAL DENGAN INVERS MATRIK PADA SISTEM MIMO. Kukuh Nugroho 1.

KOREKSI KESALAHAN PADA SISTEM DVB-T MENGGUNAKAN KODE REED-SOLOMON

BAB IV PEMODELAN SIMULASI

Simulasi MIMO-OFDM Pada Sistem Wireless LAN. Warta Qudri /

LAMPIRAN. Lampiran 1 Program Membuat Grafik BER vs SNR dengan Kendali Daya dan tanpa Kendali daya

RANCANG BANGUN RANGKAIAN CONVOLUTIONAL ENCODER DAN VITERBI DECODER MENGGUNAKAN DSK TMS320C6713 BERBASIS SIMULINK SKRIPSI

ANALISIS KINERJA MOBILE SATELLITE SERVICE (MSS) PADA FREKUENSI L-BAND DI INDONESIA

Analisa Kinerja Kode Konvolusi pada Sistem Successive Interference Cancellation Multiuser Detection CDMA dengan Modulasi QAM Berbasis Perangkat Lunak

IMPLEMENTASI MODULASI DAN DEMODULASI GMSK PADA DSK TMS320C6416T

BAB IV HASIL SIMULASI DAN ANALISA

Modulasi Digital. Levy Olivia Nur, MT

BAB IV SIMULASI DAN UNJUK KERJA MODULASI WIMAX

TTG3B3 - Sistem Komunikasi 2 Linear Block Code

ANALISIS KINERJA MODULASI ASK PADA KANAL ADDITIVE WHITE GAUSSIAN NOISE (AWGN)

BAB IV HASIL SIMULASI DAN ANALISIS

Teknik Telekomunikasi - PJJ PENS Akatel Politeknik Negeri Elektro Surabaya Surabaya

BAB III METODOLOGI PENELITIAN

Praktikum Sistem Komunikasi

LOGO IMPLEMENTASI MODULASI DAN DEMODULASI M-ARY QAM PADA DSK TMS320C6416T

BAB I PENDAHULUAN 1. 1 Latar Belakang

Analisis Penerapan Teknik AMC dan AMS untuk Peningkatan Kapasitas Kanal Sistem MIMO-SOFDMA

BAB III METODOLOGI PENELITIAN. Metodologi dari penelitian ini diskemakan dalam bentuk flowchart seperti tampak

Analisis Kinerja Modulasi M-PSK Menggunakan Least Means Square (LMS) Adaptive Equalizer pada Kanal Flat Fading

BAB I PENDAHULUAN 1. 1 LATAR BELAKANG

Analisis Unjuk Kerja Convolutional Code pada Sistem MIMO MC-DSSS Melalui Kanal Rayleigh Fading

ANALISIS ALGORITMA KODE KONVOLUSI DAN KODE BCH

BAB I PENDAHULUAN. Seluruh mata rantai broadcasting saat ini mulai dari proses produksi

PERBANDINGAN BIT ERROR RATE KODE REED-SOLOMON DENGAN KODE BOSE-CHAUDHURI-HOCQUENGHEM MENGGUNAKAN MODULASI 32-FSK

ANALISIS KINERJA KOMUNIKASI KOOPERATIF PENGGUNA PADA SISTEM KOMUNIKASI NIRKABEL

Implementasi Convolutional Code dan Viterbi Decode pada DSK TMS320C6416T

EVALUASI KINERJA CONVOLUTIONAL CODING RATE ½

Analisa Kinerja Kode Konvolusi pada Sistem Successive Interference Cancellation Multiuser Detection CDMA Dengan Modulasi QPSK Berbasis Perangkat Lunak

HAND OUT EK. 462 SISTEM KOMUNIKASI DIGITAL

ANALISIS UNJUK KERJA TEKNIK MIMO STBC PADA SISTEM ORTHOGONAL FREQUENCY DIVISION MULTIPLEXING


Simulasi Dan Analisis Pengaruh Kecepatan Pengguna Terhadap Kualitas Layanan Data Dengan Menggunakan Encoder Turbo Code Pada Sistem CDMA EV-DO Rev A

TUGAS AKHIR. Oleh : GALIH JOKO HERIANTO

Visualisasi dan Analisa Kinerja Kode Konvolusi Pada Sistem MC-CDMA Dengan Modulasi QAM Berbasis Perangkat Lunak

SIMULASI LOW DENSITY PARITY CHECK PADA STANDAR DVB-S2 MENGGUNAKAN MODULASI QPSK

LAPORAN TEKNIK PENGKODEAN ENCODER DAN DECODER KODE KONVOLUSI

Analisis Nilai Bit Error Rate pada Turbo Convolutional Coding dan Turbo Block Coding

MAKALAH SEMINAR TUGAS AKHIR SIMULASI PENYANDIAN KONVOLUSIONAL

SATUAN ACARA PERKULIAHAN EK.481 SISTEM TELEMETRI

ANALISA KINERJA SISTEM KOOPERATIF BERBASIS MC- CDMA PADA KANAL RAYLEIGH MOBILE DENGAN DELAY DAN DOPPLER SPREAD

Analisa Kinerja Kode Konvolusi pada Sistem Successive Interference Cancellation Multiuser Detection CDMA Dengan Modulasi QPSK Berbasis Perangkat Lunak

TTG3B3 - Sistem Komunikasi 2 Modulasi Digital: PSK dan ASK

BAB III METODOLOGI PENELITIAN

Analisa Kinerja MIMO 2X2 dengan Full-Rate STC pada Mobile WiMAX

Visualisasi dan Analisa Kinerja Kode Konvolusi Pada Sistem MC-CDMA Dengan Modulasi QPSK Berbasis Perangkat Lunak

Error Correcting Code Menggunakan Kode Low Density Parity Check (LDPC) Kristy Purba ( ) ABSTRAK

MODULASI DIGITAL MENGGUNAKAN MATLAB

UNIVERSITAS INDONESIA SIMULASI DAN ANALISA KINERJA SISTEM MIMO OFDM-FDMA BERDASARKAN ALOKASI SUBCARRIER SKRIPSI

PERSYARATAN TEKNIS ALAT DAN PERANGKAT PERANGKAT

IMPLEMENTASI DAN PENGUJIAN ALGORITMA VITERBI PADA PLATFORM LABVIEW

Analisa Sistem DVB-T2 di Lingkungan Hujan Tropis

DESAIN DAN ANALISIS PENDEKODE VITERBI MENGGUNAKAN SATU BUTTERFLY BERBASIS BAHASA VHDL

MODULASI DIGITAL MENGGUNAKAN MATLAB

STUDI BIT ERROR RATE UNTUK SISTEM MC-CDMA PADA KANAL FADING NAKAGAMI-m MENGGUNAKAN EGC

ANALISIS KINERJA SPHERE DECODING PADA SISTEM MULTIPLE INPUT MULTIPLE OUTPUT

ANALISA PERFORMANSI SPREAD SPECTRUM IMAGE STEGANOGRAPHY (SSIS) PADA KANAL MULTIPATH RAYLEIGH FADING. Chaeriah Bin Ali Wael

Rijal Fadilah. Transmisi Data

UNJUK KERJA REF : FREEMAN FAKULTAS TEKNIK ELEKTRO

BAB III MODEL SISTEM CLOSED-LOOP POWER CONTROL PADA CDMA

ANALISIS KINERJA TEKNIK DIFFERENTIAL SPACE-TIME BLOCK CODED PADA SISTEM KOMUNIKASI KOOPERATIF

DASAR TEKNIK TELEKOMUNIKASI

BAB I PENDAHULUAN 1.1 Latar Belakang

TEKNIK TRANSMISI DIGITAL FAKULTAS TEKNIK ELEKTRO

PERBANDINGAN KINERJA LDPC PADA KANAL AWGN DENGAN MODULASI QPSK DAN BPSK

BAB I PENDAHULUAN. 1.1 Latar Belakang. Bab II Landasan teori

BAB II DASAR TEORI 2.1. Turbo Coding

SIMULASI PENGIRIMAN DAN PENERIMAAN INFORMASI MENGGUNAKAN KODE BCH

DAFTAR ISI HALAMAN JUDUL HALAMAN PENGESAHAN PEMBIMBING HALAMAN PENGESAHAN PENGUJI HALAMAN PERSEMBAHAN KATA PENGANTAR DAFTAR GAMBAR DAFTAR TABEL

ANALISIS RICIAN FADING PADA TRANSMISI SINYAL DVB-T TUGAS AKHIR

BAB III PEMODELAN SISTEM

ANALISIS KEHANDALAN SISTEM WIMAX BERBASIS OFDM (ORTHOGONAL FREQUENCY DIVISION MULTIPLEXING) MENGGUNAKAN TEKNIK MODULASI ADAPTIF

PERBANDINGAN KINERJA KODE HAMMING PADA CHANNEL AWGN

SIMULASI PERBANDINGAN KINERJA MODULASI M-PSK DAN M-QAM TERHADAP LAJU KESALAHAN DATA PADA SISTEM ORTHOGONAL FREQUENCY DIVISION MULTIPLEXING (OFDM)

SIMULASI KODE HAMMING, KODE BCH, DAN KODE REED-SOLOMON UNTUK OPTIMALISASI FORWARD ERROR CORRECTION

Transkripsi:

LAMPIRAN A LISTING PROGRAM

Program simulasi untuk melihat diperlukan channel coding. %Program memplot Distribusi level tegangan kanal bit pada kanal AWGN. %Untuk nilai Eb/N0 = 20dB clear; clc; clf; N = 1e6; %Jumlah bit yang akan dikirimkan EbpN0 = 20; %Nilai Eb/N0 %Data random yang dikirim berupa level tegangan 1 atau -1 signal = sign(randn(1,n)); %N-point data random sebagai AWGN dengan daya noise tertentu noise = randn(1,n)./10^(ebpn0/20)./sqrt(2); received = signal + noise; hist(received,500); %Data yang diterima %Memplot diagram xlabel('distribusi tegangan untuk bit "1" = -1V, dan bit "0" = +1V'); ylabel('jumlah channel bits'); grid on %Program memplot Distribusi level tegangan kanal bit melalui kanal AWGN. %Untuk nilai Eb/N0 = 6dB clear; clc; clf; N = 1e6; %Jumlah bit yang akan dikirimkan EbpN0 = 6; %Nilai Eb/N0 %Data random yang dikirim berupa level tegangan 1 atau -1 signal = sign(randn(1,n)); %N-point data random sebagai AWGN dengan daya noise tertentu noise = randn(1,n)./10^(ebpn0/20)./sqrt(2); received = signal + noise; hist(received,500); %Data yang diterima %Memplot diagram xlabel('distribusi tegangan untuk bit "1" = -1V, dan bit "0" = +1V'); ylabel('jumlah channel bits'); grid on;

Program simulasi forward error control menggunakan viterbi decoding %Program Simulasi Convolutional Coding Dengan Viterbi Decoding % Pembangkitan sinyal biner acak, dengan parameter tertentu Fd=1; Fs=4; %Frekuensi sampling N=Fs/Fd; M=4; k=log2(m); numsymb=100; %Jumlah simbol numplot=20; %Jumlah yang diplot coderate=1/2; %Code rate constlen=7; %Constraint length SNRpBitDemo=3; SNR=SNRpBitDemo*k; seed=[654321 123456]; rand('state',seed(1)); randn('state',seed(2)); msg_orig=randsrc(numsymb,1,[0:1]); figure(1); stem([0:numplot-1],msg_orig(1:numplot),'bx'); axis([0 numplot -0.2 1.2]); xlabel('waktu'); ylabel('amplituda'); title('simbol Biner Sebelum Convolutional coding'); % Program untuk melakukan Convolutional Encoding terhadap sinyal biner constlen=[3]; %Constraint length codegen=[7 5]; %Generator polinomial tblen=32; %Trace back length coderate=1/2; %Code rate trel=poly2trellis(constlen,codegen); %Trellis description [msg_enc_bi]=convenc(msg_orig,trel); numencplot=numplot./coderate; tenc=[0:numencplot-1]*coderate; figure(2); stem(tenc,msg_enc_bi(1:length(tenc)),'rx'); axis([min(tenc) max(tenc) -0.2 1.2]); xlabel('waktu');ylabel('amplituda');

title('simbol Biner Setelah Convolutional Encoding'); %Modulasi terhadap simbol hasil Encoding msg_enc=bi2de(reshape(msg_enc_bi,size(msg_enc_bi,2)*k,size(msg_enc_bi,1)/k)'); grayencod=bitxor([0:m-1],floor([0:m-1]/2)); msg_gr_enc=grayencod(msg_enc+1); msg_tx=dmodce(msg_gr_enc,fd,[fs,pi/4],'psk',m); msg_rx=awgn(msg_tx,snr-10*log10(1/coderate)-10*log10(n)); nummodplot=numencplot*fs./k; tmod=[0:nummodplot-1]./fs.*k; figure(3); plot(tmod,real(msg_tx(1:length(tmod))),'c-',tmod,imag(msg_tx(1:length(tmod))),'m- '); axis([min(tmod) max(tmod) -1.5 1.5]); xlabel('sample/waktu');ylabel('amplituda'); title('simbol Hasil Encoding Setelah Dimodulasi Baseband QPSK'); leg('in-phase','quadrature',0); %Decoding dengan Viterbi decoder qcode=quantiz(msg_rx,[0.001,.1,.3,.5,.7,.9,.999]); msg_dec=vitdec(msg_demod_bi,trel,tblen,'cont','soft',3); %soft decision figure(5); stem([0:numplot-1],msg_orig(1:numplot),'rx'); hold on; stem([0:numplot-1],msg_dec(1+tblen:numplot+tblen),'bo'); hold off; axis([0 numplot -0.2 1.2]); xlabel('waktu');ylabel('amplituda'); title('simbol Hasil Decoding');

Program menggunakan Hard decision pada viterbi decoding %Program Conv-coding vit-decoding dengan K = 3 clear; clc; clf; N=1e6 EbpN0=linspace(3,7,9); for i=1: length(ebpn0) BER(i)=0; for j=1:5 b=sign(randn(1,n)); orig_bit = b; for k=1:length(b) if b(k) == 1; b(k) = 0; b(k) = 1; %Jumlah bit yang akan disimulasikan %Nilai Eb/N0 yang ingin dihitung BER-nya %Bit data random yang dipancarkan %Constraint length K = 3, code generator = [7 5] trellis=poly2trellis(3,[7 5]); code=convenc(b,trellis); for l = 1:length(code) if code(l) == 0 code(l) = 1; code(l) = -1; %N-point data random sebagai AWGN dengan daya noise tertentu n=randn(1,2*n)./10^(ebpn0(i)/20)./sqrt(2); r=code+n; %Data diterima oleh receiver r=sign(r); %Data hasil recovery oleh decision circuit for k=1:length(r) if r(k) == 1;

r(k) = 0; r(k) = 1; tb = 2; % Traceback length for decoding decoded = vitdec(r,trellis,tb,'trunc','hard'); % Viterbi Decoding for k=1:length(decoded) if decoded(k) == 0; decoded(k) = 1; decoded(k) = -1; %Menghitung jumlah bit error BER(i) = BER(i) + sum(abs(decoded-orig_bit))/2; BER(i) = BER(i)/5/N; %BER=Jml error rata2 / jml bit yg dikirim semilogy(ebpn0,ber, '*'); hold on; %Routine untuk memplot P(e) sebagai fungsi dari Eb/N0 secara teoritis EbpN0=linspace(0,10,11); %Nilai Eb/N0 yang ingin dihitung BER-nya t=linspace(0,max(ebpn0),500); Pe=0.5.*erfc(sqrt(10.^(t/10))); semilogy(t,pe,'r'); grid on; title ('BER terhadap Eb/N0 untuk Kanal AWGN Dengan K = 3'); xlabel('eb/n0 (db)'); ylabel('ber'); disp ('Kurva menunjukkan nilai teoritis P(e)'); disp('tanda bintang menunjukkan hasil simulasi BER'); leg('hasil simulasi BER','Nilai teoritis P(e)',0);

%Program Conv-coding vit-decoding dengan K = 5 clear; clc; clf; N=1e6 EbpN0=linspace(3,7,9); for i=1: length(ebpn0) BER(i)=0; for j=1:4 b=sign(randn(1,n)); orig_bit = b; for k=1:length(b) if b(k) == 1; b(k) = 0; b(k) = 1; %Jumlah bit yang akan disimulasikan %Nilai Eb/N0 yang ingin dihitung BER-nya %Bit data random yang dipancarkan %Constraint length K = 5, code generator = [35 23] trellis=poly2trellis(5,[35 23]); code=convenc(b,trellis); for l = 1:length(code) if code(l) == 0 code(l) = 1; code(l) = -1; %N-point data random sebagai AWGN dengan daya noise tertentu n=randn(1,2*n)./10^(ebpn0(i)/20)./sqrt(2); r=code+n; %Data diterima oleh receiver r=sign(r); %Data hasil recovery oleh decision circuit for k=1:length(r) if r(k) == 1; r(k) = 0;

r(k) = 1; tb = 2; % Traceback length for decoding decoded = vitdec(r,trellis,tb,'trunc','hard'); % Viterbi Decoding for k=1:length(decoded) if decoded(k) == 0; decoded(k) = 1; decoded(k) = -1; %Menghitung jumlah bit error BER(i) = BER(i) + sum(abs(decoded-orig_bit))/2; BER(i) = BER(i)/5/N; %BER=Jml error rata2 / jml bit yg dikirim semilogy(ebpn0,ber, '*'); hold on; %Routine untuk memplot P(e) sebagai fungsi dari Eb/N0 secara teoritis EbpN0=linspace(0,10,11); %Nilai Eb/N0 yang ingin dihitung BER-nya t=linspace(0,max(ebpn0),500); Pe=0.5.*erfc(sqrt(10.^(t/10))); semilogy(t,pe,'r'); grid on; title ('BER terhadap Eb/N0 untuk Kanal AWGN Dengan K = 5'); xlabel('eb/n0 (db)'); ylabel('ber'); disp ('Kurva menunjukkan nilai teoritis P(e)'); disp('tanda bintang menunjukkan hasil simulasi BER'); leg('hasil simulasi BER','Nilai teoritis P(e)',0);

%Program Conv-coding vit-decoding dengan K = 7 clear; clc; clf; N=1e6 EbpN0=linspace(3,7,9); for i=1: length(ebpn0) BER(i)=0; for j=1:4 b=sign(randn(1,n)); orig_bit = b; for k=1:length(b) if b(k) == 1; b(k) = 0; b(k) = 1; %Jumlah bit yang akan disimulasikan %Nilai Eb/N0 yang ingin dihitung BER-nya %Bit data random yang dipancarkan %Constraint length K = 7, code generator = [171 133] trellis=poly2trellis(7,[171 133]); code=convenc(b,trellis); for l = 1:length(code) if code(l) == 0 code(l) = 1; code(l) = -1; %N-point data random sebagai AWGN dengan daya noise tertentu n=randn(1,2*n)./10^(ebpn0(i)/20)./sqrt(2); r=code+n; %Data diterima oleh receiver r=sign(r); %Data hasil recovery oleh decision circuit for k=1:length(r) if r(k) == 1; r(k) = 0;

r(k) = 1; tb = 2; % Traceback length for decoding decoded = vitdec(r,trellis,tb,'trunc','hard'); % Viterbi Decoding for k=1:length(decoded) if decoded(k) == 0; decoded(k) = 1; decoded(k) = -1; %Menghitung jumlah bit error BER(i) = BER(i) + sum(abs(decoded-orig_bit))/2; BER(i) = BER(i)/5/N; %BER=Jml error rata2 / jml bit yg dikirim semilogy(ebpn0,ber, '*'); hold on; %Routine untuk memplot P(e) sebagai fungsi dari Eb/N0 secara teoritis EbpN0=linspace(0,10,11); %Nilai Eb/N0 yang ingin dihitung BER-nya t=linspace(0,max(ebpn0),500); Pe=0.5.*erfc(sqrt(10.^(t/10))); semilogy(t,pe,'r'); grid on; title ('BER terhadap Eb/N0 untuk Kanal AWGN Dengan K = 7'); xlabel('eb/n0 (db)'); ylabel('ber'); disp ('Kurva menunjukkan nilai teoritis P(e)'); disp('tanda bintang menunjukkan hasil simulasi BER'); leg('hasil simulasi BER','Nilai teoritis P(e)',0);

%Program Conv-coding vit-decoding dengan K = 9 clear; clc; clf; N=1e6 EbpN0=linspace(3,7,9); for i=1: length(ebpn0) BER(i)=0; for j=1:4 b=sign(randn(1,n)); orig_bit = b; for k=1:length(b) if b(k) == 1; b(k) = 0; b(k) = 1; %Jumlah bit yang akan disimulasikan %Nilai Eb/N0 yang ingin dihitung BER-nya %Bit data random yang dipancarkan %Constraint length K = 9, code generator = [753 561] trellis=poly2trellis(9,[753 561]); code=convenc(b,trellis); for l = 1:length(code) if code(l) == 0 code(l) = 1; code(l) = -1; %N-point data random sebagai AWGN dengan daya noise tertentu n=randn(1,2*n)./10^(ebpn0(i)/20)./sqrt(2); r=code+n; %Data diterima oleh receiver r=sign(r); %Data hasil recovery oleh decision circuit for k=1:length(r) if r(k) == 1; r(k) = 0;

r(k) = 1; tb = 2; % Traceback length for decoding decoded = vitdec(r,trellis,tb,'trunc','hard'); % Viterbi Decoding for k=1:length(decoded) if decoded(k) == 0; decoded(k) = 1; decoded(k) = -1; %Menghitung jumlah bit error BER(i) = BER(i) + sum(abs(decoded-orig_bit))/2; BER(i) = BER(i)/5/N; %BER=Jml error rata2 / jml bit yg dikirim semilogy(ebpn0,ber, '*'); hold on; %Routine untuk memplot P(e) sebagai fungsi dari Eb/N0 secara teoritis EbpN0=linspace(0,10,11); %Nilai Eb/N0 yang ingin dihitung BER-nya t=linspace(0,max(ebpn0),500); Pe=0.5.*erfc(sqrt(10.^(t/10))); semilogy(t,pe,'r'); grid on; title ('BER terhadap Eb/N0 untuk Kanal AWGN Dengan K = 9'); xlabel('eb/n0 (db)'); ylabel('ber'); disp ('Kurva menunjukkan nilai teoritis P(e)'); disp('tanda bintang menunjukkan hasil simulasi BER'); leg('hasil simulasi BER','Nilai teoritis P(e)',0);

Program menggunakan Soft decision pada viterbi decoding %Program Conv-coding vit-decoding dengan K = 3 clear; clc; clf; N=1e6; EbpN0=linspace(0,7,9); for i=1: length(ebpn0) BER(i)=0; for j=1:4 b=sign(randn(1,n)); orig_bit = b; for k=1:length(b) if b(k) == 1; b(k) = 0; b(k) = 1; %Jumlah bit yang akan disimulasikan %Nilai Eb/N0 yang ingin dihitung BER-nya %Bit data random yang dipancarkan %Constraint length K = 3, code generator = [7 5] trellis=poly2trellis(3,[7 5]); code=convenc(b,trellis); for l = 1:length(code) if code(l) == 0 code(l) = 1; code(l) = -1; %N-point data random sebagai AWGN dengan daya noise tertentu n=randn(1,2*n)./10^(ebpn0(i)/20)./sqrt(2); tb = 24; % Traceback length for decoding % To prepare for soft-decision decoding, map to decision values.

[x,qcode] = quantiz(1-n,[-.75 -.5 -.25 0.25.5.75 ],... [7 6 5 4 3 2 1 0]); % Values in qcode are between 0 and 2^3-1. decoded = vitdec(qcode,trellis,tb,'trunc','soft',3); % Viterbi Decoding %Menghitung jumlah bit error BER(i) = BER(i) + sum(abs(decoded))/2; BER(i) = BER(i)/4/N; %BER=Jml error rata2 / jml bit yg dikirim semilogy(ebpn0,ber, '*'); hold on; %Routine untuk memplot P(e) sebagai fungsi dari Eb/N0 secara teoritis EbpN0=linspace(0,10,11); %Nilai Eb/N0 yang ingin dihitung BER-nya t=linspace(0,max(ebpn0),500); Pe=0.5.*erfc(sqrt(10.^(t/10))); semilogy(t,pe,'r'); grid on; title ('BER terhadap Eb/N0 untuk Kanal AWGN Dengan K = 3'); xlabel('eb/n0 (db)'); ylabel('ber'); disp ('Kurva menunjukkan nilai teoritis P(e)'); disp('tanda bintang menunjukkan hasil simulasi BER'); leg('hasil simulasi BER','Nilai teoritis P(e)',0);

%Program Conv-coding vit-decoding dengan K = 5 clear; clc; clf; N=1e6 EbpN0=linspace(0,7,9); for i=1: length(ebpn0) BER(i)=0; for j=1:4 b=sign(randn(1,n)); orig_bit = b; for k=1:length(b) if b(k) == 1; b(k) = 0; b(k) = 1; %Jumlah bit yang akan disimulasikan %Nilai Eb/N0 yang ingin dihitung BER-nya %Bit data random yang dipancarkan %Constraint length K = 5, code generator = [35 23] trellis=poly2trellis(5,[35 23]); code=convenc(b,trellis); for l = 1:length(code) if code(l) == 0 code(l) = 1; code(l) = -1; %N-point data random sebagai AWGN dengan daya noise tertentu n=randn(1,2*n)./10^(ebpn0(i)/20)./sqrt(2); tb = 2; % Traceback length for decoding % To prepare for soft-decision decoding, map to decision values. [x,qcode] = quantiz(1-n,[-.75 -.5 -.25 0.25.5.75],...

[7 6 5 4 3 2 1 0]); % Values in qcode are between 0 and 2^3-1. decoded = vitdec(qcode,trellis,tb,'trunc','soft',3); % Viterbi Decoding %Menghitung jumlah bit error BER(i) = BER(i) + sum(abs(decoded))/2; BER(i) = BER(i)/5/N; %BER=Jml error rata2 / jml bit yg dikirim semilogy(ebpn0,ber, '*'); hold on; %Routine untuk memplot P(e) sebagai fungsi dari Eb/N0 secara teoritis EbpN0=linspace(0,10,11); %Nilai Eb/N0 yang ingin dihitung BER-nya t=linspace(0,max(ebpn0),500); Pe=0.5.*erfc(sqrt(10.^(t/10))); semilogy(t,pe,'r'); grid on; title ('BER terhadap Eb/N0 untuk Kanal AWGN Dengan K = 5'); xlabel('eb/n0 (db)'); ylabel('ber'); disp ('Kurva menunjukkan nilai teoritis P(e)'); disp('tanda bintang menunjukkan hasil simulasi BER'); leg('hasil simulasi BER','Nilai teoritis P(e)',0);

%Program Conv-coding vit-decoding dengan K = 7 clear; clc; clf; N=1e6 EbpN0=linspace(0,7,9); for i=1: length(ebpn0) BER(i)=0; for j=1:4 b=sign(randn(1,n)); orig_bit = b; for k=1:length(b) if b(k) == 1; b(k) = 0; b(k) = 1; %Jumlah bit yang akan disimulasikan %Nilai Eb/N0 yang ingin dihitung BER-nya %Bit data random yang dipancarkan %Constraint length K = 7, code generator = [171 133] trellis=poly2trellis(7,[171 133]); code=convenc(b,trellis); for l = 1:length(code) if code(l) == 0 code(l) = 1; code(l) = -1; %N-point data random sebagai AWGN dengan daya noise tertentu n=randn(1,2*n)./10^(ebpn0(i)/20)./sqrt(2); tb = 2; % Traceback length for decoding % To prepare for soft-decision decoding, map to decision values. [x,qcode] = quantiz(1-n,[-.75 -.5 -.25 0.25.5.75],... [7 6 5 4 3 2 1 0]); % Values in qcode are between 0 and 2^3-1.

decoded = vitdec(qcode,trellis,tb,'trunc','soft',3); % Viterbi Decoding %Menghitung jumlah bit error BER(i) = BER(i) + sum(abs(decoded))/2; BER(i) = BER(i)/5/N; %BER=Jml error rata2 / jml bit yg dikirim semilogy(ebpn0,ber, '*'); hold on; %Routine untuk memplot P(e) sebagai fungsi dari Eb/N0 secara teoritis EbpN0=linspace(0,10,11); %Nilai Eb/N0 yang ingin dihitung BER-nya t=linspace(0,max(ebpn0),500); Pe=0.5.*erfc(sqrt(10.^(t/10))); semilogy(t,pe,'r'); grid on; title ('BER terhadap Eb/N0 untuk Kanal AWGN Dengan K = 7'); xlabel('eb/n0 (db)'); ylabel('ber'); disp ('Kurva menunjukkan nilai teoritis P(e)'); disp('tanda bintang menunjukkan hasil simulasi BER'); leg('hasil simulasi BER','Nilai teoritis P(e)',0);

%Program Conv-coding vit-decoding dengan K = 9 clear; clc; clf; N=1e6 EbpN0=linspace(0,7,9); for i=1: length(ebpn0) BER(i)=0; for j=1:4 b=sign(randn(1,n)); orig_bit = b; for k=1:length(b) if b(k) == 1; b(k) = 0; b(k) = 1; %Jumlah bit yang akan disimulasikan %Nilai Eb/N0 yang ingin dihitung BER-nya %Bit data random yang dipancarkan %Constraint length K = 9, code generator = [753 561] trellis=poly2trellis(9,[753 561]); code=convenc(b,trellis); for l = 1:length(code) if code(l) == 0 code(l) = 1; code(l) = -1; %N-point data random sebagai AWGN dengan daya noise tertentu n=randn(1,2*n)./10^(ebpn0(i)/20)./sqrt(2); tb = 2; % Traceback length for decoding % To prepare for soft-decision decoding, map to decision values. [x,qcode] = quantiz(1-n,[-.75 -.5 -.25 0.25.5.75],... [7 6 5 4 3 2 1 0]); % Values in qcode are between 0 and 2^3-1. decoded = vitdec(qcode,trellis,tb,'trunc','soft',3); % Viterbi Decoding

%Menghitung jumlah bit error BER(i) = BER(i) + sum(abs(decoded))/2; BER(i) = BER(i)/5/N; %BER=Jml error rata2 / jml bit yg dikirim semilogy(ebpn0,ber, '*'); hold on; %Routine untuk memplot P(e) sebagai fungsi dari Eb/N0 secara teoritis EbpN0=linspace(0,10,11); %Nilai Eb/N0 yang ingin dihitung BER-nya t=linspace(0,max(ebpn0),500); Pe=0.5.*erfc(sqrt(10.^(t/10))); semilogy(t,pe,'r'); grid on; title ('BER terhadap Eb/N0 untuk Kanal AWGN Dengan K = 9'); xlabel('eb/n0 (db)'); ylabel('ber'); disp ('Kurva menunjukkan nilai teoritis P(e)'); disp('tanda bintang menunjukkan hasil simulasi BER'); leg('hasil simulasi BER','Nilai teoritis P(e)',0);