matlab盒子分形维数_分形维数--matlab
一維曲線分形維數的
matlab
程序
function?D=FractalDim(y,cellmax)
%
求輸入一維信號的計盒分形維數
%y
是一維信號
%cellmax:
方格子的最大邊長
,
可以取
2
的偶數次冪次
(1,2,4,8...),
取大于數據長度的偶數
%D
是
y
的計盒維數(一般情況下
D>=1
)
,D=lim(log(N(e))/log(k/e)),
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_ord,y_shift,xx_ord);
%
按比例縮放
y
,使最大值為
2^^c
ys_max=max(y_interp);
factory=cellmax/ys_max;
yy=abs(y_interp*factory);
t=log2(cellmax)+1;%
疊代次數
for?e=1:t
Ne=0;%
累積覆蓋信號的格子的總數
cellsize=2^(e-1);%
每次的格子大小
NumSeg(e)=cellmax/cellsize;%
橫軸劃分成的段數
for?j=1:NumSeg(e)?%
由橫軸第一個段起通過計算縱軸跨越的格子數累積
N(e)
begin=cellsize*(j-1)+1;%
每一段的起始
tail=cellsize*j+1;
seg=[begin:tail];%
段坐標
yy_max=max(yy(seg));
yy_min=min(yy(seg));
up=ceil(yy_max/cellsize);
down=floor(yy_min/cellsize);
Ns=up-down;%
本段曲線占有的格子數
Ne=Ne+Ns;%
累加每一段覆蓋曲線的格子數
總結
以上是生活随笔為你收集整理的matlab盒子分形维数_分形维数--matlab的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: “寄声谢飞鹄”下一句是什么
- 下一篇: matlab4.0,matlab 4.0