Categories
PLC/SCADA

Pendekatan sistematik dalam Perancangan Sistem Kontrol Proses

Pertama, Anda perlu memilih suatu alat atau instrumen atau sistem yang hendak dikontrol;

  • Sistem yang terotomasi bisa berupa sebuah mesin atau suatu proses yang kemudian disebut sebagai sistem kontrol proses. Fungsi dari sistem kontrol proses ini secara terus menerus akan mengamati sinyal-sinyal yang berasal dari piranti-piranti masukan (sensor) dan tanggapannya berupa suatu sinyal yang diberikan ke piranti keluaran eksternal yang secara langsung mengontrol bagaimana suatu sistem beroperasi atau bekerja.

Kedua, Anda perlu menentukan semua instrumen masukan dan keluaran yang akan dihubungkan ke PLC;

  • Piranti masukan dapat berupa saklar, sensor dan lain sebagainya. Sedangkan piranti keluaran dapat berupa solenoida, kran elektromagnet, motor, relai, starter magnet begitu juga dengan instrumen lain yang bisa menghasilkan suara atau cahaya (lampu) dan lain sebagainya. Setelah menentukan kebutuhan semua piranti masukan dan keluaran, dilanjutkan dengan menentukan penggunaan jalur-jalur masukan dan keluaran pada PLC untuk piranti-piranti masukan dan keluaran yang sudah ditentukan tadi.

Ketiga, membuat program yang lebih dikenal dengan diagram tangga (atau ladder) sesuai dengan jalannya proses yang diinginkan.

  • Dalam hal ini bisa digunakan terminal konsol yang langsung terhubung dengan PLC yang bersangkutan atau melalui komputer PC yang memiliki saluran komunikasi yang dibutuhkan untuk mentransfer program dari komputer PC ke PLC maupun sebaliknya.

Keempat, program disimpan ke dalam PLC;

  • Baik dilakukan secara langsung melalui terminal konsol maupun melalui komputer PC.

Informasi lebih lanjut silahkan membaca buku saya “PLC: Konsep, Pemrograman dan Aplikasi (Omron CPM1A/CPM2A dan ZEN Programmable Relay)“, Terbitan CV. Gava Media – Yogyakarta (informasi)

Semoga bermanfaat…

Categories
DSP

Pemisahan Derau dan Suara – Speech Noise Reduction

Dalam suatu sistem perekaman suara, dilakukan perekaman suara secara digital dalam suatu area yang berisik dengan frekuensi cuplik 8 kHz. Dianggap bahwa rekaman suara yang dihasilkan mengandung informasi mulai dari hingga 1800 Hz, sehingga kita bisa merancang sebuah tapis lolos-rendah (low-pass) yang akan menahan derau antara 1800 Hz hingga batasan Nyquist, 4000 Hz (separo dari frekuensi cuplik 8000 Hz).

Berikut spesifikasi Tapis kita:

  • Tipe Tapis = FIR lolos-rendah (lowpass FIR filter)
  • Jangkauan Frekuensi Passband = 0 – 1800 Hz
  • Riak (ripple) pada Passband = 0,02 dB
  • Jangkauan Frekuensi Stopband = 2000 – 4000 Hz
  • Pelemahan (attenuation) pada Stopband = 50 dB
  • Tipe Jendela = Hamming
  • Jumlah koefisien = 133
  • Frekuensi cutoff = 1900 Hz

Fungsi jendela menggunakan persamaan-persamaan berikut:

Selanjutnya dibuat skrip fungsi firwd(N,Ftype,WnL,WnH,Wtype) yang digunakan untuk membuat tapis menggunakan jendela dengan listing sebagai berikut…

