BAB V PENUTUP
5.2 Saran
Untuk mendapatkan hasil simulasi yang lebih baik, perlu penambahan parameter-parameter yang dilibatkan dalam simulasi antara lain:
1. Penggunaan pengkodean kanal (channel coding/decoding) untuk mendapatkan nilai BER yang minimum
DAFTAR PUSTAKA
1. Mulyadi,Erwin.14 Desember 2007.Mengenal Teknologi DVB-T dan DVB-H.
2011
2. DVB-T http://en.m.wikipedia.org/wiki/DVB-T
3. Ladebusch, Uwe. 2006. Proceedings of the IEEE. Terrestrial DVB (DVB-T): A Broadcast Technology for Stationary Portable and Mobile Use. 4: 183-186
. Diakses 31 Desember 2011
4. Hasibuan, Elvina. 2009. Analisa Interferensi Penerapan DVB-T/H terhadap TV PAL Analog pada masa Transisi ke Sistem Penyiaran Dijital di Jakarta. Depok: Tesis, Jurusan Teknik Telekomunikasi, Universitas Indonesia. 6: 7-12 5. Fischer,Walter.2003.Digital Video and Audio Broadcasting Technology.
Springer: London. 2: 371-372
6. Panggabean, Samuel Firmantua. 2009. Analisis Kinerja Sistem OFDM pada Jaringan HFC dengan menggunakan Spesifikasi DOCSIS. Medan : Tugas Akhir, Jurusan Teknik Elektro, Universitas Sumatera Utara. 4: 32-35
7. Bruin, Ronald de.1999. Digital Video Broadcasting: Technology, Standards, and Regulations. Artech House Inc:Norwood.
8. Dito,Antonius.28 September
Mei 2011
and Modulation for Digital Terrestrial Television. 1: 6
10. Harada, Hiroshi dan Ramjee Prasad. 2000. Simulation and Software Radio for Mobile Communication. Boston: Artech House
11. Kumar,Amitabh.2007. Mobile TV: DVB-H, DMB, 3G Systems and Rich Media Applications. Elsevier Inc:New York
12. Panggabean, Samuel Firmantua. 2009. Analisis Kinerja Sistem OFDM pada Jaringan HFC dengan menggunakan Spesifikasi DOCSIS. Medan : Tugas Akhir, Jurusan Teknik Elektro, Universitas Sumatera Utara. 4: 32-35
13. Satria 11. 29 Juli 2009. mengenal standar DVB.
Diakses
LAMPIRAN I
Flowchart Algoritma Simulasi Kinerja OFDM pada DVB-T
MULAI
Bangkitkan data random
Ubah data masukan menjadi bit data
Diproses di kanal dengan pengaruh AWGN TIDAK
Tambahkan cyclic prefix
YA Set Parameter
Ubah bit-bit data ke dalam bentuk paralel
Memodulasi tiap-tiap bit paralel pada subcarrier yang berbeda
Alirkan sinyal hasil modulasi ke dalam IFFT
Tampilkan prefis di data
Buang cyclic prefix
Alirkan sinyal ke FFT
Demodulasi tiap-tiap sinyal
Ubah sinyal ke bentuk serial
Hitung bit error rate
Selesai A
LAMPIRAN II Program Simulasi
1. Script File OFDM pada DVB-T 2K pengaruh Eb/N0 clear all;
clc;
%****************** Bagian Persiapan ******************
para=4096; % Jumlah Kanal parallel yang ditransmisikan
fftlen=4096; % panjang FFT
noc=1705; % Jumlah carrier
nd=188; % Jumlah simbol OFDM untuk satu loop
ml=2; % Level Modulasi : QPSK
sr=6750000; % Symbol rate
br=sr.*ml; % Bit rate per carrier
gilen=128; % Panjang guard interval (points)
ebn0=1:15; % Eb/N0
%******************** Bagian loop utama ******************
nloop=100; % Jumlah loop simulasi noe = 0; % Jumlah data error
nod = 0; % Jumlah data ditransmisiskan for s = 1:2 for ss=1:15 for iii=1:nloop %******************** transmitter ********************* %****************** Pembangkitan Data ******************* seldata=rand(1,para*nd*ml) > 0.5 ; %*********** Konversi seri ke paralel ************
paradata=reshape(seldata,para,nd*ml); % reshape : built in function
%******************* Modulasi QPSK ******************
[ich,qch]=qpskmod(paradata,para,nd,ml);
kmod=1/sqrt(2); % sqrt : built in function if s == 1; ich1=ich.*kmod; qch1=qch.*kmod; end %************************ IFFT ************************ x=ich1+qch1.*1i;
y=ifft(x); % ifft : built in function ich2=real(y); % real : built in function qch2=imag(y); % imag : built in function
%************** Penyisipan Guard interval ************** [ich3,qch3]= giins(ich2,qch2,fftlen,gilen,nd); fftlen2=fftlen+gilen; %**************** Perhitungan attenuasi ************* spow=sum(ich3.^2+qch3.^2)/nd./para; % sum : built in function
attn=0.5*spow*sr/br*10.^(-ebn0(ss)/10); attn=sqrt(attn); %********************* Receiver ********************* %******************** Penambahan AWGN ******************* [ich4,qch4]=comb(ich3,qch3,attn);
%***************** Penghilangan Guard interval ************* %m2 [ich5,qch5]= girem(ich4,qch4,fftlen2,gilen,nd); %*********************** FFT ************************ rx=ich5+qch5.*1i;
ry=fft(rx); % fft : built in function ich6=real(ry); % real : built in function qch6=imag(ry); % imag : built in function %********************* demodulasi ******************* ich7=ich6./kmod; qch7=qch6./kmod; [demodata]=qpskdemod(ich7,qch7,para,nd,ml);
%*********** Konversi parallel ke seri ************
demodata1=reshape(demodata,1,para*nd*ml);
%**************** Bit Error Rate (BER) ****************
% Jumlah error yang muncul dan data
noe2=sum(abs(demodata1-seldata)); % sum : built in function
nod2=length(seldata); % length : built in function
% Jumlah error kumulatif dan data pada noe dan nod noe=noe+noe2;
nod=nod+nod2;
fprintf ('Nilai BER untuk EbN0 %d percobaan ke %3.0f adalah %0.9f \n', ebn0(ss),iii,noe2/nod2); end %******************* Hasil Keluaran ******************** switch s case 1 berd(ss)=(noe/nod); case 2 berteori(ss) = (1/2)*erfc(sqrt((ebn0(ss)))); end
%fprintf('Nilai BER rata-rata untuk 100 kali percoba%f\t%e\t%d\t\n',ebn0,ber,nloop);
%********************* Akhir dari file ******************** end end disp (' '); disp (' '); for s = 1:2 switch s case 1 ber = berd;
fprintf('Nilai BER rata-rata untuk tiap EbN0 pada OFDM\n'); case 2
ber = berteori;
fprintf('Nilai BER teori rata-rata untuk tiap EbN0 pada OFDM\n');
end
fprintf('| EbN0 | BER |\n'); fprintf('|---|\n');
for u = 1:15
fprintf('| %2.0f dB | %0.9f |\n',ebn0(u),ber(u)); % fprintf : built in function
end fprintf('|---|\n\n\n'); if s ==1; plot(ebn0,ber,'--b'); elseif s ==2; plot(ebn0,berteori,'--r'); end grid on;hold on end xlabel('EbN0 (dB)'); ylabel('BER');
title ('Grafik Perbandingan BER terhadapa EbN0 pada kanal AWGN'); legend('OFDM','BER OFDM Teori');
2. Script File OFDM pada DVB-T 8K pengaruh Eb/N0 clear all;
clc;
%****************** Bagian Persiapan ******************
para=16384; % Jumlah kanal parallel yang ditransmisikan
fftlen=16384; % Panjang FFT
noc=6817; % Jumlah carrier
nd=188; % Jumlah simbol OFDM dalam satu loop
ml=2; % level Modulasi : QPSK
sr=6750000; % Symbol rate
br=sr.*ml; % Bit rate per carrier
gilen=512; % Panjang guard interval (points)
ebn0=1:15; % Eb/N0
%******************** Bagian loop utama ******************
nloop=100; % jumlah loop simulasi noe = 0; % Jumlah data error
nod = 0; % Jumlah data yang ditransmisikan
for s = 1:2 for ss=1:15
for iii=1:nloop %******************** transmitter ********************* %****************** Pembangkitan data ******************* seldata=rand(1,para*nd*ml) > 0.5 ; %*********** Konversi seri e paralel ************
paradata=reshape(seldata,para,nd*ml); % reshape : built in function
%******************* modulasi QPSK ******************
[ich,qch]=qpskmod(paradata,para,nd,ml);
kmod=1/sqrt(2); % sqrt : built in function if s == 1; ich1=ich.*kmod; qch1=qch.*kmod; end %************************ IFFT ************************ x=ich1+qch1.*1i;
y=ifft(x); % ifft : built in function ich2=real(y); % real : built in function qch2=imag(y); % imag : built in function
%************** Penyisipan Guard interval ************** [ich3,qch3]= giins(ich2,qch2,fftlen,gilen,nd); fftlen2=fftlen+gilen; %**************** Perhitungan Attenuation ************* spow=sum(ich3.^2+qch3.^2)/nd./para; % sum : built in function
attn=0.5*spow*sr/br*10.^(-ebn0(ss)/10); attn=sqrt(attn); %********************* Receiver ********************* %******************** Penambahan AWGN ******************* [ich4,qch4]=comb(ich3,qch3,attn);
%***************** Penghilangan Guard interval ************* %m2
[ich5,qch5]= girem(ich4,qch4,fftlen2,gilen,nd);
%*********************** FFT ************************
rx=ich5+qch5.*1i;
ry=fft(rx); % fft : built in function ich6=real(ry); % real : built in function qch6=imag(ry); % imag : built in function %********************* demodulasi ******************* ich7=ich6./kmod; qch7=qch6./kmod; [demodata]=qpskdemod(ich7,qch7,para,nd,ml);
%*********** Konversi parallel ke seri ************
demodata1=reshape(demodata,1,para*nd*ml);
%**************** Bit Error Rate (BER) ****************
% Jumlah error yang muncul dan data
noe2=sum(abs(demodata1-seldata)); % sum : built in function
nod2=length(seldata); % length : built in function
% Jumlah error kumulatif dan data pada noe dan nod
noe=noe+noe2; nod=nod+nod2;
fprintf ('Nilai BER untuk EbN0 %d percobaan ke %3.0f adalah %0.9f \n', ebn0(ss),iii,noe2/nod2); end %******************* Hasil keluaran ******************** switch s case 1 berd(ss)=(noe/nod); case 2 berteori(ss) = (1/2)*erfc(sqrt((ebn0(ss)))); end
%fprintf('Nilai BER rata-rata untuk 100 kali percoba%f\t%e\t%d\t\n',ebn0,ber,nloop);
%********************* Akhir dari file ******************** end
end disp (' '); disp (' '); for s = 1:2 switch s case 1 ber = berd;
fprintf('Nilai BER rata-rata untuk tiap EbN0 pada OFDM\n'); case 2
ber = berteori;
fprintf('Nilai BER teori rata-rata untuk tiap EbN0 pada OFDM\n');
end
fprintf('|---|\n'); fprintf('| EbN0 | BER |\n'); fprintf('|---|\n');
for u = 1:15
fprintf('| %2.0f dB | %0.9f |\n',ebn0(u),ber(u)); % fprintf : built in function
end fprintf('|---|\n\n\n'); if s ==1; plot(ebn0,ber,'--b'); elseif s ==2; plot(ebn0,berteori,'--r'); end grid on;hold on end xlabel('EbN0 (dB)'); ylabel('BER');
title ('Grafik Perbandingan BER terhadapa EbN0 pada kanal AWGN'); legend('OFDM','BER OFDM Teori');
3. Script File OFDM pada DVB-T 2K pengaruh Bit Rate
%****************** Bagian Persiapan ****************** clear all;
para=4096; % Jumlah kanal paralel yang ditransmisikan
fftlen=4096; % Panjang FFT noc=1705; % Jumlah carrier
nd=188; % Jumlah simbol OFDM untuk satu loop ml=2; % Level modulasi : QPSK
sr=3000000:3000000:24000000; % Symbol rate
br=sr.*ml; % Bit rate per carrier
gilen=128; % Panjang guard interval (points) ebn0=10; % Eb/N0
%******************* Bagian Main Loop *******************
nloop=100; % Jumlah loop simulasi
noe = 0; % Jumlah data error
nod = 0; % Jumlah data yang ditransmisikan for s = 1:8 for iii=1:nloop %********************** Transmitter ********************* %*******************Pembangkitan Data ******************* seldata=rand(1,para*nd*ml) > 0.5; % rand : dibangun di dalam fungsi
%************* Konversi Dari Serial Ke Paralel *************
paradata=reshape(seldata,para,nd*ml); % reshape : dibangun di dalam fungsi
%******************** Modulasi QPSK ************************
[ich,qch]=qpskmod(paradata,para,nd,ml);
kmod=1/sqrt(2); % sqrt : dibangun di dalam fungsi
%************************ IFFT *****************************
x=ich+qch.*i;
y=ifft(x); % ifft : dibangun di dalam fungsi ich2=real(y); % real : dibangun di dalam fungsi
qch2=imag(y); % imag : dibangun di dalam fungsi
[ich3,qch3]= giins(ich2,qch2,fftlen,gilen,nd); fftlen2=fftlen+gilen; %******************* Kalkulasi Atenuasi ********************** spow=sum(ich3.^2+qch3.^2)/nd./para; % sum : dibangun di dalam fungsi
attn=0.5*spow*sr/br*10.^(-ebn0/10); attn=sqrt(attn); %************************** Receiver ************************** %*********************** Penambahan AWGN ********************** [ich4,qch4]=comb(ich3,qch3,attn);
%****************** Pengeluaran Guard Interval *************** [ich5,qch5]= girem(ich4,qch4,fftlen2,gilen,nd); %*************************** FFT ******************************* rx=ich5+qch5.*i;
ry=fft(rx); % fft : dibangun di dalam fungsi ich6=real(ry); % real : dibangun di dalam fungsi qch6=imag(ry); % imag : dibangun di dalam fungsi %************************ Demodulasi ************************** ich7=ich6./kmod; qch7=qch6./kmod; [demodata]=qpskdemod(ich7,qch7,para,nd,ml);
%************* Konversi Dari Paralel Ke Serial **************
demodata1=reshape(demodata,1,para*nd*ml);
%****************** Bit Error Rate (BER) ********************
% Jumlah error yang muncul dan data
noe2=sum(abs(demodata1-seldata)); % sum : dibangun di dalam fungsi
nod2=length(seldata);
% length : dibangun di dalam fungsi
% Jumlah error kumulatif dan data pada noe dan nod
noe=noe+noe2;
nod=nod+nod2;
fprintf ('Nilai BER untuk bit rate %d percobaan ke %3.0f adalah 0.2f \n', br ,iii,noe2/nod2); end %*********************** Hasil Keluaran ********************* ber(s)=noe/nod;
%fprintf('Nilai BER rata-rata untuk 100 kali percoba%f\t%e\t%d\t\n',ebn0,ber,nloop);
%*********************** Akhir Dari Data ******************** end disp (' '); disp (' '); %figure(2);
fprintf('Nilai BER rata-rata untuk Bit Rate\n');
fprintf('|---|\n'); fprintf('| Data Rate | BER |\n'); fprintf('|---|\n');
for u = 1:8
fprintf('| %2.0f bps | %0.9f |\n',br(u),ber(u)); % fprintf : built in function end fprintf('|---|\n\n\n'); plot(br,ber,'--b'); grid on; xlabel('BIT RATE'); ylabel('BER');
title ('GRAFIK PERBANDINGAN BER TERHADAP BIT RATE');
4. Script File OFDM pada DVB-T 8K pengaruh Bit Rate
%****************** Bagian Persiapan ****************** clear all;
clc;
para=16384; % Jumlah kanal paralel yang %ditransmisikan
fftlen=16384; % Panjang FFT noc=6817; % Jumlah carrier
nd=188; % Jumlah simbol OFDM untuk satu loop ml=2; % Level modulasi : QPSK
sr=3000000:3000000:24000000; % Symbol rate
br=sr.*ml; % Bit rate per carrier
gilen=512; % Panjang guard interval (points) ebn0=10; % Eb/N0
%******************* Bagian Main Loop *******************
nloop=100; % Jumlah loop simulasi
noe = 0; % Jumlah data error
nod = 0; % Jumlah data yang ditransmisikan for s = 1:8 for iii=1:nloop %********************** Transmitter ********************* %*******************Pembangkitan Data ******************* seldata=rand(1,para*nd*ml) > 0.5; % rand : dibangun di dalam fungsi
%************* Konversi Dari Serial Ke Paralel *************
paradata=reshape(seldata,para,nd*ml); % reshape : dibangun di dalam fungsi
%******************** Modulasi QPSK ************************
[ich,qch]=qpskmod(paradata,para,nd,ml);
kmod=1/sqrt(2); % sqrt : dibangun di dalam fungsi
%************************ IFFT *****************************
x=ich+qch.*i;
y=ifft(x); % ifft : dibangun di dalam fungsi ich2=real(y); % real : dibangun di dalam fungsi
qch2=imag(y); % imag : dibangun di dalam fungsi
[ich3,qch3]= giins(ich2,qch2,fftlen,gilen,nd); fftlen2=fftlen+gilen; %******************* Kalkulasi Atenuasi ********************** spow=sum(ich3.^2+qch3.^2)/nd./para; % sum : dibangun di dalam fungsi
attn=0.5*spow*sr/br*10.^(-ebn0/10); attn=sqrt(attn); %************************** Receiver ************************** %*********************** Penambahan AWGN ********************** [ich4,qch4]=comb(ich3,qch3,attn);
%****************** Pengeluaran Guard Interval *************** [ich5,qch5]= girem(ich4,qch4,fftlen2,gilen,nd); %*************************** FFT ******************************* rx=ich5+qch5.*i;
ry=fft(rx); % fft : dibangun di dalam fungsi ich6=real(ry); % real : dibangun di dalam fungsi qch6=imag(ry); % imag : dibangun di dalam fungsi %************************ Demodulasi ************************** ich7=ich6./kmod; qch7=qch6./kmod; [demodata]=qpskdemod(ich7,qch7,para,nd,ml);
%************* Konversi Dari Paralel Ke Serial **************
demodata1=reshape(demodata,1,para*nd*ml);
%****************** Bit Error Rate (BER) ********************
% Jumlah error yang muncul dan data
noe2=sum(abs(demodata1-seldata)); % sum : dibangun di dalam fungsi
nod2=length(seldata);
% length : dibangun di dalam fungsi
% Jumlah error kumulatif dan data pada noe dan nod
noe=noe+noe2;
nod=nod+nod2;
fprintf ('Nilai BER untuk bit rate %d percobaan ke %3.0f adalah 0.2f \n', br ,iii,noe2/nod2); end %*********************** Hasil Keluaran ********************* ber(s)=noe/nod;
%fprintf('Nilai BER rata-rata untuk 100 kali percoba%f\t%e\t%d\t\n',ebn0,ber,nloop);
%*********************** Akhir Dari Data ******************** end disp (' '); disp (' '); %figure(2);
fprintf('Nilai BER rata-rata untuk Bit Rate\n');
fprintf('|---|\n'); fprintf('| Data Rate | BER |\n'); fprintf('|---|\n');
for u = 1:8
fprintf('| %2.0f bps | %0.9f |\n',br(u),ber(u)); % fprintf : built in function end fprintf('|---|\n\n\n'); plot(br,ber,'--b'); grid on; xlabel('BIT RATE'); ylabel('BER');
title ('GRAFIK PERBANDINGAN BER TERHADAP BIT RATE');