Anda di halaman 1dari 30

UNIT I

PEMBANGKITAN SINYAL WAKTU-DISKRIT

I. TUJUAN PERCOBAAN
1. Dapat menggunakan program Matlab untuk membangkitkan sinyal
waktu-diskrit yang meliputi runtun impuls, runtun unit undak, runtun
nyata dan khayal eksponensial, runtun sinus, runtun acak
2. Dapat menggunakan program Matlab untuk melakukan operasi runtun
yang terdiri atas penambahan, perkalian, penyekalaan, pergeseran,
penambahan sampel ( sample summation ), perkalian sampel ( sample
products ), dan menentukan energi sinyal.
3. Mampu mengamati dan menganalis perubahan parameter sinyal melalui
program dan gambar tampilan pada monitornya.

II. PERALATAN YANG DIGUNAKAN


1. PC dengan perangkat-lunak MATLAB Versi 6.5.1
2. Printer untuk membuat printout listing program dan gambar sinyal
luaran

III. LANDASAN TEORI


Sinyal secara garis besar diklasifikasikan ke dalam sinyal analog
dan sinyal diskrit. Sinyal analog disimbolkan dengan xa(t) dimana variabel
t menyatakan besaran fisik dan dianggap bahwa t menyatakan waktu
dalam detik. Sinyal diskrit disimbolkan dengan x(n), dimana variabel n
adalah nilai integer dan menyatakan nilai sesaat dari waktu. Oleh karena
itu disebut juga sebagai sinyal waktu diskrit, dimana runtun bilangannya
dinyatakan satu dari sekian symbol berikut:
x ( n)  { x( n)}  { x( 1), x(0), x(1), }

(1.1)
dengan nilai yang ditunjukan oleh anak panah menyatakan sampel
pada n = 0.
Dengan Matlab dapat dinyatakan runtun terbatas dengan vektor baris
dari nilai-nilai pendekatan. Namun vektor demikian tidak memberikan

1
informasi apa-apa mengenai posisi n. Oleh karena itu representasi x(n) yang
sesungguhnya membutuhkan dua vektor, satu untuk menyatakan x dan yang
lain untuk menyatakan n. Sebagai contoh, sebuah runtun x(n)=[2,1,-
1,0,1,4,3,7} dapat dinyatakan dengan perintah Matlab sebagai berikut:

Umumnya, dapat digunakan representasi vektor x sendiri ketika


informasi posisi sampel tidak dibutuhkan.

1. Jenis-Jenis Runtun
Dalam pengolahan sinyal digital, digunakan beberapa runtun dasar
untuk tujuan analisis. Definisi dan representasi Matlabnya diberikan berikut
ini.
a. Runtun unit sampel

 
1 n  0
 (n)    ,0,0,1,0, ,0 
0 n  0 
(1.2)

Dalam Matlab, fungsi zeros(1,N) membangkitkan vektor baris N


nol, yang dapat digunakan untuk menyatakan  (n) melalui interval
terbatas. Namun, relasi logika n==0 adalah cara terbaik untuk menyatakan
 (n) . Sebagai contoh, untuk mengimplementasikan

1 n  0
 ( n  n0 )   (1.3)

0 n  0
melalui interval n1  n0  n 2 , dinyatakan dalam fungsi Matlab berikut.

2
stem(n,x) adalah perintah atau instruksi dalam program Matlab untuk
menggambarkan fungsi unit sampel.

b. Runtun unit undak

1 n  0
 
u(n)    ,0,0,1,1,1,
0 n  0 
(1.4)

Dalam Matlab, fungsi ones(1,N) membangkitkan vektor baris N


satu. Ini dapat digunakan untuk membangkitkan u(n) melalui interval
terbatas. Pendekatan yang tepat adalah menggunakan relasi logika n>=0.
Untuk mengimplementasikan:

1 n  n0
u ( n  n0 )   (1.5)

0 n  n0
melalui interval n1  n0  n 2 , dinyatakan dalam fungsi Matlab berikut.

c. Bilangan nyata runtun eksponensial


x (n)  a n , n; a  

