信号处理 matlab,matlab分析信号

  信号处理 matlab,matlab分析信号

  1内容简介1998年,黄锷(黄锷:中国台湾省海洋学家)等人提出了经验模态分解法,并介绍了希尔伯特谱的概念和希尔伯特谱分析的方法。美国国家航空航天局(NASA)将这种方法命名为希尔伯特-黄变换,简称HHT。

  HHT由两部分组成。第一部分是经验模态分解,由黄提出。第二部分是希尔伯特谱分析(HSA)。简单来说,HHT处理非平稳信号的基本过程是:首先用EMD方法将给定信号分解成若干个本征模函数(表示为本征模函数或IMF,也叫本征模函数),这些IMF是满足一定条件的分量;然后对每个IMF进行希尔伯特变换,得到对应的希尔伯特谱,即每个IMF在联合时频域表示;最后,将所有IMF的希尔伯特谱求和,即可得到原始信号的希尔伯特谱。

  第二部分代码全部清除;

  全部关闭

  signal=load( signal . txt );

  n=长度(信号);

  fs=1840%采样频率

  WP=[50 150]* 2/fs;%过滤原始信号。

  ws=[30 200]* 2/fs;

  RP=1;

  rs=15

  [num wn]=cheb2ord(wp,ws,rp,RS);

  [b,a]=cheby2(num,rs,wn);

  s=滤波器(b,a,信号);

  s=s ;%将滤波后的信号分配给s

  YSS=S;%滤波后的信号是初始信号。

  ts=(1/fs);%采样时间

  t=0:ts:ts *(N-1);

  %绘图过滤信号

  图(1)

  plot(t,s);

  set(gcf, color ,[1,1,1]);

  网格打开;

  xlabel(时间(毫秒));

  ylabel(振幅(mv));

  标题(时域图);

  图例( 115 khz );

  axis([0,0.5,-inf,INF]);

  %设置程序中需要的标志。

  overf=0;%结束信号分解过程?

  over IMF=0;% IMF的结束符号

  %信号处理部分

  SD=1;%在程序中设置所需的SD和初始值。

  HH=0.01*ones(1,N);%设置程序所需的初始HH值。

  %用于第一次信号筛选过程。

  [H,overf,mline]=dob(S,t,ts);%调用子程序

  p=0;%设置IMF组件数量的初始值

  %主程序

  %第一部分:货币基金组织的信号处理

  条件=1;

  而(overf==0)%如果不满足信号分解结束过程

  [sumnum,zero num]=计算机编号(H);%调用子程序

  SD=computerSD(H,HH);%调用子程序

  if((zero num==sum num)(ABS(zero num-sum num)==1))(mline(1:N)==0)

  over IMF=1;

  条件=11;

  Elseif (0.2=SD) (SD=0.3)%如果H(n)满足IMF条件,则退出筛选过程。

  over IMF=1;

  条件=11;

  其他

  条件=条件1;

  目标

  如果条件=20

  over IMF=0;

  其他

  over IMF=1;

  目标

  %给国际货币基金组织希尔伯特。

  如果分解值满足IMF条件,则IMF==1%以上

  条件=1;%重置条件的值,为下一次过滤做准备。

  p=P1;%累计国际货币基金组织编号

  I(p,)=H;%将筛选出的IMF赋给I,作为第p个分量,I的每一行都有一个IMF。

  SS=YSS;%将滤波后的信号(原始信号)分配给SS

  对于i=1:p%,从原始信号中减去所有选定的IMF分量。

  II=I(i,);

  SS=SS-II;

  目标

  S=SS原始信号减去IMF的%

  %判断余数是否可以作为最后的信号分解分量。

  l=长度(S);

  m=0;%以下是余数的导数序列。

  对于i=1:L-1

  m=m ^ 1;

  q(m)=S(I)-S(I 1);%对余数求导。

  目标

  %检查余数是单调的还是恒定的。

  q 0%的余数是单调递增的

  over=1;

  Elseif q 0%余数是单调递减的。

  over=1;

  Elseif q==0%余数是常数。

  over=1;

  其他

  overf=0;

  [H,overf,mline]=dob(S,t,ts);%不满足分解结束条件,剩余项作为原始信号继续分解。

  目标

  else %如果分解值不满足国际货币基金组织(国际货币基金组织)条件,则将该分解值作为原始信号重复主程序内的步骤

  s=H;% 将本次分解得到的信号作为原始信号

  HH=H;% 将本次分解得到的H赋给HH,用来计算南达科他州

  [H,overf,mline]=dob(S,t,ts);% 调用子程序

  目标

  目标

  % 绘制所有国际货币基金组织(国际货币基金组织)组件图

  如果p==0 %如果信号不包括任何国际货币基金组织(国际货币基金组织)组件

  图(二)

  plot(t,H);

  网格打开;

  xlabel(时间(毫秒));

  伊拉贝尔(“原始信号");

  axis([0,0.5,0,INF]);

  埃尔塞夫(第0页)如果信号包括p个国际货币基金组织(国际货币基金组织)组件

  图(2);

  set(gcf, color ,[1 1 1]);

  对于i=2:p 1

  支线剧情(p 1,1,I-1);

  plot(t,I(i-1,);

  网格打开;

  xlabel(时间(毫秒));

  ylabel( IMF );

  网格打开;

  目标

  xlabel( Time );

  y标签( C );

  支线剧情(p 1,1,p);

  plot(t,S);

  网格打开;

  xlabel(时间(毫秒));

  ylabel(残差);

  axis([0,0.5,0,INF]);

  目标

  % 绘制二维/三维时-频图

  % 组件为p时

  [w,theray,毛吉,w_s,能量]=多希尔伯特(I,ts,t);% 调用子程序w -原始的频率,w - p经过平滑后的频率

  p=长度(毛吉(:1))。%毛吉的行数

  q=长度(毛吉(1,);%毛吉的列数

  % 以下部分是获取幅值的最大值和最小值

  对于i=1:p

  HMax(I)=1毛吉(I,1);

  HMin(I)=1毛吉(I,1);

  对于j=2:q

  如果毛吉(I,j) HMax(i)

  HMax(I)=1毛吉(I,j);

  目标

  如果毛吉(I,j) HMin(i)

  HMin(I)=1毛吉(I,j);

  目标

  目标

  目标

  max=HMax(1);

  min=HMin(1);

  对于i=2:p

  如果HMax(i)=Max

  max=HMax(I);

  目标

  如果HMin(I)=最小值

  min=HMin(I);

  目标

  目标

  % 第i(0 I=p)个组件的最大能量值和它所对应的时间值

  对于i=1:p

  maxpoint(I)=1毛吉(I,1);

  对于j=2:1:q

  如果(毛吉(I,j))最大点(I)

  maxpoint(i)=magy(i,j)^2;

  maxpoint _ t(I)=t(j);

  目标

  目标

  目标

  对于i=1:q

  毛吉_全部(一)=总和(毛吉(:我).^2);

  目标

  最大点数=毛吉_全部(1);

  对于i=2:1:q

  如果(毛吉_所有(一))最大点

  最大点数=毛吉_全部;

  maxpoint _ t=t(I);

  目标

  目标

  于记录成绩与游戏币

  maxpoint_t

  % 绘制二维希尔伯特图

  % 所有组件的希尔伯特图:时间-频率-福至图

  图(3);

  set(gcf, color ,[1 1 1]);

  e1=子情节(1,1,1);% 设置句柄e1

  对于i=p:-1:1

  对于j=1:q-1

  h(i,j)=plot(t(j),w(i,j)/(2 * pi));% 绘制每个点

  网格打开;

  %set(h(i,j), linestyle ,.);

  set(h(i,j), color ,(毛吉(I,j)-Min)/(Max-Min)*[1 1]);% 以黑色为底色,幅值越大越白

  设置(e1,’颜色,[0 0 0]);% 设置底色为黑色

  继续

  目标

  目标

  拖延

  xlabel(时间(毫秒));

  ylabel(振幅);

  标题(希尔波特谱图);

  集合(gca,’彩色,白色);% 去掉坐标轴的背景色

  设置(gcf,’彩色,白色);% 去掉图像的背景色

  轴([0 0.5-0 300]);

  % 所有组件的:时间-能量图(瞬时能量谱)

  图(4)

  plot(t,毛吉_所有,-);

  网格打开;

  set(gcf, color ,[1 1 1]);

  xlabel(时间(毫秒));

  y标签(能量);

  标题(瞬时能量谱);

  axis([0,0.5,0,INF]);

  网格打开;

  % :频率-能量图(希尔伯特谱)

  e _ max=能量(1);%求中心频率及其对应的最大能量

  对于i=2:长度(美国)

  如果能量(一)e_max

  e _ max=能量;

  f _ c=w _ s(I)/(2 * pi);

  目标

  目标

  电子最大值

  f_c

  图(五)

  plot(w_s/(2*pi),能量);

  网格打开;

  坚持住;

  set(gcf, color ,[1 1 1]);

  xlabel(频率(kHz)’);

  y标签(能量);

  标题(希尔伯特能量谱);

  轴([0,230,0,INF]);

  % 绘制三维的希尔伯特图

  图(6);

  set(gcf, color ,[1 1 1]);

  对于i=1:p

  plot3(t(1:N-1),w(i,1:N-1)/(2*pi),毛吉(I,1:N-1).^2,-,color,[1 0 0]*(I/p));

  继续

  3运行结果

  四参考文献[1]王明阳,柳征,周一宇。基于希尔波特-黄变换的冲击无线电信号检测[J]的缩写.信号处理, 2006, 22(4):4.

  博主:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机、雷达通信、无线传感器等领域的Matlab仿真。相关matlab代码问题可以私信交流。有些理论引用自网络文献。如有侵权,联系博主删除。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: