data processing.ppt

47
Instrumentasi Elektronika Pemrosesan Data Digital EruP©Juni 2014 PENS

Upload: rudi

Post on 12-Apr-2016

223 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Data Processing.ppt

Instrumentasi Elektronika

Pemrosesan Data DigitalEruP©Juni 2014

PENS

Page 2: Data Processing.ppt

Pendahuluan

• Perlunya pengukuran digital• Pembacaan Digital• Pemrosesan Data• Penyimpanan Data• Pengiriman data digital

Page 3: Data Processing.ppt

Perlunya pengukuran digital

• Pengukuran Digital vs Pengukuran Analog– Kelebihan pengukuran digital

• Lebih mudah dalam melakukan pemrosesan data– Dapat dibuat berbagai macam proses yang kompleks

• Kinerja perangkat digital secara umum tidak berubah (karena dalam bentuk program)

– Hanya bagian analog yang mengalami perubahan• Lebih mudah dalam transmisi data

– Data digital lebih mudah dikirimkan ke perangkat lain• Kompleksitas rangkaian yang lebih sederhana

– Hanya mengandalkan prosesor yang mumpuni• Memungkinkan data disimpan dengan mudah

Page 4: Data Processing.ppt

Catatan

• Tidak semua persoalan dapat dibuat digital

• Contoh– Penguat sinyal kecil– Limiter– Filter Anti Aliasing– Driver– Dll

Page 5: Data Processing.ppt

Contoh Analog vs Digital

Coba gambar sinyal output jika amplitudo sinyal input 0.2 Volt

// Contoh ProgramVin=read_adc(0)*5/1024-2.5;Vo=fabs(Vin)

Page 6: Data Processing.ppt

Pembacaan Digital

• Anti Aliasing• ADC• Prosesor

Page 7: Data Processing.ppt

Anti Aliasing

• Rangkaian yang digunakan untuk mencegah terjadinya kerusakan informasi saat dilakukan konversi dari analog ke digital

• Informasi dianggap benar jika frekuensi dari informasi analog tidak mengalami perubahan setelah dilakukan konversi digital

• Anti aliasing sebenarnya adalah suatu filter LPF yang digunakan untuk membatasi respon frekuensi yang masuk ke ADC dengan batasan,

sff21

max

Page 8: Data Processing.ppt

Catatan• Aliasing adalah suatu fenomena yang berkaitan dengan

berubahnya informasi “spektrum frekuensi” dari sinyal asli

• Aliasing tidak membicarakan berubahnya bentuk gelombang– Bentuk gelombang bisa juga menyebabkan berubahnya

informasi “spektrum frekuensi”• Jika dalam proses sampling (pembacaan dengan ADC)

tidak dikehendaki perubahan bentuk gelombang, maka perlu digunakan frekuensi sampling yang jauh lebih besar dari frekuensi sinyal– Misalkan frekuensi sampling 10 s/d 100 kali frekuensi sinyal

Page 9: Data Processing.ppt

Contoh Anti Aliasing

