Anda di halaman 1dari 7

SER-QPSK

TUGAS 1
PIRANTI LUNAK TELEKOMUNIKASI LANJUT

SIMULASI PERBANDINGAN SYMBOL ERROR RATE dengan


Es/N0 pada MODULASI DIGITAL QUADRATURE PHASE SHIFT
KEYING

KETUT ARSARAHADI OKA BRAHMANSA


1419451036

PROGRAM STUDI TEKNIK ELEKTRO


FAKULTAS TEKNIK
UNIVERSITAS UDAYANA
2017
SER-QPSK

Function
function [simSEr]=SER_AWGN_FUNCTION(N,Es_N0_dB,Es_N0,Es,ipHat)
for ii = 1:length(Es_N0_dB)
% Transmitter
ip = (2*(rand(1,N)>0.5)-1) + j*(2*(rand(1,N)>0.5)-1); %
simbol QPSK(00:-1-j1, 01:-1+j1, 10:1-j1, 11:1+j1)
s = (Es/sqrt(2))*ip; % untuk menormalisasi energi dari
simbol yang ditransmisikan menjadi bernilai 1
% Kanal Transmisi
n = randn(1,N) + j*randn(1,N); % noise (Additive White
Gaussian Noise)
stdn = sqrt(1/(2*Es_N0(ii))); % standard deviation of noise
(sigma^2=EsN0/2) asumsi Es=1 -> akar Es/N0= stdn
y = s + stdn*n; % karena noise-nya AWGN maka sinyal yg
ditransmisikan + noise yg didapat dari kanal
% Receiver
y_re = real(y); % sinyal y dalam bentuk riil
y_im = imag(y); % sinyal y dalam bentuk imajiner
% sinyal masih dalam bentuk imajiner maka harus diubah
menjadi riil
ipHat((y_re < 0 & y_im < 0)) = -1 + -1*j; % mewakili bit 00
ipHat((y_re >= 0 & y_im > 0)) = 1 + 1*j; % mewakili bit 11
ipHat((y_re < 0 & y_im >= 0)) = -1 + 1*j; % mewakili bit 01
ipHat((y_re >= 0 & y_im < 0)) = 1 - 1*j; % mewakili bit 10

nSErr(ii) = size(find([ip- ipHat]),2); % menghitung jumlah


simbol yang error saat proses transmisi
end

simSEr = nSErr/N % menghitung total simbol error pada saat


simulasi (simbol error transmisi/jumlah simbol yang digunakan)
SER-QPSK

Program Utama
clc, clear all, close all;
N = 10^6; % jumlah simbol yang akan digunakan dalam simulasi
Es_N0_dB = 0:10; % nilai Es_N0 dalam bentuk dB
Es_N0 = 10.^(Es_N0_dB/10); % nilai Es_N0 dalam bentuk bilangan
riil
Es = 1; % karena pada simulasi tidak terdapat penguatan maka
magnitudo=1 (Es=P)maka P=1 -> akar P= amplitudo
ipHat = zeros(1,N); % initialization

simSEr=SER_AWGN_FUNCTION(N,Es_N0_dB,Es_N0,Es,ipHat);

theorySErr_QPSK = erfc(sqrt(0.5*(10.^(Es_N0_dB/10)))); %
menghitung simbol error secara teori

% PLOT GRAFIK
close all
figure
semilogy(Es_N0_dB,theorySErr_QPSK,'ro-','linewidth',2);
hold on
semilogy(Es_N0_dB,simSEr,'gx-','linewidth',2);
grid on
legend('QPSK(Theory)','QPSK(Simulation)');
xlabel('Es/N0,dB','fontname','arial','fontweight','bold','fontsi
ze',10);
ylabel('Symbol Error
Rate','fontname','arial','fontweight','bold','fontsize',10);
title('QPSK (Symbol Error Rate
Probabilities)','fontname','arial','fontweight','bold','fontsize
',10)
SER-QPSK

Grafik
SER-QPSK

Program Rata-Rata
clc, clear all, close all
jum_run = 8;
simul_hasil = [];
N = 10^6; % jumlah simbol yang akan digunakan dalam simulasi
Es_N0_dB = 0:15; % nilai Es_N0 dalam bentuk dB
Es_N0 = 10.^(Es_N0_dB/10); % nilai Es_N0 dalam bentuk bilangan
riil
Es = 1; % karena pada simulasi tidak terdapat penguatan maka
magnitudo=1 (Es=P)maka P=1 -> akar P= amplitudo
ipHat = zeros(1,N); % initialization

for run=1:jum_run % run sebanyak 8 kali


simSEr=SER_AWGN_FUNCTION(N,Es_N0_dB,Es_N0,Es,ipHat);
[simul_hasil] = [simul_hasil;simSEr];
end
SEr_Rata2 = mean(simul_hasil);
theorySErr_QPSK = erfc(sqrt(0.5*(10.^(Es_N0_dB/10)))); %
menghitung simbol error secara teori
% PLOT GRAFIK
close all
semilogy(Es_N0_dB,SEr_Rata2,'ro-','linewidth',2);
hold on
semilogy(Es_N0_dB,theorySErr_QPSK,'gx-','linewidth',2);
legend('QPSK(Simulation)','QPSK(Theory)');
axis([0 8 10^-2 10^-0.4])
grid on
xlabel('Es/N0,dB','fontname','arial','fontweight','bold','fontsi
ze',10);
ylabel('Symbol Error
Rate','fontname','arial','fontweight','bold','fontsize',10);
title('QPSK (Symbol Error Rate
Probabilities)','fontname','arial','fontweight','bold','fontsize
',10)
SER-QPSK

Grafik Rata-rata
SER-QPSK

Analisa

Anda mungkin juga menyukai