BAB III 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.
Gambar 3.2. Tampilan Menu Utama Simulator Modulasi Digital.
15
16
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))]; end
17
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))]; end
18
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))]; end
19
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))]; end
20
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) a=a*-1
21 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 dan bit urutan ke-gasal c. Isyarat masukan akan dimodulasi dengan 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) %Bit ganjil ( I ) I_signal = [I_signal (b(ii)==0)*am*(-1)*cos(2*pi*f*t1)+...
22 (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 dan bit urutan ke-gasal c. Isyarat masukan akan dimodulasi dengan 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')); am=str2num(get(handles.amplitudo,'string'));
23 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); nbit= M*log2(M);
24 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]; end