while(1){ data=read_adc(0); suhu=data*5/1024/0.01; sprintf(tmp,”Suhu: %04.1f”); lcd_gotoxy(0,0); lcd_puts(tmp); delay_ms(50); // Fs=40Hz}

Page 10: Data Processing.ppt

Contoh HasilTanpa Anti Aliasing

Sinyal 5 Hz diganggu dengan sinyal 57 Hz

Sinyal 5 HzSinyal gangguan 57 Hz

Sinyal dibaca (disampling) 20 x per detik (20Hz)

Hasil Sampling rusakSinyal 5 Hz

Sinyal gangguan berubah frekuensinya

Sinyal 5 Hz

Sinyal 5 Hz

Sinyal 5 Hz

Sinyal 5 Hz

Sinyal 5 Hz

Page 11: Data Processing.ppt

Contoh:Jika Anti Aliasing Bekerja Benar

Sinyal 5 Hz

Sinyal 5 Hz

Sinyal dibaca (disampling) 20 x per detik (20Hz)

Hasil sampling, bentuk gelombang berubah, tapi “spektrum frekuensi” sama

Page 12: Data Processing.ppt

ADC

• Analog to Digital Conversion, terdiri atas– Tegangan input– Tegangan Referensi– Data output– Resolusi ADC (lebar data)– Clock (frekuensi ADC)

• Kecepatan konversi

– SOC (Start Of Conversion)• Kecepatan sampling (fs)

– EOC (End Of Conversion)– Interupsi

bit

REF

INADC x

VVData 2

Page 13: Data Processing.ppt

Prosesor

• Digunakan untuk– Mengendalikan proses ADC dan pembacaan

dari ADC– Pemrosesan sinyal– Penyimpanan– Komunikasi

Page 14: Data Processing.ppt

Pemrosesan Data

• Konversi• Pemrosesan Sinyal• Kalibrasi• Smoothing• Filter• Transformasi• Peramalan (prediksi, estimasi)

Page 15: Data Processing.ppt

Konversi

• Data digital ke nilai tegangan– Tegangan = Data ADC * 5V / 1024

• Tegangan ke nilai besaran yang diukur– LM35

• Suhu = Tegangan / 10mV– Load Cell

• Berat = Tegangan / 1.2mV – 2.5kg– Dll

Page 16: Data Processing.ppt

Pemrosesan Sinyal

• Melakukan perhitungan untuk mendapatkan nilai tertentu– Contoh:

• VP, VPP

• rms• dc• Power (daya)• Energi

Page 17: Data Processing.ppt

Contoh:Pembacaan Vrms, Irms dan Daya Real

VT

CT

+2,5V

+2,5V

ch0

ch1

+5V

ADC 10 bitVREFClamper

BebanSumber(PLN)

In: 5AOut: 1V In: 220V

Out: 3V

Page 18: Data Processing.ppt

Contoh: Perhitungan Vrms

#define Kv 220/3 // Trafo teganganfloat baca_tegangan_rms(void){ float vin, v2, rms, v_total=0; int n; for(n=0;n<100;n++) // pembacaan 100x { vin=(read_adc(0)*5/1024-2.5)*Kv; // pembacaan

tegangan v2=vin*vin; // kuadrad v_total+=v2; // integral delay_us(200); // sampling 200us } rms=sqrt(v_total/100); // akar rata2 kuadrad return rms;}

Page 19: Data Processing.ppt

Contoh: Perhitungan Irms

#define Ki 5/1 // Trafo arusfloat baca_arus_rms(void){ float i, i2, rms, i_total=0; int n; for(n=0;n<100;n++) // pembacaan 100x { i=(read_adc(1)*5/1024-2.5)*Ki; // pembacaan arus i2=i*i; // kuadrad i_total+=i2; // integral delay_us(200); // sampling 200us } rms=sqrt(i_total/100); // akar rata2

kuadrad return rms;}

Page 20: Data Processing.ppt

Contoh: Perhitungan Daya Aktif#define Kv 220/3 // Trafo tegangan#define Ki 5/1 // Trafo Arus (Iin/Vout)