(1.6)
Dalam Matlab, operator larik (array) “.” Dibutuhkan untuk
mengimplementasikan runtun eksponensial nyata. Sebagai contoh, untuk
membangkitkan x(n)  (0,9) n , 0  n  10 dibutuhkan perintah Matlab
berikut:

3
d. Bilangan khayal runtun eksponensial
x( n)  e (  j0 ) , n
(1.7)
dengan σ disebut attenuasi dan ω0 adalah frekuensi dalam radian.
Fungsi Matlab exp digunakan untuk membangkitkan runtun eksponensial.
Sebagai contoh, untuk membangkitkan
x( n)  exp[(2  3 j ) n], 0  n  10 , dibutuhkan perintah Matlab berikut:

e. Runtun sinus
x ( n)  cos( 0 n   ), n

(1.8)
dengan θ adalah fase dalam radian. Fungsi Matlab cos (atau sin)
digunakan untuk membangkitkan runtun sinus. Sebagai contoh, untuk
membangkitkan x(n)  3 cos(0.1n   / 3)  2 sin(0.5n), 0  n  10 ,
dibutuhkan perintah Matlab berikut:

f. Runtun acak
Banyak runtun secara praktek tidak dapat digambarkan melalui
ekspresi matematis seperti di atas. Runtun ini disebut runtun acak (atau
stokastik) dan dikarakteristikkan oleh parameter fungsi kerapatan probabilitas
terkait atau momen statistiknya. Dalam Matlab terdapat dua runtun acak yang
tersedia, yang pertama adalah:
>> rand (1,N);
berfungsi untuk membangkitkan runtun acak sepanjang N yang
elemen-elemennya tersebar antara [0,1], sedangkan yang kedua adalah:
>> randn (1,N);

4
berfungsi untuk membangkitkan runtun acak Gaussian sepanjang N
yang mempunyai rerata 0 dan varians 1. Runtun acak lainnya dapat
dibangkitkan menggunakan transformasi fungsi di atas.

g. Runtun periodik
Runtun x(n) adalah periodik jika x(n) = x(n+N), n . Integer terkecil
N yang memenuhi relasi di atas disebut perioda fundamental. Digunakan
~
x ( n) untuk menyatakan runtun periodik. Untuk membangkitkan periode P

pada ~ x ( n) dari satu perioda {~


x (n), 0  n  N  1} , akan disalin x(n)

sebanyak P kali.

Tetapi pendekatan secara tepat adalah dengan memanfaatkan


kemampuan indeks dari Matlab. Pertama, bangkitkan matriks yang terdiri atas
P baris dari nilai x(n). Kemudian dapat disusun P baris sepanjang vector
kolom menggunakan konstruksi (:). Konstruksi ini hanya dalam kolom. Oleh
karena itu harus digunakan operator matriks transposisi ‘ untuk menyediakan
pengaruh pada baris.

i. Operasi pada runtun


Disini digambarkan mengenai operasi runtun dasar dan ekivalen Matlabnya.

a. Penambahan sinyal
Ini merupakan penambahan sampel dengan sampel yang diberikan oleh:
{x1 ( n)}  {x 2 (n)}  {x1 (n)  x 2 (n)} (1.9)
yang diimplementasikan dalam Matlab dengan operator aritmatika “+”.
Panjang runtun x1(n) dan x2(n) haruslah sama. Jika panjang runtun tidak
sama, atau jika posisinya berbeda untuk panjang runtun yang sama, maka
tidak dapat digunakan operator +. Pertama kali harus augment x1(n) dan
x2(n) sehingga mempunyai vektor posisi yang sama (dan karenanya
mempunyai panjang yang sama). Ini diperlukan kehati-hatian untuk
operasi indeks dalam Matlabnya. Khususnya, operasi logika irisan “&”,

5
operasi relasional seperti “<=” dan “==”, dan fungsi yang diperoleh adalah
diperlukan untuk membuat x1(n) dan x2(n) mempunyai panjang yang sama.
Fungsi berikut disebut fungsi sigadd yang menunjukkan operasi ini.

b. Perkalian sinyal
Ini merupakan perkalian sampel dengan sampel (atau perkalian
“dot”) yang diberikan oleh:
{x1 ( n)}  {x 2 (n)}  {x1 (n) x 2 (n)}

