移動平均
- 入出力でデータ長が変化しません
- 入出力で平均値が変化しません
- ピーク位置がずれません
- 移動量が奇数の場合のみ
function [ret] = moving_average(data,len) data=data(:);len_d=length(data); tmp=[ones(len-1,1)*data(1);data;ones(len-1,1)*data($)]; h = ones(1,len)/len; ret = convol(h,tmp); side=(length(ret)-length(data))/2; ret = ret(floor(side)+1:$-ceil(side)); endfunction
使用例
getf('moving_average.sci'); a=ones(11,1);a(6)=2; b=moving_average(a,3); //3点移動平均 scf; plot(a); plot(b,'r');