Program ini saya buat ketika sedang mengambil matakuliah Komunikasi Data.
Fungsi Umum
Fungsi Umum
function GAMBARBALOK(sinyal, jumlahbarisgambar, jumlahkolomgambar, posisigambar, judul, pertambahanx)
%GAMBARBALOK
%GAMBARBALOK(sinyal, jumlahbarisgambar, jumlahkolomgambar, posisigambar, judul, pertambahanx)
% sinyal sebagai sumbu y
% pertambahanx sebagai interval pada sumbu x
% fungsi ini akan :) menampilkan diagram balok dari sinyal
% :) tidak mengembalikan nilai
%
%Basit Adhi Prabowo - UAD Jogjakarta - 19052004
%revisi 1 - 20052004 - Basit Adhi Prabowo
%revisi 2 - 21052004 - Basit Adhi Prabowo
%revisi 3 - 24052004 - Basit Adhi Prabowo
[baris, kolom] = size(sinyal); %mengetahui berapa jumlah kolom dan baris dari input
min = sinyal(1,1); %kondisi awal sinyal minimal adalah sinyal pertama
max = sinyal(1,1); %kondisi awal sinyal maksimal adalah sinyal pertama
% Kedua versi ini panjang karena dibuat untuk mengantisipasi sinyal berupa matriks 2 dimensi
% VERSI I
% Versi ini lebih pendek dari versi II karena untuk setiap sinyal memiliki dua koordinat x, yaitu
% x dan x+1, misal : [0 1 1 1 0]
% pertambahan sumbu x pada versi ini tetap, yaitu 1
% sumbu x 0 1 1 2 2 3 3 4 4 5
% sumbu y 0 0 1 1 1 1 1 1 0 0
% penentuan sumbu x
% kedua = 0;
% for i=1:baris,
% for j=1:kolom,
% pertama = kedua + 1;
% kedua = pertama + 1;
% x(pertama) = (kedua / 2) - 1;
% x(kedua) = kedua / 2;
% y(pertama) = sinyal(i,j);
% y(kedua) = y(pertama);
% if sinyal(i,j) < min %pencarian nilai minimal
% min = sinyal(i,j);
% else if sinyal(i,j) > max %pencarian nilai maksimal
% max = sinyal(i,j);
% end
% end
% end
% end
% VERSI II
% Versi ini lebih panjang dari versi I karena untuk setiap sinyal yang sama dengan sinyal selanjutnya
% cukup memiliki sebuah koordinat x, misal : [0 1 1 1 0]
% pertambahan sumbu x pada versi ini bebas tetapi tetap, yaitu pertambahanx (konstan)
% sumbu x 0 1 1 2 3 4 4 5
% sumbu y 0 0 1 1 1 1 0 0
%penentuan sumbu x
sumbux = 0;
indeks = 1;
x(indeks) = sumbux;
y(indeks) = sinyal(1,1);
if pertambahanx < 1
x(indeks+1) = sumbux + pertambahanx;
y(indeks+1) = sinyal(1,2);
end
for i=1:baris,
for j=1:kolom,
sumbux = sumbux + pertambahanx;
indeks = indeks + 1;
x(indeks) = sumbux;
y(indeks) = sinyal(i,j);
if j ~= kolom
if sinyal(i,j) ~= sinyal(i,j+1)
indeks = indeks + 1;
x(indeks) = sumbux;
y(indeks) = sinyal(i,j+1);
end %end if sinyal(i,j) ~= sinyal(i,j+1)
else
if i ~= baris
if sinyal(i,j) ~= sinyal(i+1,1)
indeks = indeks + 1;
x(indeks) = sumbux;
y(indeks) = sinyal(i+1,1);
end %end if sinyal(i,j) ~= sinyal(i+1,1)
end %end if i ~= baris
end %end if j ~= kolom
if sinyal(i,j) < min %pencarian nilai minimal
min = sinyal(i,j);
else if sinyal(i,j) > max %pencarian nilai maksimal
max = sinyal(i,j);
end %end if sinyal(i,j) > max
end %end if sinyal(i,j) < min
end %end for j=1:kolom
end %end for i=1:baris
% gambar grafik
subplot(jumlahbarisgambar, jumlahkolomgambar, posisigambar)
plot(x,y,'m.-'); %menggambar seluruh kekontinuan koordinat (x,y)
title(judul);
grid on; %menampilkan garis
% penentuan batas gambar
xmin = 0; %batas awal diagram kartesian pada sumbu x
xmax = baris*kolom*pertambahanx; %batas akhir diagram kartesian pada sumbu x
ymin = min + (min/10); %batas awal digram kartesian pada sumbu y
ymax = max + (max/10); %batas akhir diagram kartesian pada sumbu y
axis([xmin xmax ymin ymax]);
function matriks2d = MATRIKS1D22D(matriks1d, kolom)
%MATRIKS1D22D
%matriks2d = MATRIKS1D22D(sinyal)
% fungsi ini akan :) merubah matriks 1 dimensi menjadi matriks 2 dimensi sebanyak kolom
% :) matriks 2 dimensi
%
%Basit Adhi Prabowo - UAD Jogjakarta - 28052004
n = length(matriks1d);
kol = 1;
bar = 1;
for i=1:n,
matriks2d(bar, kol) = matriks1d(i);
kol = kol + 1;
if kol == kolom + 1
bar = bar + 1;
kol = 1;
end
end
function [matriks1d, baris, kolom] = MATRIKS2D21D(matriks2d)
%MATRIKS2D21D
%[matriks1d, baris, kolom] = MATRIKS2D21D(sinyal)
% fungsi ini akan :) merubah matriks 2 dimensi menjadi matriks 1 dimensi
% :) matriks 1 dimensi, baris, kolom
%
%Basit Adhi Prabowo - UAD Jogjakarta - 28052004
[baris, kolom] = size(matriks2d);
n = 0;
for i=1:baris,
for j=1:kolom,
n = n + 1;
matriks1d(n) = matriks2d(i,j);
end
end
RZ
function current = RZ(sinyal)
%RZ
%current = RZ(sinyal)
% fungsi ini akan :) merubah sinyal menjadi sinyal menurut pengkodean RZ
% :) mengembalikan sinyal RZ (sumbu y dalam grafik)
%
% untuk penggambaran grafik, gunakan fungsi GAMBARBALOK dengan pertambahanx = 0.5
%
%Basit Adhi Prabowo - UAD Jogjakarta - 24052004
[baris,kolom]=size(sinyal);
for i=1:baris,
for j=1:kolom,
if sinyal(i,j) == 0
current(i,(2*j)-1) = 1;
current(i,2*j) = 0;
else
current(i,(2*j)-1) = -1;
current(i,2*j) = 0;
end
end
end
function current = UN_RZ(sinyal)
%UN_RZ
%current = UN_RZ(sinyal)
% fungsi ini akan :) merubah sinyal menurut pengkodean RZ menjadi sinyal normal
% :) mengembalikan sinyal normal
%
%Basit Adhi Prabowo - UAD Jogjakarta - 28052004
[baris,kolom]=size(sinyal);
for i=1:baris,
for j=2:2:kolom,
if sinyal(i,j-1) == 1
current(i,j/2) = 0;
else
current(i,j/2) = 1;
end
end
end
PSEUDOTERNARY
function current = PSEUDOTERNARY(sinyal)
%PSEUDOTERNARY
%current = PSEUDOTERNARY(sinyal)
% fungsi ini akan :) merubah sinyal menjadi sinyal menurut pengkodean PSEUDOTERNARY
% :) mengembalikan sinyal PSEUDOTERNARY (sumbu y dalam grafik)
%
% untuk penggambaran grafik, gunakan fungsi GAMBARBALOK dengan pertambahanx = 1
%
%Basit Adhi Prabowo - UAD Jogjakarta - 24052004
[baris,kolom]=size(sinyal);
sebelum = -1;
for i=1:baris,
for j=1:kolom,
if sinyal(i,j) == 1
current(i,j) = 0;
else
if sebelum == -1
current(i,j) = 1;
else
current(i,j) = -1;
end
sebelum = current(i,j);
end
end
end
function current = UN_PSEUDOTERNARY(sinyal)
%UN_PSEUDOTERNARY
%current = UN_PSEUDOTERNARY(sinyal)
% fungsi ini akan :) merubah sinyal menurut pengkodean PSEUDOTERNARY menjadi sinyal normal
% :) mengembalikan sinyal normal
%
%Basit Adhi Prabowo - UAD Jogjakarta - 28052004
[baris,kolom]=size(sinyal);
for i=1:baris,
for j=1:kolom,
if sinyal(i,j) == 0
current(i,j) = 1;
else
current(i,j) = 0;
end
end
end
NRZ-L
function current = NRZ_L(sinyal)
%NRZ_L
%current = NR_ZL(sinyal)
% fungsi ini akan :) merubah sinyal menjadi sinyal menurut pengkodean NRZ-L
% :) mengembalikan sinyal NRZ-L (sumbu y dalam grafik)
%
% untuk penggambaran grafik, gunakan fungsi GAMBARBALOK dengan pertambahanx = 1
%
%Basit Adhi Prabowo - UAD Jogjakarta - 24052004
[baris,kolom]=size(sinyal);
for i=1:baris,
for j=1:kolom,
if sinyal(i,j) == 0
current(i,j) = 1;
else
current(i,j) = 0;
end
end
end
function current = UN_NRZ_L(sinyal)
%UN_NRZ_L
%current = UN_NR_ZL(sinyal)
% fungsi ini akan :) merubah sinyal menurut pengkodean NRZ-L menjadi sinyal normal
% :) mengembalikan sinyal normal
%
%Basit Adhi Prabowo - UAD Jogjakarta - 28052004
[baris,kolom]=size(sinyal);
for i=1:baris,
for j=1:kolom,
if sinyal(i,j) == 0
current(i,j) = 1;
else
current(i,j) = 0;
end
end
end
UNRZ-I
function current = NRZ_I(sinyal)
%NRZ_I
%current = NRZ_I(sinyal)
% fungsi ini akan :) merubah sinyal menjadi sinyal menurut pengkodean NRZ_I
% :) mengembalikan sinyal NRZ_I (posisi sumbu y dalam grafik)
%
% untuk penggambaran grafik, gunakan fungsi GAMBARBALOK dengan pertambahanx = 1
%
%Basit Adhi Prabowo - UAD Jogjakarta - 21052004
%revisi 1 - 24052004 - Basit Adhi Prabowo
[baris, kolom] = size(sinyal);
current(1,1) = sinyal(1,1);
for i=1:baris,
if i ~= 1
awalj = 1;
else
awalj = 2;
end
for j=awalj:kolom,
if sinyal(i,j) == 1
if j ~= 1
if current(i,j-1) == 0
current(i,j) = 1;
else
current(i,j) = 0;
end
else
if current(i-1,kolom) == 0
current(i,j) = 1;
else
current(i,j) = 0;
end
end
else
if j ~= 1
current(i,j) = current(i,j-1);
else
current(i,j) = current(i-1,kolom);
end
end
end
end
function current = UN_NRZ_I(sinyal)
%UN_NRZ_I
%current = UN_NRZ_I(sinyal)
% fungsi ini akan :) merubah sinyal menurut pengkodean NRZ_I sinyal normal
% :) mengembalikan sinyal normal
%
%Basit Adhi Prabowo - UAD Jogjakarta - 28052004
[baris, kolom] = size(sinyal);
current(1,1) = sinyal(1,1);
for i=1:baris,
if i ~= 1
awalj = 1;
else
awalj = 2;
end
for j=awalj:kolom,
if j ~= 1
if sinyal(i,j) ~= sinyal(i,j-1)
current(i,j) = 1;
else
current(i,j) = 0;
end
else
if sinyal(i,j) ~= sinyal(i-1,kolom)
current(i,j) = 1;
else
current(i,j) = 0;
end
end
end
end
MANCHESTER
function current = MANCHESTER(sinyal)
%MANCHESTER
%current = MANCHESTER(sinyal)
% fungsi ini akan :) merubah sinyal menjadi sinyal menurut pengkodean MANCHESTER
% :) mengembalikan sinyal MANCHESTER (sumbu y dalam grafik)
%
% untuk penggambaran grafik, gunakan fungsi GAMBARBALOK dengan pertambahanx = 0.5
%
%Basit Adhi Prabowo - UAD Jogjakarta - 24052004
[baris,kolom]=size(sinyal);
for i=1:baris,
for j=1:kolom,
if sinyal(i,j) == 0
current(i,(2*j)-1) = 1;
current(i,2*j) = 0;
else
current(i,(2*j)-1) = 0;
current(i,2*j) = 1;
end
end
end</span></blockquote><blockquote><span style="font-size:85%;">function current = UN_MANCHESTER(sinyal)
%UN_MANCHESTER
%current = UN_MANCHESTER(sinyal)
% fungsi ini akan :) merubah sinyal menurut pengkodean MANCHESTER menjadi sinyal normal
% :) mengembalikan sinyal normal
%
%Basit Adhi Prabowo - UAD Jogjakarta - 28052004
[baris,kolom]=size(sinyal);
for i=1:baris,
for j=2:2:kolom,
if sinyal(i,j) == 0
current(i,j/2) = 0;
else
current(i,j/2) = 1;
end
end
end
HDB3
function current = HDB3(sinyal)
%HDB3
%current = HDB3(sinyal)
% fungsi ini akan :) merubah sinyal menjadi sinyal menurut pengkodean HDB3
% :) mengembalikan sinyal HDB3 (sumbu y dalam grafik)
%
% untuk penggambaran grafik, gunakan fungsi GAMBARBALOK dengan pertambahanx = 1
%
%Basit Adhi Prabowo - UAD Jogjakarta - 25052004
%revisi 1 - 28052004 - Basit Adhi Prabowo
[baris,kolom]=size(sinyal);
sebelum = -1;
jumlahnol = 0;
fnotnol = find(sinyal ~= 0);
pnotnol = length(fnotnol);
if baris > 1
sinyal = matriks2d21d(sinyal);
end
n = baris * kolom;
for j=1:n,
if sinyal(j) == 0
current(j) = 0;
jumlahnol = jumlahnol + 1;
else
jumlahnol = 0;
if sebelum == -1
current(j) = 1;
else
current(j) = -1;
end
sebelum = current(j);
end
if jumlahnol == 4
if mod(pnotnol,2) == 1
if sebelum == -1
current(j) = -1;
else
current(j) = 1;
end
pnotnol = pnotnol + 1;
else
if sebelum == -1
current(j-3) = 1;
current(j) = 1;
else
current(j-3) = -1;
current(j) = -1;
end
pnotnol = pnotnol + 2;
end
jumlahnol = 0;
sebelum = current(j);
end
end
if baris > 1
current = matriks1d22d(current,kolom);
end
function current = UN_HDB3(sinyal)
%UN_HDB3
%current = UN_B8ZS(sinyal)
% fungsi ini akan :) merubah sinyal menurut pengkodean HDB3 menjadi sinyal normal
% :) mengembalikan sinyal normal
%
%Basit Adhi Prabowo - UAD Jogjakarta - 294052004
[baris, kolom] = size(sinyal);
if baris > 1
sinyal = matriks2d21d(sinyal);
end
notnol = find(sinyal ~= 0);
if sinyal(notnol(1)) == -1
sebelum = 1;
else
sebelum = -1;
end
n = baris * kolom;
for j=1:n,
if sinyal(j) ~= 0 & sinyal(j) ~= sebelum
current(j) = 1;
sebelum = sinyal(j);
else
if sinyal(j) == 0
current(j) = sinyal(j);
else
if sinyal(j) ~= sebelum
current(j) = 1;
else
current(j) = 0;
current(j-3) = 0;
end
end
end
end
if baris > 1
current = matriks1d22d(current,kolom);
end
DIFFERENTIAL MANCHESTER
function current = DIFFERENTIAL_MANCHESTER(sinyal)
%DIFFERENTIAL_MANCHESTER
%current = DIFFERENTIAL_MANCHESTER(sinyal)
% fungsi ini akan :) merubah sinyal menjadi sinyal menurut pengkodean DIFFERENTIAL MANCHESTER
% :) mengembalikan sinyal DIFFERENTIAL MANCHESTER (sumbu y dalam grafik)
%
% untuk penggambaran grafik, gunakan fungsi GAMBARBALOK dengan pertambahanx = 0.5
%
%Basit Adhi Prabowo - UAD Jogjakarta - 24052004
[baris,kolom]=size(sinyal);
current(1,1) = sinyal(1,1);
if current(1,1) == 0
current(1,2) = 1;
else
current(1,2) = 0;
end
for i=1:baris,
if i ~= 1
awalj = 1;
else
awalj = 2;
end
for j=awalj:kolom,
duakalij = 2*j;
if duakalij ~= 2
if sinyal(i,j) == 0
if current(i,duakalij-2) == 0
current(i,duakalij-1) = 1;
else
current(i,duakalij-1) = 0;
end
else
current(i,duakalij-1) = current(i,duakalij-2);
end
else
if sinyal(i,j) == 0
if current(i-1,2*kolom) == 0
current(i,duakalij-1) = 1;
else
current(i,duakalij-1) = 0;
end
else
current(i,duakalij-1) = current(i-1,2*kolom);
end
end
if current(i,duakalij-1) == 0
current(i,duakalij) = 1;
else
current(i,duakalij) = 0;
end
end
end
function current = UN_DIFFERENTIAL_MANCHESTER(sinyal)
%UN_DIFFERENTIAL_MANCHESTER
%current = UN_DIFFERENTIAL_MANCHESTER(sinyal)
% fungsi ini akan :) merubah sinyal menurut pengkodean DIFFERENTIAL MANCHESTER menjadi sinyal normal
% :) mengembalikan sinyal normal
%
%Basit Adhi Prabowo - UAD Jogjakarta - 28052004
[baris,kolom]=size(sinyal);
current(1,1) = sinyal(1,1);
for i=1:baris,
if i ~= 1
awalj = 3;
else
awalj = 1;
end
for j=awalj:2:kolom,
if j ~= 1
if sinyal(i,j) == sinyal(i,j-1)
current(i,(j+1)/2) = 1;
else
current(i,(j+1)/2) = 0;
end
else
if i ~= 1
if sinyal(i,j) == sinyal(i-1,kolom)
current(i,(j+1)/2) = 1;
else
current(i,(j+1)/2) = 0;
end
end
end
end
end
BIPOLAR AMI
function current = BIPOLAR_AMI(sinyal)
%BIPOLAR_AMI
%current = BIPOLAR_AMI(sinyal)
% fungsi ini akan :) merubah sinyal menjadi sinyal menurut pengkodean BIPOLAR-AMI
% :) mengembalikan sinyal BIPOLAR-AMI (sumbu y dalam grafik)
%
% untuk penggambaran grafik, gunakan fungsi GAMBARBALOK dengan pertambahanx = 1
%
%Basit Adhi Prabowo - UAD Jogjakarta - 24052004
[baris,kolom]=size(sinyal);
sebelum = -1;
for i=1:baris,
for j=1:kolom,
if sinyal(i,j) == 0
current(i,j) = 0;
else
if sebelum == -1
current(i,j) = 1;
else
current(i,j) = -1;
end
sebelum = current(i,j);
end
end
end
function current = UN_BIPOLAR_AMI(sinyal)
%UN_BIPOLAR_AMI
%current = UN_BIPOLAR_AMI(sinyal)
% fungsi ini akan :) merubah sinyal menurut pengkodean BIPOLAR-AMI menjadi sinyal normal
% :) mengembalikan sinyal normal
%
%Basit Adhi Prabowo - UAD Jogjakarta - 28052004
[baris,kolom]=size(sinyal);
for i=1:baris,
for j=1:kolom,
if sinyal(i,j) == 0
current(i,j) = 0;
else
current(i,j) = 1;
end
end
end
B8ZS
function current = B8ZS(sinyal)
%B8ZS
%current = B8ZS(sinyal)
% fungsi ini akan :) merubah sinyal menjadi sinyal menurut pengkodean B8ZS
% :) mengembalikan sinyal B8ZS (sumbu y dalam grafik)
%
% untuk penggambaran grafik, gunakan fungsi GAMBARBALOK dengan pertambahanx = 1
%
%Basit Adhi Prabowo - UAD Jogjakarta - 24052004
%revisi 1 - 28052004 - Basit Adhi Prabowo
[baris, kolom] = size(sinyal);
sebelum = -1;
jumlahnol = 0;
if baris > 1
sinyal = matriks2d21d(sinyal);
end
n = baris * kolom;
for j=1:n,
if sinyal(j) == 0
current(j) = 0;
jumlahnol = jumlahnol + 1;
else
jumlahnol = 0;
if sebelum == -1
current(j) = 1;
else
current(j) = -1;
end
sebelum = current(j);
end
if jumlahnol == 8
if sebelum == -1
current(j-4) = -1;
current(j-3) = 1;
current(j-1) = 1;
current(j) = -1;
else
current(j-4) = 1;
current(j-3) = -1;
current(j-1) = -1;
current(j) = 1;
end
jumlahnol = 0;
end
end
if baris > 1
current = matriks1d22d(current,kolom);
end
function current = UN_B8ZS(sinyal)
%UN_B8ZS
%current = UN_B8ZS(sinyal)
% fungsi ini akan :) merubah sinyal menurut pengkodean B8ZS menjadi sinyal normal
% :) mengembalikan sinyal normal
%
%Basit Adhi Prabowo - UAD Jogjakarta - 294052004
[baris, kolom] = size(sinyal);
if baris > 1
sinyal = matriks2d21d(sinyal);
end
notnol = find(sinyal ~= 0);
if sinyal(notnol(1)) == -1
sebelum = 1;
else
sebelum = -1;
end
ignore = 0;
n = baris * kolom;
for j=1:n,
if ignore ~= 0
ignore = ignore - 1;
else
if sinyal(j) ~= 0 & sinyal(j) ~= sebelum
current(j) = 1;
sebelum = sinyal(j);
else
if sinyal(j) == 0
current(j) = 0;
else
current(j) = 0;
current(j+1) = 0;
current(j+3) = 0;
current(j+4) = 0;
sinyal(j+4) = 0;
ignore = 4;
end
end
end
end
if baris > 1
current = matriks1d22d(current,kolom);
end
Tidak ada komentar:
Posting Komentar