(1.10)
Ini diimplementasikan oleh Matlab dengan operator larik “.*”, dan
operasinya dapat dituliskan sebagai fungsi sigmult yang serupa dengan
fungsi sigadd, yaitu:

6
c. Penyekalaan
Dalam operasi ini, setiap sampel dikalikan dengan sebuah scalar .
 {x ( n)}  { x ( n)} (1.11)
Operator aritmetika “*” digunakan untuk mengimplementasikan operasi
penyekalaan dalam Matlab.

d. Pergerseran
Dalam operasi ini, setiap sample x(n) digeser sebesar k untuk
mendapatkan runtun tergeser y(n).
y ( n)  { x( n  k )}

(1.12)
Jika m=n-k, maka n=m+k dan operasi di atas diberikan oleh:
y (m  k )  { x( m)} (1.13)
Operasi ini tidak berpengaruh pada vector x, tetapi vektor n diubah oleh
penambahan k untuk setiap elemen. Hal ini ditunjukkan dalam fungsi
sigshift.

e. Pembalikan
Dalam operasi pembalikan (folding), setiap sampel dari x(n)
dibalik sekitar n = 0 untuk memperoleh runtun terbalik (n).

7
y ( n)  { x (  n)}

(1.14)
Operasi ini dalam Matlab diimplementasikan melalui fungsi fliplr(x)
untuk nilai-nilai sampel dan fungsi –fliplr(x) untuk sampel posisi seperti
ditunjukkan dalam fungsi sigfold berikut.

f. Penjumlahan sampel
Operasi penjumlahan sampel (sample summation) berbeda dengan
operasi penambahan sinyal. Operasi ini menambahkan semua nilai x(n)
antara n1 dan n2.
n2

 x( n)  x( n )    x (n
n  n1
1 2 )

(1.15)
Ini diimplementasikan oleh fungsi sum(x(n1:n2)).

g. Perkalian sampel
Perkalian sampel (sample product) juga berbeda dengan operasi
perkalian sinyal, yang mengalikan semua nilai-nilai sampel dari x(n)
antara n1 dan n2.
n2

 x ( n)  x ( n )    x ( n
n1
1 2 )

(1.16)
Ini diimplementasikan oleh fungsi prod(x(n1:n2)).

h. Energi sinyal
Energi runtun x(n) diberikan oleh:

8
 

 x ( n) x * ( n)  
2
Εx  x ( n)
 

(1.17)
dengan superskrip * menyatakan operasi konjugat kompleks. Energi
runtun dengan durasi terbatas dapat dihitung dalam Matlab menggunakan:

Contoh 1.1
Bangkitkan dan gambarkan setiap runtun berikut melalui interval yang
diberikan.

Penyelesaian:

Untuk membangkitkan runtun pada soal (a), digunakan perintah Matlab


berikut ini.

Hasil eksekusi terhadap program matlabnya ditunjukkan dalam Gambar


2.1a.

Untuk membangkitkan runtun pada soal (b), digunakan perintah Matlab


berikut ini.

9
Hasil eksekusi terhadap program matlabnya ditunjukkan dalam Gambar
2.1b.

Untuk membangkitkan runtun pada soal (c), digunakan perintah Matlab


berikut ini.

Hasil eksekusi terhadap program matlabnya ditunjukkan dalam Gambar


2.1c.

Gambar 1.1 Runtun dalam Contoh 1.1

Untuk membangkitkan runtun pada soal (d), digunakan perintah Matlab


berikut ini.

Hasil eksekusi terhadap program matlabnya ditunjukkan dalam Gambar


2.1d.

10
Contoh 1.2
Apabila diberikan x(n) = {1,2,3,4,5,6,7,6,5,4,3,2,1}, untuk  2  n  10 .
Tentukan dan gambarkan runtun berikut

Penyelesaian:
Runtun x(n) adalah bukan nol pada interval  2  n  10 . Oleh karena itu,
penulisan variabel n pada Matlab adalah”

yang akan membangkitkan x(n).

