function [signal]=ImpulseDenoise(signal,param) len = length(signal); meanSig = mean(signal); strd = std(signal); N = param.samplerange; t = linspace(param.startsec,param.endsec,N); figure subplot(2,1,1) plot(t,signal,'b'); title("Phase Signal") xlabel("time(sec)") for i=2:len-1 b = signal(i)-signal(i-1); f = signal(i)-signal(i+1); mean_ = (signal(i-1)+signal(i+1))/2; if(abs(b)>meanSig+2*strd || abs(f)>4*meanSig+2*strd) signal(i) = mean_/2; end end subplot(2,1,2) plot(t,signal,'r'); title("Impulse deNoised Phase Signal") xlabel("time(sec)") end % % % % function [denoisedSignal]=ImpulseDenoise(noisySignal) % % % % len = length(noisySignal); % % denoisedSignal = noisySignal; % % % % for i=3:len-2 % % % % w = [denoisedSignal(i-2) denoisedSignal(i-1) denoisedSignal(i+1) denoisedSignal(i+2)]; % % r = sort(w); % % % % mean_r = (r(2)+r(3))/2; % % % % if(denoisedSignal(i)<=mean_r) % % % % d1 = r(1)-mean_r; % % d2 = r(2)-mean_r; % % % % else % % % % d1 = mean_r-r(3); % % d2 = mean_r-r(2); % % % % end % % % % % % if (d1 > mean(r) || (d2 > mean(r))) % % % % denoisedSignal(i) = mean_r; % % % % end % % % % % % end % % % % % % % % n = 1:len; % % figure % % subplot(2,1,1) % % plot(n,noisySignal,'b'); % % subplot(2,1,2) % % plot(n,denoisedSignal,'r'); % % % % % % % % % % % % end