📄 计算盒维数的matlab源代码.txt
字号:
%==================================================================
clear all;
%装入原始信号&截取
sig=load(' E:\xxx\xxx\xx.txt');
sig(:,1:2)=[];
s=sig(2500:2800);
% ????è?D?o?è??y
ss=s-min(s);
figure(1);
plot(ss);
grid on;
title('原始信号');
%------------------------------------------------------------------
for m=1:7
k=2^m; %取x轴等分个数
wx(m)=300/k; %盒子边长
N(m)=0;
for i=1:k
ss1=ss(ceil(wx(m)*(i-1)+1):ceil(wx(m)*i)); %用盒子边长截取x轴
ssmax(i)=max(ss1); %求对应截取段y轴的最大值
ssmin(i)=min(ss1); %求对应截取段y轴的最小值
hy(i)=ceil(ssmax(i)); %向上取整
ly(i)=floor(ssmin(i)); %向下取整
n(i)=ceil((hy(i)-ly(i))/wx(m)); %求对应截取段盒子个数
N(m)=N(m)+n(i); %累加盒子个数
end
end
x=log(1./wx);
y=log(N);
figure(2);
plot(x,y,'dr'); %画出各点
hold on;
xx=polyfit(x,y,1); %拟合画出直线
yy=polyval(xx,x);
plot(x,yy);
grid on;
xlabel(' \bf log(1/δ)');ylabel('\bf logN');
legend([' \bf 盒维数D_B=',num2str(xx(1))],2);
%==================================================================
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -