matlab求解时域特征参数,matlab 实现数据时域特征提取

matlab 实现数据时域特征提取

2020-07-31 02:15

阅读数 64

%数据时域特征提取 clc; close ; clear all; %数据导入 data=xlsread('E:\排球\原始数据 z方向.xlsx',1)';

%初始参数设置 [m,n]=size(data); D=[]; DA=[]; %求解特征 for i=1:1:m d=data(i,:)

d=d(~isnan(d));%去除NAN值 ave=mean(d);%均值 u=std(d);%标准差 time=length(d);%时间

theta=var(d);%方差 area=sum(abs(d));%面积 maxv=max(d);%最大值 minv=min(d);%最小值

[dd,minp,maxp]=premnmx(d); %求解信息熵 entropy=yyshang(dd,9);%信息熵

D=[D;ave;maxv;minv;u;area;time;theta;entropy]; DA=[DA,D]; D=[]; end DA=DA';

其中yyshang是求解熵的函数,代码如下

function Hx=yyshang(y,duan) %不以原信号为参考的时间域的信号熵 %输入:maxf:原信号的能量谱中能量最大的点

%y:待求信息熵的序列 %duan:待求信息熵的序列要被分块的块数 %Hx:y的信息熵

%duan=10;%将序列按duan数等分,如果duan=10,就将序列分为10等份 x_min=min(y); x_max=max(y);

maxf(1)=abs(x_max-x_min); maxf(2)=x_min; duan_t=1.0/duan;

jiange=maxf(1)*duan_t; % for i=1:10 %

pnum(i)=length(find((y_p>=(i-1)*jiange)&(y_p

pnum(1)=length(find(y

pnum(i)=length(find((y>=maxf(2)+(i-1)*jiange)&(y

pnum(duan)=length(find(y>=maxf(2)+(duan-1)*jiange)); %sum(pnum)

ppnum=pnum/sum(pnum);%每段出现的概率 %sum(ppnum) Hx=0; for i=1:duan if ppnum(i)==0

Hi=0; else Hi=-ppnum(i)*log2(ppnum(i)); end Hx=Hx+Hi; end end

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值