关于EEMD方法降噪,运用到了matlab软件,帮忙翻译一下

关于EEMD方法降噪,运用到了matlab软件,帮忙翻译一下,第1张

这段代码的大概意思:

clear allclearclcclf%清理变量,清屏,关闭图形窗口

load data %装载数据文件

for i=1:21 %for循环,从1到21

b=eemd(e(:,i),0.4,100)调用eemd()函数

bb(:,i)=b(:,4)+b(:,5)+b(:,6)+b(:,7)+b(:,8)+b(:,9) %b矩阵相加,即b矩阵的第4列+b矩阵的第5列+b矩阵的第6列+b矩阵的第7列+b矩阵的第8列+b矩阵的第9列的和赋值给bb矩阵的所有行第i列

end

wigb(bb),title('EEMD去噪') %调用wigb()函数,title图形的标题

for i=1:21 %for循环,从1到21

c=emd(e(:,i))%调用emd()函数并赋值给c

c(:,i)=c(2,:)+c(3,:)+c(4,:)+c(5,:)+c(6,:)%c矩阵相加,即c矩阵的第2行+c矩阵的第3行+c矩阵的第4行+c矩阵的第5行+c矩阵的第6行的和赋值给c矩阵的所有行第i列

end

end

figure(2) %建立第二个图形窗口

wigb(c),title('EMD去噪')%调用wigb()函数,title图形的标题

首先要定义函数,然后用函数名调用。这个说起来有点复杂,建议你百度matlab函数的使用或者看书上的函数定义,你就会明白的。

网页链接 网页链接这两个经验挺好的

这个分解是基于希尔伯特-黄变换和希尔伯特变换而来,通过黄变换滤除信号里局域的直流成分,短时内是纯交流成分。而之所以不直接使用希尔伯特变换后利用复信号的d(phi)/dt=w (phi是角度)的方式来求信号的瞬时频率,是因为信号可能存在非频率波动的成分,也就是说可能信号的波动是因幅值引起,这样求得的频率可能是负值,而希尔伯特变换的信号频率不存在负的,所以才需要以上的黄变换这个分解imf的过程。但这个分解精度纯粹因信号本身而异,存在一定的风险。不过据我认为,信号在离散的情况下,黄变换并不是必须的,只需要在希尔伯特变换之前加一些简单处理即可,这种方式得到的瞬时频率与用了imf后得到的再matlab下得到的图像基本一样。楼主可自己编写程序,这个程序包不是必须


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12143906.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存