function B=firwd(N,Ftype,WnL,WnH,Wtype)
 %  B = firwd(N,Ftype,WnL,WnH,Wtype)
 %  Rancang Tapis FIR menggunakan metode Fungsi Jendela
 %  Parameter2 masukan:
 %  N: jumlah koefisien (tap) tapis FIR
 %     Catatan: Harus bilangan ganjil.
 %  Ftype: Tipe tapis
 %	1.  Tapis Low-pass ;
 %   2.  Tapis High-pass;
 %	3.  Tapis Bandpass;
 %   4.  Tapis Bandstop.
 %  WnL: Frekuensi cutoff bawah (radian), WnL=0 untuk Tapis Highpass
 %  WnH: Frekuensi cutoff atas (radian), WnH=0 untuk Tapis Lowpass.
 %  Wtype: tipe fungsi jendela
 %	1.  Jendela Rectangular;
 %   2.  Jendela Triangular;
 %	3.  Jendela Hanning;
 %   4.  Jendela Hamming;
 %	5.  Jendela Blackman;
 % Keluaran:
 % B: Koefisien2 Tapis FIR.
 %
 M=(N-1)/2;
 hH=sin(WnH*[-M:1:-1])./([-M:1:-1]*pi);
 hH(M+1)=WnH/pi;
 hH(M+2:1:N)=hH(M:-1:1);
 hL=sin(WnL*[-M:1:-1])./([-M:1:-1]*pi);
 hL(M+1)=WnL/pi;
 hL(M+2:1:N)=hL(M:-1:1);
 if Ftype == 1
    h(1:N)=hL(1:N);
 end
 if Ftype == 2
    h(1:N)=-hH(1:N);
    h(M+1)=1+h(M+1);
 end
 if Ftype ==3
    h(1:N)=hH(1:N)-hL(1:N);
 end
 if Ftype == 4
    h(1:N)=hL(1:N)-hH(1:N);
    h(M+1)=1+h(M+1);
 end
 % Fungsi-fungsi jendela;
 if Wtype ==1
    w(1:N)=ones(1,N);
 end
 if Wtype ==2
    w=1-abs([-M:1:M])/M;
 end
 if Wtype ==3
    w= 0.5+0.5*cos([-M:1:M]*pi/M);
 end
 if Wtype ==4
    w=0.54+0.46*cos([-M:1:M]*pi/M);
 end
 if Wtype ==5
    w=0.42+0.5*cos([-M:1:M]*pi/M)+0.08*cos(2*[-M:1:M]*pi/M);
 end
 B=h .* w

Fungsi firwd() ini akan kita gunakan dalam ekperimen Noise Removal kita ini. Baik, mari kita lakukan proses tapis derau langkah demi langkah sebagai berikut, kita awali dengan menutup jendela-jendela, sekalian membersihkan memori Matlab…

close all; clear all

Kita siapkan frekuensi cuplik (8000 Hz) dan periodenya (1/Fs), sekaligus membaca data yang digunakan untuk eksperimen ini (menggunakan instruksi load pada Matlab, data beserta listing program lengkap bisa diunduh disini):

fs=8000;T=1/fs;
load we.dat

Kemudian kita siapkan variabel waktunya (t). Mulai dari 0 (detik) hingga [Panjang(we)-1] dikali T (detik)…

t=[0:length(we)-1]*T;

Baik, sekarang kita siapkan deraunya. Derau berkaitan dengan data-data, tingkatnya tinggi (high level) dan bersifat broadband (nanti akan Anda lihat spektrumnya), diawali dengan 1/4 dari rerata kuadrat data…

th=mean(we.*we)/4;
v=sqrt(th)*randn([1,length(we)]);

Gabungkan derau (v) dengan sinyal aslinya (we) dan gambarkan hasilnya (dalam ranah waktu)….

x=we+v;
subplot(2,1,1);plot(t,x,’k’);
xlabel(‘Waktu (detik)’);ylabel(‘Amplitudo’);grid;

Kemudian gambarkan juga spektrumnya…

N=length(x);
f=[0:N/2]*fs/N;
Axk=2*abs(fft(x))/N;Axk(1)=Axk(1)/2;
subplot(2,1,2); plot(f,Axk(1:N/2+1),’k’);
xlabel(‘Frekuensi (Hz)’); ylabel(‘Besaran |X(f)| ‘);grid;

hasilnya…

Bagaimana? Sekarang Anda bisa melihat dengan jelas sinyal + derau dan spektrumnya. Perhatikan bentuk-bentuk ‘rumput’ pada spektrumnya (ini karena adanya derau). Selanjutnya dilakukan proses penapisan untuk mengambil (atau lebih tepatnya menahan) komponen derau. Kita siapkan frekuensi cutoff dalam radian yang dinormalisasi terhadap frekuensi cuplik (Fc/Fs) dikali dengan 2*pi…

wc=2*pi*1900/8000;

Kemudian kita siapkan tapisnya…

B=firwd(133,1,wc,0,4);

Dan akhirnya kita lakukan proses penapisan (filtering)…

y=filter(B,1,x);

Selanjutnya kita gambarkan hasilnya, sekalian spektrumnya…

Ayk=2*abs(fft(y))/N;Ayk(1)=Ayk(1)/2;
subplot(2,1,1); plot(t,y,’k’);
xlabel(‘Waktu (detik)’);ylabel(‘Amplitudo’);grid;
subplot(2,1,2);plot(f,Ayk(1:N/2+1),’k’);
xlabel(‘Frekuensi (Hz)’); ylabel(‘Besaran |Y(f)| ‘);grid;

Hasilnya…

Okey! Bandingkan kedua gambar tersebut, adakah perbedaan? Dalam ranah waktu? Dalam ranah frekuensi? Mo Jawab? Komentar? Pertanyaan? Silahkan gunakan form komentar di bawah ini…

Terima kasih, semoga bermanfaat.. Oya mo listingnya lengkap (termasuk data we.dat)? Unduh aja disini (RAR)!