Bagian ini diperoleh pertama kali dengan menggeser maju x(n) sejauh 5
sampel dan bagian kedua dengan menggeser mundur x(n) sejauh – 4 sampel.
Penggeseran dan penambahan dapat dengan mudah dilakukan menggunakan
fungsi sigshift dan fungsi sigadd.

Gambar x1(n) ditunjukkan dalam Gambar 1.2a.

Istilah ini dapat dituliskan sebagai x(-(n-3)). Yang pertama dilakukan adalah
membalik x(n) dan kemudian hasilnya di geser sebesar 3. Bagian kedua
adalah perkalian x(n) dan x(n-2), keduanya mempunyai panjang yang sama
tetapi mempunyai posisi sampel yang berbeda. Operasi ini dapat dengan
mudah dilakukan menggunakan fungsi sigfold dan sigmult.

11
Gambar x2(n) ditunjukkan dalam Gambar 1.2b.

Gambar 2.2 Runtun dalam Contoh 2.2


Contoh 1.3
Bangkitkan sinyal bilangan kompleks

dan gambarkan magnitud, fase, bagian nyata, dan bagian khayal dalam empat
sub gambar berbeda.

Penyelesaian:
Untuk membangkitkan runtun pada soal diatas, digunakan perintah Matlab
berikut ini.
Hasil eksekusi terhadap program matlabnya ditunjukkan dalam Gambar 2.1d.

12
Hasil eksekusi terhadap program matlabnya ditunjukkan dalam Gambar 1.3.

Gambar 2.3 Runtun dalam Contoh 1.3

Contoh 1.4
Bangkitkan sinyal berikut

Dekomposisikan x(n) ke bentuk komponen sinyal genap dan sinyal ganjil.

Penyelesaian:
Runtun x(n) bernilai nol di luar interval 0  n  9 yang disebut pulsa kotak.
Digunakan Matlab berikut untuk menentukan dan menggambarkan bagian
genap dan ganjilnya.

13
Hasil eksekusi terhadap program matlabnya ditunjukkan dalam Gambar 1.4.

Gambar 1.4 Dekomposis komponen sinyal genap dan ganjil dalam contoh 1.4

2. Beberapa hasil yang penting


Terdapat beberapa hasil yang penting dalam teori sinyal waktu-diskrit
yang berguna dalam pengolahan sinyal digital.
a. Sintesis unit sampel
Runtun acak x(n) dapat disintesis sebagai jumlah terbobot runtun unit
sampel tertunda dan tersekala, seperti

x ( n)   x(k ) (n  k )
k  

(1.18)

b. Sintesis sinyal genap dan sinyal ganjil


Runtun nilai-nyata xe(n) disebut sinyal genap (simetris) jika
x e (  n )  x e ( n)

(1.19)
Demikian pula halnya, runtun nilai-nyata xo(n) disebut sinyal ganjil
(asimetris), jika
x o (  n)   x o ( n)

(1.20)
Bahwa runtun nilai-nyata acak x(n) dapat diuraikan ke dalam bentuk
komponen sinyal genap dan ganjil

14
x ( n)  x e ( n)  x o ( n) (1.21)
dengan bagian genap dan ganjil diberikan oleh:
1 1
x e ( n)  [ x (n)  x( n)] dan xo ( n)  [ x (n)  x( n)]
2 2
(1.22)
Fungsi Matlab untuk mengurai atau mendekomposisi runtun yang ada
ke sinyal genap dan ganjil digunakan fungsi evenodd berikut:

c. Deret geometri
Runtun eksponensial satu sisi dari bentuk { n , n  0} , dengan 
adalah konstanta yang disebut deret geometri. Deret konvergen untuk   1 ,
sedangkan jumlah komponennya mendekati

1

n 0
n

1
, untuk   1 (1.23)

Ekspresi untuk penjumlahan bilangan terbatas dari deret diberikan oleh


N 1
1 N
 n 
n 0 1
, 

(1.24)

d. Korelasi runtun
Korelasi adalah operasi yang digunakan dalam berbagai aplikasi
pengolahan sinyal digital. Korelasi adalah ukuran tingkat kesamaan suatu
runtun. Apabila diberikan dua runtun nilai-nyata x(n) dan y(n) dengan energi
terbatas, korelasi x(n) dan y(n) adalah runtun rxy(l) didefiniskan sebagai

