PERANCANGAN
3.1. Perancangan
Secara umum, tampilan simulator modulasi digital ini dibagi menjadi 10 bagian, yaitu
menu utama dan 8 jenis modulasi yang terpisah tiap
GUI
-nya. Cara pengoperasian simulator
modulasi digital ini adalah menekan tombol
start
. Kemudian masuk ke menu utama, yang di
dalamnya terdapat 8 jenis modulasi yang dibagi dalam 4 kategori yaitu
Amplitude Shift
Keying
(
ASK
),
Frequency Shift Keying
(
FSK
),
Phase Shift Keying
(
PSK
), dan
Quadrature
Amplitude Modulation
(
QAM
) seperti terlihat dalam Gambar 3.2.
Gambar 3.1. Tampilan Awal Simulator Modulasi Digital.
3.1.1.
Simulator Modulasi
BASK
(
Binary Amplitude Shift Keying
)
Gambar 3.3. Tampilan Keseluruhan Simulator Modulasi
BASK
.
Masukan simulator modulasi
BASK
berupa deretan
bit
(b). Isyarat masukan akan
dimodulasi dengan 2 isyarat pembawa yang memiliki ampitudo berbeda (am1
dan
am0)dan frekuensi f.
b = get(handles.input, 'string');
f = str2num(get(handles.frekuensi, 'string'));
am1 = str2num(get(handles.a1,'string'));
am0 = str2num(get(handles.a0,'string'));
for ii = 1: 1: length(b)
% Isyarat Termodulasi BASK
ASK_signal = [ASK_signal (b(ii)==0)*am0*sin(2*pi*f*t1)+...
(b(ii)==1)*am1*sin(2*pi*f*t1)];
% Isyarat Masukkan
Digital_signal = [Digital_signal (b(ii)==0)*...
zeros(1,length(t1)) + (b(ii)==1)*ones(1,length(t1))];
3.1.2.
Simulator Modulasi
OOK
(
On-Off Shift Keying
)
Gambar 3.4. Tampilan Keseluruhan Simulator Modulasi
OOK.
Masukan simulator modulasi
OOK
berupa deretan
bit
(b). Isyarat masukan akan
dimodulasi dengan sebuah isyarat pembawa dengan amplitudo a dan frekuensi f.
b = get(handles.edit1, 'string');
f = str2num(get(handles.frekuensi, 'string'));
a = str2num(get(handles.am,'string'));
for ii = 1: 1: length(b)
% Isyarat termodulasi OOK
OOK_signal = [OOK_signal (b(ii)==0)*sin(2*pi*f*t1)*0+...
(b(ii)==1)*a*sin(2*pi*f*t1)];
% Isyarat masukan
Digital_signal = [Digital_signal (b(ii)==0)*...
zeros(1,length(t1)) + (b(ii)==1)*ones(1,length(t1))];
3.1.3.
Simulator Modulasi
BFSK
(
Binary Frequency Shift Keying
)
Gambar 3.5. Tampilan Keseluruhan Simulator Modulasi
BFSK.
Masukan simulator modulasi
BFSK
berupa deretan
bit
(b). Isyarat masukan akan
dimodulasi dengan 2 buah isyarat pembawa yang memiliki frekuensi berbeda (f1
dan
f0) dan amplitudo am.
b = get(handles.edit1, 'string');
f1 = str2num(get(handles.frek1,'string')); %untuk bit "1"
f0 = str2num(get(handles.frek2,'string')); %untuk bit "0"
am= str2num(get(handles.amplitudo,'string'));
for ii = 1: 1: length(b)
% Isyarat termodulasi FSK
BFSK_signal = [BFSK_signal (b(ii)==0)*am*sin(2*pi*f0*t1)+...
(b(ii)==1)*am*sin(2*pi*f1*t1)];
% Isyarat Masukan
Digital_signal = [Digital_signal (b(ii)==0)*...
zeros(1,length(t1)) + (b(ii)==1)*ones(1,length(t1))];
3.1.4.
Simulator Modulasi
BPSK
(
Binary Phase Shift Keying
)
Gambar 3.6. Tampilan Keseluruhan Simulator Modulasi
BPSK.
Masukan simulator modulasi
BPSK
berupa deretan
bit
(b). Isyarat masukan akan
dimodulasi dengan sebuah isyarat pembawa dengan amplitudo am dan frekuensi f.
b = get(handles.input, 'string');
f = str2num(get(handles.frekuensi, 'string'));
am= str2num (get(handles.amplitudo,'string'));
for ii = 1: 1: length(b)
% The FSK Signal
PSK_signal = [PSK_signal (b(ii)==0)*(-1)*am*cos(2*pi*f*t1)+...
(b(ii)==1)*am*(cos(2*pi*f*t1))];
% The Original Digital Signal
Digital_signal = [Digital_signal (b(ii)==0)*...
zeros(1,length(t1))+(b(ii)==1)*ones(1,length(t1))];
3.1.5.
Simulator Modulasi
DPSK
(
Differential Phase Shift Keying
)
Gambar 3.7. Tampilan Keseluruhan Simulator Modulasi
DPSK.
Masukan simulator modulasi
DPSK
berupa deretan
bit
(b). Isyarat masukan akan
dimodulasi dengan sebuah isyarat pembawa dengan amplitudo am dan frekuensi f.
b = get(handles.input, 'string');
f = str2num(get(handles.frekuensi,'string'));
am= str2num(get(handles.amplitudo,'string'));
z=length(b);
dk(1,1)=1;
for n=2:z
if b(1,n)==1
B(1,n)=dk(1,n-1);
dk(1,n)=B(1,n);
else b(1,n)==0
B(1,n)=~dk(1,n-1);
dk(1,n)=B(1,n);
end
end
for ii = 1: 1: length(b)
if (dk(ii)==0)
end
% Isyarat termodulasi DPSK
DPSK_signal = [DPSK_signal (dk(ii)==0)*(-1)*am*sin(2*pi*f*t1)+...
(dk(ii)==1)*am*(sin(2*pi*f*t1))];
% Isyarat masukan
Digital_signal = [Digital_signal (b(ii)==0)*...
zeros(1,length(t1))+(b(ii)==1)*ones(1,length(t1))];
end
3.1.6.
Simulator Modulasi
QPSK
(
Quadrature Phase Shift Keying
)
Gambar 3.8. Tampilan Keseluruhan Simulator Modulasi QPSK.
Masukan simulator modulasi
QPSK
berupa deretan
bit
yang dibagi menjadi 2,
yaitu
bit
urutan ke-genap
b danbit
urutan ke-gasal
c. Isyarat masukan akan dimodulasidengan sebuah isyarat pembawa dengan amplitudo am dan frekuensi f.
b = get(handles.input1, 'string');
c = get (handles.input2,'string');
f = str2num(get(handles.frekuensi, 'string'));
am = str2num(get(handles.amplitudo,'string'));
for ii = 1: 1: length(b)
(b(ii)==1)*am*cos(2*pi*f*t1)];
end
for iii=1:1:length(c)
%bit genap( Q )
Q_signal = [Q_signal (c(iii)==0)*am*(-1)*sin(2*pi*f*t2)+...
(c(iii)==1)*am*sin(2*pi*f*t2)];
end
QPSK_signal= I_signal - Q_signal;
3.1.7.
Simulator Modulasi
OQPSK
(
Offset Quadrature Phase Shift Keying
)
Gambar 3.9. Tampilan Keseluruhan Simulator Modulasi
OQPSK.
Masukan simulator modulasi
OQPSK
berupa deretan
bit
yang dibagi menjadi 2,
yaitu
bit
urutan ke-genap
b danbit
urutan ke-gasal
c. Isyarat masukan akan dimodulasidengan sebuah isyarat pembawa dengan amplitudo am dan frekuensi f.
b = get(handles.input1, 'string'); %bit urutan ke ganjil
c= get (handles.input2,'string'); % bit urutan ke genap
f = str2num(get(handles.frekuensi, 'string'));
for ii = 1: 1: length(b)
%Bit ganjil ( I )
I_signal = [I_signal (b(ii)==0)*(-1)*am*cos(2*pi*f*(t1))+...
(b(ii)==1)*am*cos(2*pi*f*t1)];
end
for iii=1:1:length(c)
%bit genap ( Q )
Q_signal = [Q_signal (c(iii)==0)*(-1)*am*sin(2*pi*f*(t2))+...
(c(iii)==1)*am*sin(2*pi*f*(t2))];
end
OQPSK_signal= I_signal-Q_signal;
3.1.8.
Simulator Modulasi
QAM
(
Quadrature Amplitude Modulation
)
Gambar 3.10. Tampilan Keseluruhan Simulator Modulasi
QAM
.
Dalam simulator modulasi
QAM
terdapat 4 jenis modulasi
QAM
yaitu 4
QAM
, 8
QAM
, 16
QAM,
dan 32
QAM
. Pengguna bisa langsung memilih bagian mana yang ingin
di
plot
dan
bit rate
yang diinginkan.
Ld=log2(M);
ds=ceil(Ld);
msg=round(rand(nbit,1));
msg_reshape=reshape(msg,Ld,nbit/Ld)';
size(msg_reshape);
for(j=1:1:nbit/log2(M))
for(i=1:1:log2(M))
a(j,i)=num2str(msg_reshape(j,i));
end
end
as=bin2dec(a);
ass=as';
p=qammod(ass,M);
RR=real(p);
II=imag(p);
for(k=1:1:length(RR))
yr=RR(k)*cos(2*pi*f*t);
yim=II(k)*sin(2*pi*f*t);
y=yr+yim;
m=[m y];