Anda di halaman 1dari 3

[signal processing]

January 13, 2012

ZERO CROSSING

Zero crossing merupakan titik yang bernilai nol pada sumbu absis (sumbu - x) yang dilalui oleh sebuah fungsi yang menyebabkan tanda dari fungsi (sign of a function) tersebut berubah, misalnya dari negatif ke positif atau sebaliknya. Hal ini sering dijumpai dalam aplikasi pengolahan isyarat. Isyarat-isyarat sederhana seperti sinus dan kosinus memiliki zero crossing. Dalam pengolahan citra, zero crossing dimanfaatkan untuk deteksi tepi atau disebut juga sebagai gradient filter. Tapi dalam artikel ini kita akan membahas secara umum dari zero crossing. Penggunaannya dalam pengolahan citra akan dibahas pada artikel lain. Salah satu kegunaan penting dari zero crossing adalah dalam mendeteksi diskontinuitas nilai intensitas pada citra termal.

Pada artikel ini akan diberikan program dengan menggunakan MATLAB untuk mendeteksi jumlah kejadian zero crossing pada isyarat sinusoid dan isyarat lainnya.

Programnya adalah

clear all;

close all;

clc;

t=0:1/100:5.2*pi;

y=sin(t);

plot(y);

hold on;

%% menggunakan filter FIR s=sign(y); t=filter([1 1],1,s); zc=(find(t==0)) + length(find(y==0)); ZC=length(zc); plot(find(t==0),zeros(1,ZC),'or'); hold off; title('isyarat dan zero crossing'); disp('Amount of Zero Crossing:'); disp(ZC);

Pada program di atas anda bisa melihat adanya masukan isyarat sinus. Maka jumlah zero crossing yang mungkin terjadi adalah 6 buah. Perhatikan gambar berikut ini yang menunjukkan lokasi dari titik-titik tersebut:

[signal processing]

January 13, 2012

[signal processing] January 13, 2012 Perhatikan program di bawah ini: clear all; close all; clc; t=0:1/100:7*pi;

Perhatikan program di bawah ini:

clear all; close all; clc; t=0:1/100:7*pi; y=cos(t); plot(y); hold on; %% program kedua ZC=0; k=0;
clear all;
close all;
clc;
t=0:1/100:7*pi;
y=cos(t);
plot(y);
hold on;
%% program kedua
ZC=0;
k=0;
for i=1:length(y)-1
if ((y(i)>=0 && y(i+1)<0) || (y(i)<=0 && y(i+1)>0))
ZC=ZC+1;
k=k+1;
koo(k)=i;
end
end
%%
%% menampilkan hasil cek
plot(koo,zeros(1,k),'or'); hold off;
title('isyarat dan zero crossing');
disp('Amount of Zero Crossing:');
disp(ZC);
%%

Hasil dari eksekusi program di atas adalah

[signal processing]

January 13, 2012

[signal processing] January 13, 2012 Kedua programnya dapat bekerja dengan baik, tapi program pertama lebih efisien.

Kedua programnya dapat bekerja dengan baik, tapi program pertama lebih efisien. Mungkin perbedaan lama komputasi akan tampak apabila jumlah data semakin banyak. Anda bisa membuktikannya sendiri

@ thanks