Institutional Repository | Satya Wacana Christian University: Discrete Fourier Transform-Spread Orthogonal Frequency Division Multiplexing pada Jaringan Generasi Keempat (4G)

LAMPIRAN

SIMULASI SC-FDMA
function [SER_ifdma,SER_lfdma] = scfdma(SP)

numSymbols = SP.FFTsize;
Q = numSymbols/SP.inputBlockSize;
H_channel = fft(SP.channel,SP.FFTsize);

for n = 1:length(SP.SNR),
tic;
errCount_ifdma = 0;
errCount_lfdma = 0;

for k = 1:SP.numRun,

% pembentukan simbol masukan (simbol acak) :
tmp = round(rand(2,SP.inputBlockSize));
tmp = tmp*2 - 1;
inputSymbols = (tmp(1,:) + i*tmp(2,:))/sqrt(2);


%%%%%%%%%%%%%
% MODULATOR
%%%%%%%%%%%%%

% proses FFT simbol masukan :
inputSymbols_freq = fft(inputSymbols);
inputSamples_ifdma = zeros(1,numSymbols);
inputSamples_lfdma = zeros(1,numSymbols);
% subcarrier mapping :
inputSamples_ifdma(1+SP.subband:Q:numSymbols) = inputSymbols_freq;

67

68

inputSamples_lfdma([1:SP.inputBlockSize]+SP.inputBlockSize*SP.subband) =
inputSymbols_freq;
% proses iFFT :
inputSamples_ifdma = ifft(inputSamples_ifdma);
inputSamples_lfdma = ifft(inputSamples_lfdma);

% proses penambahan CP:
TxSamples_ifdma = [inputSamples_ifdma(numSymbols-SP.CPsize+1:numSymbols)
inputSamples_ifdma];
TxSamples_lfdma = [inputSamples_lfdma(numSymbols-SP.CPsize+1:numSymbols)
inputSamples_lfdma];

% penambahan noise w[n] :
RxSamples_ifdma = filter(SP.channel, 1, TxSamples_ifdma);
% Multipath Channel
RxSamples_lfdma = filter(SP.channel, 1, TxSamples_lfdma);
% Multipath Channel

%%%%%%%%%%%%%
% DEMODULATOR
%%%%%%%%%%%%%
% proses pemisahan CP:
tmp = randn(2, numSymbols+SP.CPsize);
complexNoise = (tmp(1,:) + i*tmp(2,:))/sqrt(2);
noisePower = 10^(-SP.SNR(n)/10);
RxSamples_ifdma = RxSamples_ifdma + sqrt(noisePower/Q)*complexNoise;

RxSamples_lfdma = RxSamples_lfdma + sqrt(noisePower/Q)*complexNoise;
RxSamples_ifdma = RxSamples_ifdma(SP.CPsize+1:numSymbols+SP.CPsize);
RxSamples_lfdma = RxSamples_lfdma(SP.CPsize+1:numSymbols+SP.CPsize);
% proses FFT:
Y_ifdma = fft(RxSamples_ifdma, SP.FFTsize);
Y_lfdma = fft(RxSamples_lfdma, SP.FFTsize);
% subcarrier demapping :
Y_ifdma = Y_ifdma(1+SP.subband:Q:numSymbols);
Y_lfdma = Y_lfdma([1:SP.inputBlockSize]+SP.inputBlockSize*SP.subband);

69

H_eff = H_channel(1+SP.subband:Q:numSymbols);
if SP.equalizerType == 'ZERO'
Y_ifdma = Y_ifdma./H_eff;
elseif SP.equalizerType == 'MMSE'
C = conj(H_eff)./(conj(H_eff).*H_eff + 10^(-SP.SNR(n)/10));
Y_ifdma = Y_ifdma.*C;
end


H_eff = H_channel([1:SP.inputBlockSize]+SP.inputBlockSize*SP.subband);
if SP.equalizerType == 'ZERO'
Y_lfdma = Y_lfdma./H_eff;
elseif SP.equalizerType == 'MMSE'
C = conj(H_eff)./(conj(H_eff).*H_eff + 10^(-SP.SNR(n)/10));
Y_lfdma = Y_lfdma.*C;
end

% proses iFFT :
EstSymbols_ifdma = ifft(Y_ifdma);
EstSymbols_lfdma = ifft(Y_lfdma);

EstSymbols_ifdma = sign(real(EstSymbols_ifdma)) + ...
i*sign(imag(EstSymbols_ifdma));
EstSymbols_ifdma = EstSymbols_ifdma/sqrt(2);
EstSymbols_lfdma = sign(real(EstSymbols_lfdma)) + ...
i*sign(imag(EstSymbols_lfdma));
EstSymbols_lfdma = EstSymbols_lfdma/sqrt(2);

