Dr. GÜRAY SONUGÜR

Dr. Öğr. Üyesi Güray SONUGÜR – Öğrenci Bilgi Paylaşım Platformu

VTIY- Gerçek zamanlı sensör verilerinin ortalama filtreden geçirilmesi

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Bu program dış ortamdan alınan sensör verilerini Ortalama filtreden geçirerek
% verileri düzenlemektedir.
% Tarih : 09.05.2017
% Yer : AKÜ TEKNOLOJİ FAKÜLTESİ
% Yazar : Yrd.Doç.Dr. Güray SONUGÜR
% http://guraysonugur.aku.edu.tr
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

clc;
clear;
close all;
%COM5 de kurulu olan mega2560 arduino sınıfını “a” değişkenine atadık.
a=arduino(‘COM5′,’Mega2560′);
tstart=tic;
oncekiDeger=0;
for i=1:100
anlikDeger=readVoltage(a,’A0’); %A0 potansiyometre A1 ldr sensörü A2 sıcaklık sensörü
voltage(1,i)=(anlikDeger + oncekiDeger)/2; %Potansiyometre verilerinin tutulduğu dizi
voltage(2,i)=toc(tstart);
voltage(3,i)=anlikDeger;
oncekiDeger=anlikDeger;
plot(voltage(2,:),voltage(1,:),’r’, voltage(2,:),voltage(3,:)); % potansiyometre grafiği mavi
legend(‘Ortalama Değer’,’Gerçek Değer’);
xlabel(‘Zaman’);
ylabel(‘Sinyal değerleri’);
drawnow;
end
%%
%alınan sinyalin fourier dönüşümü alınıyor.
% fs’yi açıklayalım. fs bizim frekans aralığımızın en büyük öğesi.
% voltage isimli diziye gerçek zamanlı sensör değeri depoluyoruz. Bu işlemi
% bu örnekte 10.2 sn’de gerçekleştirdik. Bu değeri voltage(2,end) ile
% bulduk Çünkü voltge matrisinizn 2. satırı zamanı gösteriyor. 10.2 sn’de
% 200 örnek almışız (for i=1:200)yani örnekleme periyodumuz 10.2/200= 0.051
% sn. Bu de 1/0.051=19.06 Hz demektir. Bu bizim en büyük frekans
% bileşenimizdir.
fs=1/(voltage(2,end)/length(voltage));
fft0=fft2(voltage);
fft1=abs(fft0);
fv = linspace(0,fs,length(voltage));
figure
plot(fv,fft1(1,:))