Catatan:

  • Beberapa instruksi yang tidak dijelaskan dalam artikel mohon merujuk HELP-nya Matlab.

sumber:

  • Tan, Li, 2008, Digital Signal Processing: Fundamentals and Applications, Academic Press, Elsevier, USA
Categories
DSP

Tapis FIR: Efek Order Tapis vs. Penempatan Pole/Zero

Eksperimen sederhana berikut ini menggukanan Matlab 7.0 yang dilengkapi dengan Signal Processing Toolbox dan menggunakan ‘fdatool‘, sebuah alat untuk analisis dan merancang tapis (the Filter Design and Analysis Tool), gunakan program ini untuk:

  • Merancang Tapis
  • Kuantisasi Tapis
  • Analisis Tapis
  • Memodifikasi rancangan tapis
  • Merealisasikan model Simulink untuk Tapis FIR, bentuk langsung, terkuantisasi (quantized, direct form, FIR filters), atau
  • Melakukan transformasi frekuensi digital pada suatu tapis

Jika Anda memberikan perintah ‘fdatool‘ pada Matlab, maka akan ditampilkan jendela dialog sebagai berikut…

Okey, mari kita belajar menggunakan ‘fdatool‘ sekaligus melakukan eksperimen sederhana untuk melihat efek perubahan orde tapis tanpa dan dengan menggunakan jendela versus penempatan pole-zero.

Kita lakukan pengaturan rancangan pada ‘fdatool‘ sebagai berikut:

  • Response Type: Lowpass
  • Design Method: FIR – window
  • Filter Order: 1
  • Options: Window – Rectangular
  • Fs : 10000Hz, Fc : 4000Hz

Hasil pertama sebagai berikut:

&

Kemudian parameter Filter Order kita ubah menjadi 2, 4, 6 dan 10, hasilnya berturut-turut…

&

&

&

&

Bagaimana kesimpulan Anda? silahkan tuangkan pada bagian komentar di artikel ini, silahkan…

Next, kita akan coba eksperimen menggunakan jendela yang dipakai pada Tapis dan efeknya terhadap response dan pole-zero dengan merubah orde tapis seperti sebelumnya. Kita awali dengan orde tapis sebesar 1, hasilnya:

&

Selanjutnya untuk orde tapis: 2, 4, 6 dan 10, hasilnya sebagai berikut (berturut-turut)…

&

&

&

&

Bagaimana kesimpulan Anda dengan efek penggunaan jendela ini? silahkan tuangkan pada bagian komentar di artikel ini, silahkan…

Categories
Mikrokontroler

AT89: Sistem Akuisisi Data dan Pemantauan

Kebutuhan-kebutuhan…

Perangkat keras

  • AT89C51 atau AT89S51, sebagai mikrokontroler-nya;
  • LM35, sebagai sensor suhu-nya;
  • ADC0808, sebagai ADC-nya, dan
  • MAX232, sebagai konverter RS232-TTL

Perangkat Lunak

  • C-Compiler, program mikrokontroler ditulis dalam bahasa C;
  • Visual Basic 6.0, antarmuka komputer menggunakan Visual Basic 6.0

Gambar Rangkaian

Gambar Antatmuka Komputer

Listing Program & Keterangan

  • Semua bisa diunduh disini (termasuk program komputer, gbr rangkaian dan lain-lain).
  • Piranti ini merupakan sistem pemantauan dan pengendalian suhu (melalui ON/OFF pemanas).
  • Pada rangkaian mikrokontroler telah dihubungkan 4 dari maksimum 8 (atau bahkan lebih dengan modifikasi program) sensor suhu. Nilai-nilai dari semua sensor tersebut dikirim ke komputer melalui port serial (informasi mengenai aplikasi port serial bisa dibaca disini). Ini adalah tugas utama dari mikrokontroler AT89, dimana programnya ditulis dalam Bahasa C untuk mikrokontroler seri 51.
  • Program komputer, yang ditulis dalam Visual Basic 6.0, digunakan untuk menerima nilai suhu tersebut dan menampilkannya melalui komputer, sekaligus dapat menyimpan data-data tersebut ke basis data “daq.mdb” (format Microsoft Access). Kita bisa mengatur parameter-parameter misalnya set point, low limit dan high limit. Saat suhu yang terdeteksi pada suatu sensor naik di atas set point, maka pemanas yang terhubungkan (berkaitan dengan sensor yang bersangkutan) akan dimatikan (OFF), ON jika kondisi sebaliknya. High limit dan Low Limit digunakan untuk alarm, jika suhu diatas High Limit atau suhu dibawah Low Limit, maka alarm akan ON.
  • Intinya:
    • Mikrokontroler hanya mengirim data-data suhu saat diminta dan melakukan ON/OFF heater sesuai perintah dari komputer.
    • Komputer menerima data, kemudian melakukan interpretasi data (berkaitan dengan set point, low limit dan high limit) dan memberikan perintah ON/OFF pemanas ke mikrokontroler sesuai dengan interpretasi yang dihasilkan.

