-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathReadAndProcessYEIData.asv
28 lines (26 loc) · 1.09 KB
/
ReadAndProcessYEIData.asv
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
clear; clc; close all;
%% Define Constants
ResampleRate = 500; % Hz
DownsampleFactor = 2;
NumberOfPointsInMovingAverageFilter = 5;
MinFrequency = 0.2;
MaxFrequency = 10;
TimeThreshold = 20; % threshold for transient length in ms
AmplitudeThreshold = 10; % threshold for transient amplitude in deg
OutputFilename = '../../Data/DataStats.csv';
%% Read, Calibrate, and Filter Data
YEIDataInformation;
% returns "data" variable containing data
CalibratedData = ReadAndCalibrateYEIData(data);
DownsampledData = ...
InterpolateAndDownsample(CalibratedData, ResampleRate, DownsampleFactor);
FilteredData = ...
FilterData(DownsampledData, NumberOfPointsInMovingAverageFilter);
FilteredData = CalculatePosition(FilteredData);
FilteredData = CalculateFFT(FilteredData, ResampleRate, DownsampleFactor, ...
MinFrequency, MaxFrequency);
FilteredData = FilterFFTData(FilteredData, NumberOfPointsInMovingAverageFilter);
FilteredData = ...
CalculateAmplitudes(FilteredData, AmplitudeThreshold, TimeThreshold, ...
(ResampleRate / DownsampleFactor) );
WriteDataStatsToFile(FilteredData, OutputFilename);