关于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图形的标题

function[mseq]=m_sequence(fbconnection)%%函数声明,函数名字m_sequence,函数输入变量fbconnection,函数输出mseq

n=length(fbconnection)%%得到fbconnection的长度

N=2^n-1%%得到循环次数

register=[zeros(1,n-1) 1]%%建立大小为1*n的矩阵,前n-1个元素都为0,第n个元素为1

mseq(1)=register(n)%%让输出的第一个元素为1

for i=2:N%%i从2开始循环,一直去到N

newregister(1)=mod(sum(fbconnection.*register),2)%%让fbconnection和register中对应元素相乘,并求和,然后除以2得余数赋给newregister的第一个元素

for j=2:n

newregister(j)=register(j-1)%%把register的前n-1个元素赋给newregister的第2-n个元素,也就是全0

end

register=newregister%%把newregister的值赋给register

mseq(i)=register(n)%%把register的第n个元素的值赋给mseq的第i个元素

end

m函数文件

function dy=eq3(t,y)

dy=zeros(2,1)%dy定义为两行一列的矩阵,即列向量

dy(1)=20*(10+20*cos(t)-y(1))/sqrt((10+20*cos(t)-y(1))^2+(20+15*sin(t)-y(2))^2) %两个微分方程的右边的表达式

dy(2)=20*(20+15*sin(t)-y(2))/sqrt((10+20*cos(t)-y(1))^2+(20+15*sin(t)-y(2))^2)

m脚本文件

t0=0tf=60 %t0是时间的起点,tf是时间的终点

[t,y]=ode45('eq3',[t0 tf],[0 0]) %这里一般给定三个东西,第一个是方程的m文件名,中间那个是时间的起始点和终点,最后那个是初值

T=0:0.1:2*pi

X=10+20*cos(T)

Y=20+15*sin(T)

plot(X,Y,'-') %应当是一个椭圆

hold on

plot(y(:,1),y(:,2),'*') %相图


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存