Created
April 15, 2017 10:24
-
-
Save ninedraft/10d96101c2025597f0fa6d3abd7e5e2e to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
% SN - массив сигнала | |
% window - размер окна сглаживания | |
window = 5; | |
if(mod(window,2)==0) | |
window=window+1; | |
end | |
%размах окна влево и вправо от текущей позиции | |
hw=(window-1)/2; | |
n=length(SN); | |
result=zeros(n,1); | |
result(1)=SN(1); | |
for i=2:n | |
init_sum = 0; | |
if(i<=hw) %если индекс меньше половины окна, мы находимся в начале массива, | |
%нужно брать окно меньшего размера | |
k1=1; %в качестве начала окна берем первый элемент | |
k2=2*i-1; %конец окна | |
z=k2; %текущий размер окна | |
elseif (i+hw>n) %если индекс+половина окна больше n - мы приближаемся к концу массива и размер окна | |
%также нужно уменьшать | |
k1=i-n+i; %начало окна | |
k2=n; %конец окна - последний элемент массива | |
z=k2-k1; %размер окна | |
else %если первые два условия не выполняются, мы в середине массива | |
k1=i-hw; | |
k2=i+hw; | |
z=window; | |
end | |
for j=k1:k2 %организуем цикл от начала до конца окна | |
init_sum=init_sum+SN(j); %складываем все элементы | |
end | |
result(i)=init_sum/(z); %и делим на текущий размер окна | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment