Contents
Initialize parameters and generate signals
N = 50;
n = 0:N;
v = zeros(1,N+1);
v(11:21) = ones(1,11);
r = zeros(1,N+1);
loc = 1 + fix(50*rand(1,5));
r(loc) = ones(1,5);
x = v + r;
Moving median
M = 5;
shift = fix(M/2);
y = zeros(1,N+1);
for k=1:N-M+1
y(k+shift) = median(x(k:k+M-1));
end
Graphics
figure('Name',['moving median: M = ',num2str(M)],'NumberTitle','off');
subplot(3,1,1)
stem(n,v,'filled')
axis([0 N -2 2]); ylabel('v[n] \rightarrow'); grid;
subplot(3,1,2)
stem(n,x,'filled')
axis([0 N -2 2]); ylabel('x[n] \rightarrow'); grid;
hold on
plot(n,v,':k')
subplot(3,1,3)
stem(n,y,'filled')
axis([0 N -2 2]); grid
xlabel('n \rightarrow'); ylabel('y[n] \rightarrow');
hold on
plot(n,v,':k')