float baca_daya_real(void){ float p,v,i,daya,p_total=0; int n; for(n=0;n<100;n++) // pembacaan 100x { v=(read_adc(0)*5/1024-2.5)*Kv; // pembacaan tegangan i=(read_adc(1)*5/1024-2.5)*Ki; // pembacaan tegangan p=v*i; // daya = tegangan x arus p_total+=p; // daya total delay_us(200); // sampling 200us } daya=p_total/100; // daya real=daya rata-rata return daya;} Catatan:

Clock ADC harus tinggi, untuk menghindari selisih waktu pembacaan antara tegangan dan arus

Page 21: Data Processing.ppt

Kalibrasi

• Membandingkan data pengukuran dengan data pengukuran dari alat referensi

• Melakukan pengaturan tertentu agar didapatkan nilai pengukuran yang sama dengan alat referensi

• Contoh– Ukur_kalib = Ukur * GAIN + OFFSET

Page 22: Data Processing.ppt

Smoothing

• Membuang data-data tertentu yang tidak diinginkan

• Contoh metode– MA– Smoothing– Filter IIF, FIR

Page 23: Data Processing.ppt

MA

• Moving Average– Melakukan perata-rataan untuk setiap data

yang masuk dengan mengambil bebrapa data sebelumnya

z-1 z-1 z-1 z-1

Rata2

x[n] x[n-1] x[n-2] x[n-3] x[n-4]

Penyimpanan dataData x[n]

(sekarang)

Output y[n]

1

0

][1][

]1[]2[]1[][][

L

l

lnxL

ny

LLnxnxnxnxny

Page 24: Data Processing.ppt

Contoh MA, L=5v1=v2=v3=v4=0;while(1){ vin=read_adc(0)*5/1024; v_ma=(vin+v1+v2+v3+v4)/5; v4=v3; v3=v2; v2=v1; v1=vin; ... delay_ms(50);}

Page 25: Data Processing.ppt

Contoh MA, L=100#define L 100float v[L],s,v_ma,vin;for(i=0;i<L;i++) v[i]=0;while(1){ vin=read_adc(0)*5/1024; for(i=L-1;i>0;i--) v[i]=v[i-1]; v[0]=vin; s=0; for(i=0;i<L;i++) s+=v[i]; v_ma=s/L; ... delay_ms(50);}

Page 26: Data Processing.ppt

Perbandingan Nilai L• Pendekatan t = L.T

– Jika L=5 maka t=5xTsampling– Jika L=100 maka t=100xTsampling

L=100

L=50L=10

L=5

T=Tsampling=1

Page 27: Data Processing.ppt

Contoh Hasil Pembacaan ADC

Page 28: Data Processing.ppt

Setelah MA, L=5

Page 29: Data Processing.ppt

Setelah MA, L=10

Page 30: Data Processing.ppt

Smoothing

• Prinsipnya menggunakan kombinasi antara nilai sekarang (baru, input) dengan nilai output sebelumnya

+

z-1

Inputx[n]

Outputy[n]

1-

]1[1][][ nynxny Nilai antara 0 sampai dengan 1, semakin kecil semakin halus

Page 31: Data Processing.ppt

Contoh Program#define alfa 0.1y=0;while(1){ vin=read_adc(0)*5/1024; y=alfa*vin+(1-alfa)*y; ... delay_ms(50);}

Page 32: Data Processing.ppt

Perbandingan Nilai • Pendekatan t = 5T/

– Jika =0,5 maka t=10xTsampling– Jika =0,05 maka t=100xTsampling

=0,05=0,1

=0,25=0,5 T=Tsampling=1

Page 33: Data Processing.ppt

Contoh Hasil, =0.5

Page 34: Data Processing.ppt

Contoh Hasil, =0.1

Page 35: Data Processing.ppt

Filter

• Secara digital melakukan proses yang berkaitan dengan memilah data digital

• Model Filter digital– IIR

• Infinite Impulse Response– Model mirip dengan Smoothing– Analisa (perancangan) menggunakan Transformasi

rangkaian

– FIR• Finite Impulse Response

– Model mirip dengan MA– Analisa (perancangan) menggunakan Transformasi

respon

Page 36: Data Processing.ppt

Contoh IIROrde 1

Tfdengan

ffTf

fRC

danRC

fjika

nVnVnVRCTjika

nVRCTnV

RCTnV

nVnVnVRCTnV

nVnVRCT

CTnInV

nVnVnVnVR

nVnVnI

SS

CINC

CINC

CCINC

CINC

C

CCCOUT

CINC

122

2121

]1[1][][

]1[1][][

]1[]1[][][

]1[][][][

]1[][][][

]1[][][

Sama denganPersamaan Smoothing

Page 37: Data Processing.ppt

Model IIR

• Sama dengan Smoothing

+

z-1

Inputx[n]

Outputy[n]

1-

10

22

]1[1][][

SffTfdengan

nynxny

#define Fc 20 // Hz#define Fs 1000 // Hz#define alfa 2*pi*Fc/Fsy=0;while(1){ vin=read_adc(0)*5/1024; y=alfa*vin+(1-alfa)*y; ... delay_ms(1000/Fs);}

T selain dipengaruhi oleh delay_ms(), juga dipengaruhi oleh kecepatan ADC dan kecepatan program•Sebaiknya menggunakan Interupsi Timer untuk mendapatkan T yang akurat

Page 38: Data Processing.ppt

Catatan

• Jika yang dipersoalkan adalah frekuensi cut off, maka yang dibicarakan adalah Filter

• Dan jika yang dibicarakan adalah mengurangi perubahan-perubahan data dalam waktu tertentu, maka yang dibicarakan adalah Smoothing

SffTf 22

tT

5

Dimana:-T adalah waktu yang diperlukan sampai y[n] mendekati x[n]-Dan 5 adalah perkiraan waktu (t=5RC) agar y[n] mendekati x[n]-Artinya, jika sekitar 0,5 maka diperlukan 10 sampling agar y[n] sama dengan x[n]

Page 39: Data Processing.ppt

Transformasi

• Melakukan proses lanjutan dengan mengubah data dari satu domain ke domain lain

• Contoh– DFT– FFT

Page 40: Data Processing.ppt

Peramalan (prediksi, estimasi)

• Mendapatkan perkiraan informasi yang belum terjadi– Berdasarkan data-data sebelumnya

• Contoh– MA– Trend– Regresi

• Linear, kuadrad, exponensial, polinomial

Page 41: Data Processing.ppt

Penyimpanan Data Digital

• Memungkinkan untuk mengambil kembali data yang telah disimpan sebelumnya

• Contoh– RAM– EEPROM– SEEPROM– SD card

Page 42: Data Processing.ppt

Pengiriman data digital

• Data dikirimkan ke (diterima dari) perangkat lain untuk keperluan tertentu

• Contoh– Menampilkan data-data pengukuran ke PC

printf(“W%d/r”,suhu);printf(“#%05.1f*”,berat);printf(“W1000”);printf(“1234”);printf(“S%d,K%d,A%d/r”,suhu,kecepatan,adc);putchar(‘S’);putchar(0x41);putchar(48);putchar(a);puts(tmp);putsf(“GO”);

puts dan putsf akan secara otomatis diakhiri dengan ‘\n’

Page 43: Data Processing.ppt

Contoh: RX #1Menunggu, Data Char dan Integer

• Tidak ada proses lain yang dijalankan kecuali hanya menunggu

• Program akan berhenti, menunggu seperti macet

• Kalau ada program lain yang ingin dijalankan, harus diletakkan pada rutin interupsi (bukan program utama)

while(1){ char c; c=getchar(); lcd_putchar(c);}

while(1){ int data; char tmp[6]; scanf(“%d”,&data); sprintf(tmp,“%d”,data); lcd_puts(tmp);}

Contoh data yang dikirim “1230\r”

Harus ada ‘&’

Page 44: Data Processing.ppt

Contoh: RX #2Menunggu, Data “S1234\r”

• Data diawali dengan kode tertentu dan diakhiri dengan <CR> atau ‘\r’

while(1){ int data; char tmp[6]; if(getchar()==‘S’) { scanf(“%d”,&data); sprintf(tmp,“%d”,data); lcd_puts(tmp); }}

Selalu menunggu karakter ‘S’while(1){ int data; char tmp[6]; if(getchar()==‘S’) { tmp[0]=getchar(); tmp[1]=getchar(); tmp[2]=getchar(); tmp[3]=getchar(); tmp[4]=0; data=atoi(tmp); lcd_puts(tmp); }}

Format pengiriman:“S1234”tanpa diakhiri ‘\r’asal ukurannya tetap

???

Page 45: Data Processing.ppt

Contoh: RX #3Tidak Menunggu

• Program hanya menerima data saat data ada– Jika tidak ada, program akan menjalankan bagian

program lainnya• Harus menggunakan interupsi penerimaan data

(RX Interrupt harus diaktifkan)– Setiap ada data yang diterima, program akan loncat

ke rutin interupsi, membaca data yang diterima, dan menyimpan data tersebut serta menaikkan nilai jumlah data yang telah diterima

• Program utama dapat mengecek jumlah data yang diterima untuk mengetahui ada data atau tidak– Dengan cara ini, program tidak perlu secara khusus

menunggu data diterima

Page 46: Data Processing.ppt

Contoh: RX #3Tidak Menunggu, Data Char

• Program utama akan terus bekerja sambil memeriksa apakah ada data yang diterima– Jika ada data diterima, program tertentu

dijalankan

while (1){ if(rx_counter>0) // menerima data ? { char c; c=getchar(); lcd_putchar(c); } LED=~LED; ... Proses lain ... }

Program Utama

Program penerimaan

Counter jumlah data yang telah diterima

Page 47: Data Processing.ppt

Contoh: RX #3Tidak Menunggu, Data Integer

while (1) { char tmp[6]; if(rx_counter>=3) // menerima data ? { // harus integer if(getchar()=='R') { int r; scanf("%d",&r); sprintf(tmp,"%5.1f",r); lcd_puts(tmp); } } LED=~LED; ... Proses lain ... }

•Digunakan >=3 agar kemungkinan data yang diterima “Rx\r”•Bisa tetap menggunakan >0