15

rx , y (l )   x ( n) y ( n  l )
n  

(1.25)
Indeks l disebut parameter geser atau tertinggal. Kasus khusus pada
Pers. (1.25) ketika y(n)=x(n) disebut autokorelasi dan didefinisikan oleh

rxx (l )   x ( n) x ( n  l )
n  

(1.26)

IV. LANGKAH PERCOBAAN


Berdasarkan contoh-contoh soal yang telah diberikan di atas, maka
lakukankan langkah percobaan di bawah ini menggunakan program Matlab.

Percobaan 1
Bangkitkan dan gambarkan sampel (gunakan fungsi stem) pada
runtun berikut menggunakan Matlab.

Percobaan 2
Bangkitkan sinyal bilangan kompleks berikut
x(n)  e ( 0.1 j 0.3) n ,  10  n  10

dan gambarkan magnitude, fase, dan bagian nyata, dan bagian khayal
kedalam empat subplot berbeda.

Lakukan analisis atas program yang telah anda buat dan tuangkan ke dalam laporan
akhir anda.

V. DATA HASIL PERCOBAAN


(Terlampir).

16
VI. KESIMPULAN
Sinyal waktu diskrit, operasi runtun waktu diskrit, maupun beberapa
hasil penting dapat dibangkitkan dan digambarkan dengan bantuan program
Matlab.

17
LAPORAN UNIT 1
PEMBANGKIT ISYARAT WAKTU-KONTINYU

Nama : Wahyu Ardiyanto


NIM : 310016023

A. Isyarat waktu continue dasar

 Isyarat eksponensia; kompleks dan isyarat sinus

Isyarat eksponensial kompleks di nyatakan oleh :

X(t)=
Dengan C dan a adalah bilangan kompleks

 Apabila C > 0 (bilangan real)

Misal C = dan a = ( C dan a pilihan sendiri)

Listing program C dan a adalah bilangan real:

18
Praktikum A

% untuk c = 2.3 dan a= 5 (c dan a > 0)


clc;close all;clear all;
t=0:0.01:5;
x=5*exp(2.3*t);
plot(t,x);grid on;
title 'isyarat exponensial C= 2.3 dan a= 5';

19
Praktikum ke b

clc; close all;clear all;


leg = [% untuk C=2 dan a=2 ( C >0 dan a=1,2, dan 3)
];
t =0:0.1:10;
for a =0.2:0.1:0.4
x=2*exp(a*t);
plot(t,x,'LineWidth',2.0);
hold all;grid on;
%axis([5 10 0 70000]);
title 'isyarat exsponensial C = 2 dan a=0,2;0,3:0,4';ylabel 'x(t)';xlabel 't';
line =horzcat('a=',num2str(a));
leg = strvcat(leg,line);
end
legend(leg)

20
Praktikum ke c
clc; close all;clear all;
leg = [% untuk C=2 dan a=2 ( C >0 dan a=1,2, dan 3)
];
t =0:0.1:10;
for a =-0.2:-0.1:-0.4
x=2*exp(a*t);
plot(t,x,'LineWidth',2.0);
hold all;grid on;
%axis([5 10 0 70000]);
title 'isyarat exsponensial C = 2 dan a=-0,2;-0,3:-0,4';ylabel 'x(t)';xlabel 't';
line =horzcat('a=',num2str(a));
leg = strvcat(leg,line);
end
legend(leg)

21
Listing Program
clc; close all; clear all;

leg = [];
t = -8:0.1:10;
for a = -0.1:-0.1:-0.3
x = 2*exp(a*t);
plot(t,x, 'LineWidth',2.0); grid on; %(untuk menggambarkan isyarat
analog)
hold all;
title 'Isyarat Ekponensial Kompleks C= 2 dan a= -0.1; -0.2; -0.3';
ylabel 'x(t)'; xlabel 't'
line = horzcat ('a=', num2str(a));
leg = strvcat (leg, line);
end
legend (leg)

Hasil eksekusi

22
Isyarat Konstan (C>0 dan a=0)

Listing Program
%Untuk C>0 (2, 4, 6) dan a = 0