Sumber

  • Abbas Raza, email: jgen_17@yahoo.com

Ada komentar? Pertanyaan? Silahkan melalui form berikut atau email ke agfi@ugm.ac.id, terima kasih…

Categories
Mikrokontroler

Komunikasi serial menggunakan uC AT89

Kita tahu port serial masih digunakan hingga saat ini, walaupun beberapa peralatan komputer sudah menghilangkan port ini, namun kita masih bisa membeli (atau pinjem juga boleh, he he he) alat dan/atau perangkat lunak usb2serial, sehingga komunikasi via port serial masih tetap bisa kita lakukan.

Selain untuk kebutuhan komunikasi, port serial atau port RS232 bisa digunakan untuk kebutuhan pengontrolan, nah artikel kali ini saya akan membahas tentang rangkaian dan contoh program dalam BASIC (BASCOM51) port serial untuk kontrol lampu LED, dan tentunya bisa Anda kembangkan untuk aplikasi-aplikasi lainnya, seperti komunikasi dengan HP, sehingga bisa digunakan untuk kontrol jarak jauh dan lain sebagainya…

Baiklah, berikut ini adalah gambar rangkaian minimal yang akan kita gunakan untuk eksperimen, cukup sederhana, tapi khasiatnya… he he he…

Okey, ceritanya begini… Port serial akan kita gunakan untuk mengontrol pola hidup 8 LED yang kita hubungkan ke PORT1 dan pemantauan tombol-tekan di PORT3, perintah-perintah yang digunakan sebagai berikut:

  • 01 : menghidupkan LED di Port1.0
  • 11 : menghidupkan LED di Port1.1
  • 21 : menghidupkan LED di Port1.2
  • 31 : menghidupkan LED di Port1.3
  • 41 : menghidupkan LED di Port1.4
  • 51 : menghidupkan LED di Port1.5
  • 61 : menghidupkan LED di Port1.6
  • 71 : menghidupkan LED di Port1.7
  • 00 : mematikan LED di Port1.0
  • 10 : mematikan LED di Port1.1
  • 20 : mematikan LED di Port1.2
  • 30 : mematikan LED di Port1.3
  • 40 : mematikan LED di Port1.4
  • 50 : mematikan LED di Port1.5
  • 60 : mematikan LED di Port1.6
  • 70 : mematikan LED di Port1.7
  • id : menampilkan kalimat “Made by A.E.P 2008”
  • ba : baca status semua tombol pushbutton di P3
  • b2 : baca status tombol pushbutton di P3.2
  • b2 : baca status tombol pushbutton di P3.3
  • b2 : baca status tombol pushbutton di P3.4
  • b2 : baca status tombol pushbutton di P3.5
  • b2 : baca status tombol pushbutton di P3.6
  • b2 : baca status tombol pushbutton di P3.7

Catatan:

  • Tombol di P3.0 dan P3.1 tidak digunakan karena sebagai jalur komunikasi serial, jika tetap dibaca akan menimbulkan kesalahan atau error…

Kemudian listing program menggunakan BASIC-nya BASCOM51 sebagai berikut…

$regfile = "89c55wd.dat"     ' pustaka untuk AT89c55
$crystal = 11059200          ' gunakan kristal 12 MHz
$baud = 9600

Dim S As String * 2
Do
   Input S
   Select Case S
      Case "01" : P1.0 = 0
      Case "11" : P1.1 = 0
      Case "21" : P1.2 = 0
      Case "31" : P1.3 = 0
      Case "41" : P1.4 = 0
      Case "51" : P1.5 = 0
      Case "61" : P1.6 = 0
      Case "71" : P1.7 = 0
      Case "00" : P1.0 = 1
      Case "10" : P1.1 = 1
      Case "20" : P1.2 = 1
      Case "30" : P1.3 = 1
      Case "40" : P1.4 = 1
      Case "50" : P1.5 = 1
      Case "60" : P1.6 = 1
      Case "70" : P1.7 = 1
      Case "b2" : Print P3.2
      Case "b3" : Print P3.3
      Case "b4" : Print P3.4
      Case "b5" : Print P3.5
      Case "b6" : Print P3.6
      Case "b7" : Print P3.7
      Case "ba" : Print P3
      Case "id" : Print "Made by A.E.P 2008"
   Case Else
      Print "er"
   End Select
Loop

