Asked by Gova ReDDy
on 26 Dec 2013

Hello, I used a moving average filter of 30 order as shown below for the attached signal and the output of the moving average filter starts from the some other value instead of starting from the original input value when it comes for filtering the new set of values there is new set input values as shown in the image with the green portion

P=load('Noise_Pulse_signal.mat'); a2=P.a1; x1=a2(1:500,:);

for i=1:500:length(a2)-1500 x1=a2(i:i+499,:); movingAverage = conv2(x1,ones(30,1)/30, 'same'); Mov_avrg(i:i+499,:)=movingAverage; input(i:i+499,:)=x1;

end; plot(input);hold on;plot(Mov_avrg,'-r'); hleg1 = legend('input','MovAvrg');

Can someone explain the reason for this.

Answer by Image Analyst
on 26 Dec 2013

The 'same' option assumes that the signal is zero outside of the signal. So the part of the window that spills outside the signal is zero, which is less than your signal. So **it makes absolute prefect sense** that the first 15 and last 15 elements of your moving average signal will be lower than the input signal.

Gova ReDDy
on 26 Dec 2013

Image Analyst
on 26 Dec 2013

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi test

Learn moreOpportunities for recent engineering grads.

Apply Today
## 0 Comments