clc;close all; clear all;


t= -10:0.001:10;
x=-2*exp(0*t);
%x2=4*exp(0*t);
%x3=6*exp(0*t);
plot(t,x); axis ([-10 10 -3 3]);
title 'Isyarat Konstan C > 0 dan a = 0'; ylabel 'x(n)';
xlabel 't'

Hasil Eksekusi

23
Lisiting Program

 ISYARAT KONSTAN

%jika c > (3,6,9) dan a=0


clc; close all; clear all;

t = -50:0.1:50;
x1 = 3*exp(0*t);
x2 = 6*exp(0*t);
x3 = 9*exp(0*t);
plot(t,x1,t,x2,t,x3, 'linewidth',1.5) ; grid on; axis ([-50 50 0 10]);
title 'isyarat konstan (jika c > (3,6,9) dan a= 0)'); ylabel 'x(t)'; xlabel 't';
legend('c=3','c=6','c=9')

HASIL EKSEKUSI

24
 ALTERNATIF LAIN ISYARAT KONSTAN :

clc; close all; clear all;


leg = [];
t = -50:0.1:50;
for c = 2:2:14
x = c*exp(0*t);
plot(t,x, 'linewidth',1.5) ; hold all; grid on; axis ([-50 50 0 15]);
title 'isyarat konstan (jika c > 0 dan a= 0)'); ylabel 'x(t)';xlabel 't';
line=horzcat('c=',num2str(c));
leg=strvcat(leg,line);
end
legend(leg)

25
 Jika C>0 dan a=sepenuhnya khayal

clc; close all; clear all;

t = 0:0.001:2;
f =1;
x = 2*exp(j*2*pi*f*t);
plot(t,x, 'linewidth',1.5) ; grid on; axis ([0 2 -2.5 2.5]);
title 'isyarat sinus murni (jika c > a = bilangan khayal murni)';
ylabel 'x(t)'; xlabel 't';

26
 alternative Jika C>0 dan a=sepenuhnya khayal

clc; close all; clear all;


leg = [];
t = 0:0.001:1;
c = 1;
for f = 1:1:3
x = 2*real(exp(j*2*pi*f*t));
plot(t,x, 'linewidth',1.5) ; hold all; grid on; %axis ([-50 50 0 15]);
title 'isyarat sinus murni (jika c > a = bilangan khayal murni)';
ylabel 'x(t)'; xlabel 't';
line=horzcat('c=',num2str(c));
leg=strvcat(leg,line);
end
legend(leg)

27
Listing Program

function x = isy_sinus (c,r,f)

%Untuk membangkitkan isyarat sinus yang naik secara exponensial. r>0


clc; close all;
t = 0:0.001:10;
x = c.*exp(r*t).*real(exp(j*2*pi*f*t));
plot(t,x,'LineWidth',1.5); %axis ([-2 10 -20 10]);
grid on; hold all;
title 'isyarat sinus yang naik secara exponensial';
ylabel 'x(t)';
xlabel 't'

Hasil Eksekusi

Dengan mengisikan variabel c, r, f pada M-File berikut


x = isy_sinus (2,0.5,1)
Maka didapatkan hasil seperti dibawah ini :

28
Hasil Eksekusi

Dengan mengisikan variabel c, r, f pada M-File berikut


>> isy_sinus (2,0,1)
Maka didapatkan hasil seperti dibawah ini :

function x = isy_sinus (c,r,f)

%Untuk membangkitkan isyarat sinus yang naik secara exponensial. r>0


clc; close all;
t = 0:0.001:5;
x = c.*exp(r*t).*real(exp(j*2*pi*f*t));
plot(t,x,'LineWidth',1.5); %axis ([-2 10 -20 10]);
grid on; hold all;
title 'isyarat sinus yang naik secara exponensial';
ylabel 'x(t)';
xlabel 't'

29
Hasil Eksekusi

Dengan mengisikan variabel c, r, f pada M-File berikut


x = isy_sinus (2,-0.5,1)
Maka didapatkan hasil seperti dibawah ini :

Yogyakarta, 18 Januari 2019


Laboran,

Nasoka, ST

30