Dosen pembimbing:
Oleh:
(1931130071)
1D/23
1.1 Tujuan
1. Memahami macam-macam pengkodean data digital (Unipolar, RZ, AMI, Manchester,
D-Manchester)
2. Memahami teknik pengkodean data digital
3. Mampu melakukan simulasi pengkodean data digital
4. Membuat program untuk mensimulasikan karakteristik pengkodean data digital
digital (Unipolar, RZ, AMI, Manchester, D-Manchester)
5. Membuat flowchart teknik pengkodean data digital.
2. Program Delphi 7
t
Unipolar
0 1 0 0 1 1 0 0 1
RZ
Gambar 6 HDB3
unit Unit1;
interface
uses
type
Tfrmsinyal = class(TForm)
rz: TImage;
Edit1: TEdit;
btKeluar: TButton;
uni: TImage;
nrzl: TImage;
nrzi: TImage;
man: TImage;
dman: TImage;
ami: TImage;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
label10: TLabel;
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmsinyal: Tfrmsinyal;
implementation
{$R *.dfm}
procedure sumbu(image:Timage;ax,ay,b,c:integer);
begin
image.Canvas.Pen.Color:=clblack;
image.Canvas.MoveTo(ax,ay);
image.Canvas.LineTo(ax+b,ay);
image.Canvas.MoveTo(ax,ay);
image.Canvas.LineTo(ax,ay-c);
image.Canvas.MoveTo(ax,ay);
image.Canvas.LineTo(ax,ay+c);
image.Canvas.Pen.Width:=3;
end;
var
x1,x2,y1,y2,i,n,tnd1,tnd2,tnd3,tnd4:integer;
data:string;
pnjg:double;
begin
x1:=0;
y1:=50;
if length(Edit1.Text)=0 then
begin
Edit1.SetFocus;
end
else begin
data:=Edit1.Text;
n:=length(Edit1.Text);
rz.Picture:=nil; //rz
sumbu(rz,x1,y1,1000,100);
rz.Canvas.Pen.Color:=clblue;
sumbu(uni,x1,y1,1000,100);
uni.Canvas.pen.Color:=clblue;
nrzl.Picture:=nil; //nrzl
sumbu(nrzl,x1,y1,1000,100);
nrzl.Canvas.pen.Color:=clblue;
nrzi.Picture:=nil; //nrzi
sumbu(nrzi,x1,y1,1000,100);
nrzi.Canvas.pen.Color:=clblue;
man.Picture:=nil; //Manchester
sumbu(man,x1,y1,1000,100);
man.Canvas.Pen.Color:=clblue;
dman.Picture:=nil; //D-Manchester
sumbu(dman,x1,y1,1000,100);
dman.Canvas.pen.Color:=clblue;
ami.Picture:=nil; //ami
sumbu(ami,x1,y1,1000,100);
ami.Canvas.pen.Color:=clblue;
//===============================gambar===============================//
for i:=1 to 8 do
begin
if data[i]='1' then
begin
x2:=round((2*i*pnjg)-(2*pnjg));
rz.canvas.MoveTo(x2,y1-1); //RZ
rz.canvas.LineTo(x2,y1-30);
rz.canvas.LineTo(round(x2+pnjg),y1-30);
rz.canvas.LineTo(round(x2+pnjg),y1-1);
rz.canvas.LineTo(round(x2+2*pnjg),y1-1);
uni.canvas.LineTo(x2,y1-30);
nrzl.Canvas.LineTo(x2,y1+30); //NRZL
nrzl.Canvas.LineTo(round(x2+pnjg*2),y1+30);
nrzi.Canvas.MoveTo(x2,y1+30);
nrzi.Canvas.LineTo(x2,y1-30);
nrzi.Canvas.LineTo(round(x2+pnjg*2),y1-30);
tnd1:=1;
end
else begin
nrzi.Canvas.MoveTo(x2,y1-30);
nrzi.Canvas.LineTo(x2,y1+30);
nrzi.Canvas.LineTo(round(x2+pnjg*2),y1+30);
tnd1:=0;
end;
ami.Canvas.MoveTo(x2,y1);
ami.Canvas.LineTo(x2,y1+30);
ami.Canvas.LineTo(round(x2+pnjg*2),y1+30);
ami.Canvas.LineTo(round(x2+pnjg*2),y1);
tnd2:=1;
end
else begin
ami.Canvas.MoveTo(x2,y1);
ami.Canvas.LineTo(x2,y1-30);
ami.Canvas.LineTo(round(x2+pnjg*2),y1-30);
ami.Canvas.LineTo(round(x2+pnjg*2),y1);
tnd2:=0;
end;
man.Canvas.LineTo(x2,y1+30); //MANC
man.Canvas.LineTo(round(x2+pnjg),y1+30);
man.Canvas.LineTo(round(x2+pnjg),y1-30);
man.Canvas.LineTo(round(x2+2*pnjg),y1-30);
dman.Canvas.LineTo(x2,y1-30); //DMANC
dman.Canvas.LineTo(round(x2+pnjg),y1-30);
dman.Canvas.LineTo(round(x2+pnjg),y1+30);
dman.Canvas.LineTo(round(x2+2*pnjg),y1+30);
tnd3:=0;
end
else begin
dman.Canvas.LineTo(x2,y1+30);
dman.Canvas.LineTo(round(x2+pnjg),y1+30);
dman.Canvas.LineTo(round(x2+pnjg),y1-30);
dman.Canvas.LineTo(round(x2+2*pnjg),y1-30);
tnd3:=1;
end;
end//====================jika data='0'=========================
else begin
x2:=round((2*i*pnjg)-(2*pnjg));
rz.canvas.MoveTo(x2,y1-1); //RZ
rz.canvas.LineTo(x2,y1+30);
rz.canvas.LineTo(round(x2+pnjg),y1+30);
rz.canvas.LineTo(round(x2+pnjg),y1-1);
rz.canvas.LineTo(round(x2+2*pnjg),y1-1);
uni.canvas.LineTo(round(x2+2*pnjg),y1-1);
nrzl.canvas.LineTo(x2,y1-30); //NRZL
nrzl.canvas.LineTo(round(x2+2*pnjg),y1-30);
nrzi.canvas.LineTo(round(x2+2*pnjg),y1+30)
else nrzi.canvas.LineTo(round(x2+2*pnjg),y1-30);
ami.canvas.LineTo(x2,y1); //AMI
ami.canvas.LineTo(round(x2+2*pnjg),y1);
man.Canvas.LineTo(x2,y1-30); //MANC
man.Canvas.LineTo(round(x2+pnjg),y1-30);
man.Canvas.LineTo(round(x2+pnjg),y1+30);
man.Canvas.LineTo(round(x2+2*pnjg),y1+30);
dman.Canvas.LineTo(x2,y1+30); //DMANC
dman.Canvas.LineTo(round(x2+pnjg),y1+30);
dman.Canvas.LineTo(round(x2+pnjg),y1-30);
dman.Canvas.LineTo(round(x2+2*pnjg),y1-30);
end;
end;
end;
end;
begin
frmsinyal.Close;
end;
end.
2.3 Hasil Percobaan
3.1 Kesimpulan
1. Data digital merupakan data yang memiliki deretan nilai yang
berbeda dan memiliki ciri-ciri tersendiri dan Sinyal digital
merupakan hasil teknologi yang dapat mengubah signal menjadi
kombinasi urutan bilangan 0 dan 1
2. Pengkodean unipolar hanya menggunakan sebuah level tegangan
untuk menyatakan dua posisi bilangan biner yaitu yaitu 0V dan +V
untuk menyatakan data biner 0 dan 1.
3. Pengkodean saluran jenis Return to Zero (RZ) menggunakan level –
V dan +V dengan transisi di pertengahan bit data biner. Data biner
0 dinyatakan dengan transisi dari level –V menuju 0V, sedangkan
data biner 1 dinyatakan dengan transisi dari level 0V menuju +V.
4. Pengkodean D-Mancaster merupakan suatu kode di mana biner 0 diwakili
oleh adanya transisi di awal periode suatu bit dan biner 1 diwakili oleh ketiadaan
transisi di awal periode suatu bit.
5. Pengkodean AMI merupakan suatu kode dimana binary '0' diwakili
dengan tidak adanya line sinyal dan binary '1' diwakili oleh suatu
pulsa positif atau negatif.