function y = sdf2(x, range, windowsize) % y=sdf2(x, range, windowsize) - running average squared difference function % range and windowsize are in samples % fixed window is at end of input array, moving window slides back N = size(x,2); if (range+windowsize>= N) error('range+windowsize larger than input array'); end; y = zeros(size(x,1) ,range); z = x(:, N-windowsize+1:N); for i = 0:range-1 zz = x(:, N-windowsize+1-i: N-i); zzz = sum( (z' - zz').^2); y(:,i+1) = zzz'; end