资源简介
经常碰到求一维分形维数的大小,分形维数MATLAB程序如上
代码片段和文件信息
%根据计盒维数原理编写了求一维曲线分形维数的matlab程序
function D=FractalDim(ycellmax)
%求输入一维信号的计盒分形维数
%y是一维信号
%cellmax:方格子的最大边长可以取2的偶数次幂次(1248...)取大于数据长度的偶数
%D是y的计盒维数(一般情况下D>=1)D=lim(log(N(e))/log(k/e))
f_v=‘y.txt‘;
y=load(f_v);
cellmax=16384;
if cellmax error(‘cellmax must be larger than input signal!‘)
end
L=length(y);%输入样点的个数
y_min=min(y);
%移位操作,将y_min移到坐标0点
y_shift=y-y_min;
%重采样,使总点数等于cellmax+1
x_ord=[0:L-1]./(L-1);
xx_ord=[0:cellmax]./(cellmax);
y_interp=interp1(x_ordy_shiftxx_ord);
%按比例缩放y,使最大值为2^c
ys_max=max(y_interp);
factory=cellmax/ys_max;
yy=abs(y_interp*factory);
t=log2(cellmax)+1;%叠
评论
共有 条评论