11 views (last 30 days)

Show older comments

Mathieu NOE
on 20 May 2021

HELLO

see demo below - second section implement a overlap method

all the best

clc

clearvars

% dummy data

data = rand(320,3); % data must be column oriented (number of rows = number of samples)

buffer = 25; % nb of samples for averaging

%% zero overlap averaging (unweighted)

[m,n] = size(data);

for ci=1:fix(m/buffer)

start_index = 1+(ci-1)*buffer;

stop_index = min(start_index+ buffer-1,m);

time_index(ci) = round((start_index+stop_index)/2); % time index expressed as sample unit (dt = 1 in this simulation)

avg_data(ci,:) =mean(data(start_index:stop_index,:)); %

end

figure(1),

plot(time_index,avg_data,'+-');

% return

%% averaging with overlap

clearvars

% dummy data

data = rand(320,3);

buffer = 25; % nb of samples in one buffer (buffer size)

overlap = 10; % overlap expressed in samples

%%%% main loop %%%%

[m,n] = size(data);

shift = buffer-overlap; % nb of samples between 2 contiguous buffers

for ci=1:fix((m-buffer)/shift +1)

start_index = 1+(ci-1)*shift;

stop_index = min(start_index+ buffer-1,m);

time_index(ci) = round((start_index+stop_index)/2); % time index expressed as sample unit (dt = 1 in this simulation)

avg_data(ci,:) = mean(data(start_index:stop_index,:)); %

end

figure(2),

plot(time_index,avg_data,'+-');

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!