I_ifdma = find((inputSymbols-EstSymbols_ifdma) == 0);

errCount_ifdma = errCount_ifdma + (SP.inputBlockSize- ...
length(I_ifdma));
I_lfdma = find((inputSymbols-EstSymbols_lfdma) == 0);
errCount_lfdma = errCount_lfdma + (SP.inputBlockSize- ...
length(I_lfdma));

70

end
SER_ifdma(n,:) = errCount_ifdma / (SP.inputBlockSize*SP.numRun);
SER_lfdma(n,:) = errCount_lfdma / (SP.inputBlockSize*SP.numRun);
[SP.SNR(n) SER_ifdma(n,:) SER_lfdma(n,:)]
toc
end

function runSimSCFDMA()

SP.FFTsize = 512;
SP.inputBlockSize = 16;
SP.CPsize = 20;

%SP.subband = 15;
SP.subband = 0;
SP.SNR = [0:2:20];
SP.numRun = 10^1;

% TS 25.104
pedAchannel = [1 10^(-9.7/20) 10^(-22.8/20)];
pedAchannel = pedAchannel/sqrt(sum(pedAchannel.^2));
vehAchannel = [1 0 10^(-1/20) 0 10^(-9/20) 10^(-10/20) 0 0 0 10^(-15/20) 0 0 0
10^(-20/20)];
vehAchannel = vehAchannel/sqrt(sum(vehAchannel.^2));
idenChannel = 1;

SP.channel = idenChannel;
%SP.channel = pedAchannel;
%SP.channel = vehAchannel;

SP.equalizerType ='ZERO';
%SP.equalizerType ='MMSE';


[SER_ifdma SER_lfdma] = scfdma(SP);
save scfdma_awgn

71

SIMULASI PAPR SC-FDMA
function papr_SCFDMA ()

totalSubcarriers = 256; % Jumlah total subcarrier
numSymbols = 64; % Ukuran blok data
Q = totalSubcarriers/numSymbols; % Faktor Penyebaran Bandwidth IFDMA
filterType = 'rr'; % Jenis filter pulse shaping
rolloffFactor = 0.0999999999; % Faktor Rolloff untuk filter raised-cosine
% Untuk mengatasi divide-by-zero, sebagai contoh gunakan 0.099999999
Fs = 5e6; % Bandwidth sistem
Ts = 1/Fs; % Periode Sampling
Nos = 8; % Faktor Oversampling
if filterType == 'rc' % Jika Menggunakan filter Raised-cosine
psFilter = rcPulse(Ts, Nos, rolloffFactor);
elseif filterType == 'rr' % Jika Menggunakan filter Root raised-cosine

psFilter = rrcPulse(Ts, Nos, rolloffFactor);
end
numRuns = 1000; % Jumlah iterasi

papr_ifdma = zeros(1,numRuns); % Inisialisasi nilai PAPR
papr_lfdma = zeros(1,numRuns);
papr_ifdma_PS = zeros(1,numRuns);
papr_lfdma_PS = zeros(1,numRuns);

for n = 1:numRuns,
% Pembentukan data random:
tmp = round(rand(numSymbols,2));
tmp = tmp*2 - 1;
data = (tmp(:,1) + j*tmp(:,2))/sqrt(2);

% Konversi ke ranah frekuensi menggunakan FFT
X = fft(data);
% Inisialisasi subcarrier

72


Yifdma = zeros(totalSubcarriers,1);
Ylfdma = zeros(totalSubcarriers,1);
% Subcarrier mapping
Yifdma(1:Q:totalSubcarriers) = X;
Ylfdma(1:numSymbols) = X;

% Konversi data ke ranah waktu menggunakan iFFT
yifdma = ifft(Yifdma);
ylfdma = ifft(Ylfdma);

% Tanpa pulse shaping
y_result_ifdma = yifdma;
y_result_lfdma = ylfdma;
% Dengan Pulse shaping
% Up-sample simbol-simbol
y_oversampled_ifdma_PS(1:Nos:Nos*totalSubcarriers) = yifdma;
y_oversampled_lfdma_PS(1:Nos:Nos*totalSubcarriers) = ylfdma;
% Lakukan filtering
y_result_ifdma_PS = filter(psFilter, 1, y_oversampled_ifdma_PS);

y_result_lfdma_PS = filter(psFilter, 1, y_oversampled_lfdma_PS);

% Menghitung PAPR:
papr_ifdma(n) = 10*log10(max(abs(y_result_ifdma).^2) / …
mean(abs(y_result_ifdma).^2));
papr_lfdma(n) = 10*log10(max(abs(y_result_lfdma).^2) / …
mean(abs(y_result_lfdma).^2));
papr_ifdma_PS(n) = 10*log10(max(abs(y_result_ifdma_PS).^2) / …
mean(abs(y_result_ifdma_PS).^2));
papr_lfdma_PS(n) = 10*log10(max(abs(y_result_lfdma_PS).^2) / …
mean(abs(y_result_lfdma_PS).^2));
end
% Menggambar CCDF (Complementary Cumulative Distribution Function):
[Ni,Xi] = hist(papr_ifdma, 100);
[Nl,Xl] = hist(papr_lfdma, 100);