Keterangan:

  • Program diawali dengan pernyataan “$regfile” yang digunakan untuk mendefinisikan uC yang digunakan, dilanjutkan dengan “$crystal” yang menyatakan frekuensi kristal yang digunakan, $baud untuk menentukan kecepatan komunikasi serial dalam bit per second atau bps;
  • inti dari program ini ada dua, penerimaan data dan pemrosesan data yang diterima. Yang pertama dilakukan melalui pernyataan “Input s” (kondisi menunggu masukan dari terminal komputer – komunikasi serial) dan yang Kedua melalui pernyataan “Select Case S” hingga “End Select“;
  • Penerjemahan protokol atau aturan komunikasi melalui pernyataan “Select Case S“, misalnya untuk perintah “01” diterjemahkan sebagai “Case “01” : P1.0=1” dan seterusnya, selain itu (dengan pernyataan “else case” akan dikirimkan pesan “er”, artinya ada error atau perintah tidak dikenal;
  • Percobaan dapat dilakukan dengan menghubungkan board uC ke port serial menggunakan kabel serial bersilang, maksudnya dilakukan pasangan antara uC dan PC sebagai berikut: Gnd – Gnd, Tx(komputer) – Rx(mikrokontroler) dan Tx(komputer) – Rx(mikrokontroler);
  • Keterangan dan penjelasan lengkap mengenai komunikasi serial ini bisa Anda baca di buku saya “Belajar Mikrokontroler AT89C51/52/55: Teori dan Aplikasi“, Edisi 2.

Bagaimana mudah khan? kalo sudah begini, Anda bisa mengembangkan aplikasi ini untuk pembuatan program kontrol atau pemantauan menggunakan Visual Basic atau Delphi – Teknik Antarmuka PC.

Terima kasih, semoga bermanfaat… Komentar/pertanyaan silahkan…

Categories
Neurosains

Apa itu Neurosains (Neuroscience)??

Tugas dari ilmu neural (neural science) adalah menjelaskan perilaku manusia dari sudut pandang aktivitas yang terjadi di otak. Bagaimana bisa2nya otak yang tersusun dari jutaan sel-sel saraf individuil bisa menghasilkan perilaku dan bagaimana sel-sel ini juga terpengaruh oleh kondisi lingkungan? Mmm sungguh menarik dan menantang!

“The last frontier of the biological sciences–their ultimate challenge–is to understand the biological basis of consciousness and the mental processes by which we perceive, act, learn, and remember.” – Eric Kandel, Principles of Neural science, fourth edition

Neurosains merupakan bidang ilmu yang mengkhususkan pada studi saintifik dari sistem syaraf. Komunitas atau Perkumpulan Neurosains didirikan pada tahun 1969, namun pembelajaran mengenai otak sudah dilakukan sejak lama sekali. Beberapa hal yang dipelajari meliputi struktur, fungsi, sejarah evolusi, pengembangan, genetika, biokimia, fisiologi, farmakologi, informatika, komputasi neurosains dan patologi dari sistem syaraf. Secara tradisionil kelihatan merupakan cabang dari ilmu biologi. Namun, saat ini sudah banyak dilakukan kerjasama penelitian antar bidang ilmu dalam kerangka neurosains, seperti disiplin ilmu psikologi-neuro dan kognitif, ilmu komputer, statistik, fisika dan kedokteran.

Saat ini neurosains sudah melibatkan beberapa eksperimental saintifik sistematik dan investigasi teoritis atas sistem syaraf pusat dan periferal dari organisme biologik. Metodologi empirik yang digunakan oleh para neurosaintis telah berkembang dari analisis biokimia dan genetika dari dinamika sel-sel syaraf individual dan unsur-unsur pokok molekularnya hingga penyajian citra perseptual dan aktivitas motorik dalam otak. Bahkan saat ini sudah dilakukan pemodelan komputasional untuk mendukung neurosains.

Secara umum, neurosains mencakup semua bidang ilmu saintifik yang terkait dengan sistem syaraf. Psikologi, sebagai studi saintifik proses mental, dapat dianggap sebagai sub-bidang neurosains, walaupun beberapa teoris pikiran/tubuh tidak setuju dengan hal ini – menurut mereka, psikologi adalah studi proses-proses mental yang dapat dimodelkan dengan berbagai macam prinsip-prinsip dan teori-teori abstrak, seperti psikologi perilaku dan kognitif tradisional, dan itu tidak berhubungan dengan proses-proses syaraf. Istilah neurobiologi kadang dipakau sebagai ganti dari neurosains, walaupun istilah yang pertama merujuk pada biologi-nya sistem syaraf.

Neurolog dan Psikiater merupakan bidang khusus kedokteran yang secara spesifik mempelajari penyakit pada sistem syaraf. Istilah ini merujuk pada disiplin klinik yang menyangkut diagnosa dan perawatan dari penyakit ini. Neurologi berkaitan dengan penyakit dari sistem syaraf pusat dan periferal seperti ALS (Amyotrophic Lateral Sclerosis) dan stroke, sedangkan Psikiater fokus pada penyakit mental. Batasan antara kedua semakin kabur hingga sat ini dan dokter spesialis salah satunya sering mendapatkan pelatihan keduanya. Neurolog dan Psikiater banyak dipengaruhi oleh riset-riset dasar neurosains.

Berbagai tema-tema penelitian Neurosains (Beberapa diambil dari http://www.northwestern.edu/nuin/fac/index.htm):

  • Behavior/Cognition/Language
  • Biological Rhythms
  • Brain Imaging or neuroimaging
  • Cell Biology
  • Cell Imaging & Electrophysiology
  • Computational neuroscience
  • Development
  • Hearing Sciences
  • Language
  • Learning/Memory
  • Mechanisms of Drug Action
  • Molecular Neuroscience
  • Motor Control
  • Neurobiology of Disease
  • Neuroethology
  • Neuroendocrinology
  • Neuroimmunology
  • Signal transduction
  • Systems Neuroscience
  • Universal Grammar
  • Vision Sciences
  • Neurobiology of the neuron
  • Sensation and perception
  • Sleep
  • Autonomic systems and homeostasis
  • Arousal, attention and emotion
  • Genetics of the nervous system
  • Injury of the nervous systems

Beberapa buku teks yang bisa digunakan untuk mempelajari Neurosains:

  • Bear, M.F., B.W. Connors dan M.A. Paradiso, 2001, Neuroscience: Exploring the Brain. Baltimore: Lippincott. ISBN 0-7817-3944-6.
  • Kandel, ER, Schwartz JH dan Jessell TM, 2000, Principles of Neural Science (4th ed. ed.). New York: McGraw-Hill. ISBN 0-8385-7701-6.
  • Squire, L. dkk, 2003, Fundamental Neuroscience, 2nd edition. Academic Press; ISBN 0-12-660303-0
  • Byrne dan Roberts, 2004, From Molecules to Networks. Academic Press; ISBN 0-12-148660-5
  • Sanes, Reh dan Harris, 2005, Development of the Nervous System, 2nd edition. Academic Press; ISBN 0-12-618621-9
  • Siegel dkk, 2005, Basic Neurochemistry, 7th edition. Academic Press; ISBN 0-12-088397-X
  • Rieke, F. dkk, 1999, Spikes: Exploring the Neural Code. The MIT Press; Reprint edition ISBN 0-262-68108-0

Informasi online:

  • Intro to Neuroscience (http://azintaria.freespaces.com/index.htm) – Smith College Spring 2005
Categories
DSP

Implementasi Metode Penapis Highpass dan Penapis Highboost dalam Penajaman Citra menggunakan Kernel Konvolusi

Telah dibuat sebuah sistem penajaman citra menggunakan kernel konvolusi penapis High-pass dan High-boost. Sistem terdiri dari dua kategori, yaitu mengimplementasikan metode kernel konvolusi penapis High-pass dan penapis High-boost untuk mempertajam citra dan menghitung nilai MSE (Mean Square Error) antara citra asli dengan citra yang telah dimodifikasi.

Sistem ini dapat mempertajam suatu citra yang terdegradasi oleh penapis Gaussian blur ataupun penapis jenis lain. Dalam hal ini, kualitas citra akan ditingkatkan dengan mempertajam detail yang penting dalam citra tersebut dan mempertajam detil objek yang telah blur. Citra yang telah ditajamkan dapat dibandingkan dengan citra asli untuk mengetahui seberapa dekat kesamaan kedua citra tersebut dengan menggunakan parameter MSE. Semakin kecil nilai MSE antara kedua citra maka kedua citra tersebut semakin mirip.

Hasil penelitian menunjukan penajaman terbaik diperoleh pada penajaman citra buram Gaussian Blur radius 1 piksel, yang ditandai dengan nilai MSE paling kecil yaitu pada kernel 1 dan faktor penguat 1. Hasil penajaman terburuk/terparah diperoleh pada penajaman citra buram Gaussian Blur radius 50 piksel, yang ditandai pada kernel 3 dan faktor penguat 5. Penajaman citra sangat tergantung pada kernel konvolusi High-pass filter dan High-boost filter dan nilai faktor penguat yang digunakan. Semakin besar nilai faktor penguat kernel, citra yang dihasilkan akan semakin terang.

Kata kunci: kernel konvolusi, citra tajam, penapis high-pass, penapis high-boost

(Informasi selengkapnya klik disini)

Categories
Mikrokontroler

Pengendalian Motor Langkah Menggunakan LabVIEW 7.0 berbasis TCP/IP

PENDAHULUAN

Kemajuan dan perkembangan teknologi telah banyak memberi manfaat bagi kehidupan manusia. Kemajuan teknologi disebabkan karena semakin banyak tuntutan manusia yang harus dipenuhi untuk mendapatkan kemudahan-kemudahan, baik dalam hal kecepatan, ketepatan, maupun otomasi. Peralatan-peralatan dalam dunia industri beralih dari sitem manual menjadi sistem otomatis sekaligus memiliki kemampuan dapat dikendalikan dan diamati parameterparameternya dari jarak jauh. Salah satu aplikasi yang dibuat dalam penelitian ini adalah sistem pengendali motor langkah (berupa perangkat keras dan lunak) dari jarak jauh berbasis TCP/IP.

Motor langkah atau stepper motor, banyak digunakan dalam berbagai macam aplikasi, terutama aplikasi-aplikasi yang menuntut jumlah putaran tertentu dan tepat, biasanya berkaitan dengan posisi yang harus akurat. Suatu contoh dapat dijumpai pada alat kemudi cakram atau disk drive, untuk proses pembacaan dan/atau penulisan data ke/dari cakram, head baca-tulis ditempatkan pada tempat yang tepat di atas jalur atau track pada cakram (diskette), untuk keperluan tersebut, head dihubungkan dengan sebuah motor langkah.

Kecepatan motor langkah pada dasarnya ditentukan oleh kecepatan pemberian data pada komutatornya. Semakin cepat data yang diberikan maka akan semakin cepat pula putarannya. Kebanyakan kecepatan motor langkah dapat diatur dalam daerah frekuensi audio dan akan menghasilkan putaran yang cukup cepat.

(informasi selengkapnya bisa diunduh disini)

Categories
DSP

Tapis IIR: Metode penempatan Pole dan Zero

Tapis IIR (Infinite Impulse Response), sebuah tapis yang bergantung pada masukan dan keluaran (tidak hanya masukan saja, sebagaimana dijumpai pada FIR, Finite Impulse Response), bisa dirancang menggunakan metode penempatan pole-zero pada bidang-Z. Walaupun metode ini lebih bersifat intuitif dan pendekatan, ada beberapa kasus dimana kita bisa melakukan secara non-intuitif dan lebih akurat, ya walau hanya untuk yang sederhana saja, antara lain:

  1. Second-order Bandpass Filter;
  2. Second-order Bandstop Filter;
  3. First-order Lowpass Filter, dan
  4. First-order Highpass Filter.

Okey, langsung to the point aja yach, saya jelaskan satu-satu secara singkat. Sebelumnya, secara garis besar penempatan ZERO menentukan bentuk persamaan untuk pembilang (yang akar-akarnya menyebabkan Fungsi Alih bernilai NOL), sedangkan POLE menentukan bentuk persamaan untuk penyebut (persamaan yang akar-akarnya menghasilkan Fungsi Alih bernilai TAK-HINGGA). Fungsi alih? Apaan tuch? Fungsi alih adalah fungsi perbandingan keluaran dan masukan, misalnya Y(Z)/X(Z), dalam ranah-Z, yang kemudian biasa disingkat sebagai fungsi H(Z).

Okey lihat aja gambar berikut:

Gambar 1. Efek penempatan Pole/Zero terhadap Besaran atau Magnitude

Dari Gambar 1 jelas terlihat bahwa ZERO harus selalu ditempatkan pada lingkaran satuan (unit circle), sedangkan POLE harus didalam lingkaran satuan, agar selalu stabil.

Second-order Bandpass Filter

Perhatikan gambar berikut ini…

Gambar 2. Penempatan POLE/ZERO pada 2nd order Bandpass Filter

Nach tu… liat saja, ZERO harus ditempatkan pada posisi (-1,0) dan (1,0), jumlahnya 2 (dua) karena 2nd order! Kemudian POLE-nya harus ditempatkan DIDALAM lingkaran satuan, r menentukan lebar pita sedangkan θ menentukan frekuensi tengahnya. Persamaan-nya sebagai berikut…

Menghitung r, θ dan H(z), serta…

menghitung K

Second-order Bandstop (Notch) Filter

Perhatikan gambar berikut ini…

Gambar 3. Penempatan POLE/ZERO pada 2nd order Bandstop Filter

Terlihat bahwa sekarang penempatan POLE dan ZERO memiliki sudut θ yang sama, berbeda dengan yang Bandpass, dimana ZERO tidak bergantung pada posisi POLE. Persamaanya…

Menghitung r, θ dan H(z), serta…

menghitung K

First-order Lowpass Filter

Dalam hal ini ada 2 kasus, semua berkaitan dengan nilai dari frekuensi cutoff, pertama jika frekuensi cutoff kurang dari 1/4 frekuensi cuplik (fc < 1/4 fs), dan frekuensi cutoff yang lebih dari 1/4 frekuensi cuplik (fc > 1/4 fs), perhatikan ilustrasi berikut untuk kasus yang pertama

Gambar 4. Penempatan POLE/ZERO untuk 1st order Lowpass Filter dengan fc < 1/4 fs

Gambar 5. Penempatan POLE/ZERO untuk 1st order Lowpass Filter dengan fc > 1/4 fs

Terus persamaannya? Ya ini dia…

First-order Highpass Filter

Masih sama, tetap ada dua kasus, perhatikan ilustrasi berikut…

Gambar 6. Penempatan POLE/ZERO untuk 1st order HigpassFilter dengan fc < 1/4 fs

Gambar 7. Penempatan POLE/ZERO untuk 1st order HigpassFilter dengan fc > 1/4 fs

Terus ini rumus atau persamaanya..

Nah sekarang pertanyaannya?

Bagaimana untuk frekuensi cutoff yang sama dengan 1/4 frekuensi cuplik?

Mmmm iya ya gimana ya? Okey ikuti terus penjelasan saya, kunjungi website saya, siapa tahu sudah saya tulis artikelnya he he he….

Sumber:

  • Tan, Li, 2008, Digital Signal Processing: Fundamentals and Applications, Academic Press, Elsevier, USA
Categories
FPGA

Algoritma Aritmatika Terdistribusi (Implementasi FPGA)

Aritmatika terdistribusi merupakan algoritma komputasi yang dapat melakukan perkalian dengan menggunakan bantuan tabel look-up. Aritmatika terdistribusi sering digunakan pada komputasi penjumlahan-perkalian atau sum-of-products yang banyak dijumpai pada algoritma penapis PSD dan fungsi-fungsi transformasi frekuensi. Ironisnya, pada saat ini belum banyak perancang komputasi PSD menggunakan (bahkan mendengar) algoritma ini (Mintzer, 1992). Jika perancangan fungsi-fungsi PSD dalam deskripsi VHDL dilakukan pada tingkat RTL, justru algoritma ini perlu diperhitungkan dan digunakan karena dapat mengefisiensikan algoritma fungsi PSD yang akan diimplementasikan.

Misalnya, pada kasus tapis digital, jumlah perkalian aritmatika yang menyatakan tanggap dari suatu sistem linear serta invarian terhadap waktu dapat dinyatakan dalam bentuk:

(1)

dengan:

  • y(n) = tanggap sistem;
  • xk(n) = peubah masukan ke-k pada waktu-n;
  • Bk = faktor bobot atau koefisien masukan ke-k yang konstan untuk semua n.

Pada aplikasi tapis digital, konstanta Bk merupakan koefisien penapis sedangkan peubah xk adalah sumber masukan data tunggal. Proses penjumlahan-perkalian menggunakan Aritmatika Terdistribusi digantikan dengan langkah-langkah atau prosedur tabel look-up yang dapat diimplementasikan dengan mudah menggunakan CLB (ROM) dari FPGA.

Dimulai dengan mendefinisikan format angka dari peubah masukan menjadi 2’s complement, dengan demikian peubah xk dapat dituliskan

(2)

dengan B adalah lebar bit data dan xkb adalah sebuah peubah biner dan dapat diasumsikan sebagai angka 0 dan 1. Sebuah bit tunggal yang menyatakan tanda bilangan dinyatakan oleh xk0. Persamaan (1) disubstitusikan ke dalam persamaan (2), sehingga menghasilkan

(3)

atau dapat dituliskan secara keseluruhan

Masing-masing bentuk yang terdapat di dalam tanda kurung menyatakan suatu operasi biner AND yang melibatkan sebuah bit dari peubah masukan dan semua bit konstanta dan tanda “+” menyatakan operasi aritmatika penjumlahan. Faktor eksponensial menyatakan faktor skala kontribusi dari masing-masing total penjumlahan. Tabel look-up dibuat berdasarkan bit skala yang sama untuk semua peubah masukan, hal ini sekaligus menyatakan cara pengalamatan-nya (gambar 1), yang dapat diakses jumlah total masing-masing persamaan di dalam tanda kurung, sebagaimana terlihat pada gambar 2, yang dinamakan sebagai DALUT (Distributed Arithmetic Look-Up Table).

DALUT yang sama dapat dikonfigurasikan secara time-shared (penggunaan-waktu bersama) dalam struktur komputasi serial atau dapat direplikasikan sebanyak B kali untuk komputasi paralel.

Gambar 1. Pengalamatan DALUT, AK dimasukkan ke dalam penjumlahan untuk xkb = 1

Gambar 2. Isi DALUT, angka 0 s/d 8 dan seterusnya menunjukkan alamat DALUT

Operasi aritmatika sekarang telah berkurang menjadi operasi penjumlahan, pengurangan dan penyekalaan biner. Skala dengan 2 pangkat N dapat diimplementasikan dengan melakukan pergeseran kode biner ke kanan sebanyak N bit, sedangkan penjumlah penuh (Full Adder) hanya memerlukan dua operan, yaitu penambah dan yang ditambah, untuk menghasilkan jumlah dan sisa (sum and carry). Sedangkan implementasi ROM dapat dilakukan dengan CLB (Mintzer, 1993).

Daftar Pustaka

  • Mintzer, L., 1993, “The Role of Distributed Arithmetic in FPGA-based Signal Processing”, Xilinx Inc., San Jose, California, USA.