%% Matlab Script
len = size(orig,1);
lead = size(orig,2);
value1 = int32(zeros(1,lead));
value2 = int32(zeros(1,lead));
value3 = int32(zeros(1,lead));
value4 = int32(zeros(1,lead));
value5 = int32(zeros(1,lead));
value6 = int32(zeros(1,lead));
average = int32(zeros(1,lead));
temp = int32(zeros(len,lead));
data = int32(zeros(lead,2));
filt = int32(orig);
for j = 1:2:len
for i = 1:lead
data(i,1) = int32(orig(j,i));
data(i,2) = int32(orig(j+1,i));
end
for i = 1:lead
temp(j,i) = Median([value1(i) value2(i) data(i,1) data(i,2)]);
temp2 = max([value3(i) value4(i) data(i,1) data(i,2)]) - min([value3(i) value4(i) data(i,1) data(i,2)]);
if abs(data(i,1) - value1(i)) <= 2 ...
&& abs(data(i,1) - data(i,2)) <= 2 ...
&& abs(data(i,2) - value1(i)) <= 2 ...
&& abs(data(1,2) - value2(i)) <= 2 ...
&& abs(value1(i) - value2(i)) <= 2 ...
&& abs(value2(i) - data(i,1)) <= 2
if abs(average(i) - temp(j,i)) <= 1 && temp(j,i) < 0 && temp(j,i) >= -5 && abs(temp2) < 2
data(i,1) = int32(value2(i));
data(i,2) = int32(data(i,1));
end
end
value1(i) = int32(value2(i));
value2(i) = int32(data(i,1));
value3(i) = value5(i);
value4(i) = value6(i);
value5(i) = int32(data(i,1));
value6(i) = int32(data(i,2));
average(i) = temp(j,i);
temp(j+1,i) = temp(j,i);
end
for i = 1:lead
filt(i,1) = int32(data(i,1));
filt(i,2) = int32(data(i,2));
end
end
%% Matlab Script
function y = Median(x)
temp = int32(x(1));
temp2 = int32(x(1));
sum = int32(0);
for i=1:4
if temp < x(i)
temp = int32(x(i));
end
if temp2 >x(i)
temp2 = int32(x(i));
end
sum = sum + int32(x(i));
end
sum = sum - (temp + temp2);
y = bitsra(sum,1);
end
%%