73

[NiPS,XiPS] = hist(papr_ifdma_PS, 100);
[NlPS,XlPS] = hist(papr_lfdma_PS, 100);

figure;
semilogy(Xi,1-cumsum(Ni)/max(cumsum(Ni)),'r')
hold on
semilogy(Xl,1-cumsum(Nl)/max(cumsum(Nl)),'b')
hold on
semilogy(XiPS,1-cumsum(NiPS)/max(cumsum(NiPS)),'r--')
hold on
semilogy(XlPS,1-cumsum(NlPS)/max(cumsum(NlPS)),'b--')
title('CCDF PAPR SC-FDMA menggunakan IFDMA (merah) & LFDMA (biru)');
xlabel('PAPR [dB]');
ylabel('Pr(PAPR>PAPR0)');
grid on;

% Menyimpan data:
save papr_SCFDMA;

function r = rrcPulse(Ts, Nos, alpha)
% Pembentukan Pulse Shaping Root raised-Cosine
t1 = [-6*Ts:Ts/Nos:-Ts/Nos];
t2 = [Ts/Nos:Ts/Nos:6*Ts];

r1 = (4*alpha/(pi*sqrt(Ts)))*(cos((1+alpha)*pi*t1/Ts)+(Ts./(4*alpha*t1)).* ...
sin((1-alpha)*pi*t1/Ts))./(1-(4*alpha*t1/Ts).^2);
r2 = (4*alpha/(pi*sqrt(Ts)))*(cos((1+alpha)*pi*t2/Ts)+(Ts./(4*alpha*t2)).* ...
sin((1-alpha)*pi*t2/Ts))./(1-(4*alpha*t2/Ts).^2);

r = [r1 (4*alpha/(pi*sqrt(Ts))+(1-alpha)/sqrt(Ts)) r2];

function r = rcPulse(Ts, Nos, alpha)
% Pembentukan Pulse Shaping Raised-Cosine
t1 = [-8*Ts:Ts/Nos:-Ts/Nos];
t2 = [Ts/Nos:Ts/Nos:8*Ts];

r1 = (sin(pi*t1/Ts)./(pi*t1)).*(cos(pi*alpha*t1/Ts)./(1-(4*alpha*t1/(2*Ts)).^2));
r2 = (sin(pi*t2/Ts)./(pi*t2)).*(cos(pi*alpha*t2/Ts)./(1-(4*alpha*t2/(2*Ts)).^2));
r = [r1 1/Ts r2];

Dokumen yang terkait

Analisis Kinerja Orthogonal Frequency Division Multiplexing pada Sistem DVB-T (Digital Video Broadcasting Terrestrial)

1 33 85

Design And Implementation Of Orthogonal Frequency Division Multiplexing Receiver.

0 5 24

Institutional Repository | Satya Wacana Christian University: Discrete Fourier Transform-Spread Orthogonal Frequency Division Multiplexing pada Jaringan Generasi Keempat (4G)

0 1 16

Institutional Repository | Satya Wacana Christian University: Discrete Fourier Transform-Spread Orthogonal Frequency Division Multiplexing pada Jaringan Generasi Keempat (4G) T1 612005039 BAB I

0 0 6

Institutional Repository | Satya Wacana Christian University: Discrete Fourier Transform-Spread Orthogonal Frequency Division Multiplexing pada Jaringan Generasi Keempat (4G) T1 612005039 BAB II

0 0 23

Institutional Repository | Satya Wacana Christian University: Discrete Fourier Transform-Spread Orthogonal Frequency Division Multiplexing pada Jaringan Generasi Keempat (4G) T1 612005039 BAB IV

0 0 15

Institutional Repository | Satya Wacana Christian University: Discrete Fourier Transform-Spread Orthogonal Frequency Division Multiplexing pada Jaringan Generasi Keempat (4G) T1 612005039 BAB V

0 0 1

KINERJA SISTEM COFDM (CODED ORTHOGONAL FREQUENCY DIVISION MULTIPLEXING) PADA KANAL RADIO MOBILE

0 0 5

Estimasi Doppler Spread pada Sistem Orthogonal Frequency Division Multiplexing (OFDM) dengan Metode Phase Difference

0 0 6

SIMULASI PENGARUH PERUBAHAN PARAMETER PHYSICAL OFDM (ORTHOGONAL FREQUENCY DIVISION MULTIPLEXING) PADA JARINGAN MOBILE WIMAX

0 0 11