变维分形预测matlab,【求助】请大家帮我该该求一维曲线分形维数的matlba程序好吗!!...

icon11.gif 【求助】请大家帮我该该求一维曲线分形维数的matlba程序好吗!!

我的毕业设计是求一维曲线(地震道记录数据)分形维数,我自各写了一个结果啥都算不出来呵呵。。。。我以前从没用过呢。。牛人们帮我改改错吧!!

以下是程序:

%求输入一维信号的计盒分形维数

%y是一维信号,1024个数据

%cellmax=128是每一个工作窗的数据个数

%D是y的计盒维数(一般情况下D>=1),D=lim(log(N(e))/log(k/e)),

cellmax=128;

L=length(y);%输入样点的个数

yyy=abs(y)*10000; %因为原始数据都是小数点后好几位的。。

M=L-cellmax+1; %总工作窗口的个数,每个窗口都计算各自的分形维数,最后将其组成一个数组,我要找的就是分形维数突变的那个点所在的窗口

for m=1:M

tseg=[m:cellmax+m-1];

y_f=yyy(tseg);

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;

seg=[begin:tail];%段坐标

yy_max=max(y_f(seg));

yy_min=min(y_f(seg));

up=ceil(yy_max/cellsize);

down=floor(yy_min/cellsize);

Ns=up-down;% 本段曲线占有的格子数

Ne=Ne+Ns;%累加每一段覆盖曲线的格子数

end

N(e)=Ne;%记录每e下的N(e)

end

P=polyfit(log(NumSeg),log(N),1);%一次曲线拟合返回斜率和截距

D=P(1);

D(m)=D;

end

%结果就是除了开头结尾两个点有数据,其他点都是0。。。。如果想要我的y的数据请留个言我发你邮箱好吗谢谢!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值