YOU ARE DOWNLOADING DOCUMENT

Please tick the box to continue:

Transcript
  • BUKU PETUNJUK PRAKTIKUM

    KOMUNIKASI DATA

    BIDANG STUDI TELEKOMUNIKASI MULTIMEDIA

    JURUSAN TEKNIK ELEKTRO

    FAKULTAS TEKNOLOGI INDUSTRI

    INSTITUT TEKNOLOGI SEPULUH NOPEMBER

    SURABAYA

    Maret 2012

  • Daftar Isi

    Kata Pengantar iii

    Pengenalan Matlab 1-7

    Modul 1 : PHYSICAL LAYER 8-11

    Modul 2 : DATA LINK LAYER 12-16

  • ii

    Kata Pengantar

    Praktikum ini disusun sebagai pendukung dua mata kuliah, yaitu Komunikasi Data dan

    Pengolahan Sinyal Digital. Praktikum ini terdiri dari empat modul percobaan dan satu modul

    tambahan sebelum empat modul tersebut. Modul tambahan merupakan pengenalan Matlab

    karena pada praktikum-praktikum selanjutnya, karena Matlab adalah program yang akan

    banyak digunakan. Modul tambahan ini harus dikerjakan di awal 30-45 menit pertama

    sebelum mulai mengerjakan modul pertama. Modul pertama merupakan praktikum yang

    mendukung mata kuliah Komunikasi Data dalam pembahasan mengenai lapisan fisik

    (physical layer) dari model referensi ISO. Modul kedua merupakan kelanjutannya, di mana

    modul yang disusun berdasarkan pada layer kedua model ISO yaitu data link layer. Dua

    modul praktikum ini selanjutnya akan diteruskan dengan dua modul lain yang membahas

    mengenai Pengolahan Sinyal Digital.

    Selamat belajar.

    Tim Penyusun Petunjuk Praktikum Komunikasi Data dan Pengolahan Sinyal

    Digital

  • PENGENALAN MATLAB

    Matlab adalah suatu bahasa pemrograman dengan mengandalkan perhitungan matriks dan aritmatika kompleks yang mudah digunakan. Matlab mempunyai banyak paket software(toolbox) dengan kemampuan yang terintegrasi serta menjadi alat standar dalam bidang science dan teknik. Selain itu gambar baik dua maupun tiga dimensi akann mudah di plot.

    Matlab memiliki dua cara untuk menjalankan suatu perintah : mode interaktif dan mode batch. Dalam mode interaktif, perintah ditulis (di cut, atau di paste) ke dalam command window. Dalam mode batch, beberapa perintah disimpan dalam file teks (menggunakan editor Matlab yang sudah ada atau menggunakan editor lain seperti Emacs) dengan extensi .m. Perintah batch dalam file kemudian dieksekusi dengan menuliskan nama file pada command prompt Matlab. Keuntungan menggunakan file .m adalah kita dapat melakukan sedikit perubahan pada kode (meski dalam sesi Matlab yang berbeda) tanpa harus mengingat dan menulis ulang sekumpulan perintah yang telah kita masukkan. Selain itu, ketika menggunakan editor Matlab yang built-in, ada alat debug simple yang dapat dipanggil ketika program kita semakin besar dan rumit. Penulisan file .m akan dibahas selanjutnya.

    Variable Skalar dan Operator AritmatikVariabel skalar ditetapkan dengan cara :

    >> x = 7x =

    7

    Tanda >> adalah command prompt untuk Matlab. Perhatikan bahwa Matlab memperlihatkan kembali tugas (task) yang telah kita buat. Terkadang ini dapat membantu, tapi kebanyakanmenyulitkan terutama jika menggunakan vektor atau matriks. Dengan menempatkan tanda semicolon (;) pada akhir perintah, kita dapat menghindari masalah ini.

    >> x = 7 ;

    Variabel dalam Matlab mengikuti standar penamaan biasa. Kombinasi huruf, angka dan garis bawah (_) dapat digunakan, selama karakter pertama adalah huruf. Perhatikan juga bahwa nama variable bias sensitive (X berbeda dengan x).

    Semua operator aritmatik skalar juga tersedia :

    >> 2 * xans =

    14

    >> x^2ans =

    49

    Perhatikan bahwa operasi perkalian tidak dapat diterapkan pada beberapa kondisi perhitungan dan operator * harus dispesifikasikan terlebih dahulu (penulisan >>2x akan menghasilkan error). Matlab dapat mengingat perintah yang telah kita masukkan dan kita dapat menggunakan tombol arah atas-bawah untuk memunculkan perintah itu kembali dan

  • 4dapat di edit untuk perintah yang baru. Hal ini sangat berguna, terutama jika kita harus membuat sedikit perubahan pada line perintah yang panjang secara berulang.

    Ada beberapa variabel yang telah didefinisikan dalam Matlab yang akan sering kita gunakan : pi, i, dan j. i dan j didefinisi sebagai akar pangkat dua dari -1 dan pi sebagai 3.1416 . Variabel ini dapat didefinisikan sebagai nilai lain, seperti :

    >> pi = 4;

    Perlu hati-hati untuk menghindari perubahan suatu variable yang telah terdefinisi dan tidak merubahnya kembali. Hal ini tidak terlalu berpengaruh terhadap pi, tetapi i dan j keduanya merupakan variable yang sering digunakan sebagai indikasi dan keduanya sering berubah-ubah. Perintah yang sangat berguna adalah clear atau clear all. Menuliskan salah satu dari kedua perintah tersebut akan menghapus semua variabel yang ada, dari memori Matlab dan mereset variabel terdefinisi kembali ke nilai aslinya. Perintah clear dapat juga menghapus variabel secara spesifik, seperti misalnya:

    >> clear x

    hanya akan menghapus variabel dengan nama x dari memori Matlab.

    Variabel Matrik dan Operator AritmatikPerintah Matlab lain yang berguna adalah whos, yang akan memperlihatkan nama dan dimensi dari semua variabel yang ada dalam memori Matlab. Setelah menuliskan perintah tersebut, pada prompt dapat kita lihat :

    >> whosName Size Bytes ClassX 1x1 8 double array

    Grand total is 1 elements using 8 bytes

    Yang perlu dicatat adalah ukuran yang diberikan 1x1. Matlab di desain untuk bekerja dengan vektor dan matrik, dan variabel skalar merupakan dimensi vector 1x1. Untuk menetapkan sebuah vektor berisi 5 integer pertama dari variabel dalam x, kita dapat menulis perintah :

    >> x = [ 1 2 3 2^2 2*3-1 ]x =

    1 2 3 4 5

    Untuk membuat matriks 2D, kita dapat menggunakan perintah seperti :

    >> A = [ 1 2 3 ; 4 5 6 ]A =

    1 2 34 5 6

    Untuk membuat vektor yang lebih besar dari contoh diatas (integer lebih dari 100), kita perlu memasukkan angka yang lebih banyak. Selain itu, ada cara yang lebih mudah untuk membuat vektor sebagai contoh membuat vektor dengan 5 elemen, kita dapat menuliskan :

  • 5>> x = [1:5]x =

    1 2 3 4 5

    Operator colon (:) menghasilkan sebuah vektor dengan jarak yang sama antara setiap elemen serta nilai awal dan nilai akhir sebagaimana diberikan. Dengan kata lain, [b:s:e]menghasilkan vektor [b b+s b+2*s . . . e]. Jika jarak tiap elemen tidak didefinisikan (seperti contoh diatas), maka jarak diasumsikan bernilai 1. Maka, perintah [1:2:10] akan menghasilkan vektor dengan integer ganjil kurang dari 10, [1 3 5 7 9]dan perintah [1:3:10] akan menghasilkan vector dengan elemen [1 4 7 10].

    Membuat vector dengan elemen ganjil :

    >> x_odd = [1:2:10]x_odd =

    1 3 5 7 9

    Elemen vektor dapat diakses dengan cara memberi indeks nama vector dengan parenthesis (proses indeksasi dimulai dari satu bukan dimulai dari nol seperti beberapa bahasa pemprograman). Sebagai contoh untuk mengakses elemen ke-3, kita dapat mengetikkan:

    >> x_odd (3)ans =

    5

    Kita dapat juga mengakses beberapa element (sebuah subset dari vector asli) dengan menggunakan operator colon dan memberikan indeks awal dan akhir:

    >> x_odd (2:4)ans =

    3 5 7

    Jika menginginkan aritmatika sederhana pada vector dan scalar, maka akan menjadi:

    >> 3+[1 2 3]ans = 4 5 6

    >> 3*[1 2 3]ans = 3 6 9

    Penambahan dan pengurangan matriks hanya dapat dilakukan selama ukuran dari matrik tersebut sama:

    >> [1 2 3]+[4 5 6]ans = 5 7 9

    Operator * dan / merepresentasikan perkalian dan pembagian matrik yang pada dasarnya jarang dipergunakan. Tugas yang biasa dipergunakan adalah dengan membentuk sebuah

  • 6vector baru dengan mengalikan (atau membagi) elemen-elemen dari dua buah vector yang berbeda, dengan operator .* dan ./

    >> [ 1 2 3].*[4 5 6]ans = 4 10 18

    >> [1 2 3]./[4 5 6]ans = 0.2500 0.4000 0.5000

    operator ^ merupakan jalan pintas (shortcut) untuk melakukan beberapa kali perkalian matrik (*), di mana operator .^ merupakan jalan pintas untuk beberapa kali perkalian elemen demi elemen (.*). Dengan demikian pangkat untuk semua elemen pada sebuah vector, dapat menggunakan:

    >> [1 2 3].^2ans = 1 4 9

    Built-in CommandsMatlab memiliki banyak built-in commands baik untuk operasi perhitungan matematika dasar maupun perhitungan scientific yang kompleks. Perintah help akan sangat berguna untuk mempelajari fungsi dari built-in commands. Dengan mengetikkan kata help pada command prompt, maka akan didapat daftar kategori yang berbeda-beda dari Matlab Commands, misalnya umum (general), dasar operasi matriks (elementary matrix operations), dasar fungsi matematika (elementary math functions), grafik (graphics) dll. Perlu juga diperhatikan bahwa ada beberapa toolbox yang sudah termasuk dalam paket Matlab dimana mempunyai fungsi khusus seperti pemrosesan sinyal (signal processing). Untuk melihat semua command dengan topik yang tertentu, dapat mengetikkam help topic. Untuk mendapatkan deskripsi dari command tertentu, ketik help command. Perintahlookfor juga merupakan command yang sama pentingnya. Command ini dipergunakan untuk mencari command yang berkaitan dengan kata kunci yang diketikkan pada kata setelah lookfor. Sebagai contoh, dengan mengetikkan lookfor sound, maka semua command yang berkaitan dengan sound akan ditampilkan di layar. Selanjutnya dengan help command deskripsi serta cara pemakaian command tersebut dapat dipergunakan.

    Beberapa contoh commands: perintah akar pangkat 2 (square-root), sqrt. Untuk menghitung akar pangkat dua dari sebuah bilangan, ketik:

    >> sqrt (2)ans = 1.4142

    Untuk menunjukkan pengertian bilangan kompleks pada Matlab, kita dapat menghitung akar pangkat dua dari sebuah bilangan negatif:

    >> sqrt (-9)ans = 0 + 3.0000i

  • 7Beberapa perintah Matlab untuk perhitung4an skalar dapat juga dipergunakan untuk perhitungan elemen demi elemen dalam suatu notasi vektor. Sebagai contoh :

    >> sqrt ([1 2 4 6])ans = 1.0000 1.4142 2.0000 2.4495

    >> sqrt ([1:8])ans = 1.0000 1.4142 1.7321 2.0000 2.2361 2.4495 2.6458 2.8284

    Perintah berguna yang lain adalah sin function, yang juga dioperasikan pada vector.

    >> sin ([pi/4 pi/2 pi])ans = 0.7071 1.0000 0.0000

    Perlu diketahui bahwa sinyal digital hanya merupakan kumpulan titik (elemen) dan dapat direpresentasikan sebagai sebuah vector. Karena Matlab memungkinkan fungsi seperti sindan sqrt (dan masih banyak yang lain) untuk dioperasikan pada vector, maka pendefinisian dan perhitungan sinyal dapat dilakukan secara langsung. Hal ini dapat dilihat pada bagian di bawah ini

    Signals, Plotting dan operasi BatchDi sini kita akan mendefinisikan sebuah sinusoidal sinyal 2 Hz pada interval [0,01] detik:

    >> t= [0:.01:1]; % independent (time) variable>> A=8; % amplitude

    >> f_1=2; % create a 2Hz sine wave lasting 1 sec>> s_1 = A*sin(2*pi*f_1*t);

    Perhatikan bahwa semua komentar yang ditulis setelah tanda % akan diabaikan oleh Matlab. Selanjutnya, kita mendefinisikan sebuah gelombang sinusoidal dengan frekuensi 4 Hz dan amplitudo yang sama:

    >> f_2=4; % create a 4 Hz sine wave lasting 1 sec>> s_2=A*sin(2*pi*f_2*t);

    Selanjutnya ada beberapa command yang diperlukan sebagai dasar membuat plot dari sinyal ini. Command figure akan menampilkan window plot yang baru dan perintah closeakan menutup window plot tertentu (close all menutup semua window yang terbuka). Perintah subplot(r, c, p) memungkinkan beberapa plot untuk ditampilkan dalam rbaris dan c kolom pada satu window. Perintah plot(x,y) akan memplot vector x dan y yang mempunyai panjang yang sama pada axis yang tepat. Dua gelombang sinus yang didefinisikan di atas diplot dengan menggunakan perintah :

    >> %plot the 2 Hz sine wave in the top panel >> figure>> subplot (3,1,1)>> plot (t, s_1)>> title ('2 Hz sine wave')

  • 8>> ylabel ('amplitude')>> xlabel ('time in seconds')

    >> %plot the 4 Hz sine wave in the middle panel >> subplot (3,1,2)>> plot (t, s_2)>> title ('4 Hz sine wave')>> ylabel ('amplitude')>> xlabel ('time in seconds')

    >> %plot the summed sine wave in the bottom panel >> subplot (3,1,3)>> plot (t, s_1+s_2)>> title ('Summed sine wave ')>> ylabel ('amplitude')>> xlabel ('time in seconds')

    Command title, xlabel dan ylabel memerlukan strings sebagai argumennya dan menempatkan label pada bagian atas, sumbu x dan sumbu y pada subplot.

    Setelah kita memplot fungsi pada subplot dan kita mencoba memplot lagi fungsi lain, Matlab akan menghapus subplot sebelumnya dan memulai lagi dengan yang baru. Jika kita ingin memplot dua sinyal sebagai perbandingan, maka dapat dilakukan dengan menggunakan hold. Pada contoh berikut ini, dua gelombang sinus dibuat lagi dimana kali ini menggunakn fungsi built-in exponential exp, fungsi built-in imag dan persamaan Euler.Fungsi imag mengembalikan bagian imaginer pada bilangan kompleks. Pernyataan ini sama halnya dengan fungsi sin seperti yang sudah dibahas sebelumnya, dimana Matlab dapat menyelesaikan bilangan kompleks. Pada contoh kali ini, dua gelombang sinus di plot pada window yang sama dan jumlah dari keduanya di plot tersendiri. Perhatikan bahwa command

  • 9plot dapat menggunakan argumen ketiga sebagai definisi warna dan macam garis pada plot. Beberapa pilihan lain dapat ditampilkan dengan menuliskan help plot pada prompt.

    >> %create the same sine waves using Euler's relations>> s_3 = real(exp(j*2*pi*f_1*t))- real(exp(-j*2+pi*f_1*t))/(2*j);>> s_4= real (exp(j*2*pi*f_2*t));

    >> %plot the 2 and 4 waves toghether in the same panel>> figure>> subplot (2,1,1)>> plot (t, s_3, 'b-')>> hold on>> plot (t, s_4, 'r--')>> ylabel ('Amplitude')>> xlabel ('time in second')

    >> %again plot the sum in the bottom panel>> subplot (2,1,2)>> plot (t,s_3+s_4)>> ylabel ('Amplitude')>> xlabel ('Time (s)')

  • 10

    MODUL 1 : PHYSICAL LAYERA. Tujuan :

    memahami konsep ISO reference protocol dalam infrastruktur protokol berlapis. memahami tugas dan fungsi lapis PHYsical (layer I) protocol ISO, terutama yang

    terkait dengan elemen, definisi dan sifat fisik dari sinyal dan mekanik interface lapis phisik.

    Mampu mengindentifikasi perangkat keras dan proses yang dilakukan di lapis fisik komunikasi data.

    B. Referensi : Fred Halshall, Data Communications, Computer Networks and Open Systems,

    Addison-Wesley, 3rd ed, 1993. Modul Kuliah Komunikasi Data

    C. Tugas Awal: Mempelajari konsep fisik komunikasi data Mempersiapkan kabel UTP dengan konfigurasi Cross

    D. Teori Dasar :Dalam arsitektur berlapis, lapis pertama yang disebut sebagai lapis phisik (PHYsical layer) melakukan segala hal yang berhubungan dengan transmisi (serial) atau aliran bit [1,0] antara dua terminal (network terminating equipment, modem DCE atau data terminating equipment DTE). Diantara fungsi utama lapis ini adalah interface dengan lapis kedua (MAC) yang merupakan bagian dari Data Link Layer.

    Gambar 1.1. Lapis PHYsical pada arsitektur berlapis

    Di antara pertanyaan yang terkait dengan lapis fisik adalah: Bagaimana dua terminal dapat saling terhubung ? Adakah standard tegangan dan arus listrik dalam interface lapis physik ?

    E. Praktikum :

    1. Identifikasi Perangkat DTE dan DCE

  • 11

    Dengan tujuan memahami pengertian lapis phisik lakukan identifikasi berikut

    Indentifikasi konektor di PC di depan anda yang berhubungan dengan komunikasi data.

    Tuliskan jenis konektor, jumlah PIN dan fungsi masing-masing PIN dalam tabel. Indentifikasi card di PC di depan anda yang berhubungan dengan komunikasi data,

    modem atau ethernet card.

    2. Setting Interface Physic

    Dengan tujuan memahami perangkat lunak, dari operating sistem windows yang anda lakukan identifikasi setting perangkat dari sisi perangkat lunak. Catatlah langkah-langkah yang diperlukan untuk melakukan inisialisasi card agar komunikasi bisa berjalan.

    Langkah langkah :

    1. Pilih menu START pada desktop WINDOWS2. Masuk ke Control Panel System3. Pada pilihan menu system, pilih menu Hardware 4. Masuk ke Device Manager, akan terlihat tampilan berikut :

    5. Dari tampilan tersebut, pilih Network adapter. Catat apa yang anda perlukan.

    3. Null Modem dan cross-connect (PC to PC)

    Dengan tujuan memahami komunikasi data antara dua terminal, lakukan hal-hal berikut:

    Lakukan instalasi kabel UTP Cat-5 dengan konfigurasi cross Pasangkan kabel ke konektor Lakukan set-up melalui driver dan OS yang tersedia

  • 12

    Langkah langkah :

    1. Pilih menu START pada WINDOWS2. Pilih control panel Network Connection Local Area Connection3. Pilih Properties Internet Protocol (TCP/IP)

    Tampilannya :

    4. Masukkan IP agar koneksi antar PC bisa berjalan.Tampilannya :

    Uji coba untuk berkomunikasi menggunakan software aplikasi yang tersedia.Langkah langkah :

    1. Pilih START Run2. Ketik cmd kemudian OK3. Lakukan proses ping dari PC di depan (A) anda dengan PC yang sudah terkoneksi

    (B).

  • 13

    Misal PC (B) memiliki IP 192.168.200.18Tampilannya :

    Cobalah untuk melakukan transfer data dari PC (A) ke PC (B).

    F. Data Luaran :

    1. Tabel KOMPONEN komunikasi data di laboratorium

    2. Capture tampilan windows setting komunikasi data

    3. Laporan singkat proses komunikasi menggunakan cross UTP

  • 14

    MODUL 2 : DATA LINK LAYERA. Tujuan:Membandingkan kinerja beberapa protocol data link dengan simulasi menggunakan toolbox matlab

    B. Referensi: Fred Halshall, Data Communications, Computer Networks and Open Systems,

    Addison-Wesley, 3rd ed, 1993. Modul Kuliah Komunikasi Data

    C. Teori Dasar:

    Layer kedua pada model referensi ISO setelah physical layer adalah data link layer. Salah satu tugas yang harus dilakukan pada layer ini adalah mengkontrol jika terjadi kesalahan pada pengiriman data (error control). Proses kontrol kesalahan ini dapat dilakukan baik dengan manual maupun secara otomatis. Kontrol kesalahan secara manual dapat dilakukan seperti pada hal pengiriman data dari keyboard ke monitor PC. Di monitor PC dapat terlihat apakah data yang berupa huruf yang diketik berbeda dengan yang terlihat di monitor. Prosedur kontrol kesalahan secara otomatis (automatic error control procedure) dapat dilakukan tanpa intervensi dari pengguna, dengan menggunakan Automatic Repeat Request (ARQ). Penerima mencek kemungkinan adanya kesalahan pada paket data yang diterima dengan pengiriman suatu pesan kontrol pendek yang disebut ARQ. Selain dapat mengetahui kemungkinan terjadinya kesalahan pada paket data yang terkirim, ARQ ini juga dapat meminta pengiriman ulang paket data yang tidak diterima dengan baik.

    Ada tiga macam skenario pengiriman ARQ:1. Stop & Wait: merupakan skenario yang digunakan pada Idle RQ di mana alur pengiriman

    protokol kontrol menggunakan teknik stop & wait. Diagram alur skenario ini di mana terjadi kesalahan pada paket data I(N) yang dikirimkan, dapat dilihat pada Gambar 2.1. Pada gambar dapat terlihat bahwa pada stop & wait protokol diperlukan acknowledgment yang spesifik untuk setiap paket data yang dikirimkan di mana dengan tidak diterimanya acknowledgment berarti paket yang dikirimkan tidak diterima. Hal ini berarti diperlukan proses pengiriman ulang.

    Gambar 2.1 Stop & Wait protokol jika paket I(N) hilang

  • 15

    2. Go-back-N: merupakan skenario yang digunakan pada Continuous RQ di mana pengiriman data dilakukan secara terus menerus tanpa menunggu diterimanya acknowledgment. Pada skenario ini dapat menggunakan protokol pergeseran window (sliding window flow control protocol) yang memungkinkan melakukan pengiriman sejumlah paket pada saat yang bersamaan, sebesar Nw, yang merupakan lebar window yang digunakan. Gambar 2.2 menunjukkan alur kerja protokol Go-back-N jika terjadi kesalahan pada paket I(N) data yang dikirimkan. Pada gambar terlihat bahwa proses pengiriman ulang terjadi mulai dari paket yang hilang dan dilanjutkan dengan pengiriman ulang paket-paket berikutnya.

    N+1 N+2 N+3 N+4N N+5

    N N

    N+1

    N

    N+1

    N+2

    N+1

    N+2

    N+3

    N+2

    N+3

    N+4

    N+1

    N+2

    I(N) I(N+1) I(N+2) I(N+4)I(N+3)

    I(N) I(N+2) I(N+4)I(N+3)

    I(N+1)

    I(N)

    AC

    K(N

    )

    I(N+2)

    I(N+3)

    NA

    K(N

    +1)

    I(N+4)

    Time

    N+1 N+1 N+1 N+1N

    N N+2 N+4

    V(S) = Send sequence variable

    V(R) = Receive sequence variable

    Contents of link retransmission list

    Contents of link receive list

    Primary, P

    Secondary, S

    I(N+1) I(N+2)

    I(N+1)

    I(N+1)

    N+3 N+1

    N+1 N+2

    N+1

    N+3

    P enters retransmission state P leaves retransmission state

    N+4

    I(N+4)

    Frames discarded

    Gambar 2.2 Go-back-N protokol jika paket I(N) hilang

    3. Selective Repeat: skenario ini hampir sama dengan skenario Go-back-N. Pada Gambar 2.3 dapat dilihat alur kerja protokol ini di mana paket I(N) yang dikirimkan hilang. Dalam pengiriman ulang paket yang hilang, protokol Selective Repeat hanya mengirimkan paket yang hilang saja dan dilanjutkan dengan pengiriman paket berikutnya melanjutkan paket yang dikirim sebelum pengiriman ulang paket yang hilang.

  • 16

    N+1 N+2 N+3 N+4N N+5

    N N

    N+1

    N

    N+1

    N+2

    N+1

    N+2

    N+3

    N+2

    N+3

    N+4

    N+3

    N+4

    I(N) I(N+1) I(N+2) I(N+4)I(N+3)

    I(N) I(N+2) I(N+4)I(N+3)

    I(N+1)

    I(N)

    AC

    K(N

    )

    I(N+2)

    I(N+3)

    AC

    K(N

    +2)

    I(N+4)

    AC

    K(N

    +3)

    Time

    N+1 N+2 N+3 N+4N

    N N+2

    N+3

    N+2

    V(S) = Send sequence variable

    V(R) = Receive sequence variable

    Contents of link retransmission list

    Contents of link receive list

    Primary, P

    Secondary, S

    I(N+1) I(N+5)

    I(N+1) I(N+5)

    I(N

    +1)

    AC

    K(N

    +4)

    I(N+5)

    AC

    K(N

    +1)

    N+2

    N+4

    N+3

    N+2

    N+4

    N+3

    N+1

    N+5

    N+1 N+5

    N+1

    N+1

    N+5

    N+4

    N+1

    P enters retransmission state P leaves retransmission state

    Gambar 2.3 Selective Repeat protokol jika paket I(N) hilang

    D. Tugas Awal:Beberapa asumsi:

    a adalah rasio perbandingan waktu propagasi dan transmisi untuk suatu paket data Waktu transmisi untuk suatu acknowledgment dapat diabaikan Selama proses transmisi tidak ada acknowledgments yang hilang Waktu pemrosesan pada receiver diabaikan, karena acknowledgment langsung

    dikirimkan setelah paket diterima Pengirim mengirimkan ulang paket segera setelah time-out

    Soal:A hendak mengirimkan file ke B. Komputer A tersambung langsung dengan computer B melalui sebuah link dengan kapasitas 1Mbps. Delay propagasi pada link adalah 2ms. The terdiri dari 10 paket yang masing-masing berisi data 980 bits dan header 20 bits. Pengiriman file dilakukan dengan menggunakan sliding-window protocol. Asumsi bahwa delay transmisi dari acknowledgment dapat diabaikan

    Gambar 2.4 File yang dikirimkan dari A ke B

  • 17

    Pertanyaan1. Berapa bits panjang dari sequence number field untuk setiap paket pada:

    a. Stop and Waitb. Go back N dengan sending window = 5c. Selective Repeat dengan sending window = 5

    2. Asumsi tidak ada paket yang hilang. Gambarkan diagram waktu-ruang (space-time diagram) dan hitung waktu yang diperlukan sampai 10 paket selesai diterima semua, untuk:

    a. Stop and Waitb. Go back N dengan sending window = 5c. Selective Repeat dengan sending window = 5

    3. Asumsi bahwa ada enam paket yang hilang. Nilai time-out = 10msec. Gambarkan diagram waktu ruang (space-time diagram) dan hitung waktu yang diperlukan sampai 10 paket selesai diterima semua, untuk:

    a. Stop and Waitb. Go back N dengan sending window = 5c. Selective Repeat dengan sending window = 5

    Soal-soal latihan (dijawab dalam laporan)

    4. Apakah yang dimaksud dengan optimal time out untuk soal 1-3?

    5. Protocol Selective Repeat.Asumsi link bekerja dengan baik, atau dengan kata lain tidak ada paket dan acknowledgment yang hilang. Turunkan rumus untuk link utilisasi U(a).Jika ada paket yang hilang, maka proses pengiriman ulang hanya dapat dilakukan satu kali. Dengan demikian untuk waktu T yang panjang, jumlah paket Na yang dapat diterima adalah U = Na Ttrans / T.Evaluasi rumus di atas untuk tiga nilai a yaitu 0.3, 1 dan 3

    6. Jawab pertanyaan yang sama dengan no 5, untuk kasus protocol Go-Back N

    E. Praktikum : Percobaan dengan Data Communication Toolbox pada Matlab.

    Untuk menjalankan toolbox pada matlab adalah dengan menempatkan directory Matlab pada directory di mana terdapat toolbox tersebut. Dalam hal ini toolbox ada pada directoryc:\\Matlab\Work\komdat\. Untuk menjalankan toolbox,

    ketik: >> sw

    Keterangan GUI interface: Tombol-tombol bagian atas dipergunakan untuk visualisasi percobaan tunggal dan tombol-tombol bagian bawah untuk pengaturan pengukuran. Diagram waktu-ruang sebagai hasil simulasi bisa didapatkan untuk parameter-parameter tertentu atau plot estimasi performacnce sebagai fungsi dari a. Percobaan dapat dilakukan berulang-ulang dengan nilai probabilitas loss yang berbeda-beda, dan membandingkan hasilnya

  • 18

    Percobaan 1

    Jalankan (run) simulasi Stop-and-Wait untuk nilai a = 2 dan Ploss = 0. Plot/print sebagian dari diagram waktu-ruang yang dihasilkan dan tunjukan periode time-out pada diagram

    Percobaan 2

    Jalankan simulasi Stop-and-Wait. Print/plot performance U(a) sebagai hasil simulasi untuk nilai Ploss = 0, Ploss = 0.05 dan Ploss = 0.1. Beri tanda untuk hasil yang didapatkan secara teoritis pada soal latihan di atas. Apakah nilai-nilai tersebut sesuai dengan hasil simulasi? Jika tidak, terangkan mengapa.Terangkan apa yang terjadi pada link utilisasi jika Ploss bertambah besar

    Percobaan 3

    Jalankan simulasi Go-Back-N untuk nilai W=2, a =2 dan Ploss = 0.2. Print/plot diagram ruang-waktu yang dihasilkan dan tunjukan periode time-out pada diagram

    Percobaan 4

    Jalankan simulasi Go-Back-N. Print/plot simulasi kurva U(a) untuk W=5 dan Ploss=0, Ploss=0.05 dan Ploss=0.1. Beri tanda nilai U(a) yang didapat menurut teori yang sudah dihitung sebelumnya. Apakah sesuai dengan nilai hasil simulasi? Terangkan jika terdapat perbedaan.Kapan U(a) sangat dipengaruhi oleh jumlah paket yang hilang? Terangkan penyebabnya

    Percobaan 5

    Jalankan simulasi Selective Repeat. Print/plot diagram waktu hasil simulasi untuk Ploss=0 dan a=2. Beri tanda paket-paket yang berhasil diterima oleh penerima. Apakah algoritma ini lebih efisien dibandingkan dengan Go-Back-N? Apakah yang dapat memperbaiki performance dari algoritma ini?

  • 19

    BUKU PETUNJUK PRAKTIKUM

    PENGOLAHAN SINYAL DIGITAL

    BIDANG STUDI TELEKOMUNIKASI MULTIMEDIA

    JURUSAN TEKNIK ELEKTRO

    FAKULTAS TEKNOLOGI INDUSTRI

    INSTITUT TEKNOLOGI SEPULUH NOPEMBER

    SURABAYA

    Nopember 2010

  • 1PERCOBAAN III

    Sinyal Waktu-Diskrit, Sampling dan Rekonstruksi

    Pendahuluan

    Pada percobaan ini akan dipelajari bagaimana melakukan pembangkitan sinyal dalam waktu diskrit dan pencuplikan (sampling) sinyal dalam waktu kontinyu menjadi sinyal dalam waktu diskrit.

    A. Tugas pra percobaan:

    1. Contoh sinyal-sinyal yang diolah dalam pengolahan sinyal digital antara lain adalah: sinyal wicara (speech), musik, video, EKG (jantung) dan EEG (otak). Lakukan penelusuran di Internet untuk mendapatkan jangkauan frekuensi dari lima sinyal tersebut.

    2. Buatlah sketsa sinyal-sinyal waktu kontinyu berikut pada jangkauan waktu -5 t 5 detik.a. x(t) = 5sin(10t) + 10sin(20t)b. x(t) = 2exp(-at2), a = 0.1

    3. Buatlah sketsa sinyal-sinyal waktu-diskrit berikut untuk 0 n 10:a. x[n] = u[n] u[n - 3]b. x[n] = u[3 n]c. x[n] = 0.5n{u[n] u[n - 5]}.

    4. Tentukan apakah sinyal-sinyal berikut periodik atau tak periodik. Jika periodik, tentukan periode dasar dari sinyal tersebut:a. x[n] = ejn

    b. x[n] = 0.7n.u[n]c. x[n] = cos(n/2)cos(n/4).

    Pustaka acuan:A.V. Oppenheim, R.W. Schafer & Buck, Discrete-Time Signal Processing, 2nd ed., Prentice Hall, 1998.B. Preetham Kumar, Digital Signal Processing Laboratory, CRC Press, 2005.Taan S. Elali, Discrete Systems and Digital Signal Processing with MATLAB, CRC Press, 2004.

  • 2B. Tugas Percobaan

    Pembangkitan sinyal waktu diskrit dengan menggunakan MATLAB

    5) Bangkitkan sinyal pada soal no 3.

    6) Bangkitkan sinyal-sinyal pada soal no 4, untuk 0 n 100.

    Sampling dan Rekonstruksi

    Percobaan pada bagian ini akan menunjukkan cara untuk melakukan proses sampling dengan menggunakan Matlab. Salah satu hal yang perlu diperhatikan di sini adalah bahwa Matlab sama seperti halnya pada program komputer lain, bekerja pada domain yang diskrit. Sedangkan proses sampling adalah proses konversi dari kontinyu ke diskrit, dan rekonstruksi dari diskrit ke kontinyu. Langkah-langkah dibawah ini menunjukkan bagaimana proses-proses ini dapat dilakukan.

    Fungsi sinyal kontinu yang dipergunakan pada percobaan ini adalah: xc(t) = cos(2f0t), di mana f0 = 0,1875 Hz.

    Kita akan melakukan pembangkitan sinyal dengan mensimulasi nilai t yang kontinu dari suatu fungsi x(t).Nilai t yang kontinu dan tak terbatas tidak dapat dibangkitkan secara langsung pada Matlab. Yang dapat dilakukan adalah dengan membuat perubahan harga t yang cukup banyak/panjang dalam kurun waktu, misalnya 64 detik.

    % generate continuous time signaltmax = 64; % secondsgranularity = 2^(-11);t = granularity*[0:tmax/granularity-1]; %generate continuous t in seconds

    Pastikan untuk selalu mengakhiri setiap perintah pada Matlab dengan menggunakan notasi titik koma ";". Jika tidak, maka semua nilai dari t sebanyak 211 akan tercetak pada layar monitor. Rangkaian command/perintah di atas membangkitkan waktu t selama 64 detik dimulai dari 0, dengan perubahan waktu yang sangat kecil.

    Selanjutnya, definisikan sebuah fungsi sinyal kontinu xc (t) dengan command/perintah:

    xc = cos(2*pi*0.1875*t) ; % generate the continuous signal xc(t)

    7) Berapakah nilai frekuensi tertinggi (dalam Hz) dari sinyal ini?

    8) Berapa besarnya nilai maksimum waktu T yang memungkinkan, tanpa adanya sampel distorsi yang diakibatkan oleh aliasing?

    9) Plot sinyal xc(t) dengan menggunakan command plot().

  • 3Pastikan bahwa nilai t pada sumbu y sesuai dengan lamanya/panjangnya t seperti yang telah didefinisikan sebelumnya.

    Rubahlah batas sumbu (untuk melihat sinyal secara lebih detail) dengan menggunakan command: axis([0 tmax min(xc) max(xc)])

    Beri judul dengan menggunakan command: title(Contoh judul).

    10) Ulangi semua pertanyaan (a-j) di bawah ini untuk 3 nilai T: 1, 2, dan 4 (dalam detik).

    a. Berapa frekuensi sampling Hz?

    b. Berapakah setengah frekuensi sampling dalam Hz?

    Untuk dilakukan:Gunakan kode Matlab berikut untuk melakukan proses sampling. Rangkaian command/perintah ini hanya dapat dilakukan untuk granularitas yang mempunyai nilai berupa pangkat dari 2 dan waktu sampling yang merupakan kebalikan pangkat dari 2 (dalam detik). Membangkitkan n dari t adalah dengan hanya mengambil nilai t yang sama nT, dan kemudian membuat array n yang memiliki panjang yang sama. Berikut adalah rangkaian command/perintahnya:

    % the following 4 lines generate sampling xc(t) to get x[n]nFromt = find(abs(t/T-round(t/T)) < eps) ; % map n onto tn = 0: length(nFromt) -1; % define nN = length(n) ; % the number of discrete points we generatex = xc(nFromt) ; % discretize xc(t) and call it x[n]

    c. Berapakah nilai batas atas dan batas bawah dari n? Berapa panjang n?

    Buka window figure baru untuk setiap nilai T. Setiap figure terdiri dari 6 subplot. (Gunakan perintah subplot(321) sampai dengan subplot(326))

    d. Dalam subplot pertama, plot x[n]. Gunakan perintah stem() atau bar() karena ini adalah deret diskrit. Pastikan bahwa nilai n benar sepanjang sumbu n. Atur batas sumbu (untuk perbandingan dengan hasil lain) dengan menggunakan command axis([0 n(end) min(xc) max(xc)]). Beri judul menggunakan command title(). Apakah plot yang dihasilkan mirip dengan (c) di atas (ini adalah penilaian subjektif)? Apakah sinyal asli didapatkan kembali dengan menggunakan proses sampling saeperti ini?

    Definisikan dua variabel Fourier, dan f di mana = 2Tf: , seperti yang umumnyadigunakan di kelas dan di buku teks, memiliki satuan radian dan berulang dengan periode 2. f, umum digunakan dalam dunia nyata, memiliki satuan Hz, tetapi juga berulang (seperti yang seharusnya karena hal ini didefinisikan dalam variabel ).

    omega = 2*pi*n/N ; % radianfreq = omega/T/(2*pi) ; % Hz

    e. Berapakah periode dari f? Jika nilai-nilai antara dan 2 sesuai dengan frekuensi negatif antara - dan 0 (karena periodik), nilai-nilai f yang mana yang berkaitan dengan nilai-nilai analog frekuensi negatif?

  • 4Transformasi Fourier dari x[n], atau X (ej), dapat dihitung dengan Matlab (dalam versi yang terdiskritisasi) menggunakan command:

    X = fft(x) ; % note: X is not the same as x, and x is complex

    f. Pada subplot, plot |X(ej)|, yang pada Matlab disebut abs(X) dan harus diplot sebagai fungsi dari . Gunakan perintah stem() atau bar() karena ini adalah deret yang diskrit. Pastikan nilai yang benar pada sumbu . Atur batas sumbu (untuk perbandingan dengan hasil lain) dengan menggunakan command axis([0 omega(end) 0 max(abs(X))]). Beri judul menggunakan title(). Pada command title(), penulisan \omega dapat dipergunakan untuk menampilkannotasi .

    g. Pada subplot, plot abs(X) adalah fungsi dari freq. Gunakan perintah stem()atau bar() karena ini adalah deret yang diskrit. Atur batas sumbu dengan menggunakan perintah axis([0 freq(end) 0 max(abs(x))]). Beri judul menggunakan title(). Di mana didapat puncak-puncak spektrum? Pada frekuensi-frekuensi berapa saja nilai-nilai puncak tersebut terletak? Di mana (pada frekuensi apa) seharusnya (sesuai perhitungan)? Dengan menganggap frekuensi di atas bagian tengah sebagai frekuensi negatif, pada frekuensi negatif mana nilai puncak terletak? Apakah ini sesuai dengan yang Anda ketahui tentang fungsi yang asli? Hal ini menunjukkan bahwa menggunakan adalah benar-benar bermanfaat dari perspektif teoretis, tetapi freq benar-benar berguna ketika menafsirkan dan men-debug plot.

    Rekonstruksi

    Buat suatu filter low pass ideal dengan cutoff di = dan penguatan T:LP = T*[1, ones(1,N/2-1), 0, ones(1,N/2-1)] ;

    (ingat bahwa semua frekuensi di atas N/2 dapat ditafsirkan sebagai frekuensi negatif)

    h. Filter ini melewatkan hampir semua frekuensi. Dalam sebuah subplot, plot LP sebagai fungsi omega. Gunakan stem() atau bar() karena ini adalah deret yang diskrit. Atur batas sumbu dengan menggunakan perintah axis([0 omega(end) 0 max(LP)]). Beri judul menggunakan title(). Frekuensi berapa yang tidak lewat sebagai fungsi ? Sebagai fungsi f?

    Terapkan filter low pass ideal terhadap X:

    XLP = X.*LP ;

    i. Dalam subplot, plot magnitude XLP sebagai fungsi omega. Gunakan stem() atau bar() karena ini adalah deret diskrit. Atur batas sumbu menggunakan axis([0 omega(end) 0 max(abs(XLP))]). Beri judul menggunakan title(). Mengapa XLP dibuat dengan mengalikan X dan LP dan bukannya mengkonvolusi keduanya?

    Untuk dilakukan :Rekonstruksi sinyal analog, xr (t), yang dilakukan di Matlab dengan perintah:

  • 5xr = interpft(real(ifft(XLP))/T,length(t)); % reconstructed signal

    j. Dalam subplot terakhir, plot xr(t) dengan menggunakan plot() (karena ini adalah "fungsi kontinu"). Pastikan nilai t benar sepanjang sumbu t. Atur batas sumbu (untuk perbandingan dengan gambar 1) dengan menggunakan axis([0 tmax min(xc) max(xc)]). Beri judul dengan menggunakan title(). Apakah hasil ini memberikan rekonstruksi dari sinyal asli? Haruskah itu? Mengapa ya atau mengapa tidak?

  • 6PERCOBAAN IV

    Sistem Waktu-Diskrit Linier dan Time-Invariant

    Pendahuluan

    Pada percobaan ini kita akan mempelajari pengolahan sinyal waktu diskrit dengan sistem linier dan time-invariant.

    A. Tugas Pra-Percobaan:

    1) Misal suatu sistem mempunyai hubungan input dan output y[n] = 2x[n] + x[n 1].a. Apakah sistem tersebut kausal?b. Apakah sistem tersebut linier?c. Apakah sistem tersebut time-invariant?

    2) Tentukan response impuls total dari sistem berikut ini, jika diketahui:

    h1[n] = [n 1] 3[n]h2[n] = [n 2] + 2[n]h3[n] = 6[n 6] + 7[n 4] - 3[n 1] + [n]

    Gambar 4.13) Transformasi-z:

    a. Tentukan tranformasi-z, daerah konvergensi (DK) dan sket pole-zero plot dari:

    x[n] = anu[n], |a| < 1, a R. (R : himpunan bilangan riil)

    b. Tentukan fungsi sistem H(z) dan pole-zero plot serta DK jika diketahui sistem stabil dan persamaan beda berikut:

    y[n] = y[n-1] - 0.5y[n-2] + x[n]

    Petunjuk: Anda dapat menggunakan hubungan berikut H(z) = Y(z)/X(z).

    4) Konvolusia. Jika x[n] = u[n] u[n 4] dan h[n] = u[n] u[n 5], tentukan y[n] = x[n] * h[n].

    Sket y[n]. Tuliskan hubungan dari panjang dari y[n], x[n] dan h[n]. (Yang dimaksud panjang di sini adalah jumlah nilai sampel yang bukan nol).

    b. Jika x[n] = u[n] u[n 4] dan h[n] = 0.9nu[n] tentukan y[n] = x[n] * h[n]. Sket y[n].

  • 7Pustaka acuan:A.V. Oppenheim, R.W. Schafer & Buck, Discrete-Time Signal Processing, 2nd ed., Prentice Hall, 1998.B. Preetham Kumar, Digital Signal Processing Laboratory, CRC Press, 2005.Taan S. Elali, Discrete Systems and Digital Signal Processing with MATLAB, CRC Press, 2004.

    B. Tugas Percobaan:

    Pole-zero plot dengan MATLAB.

    5) Sekarang kita akan menggunakan fungsi-fungsi di MATLAB untuk menggambarkan pole-zero plot dari soal tugas 3b.

    Pertama kita masukkan koefisien-koefisien dari persamaan beda ke vektor a dan bberikut:

    a = [1 -1 0.5];b = [1];

    Kemudian kita gunakan perintah zplane untuk menampilkan pole-zero plot pada bidang z:

    zplane(a,b);

    Bandingkan dengan sket yang telah anda buat.

    Konvolusi:

    Konvolusi dengan MATLAB.

    Sekarang kita akan menghitung konvolusi dari dua urutan dengan fungsi conv. Bangkitkan dua sinyal waktu diskrit x[n] dan h[n] pada soal 4a untuk 0 n 19.Konvolusikan dua sinyal tersebut dengan cara berikut:

    y = conv(x,h);

    Plot tiga sinyal tersebut dengan perintah stem untuk 0 n 19, pada satu gambar yang terdiri dari 3 baris, dengan menggunakan perintah subplot(3,1,1) dst. Bandingkan dengan pekerjaan anda pada Tugas Pra-Percobaan.

    6) Ulang untuk soal 4b.