• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

matlab计算LZ复杂度

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

我这个计算得14通道,每个通道截取3000个数据得复杂度,最后将计算得出得数据存储到本地txt文档中

function  LZC(data)
% 计算一维信号的复杂度
% data时间序列 
% lzc:信号的复杂度 
data = data(:,1:3000);
for i=1:14
  MeanData = mean(data(i,:)); % 数据二值化处理,基于均值的二值化处理
  b=(data(i,:)> MeanData);
  x(1:length(b))='0';  
  x(b)='1';%二值化后得到01序列字符串。
  c = 1; %模式初始值
  S = x(1);
  Q = [];
  SQ = []; %S Q SQ初始化
  for i=2:length(x)
    Q = strcat(Q,x(i));
    SQ = strcat(S,Q);
    SQv = SQ(1:length(SQ)-1);
     if isempty(findstr(SQv,Q)) %如果Q不是SQv中的子串,说明Q是新出现的模式,执行c 加1操作 
      S = SQ;
      Q = [];
      c = c+1; 
     end
  end
  c=c+1;    %循环得到的c是字符串断点的数目,所以要加1
  b = length(x)/log2(length(x));
  lzc = c/b;
%   fprintf('\n\n序列data的LZ复杂度是\n\n');
%   fprintf('%f', lzc);
  fid=fopen('C:\Users\25626\Desktop\滤波后数据\14\复杂度\5 3.txt','a');
  fprintf(fid,'%f\r\n',lzc);
end
  fclose(fid);
end

  


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap