2014版的自带函数名称换了。由defaultStream换成getGlobalStream。亲测好用。
你打开eemd函数,对一下部分,进行如下修改,即可。
function savedState = set_seed(seedNo)
defaultStream = RandStreamgetGlobalStream; %¥¥¥¥¥原程序是,RandStreamdefaultStream。新版matlab中没有这个函数了,换成了getGlobalStream。因此,我也给换成了getGlobalStream¥¥¥¥¥¥%%%%%
savedState = defaultStreamState; % 自
rand('seed',seedNo); % 己
randn('seed',seedNo); % 注
% 释
end % 处
% 已经保存运行了
function return_seed(savedState)
RandStreamgetGlobalStreamState = savedState; %¥¥¥¥¥原程序是,RandStreamdefaultStream。新版matlab中没有这个函数了,换成了getGlobalStream。因此,我也给换成了getGlobalStream¥¥¥¥¥¥5%%%%%
end
这段代码的大概意思:
clear all;clear;clc;clf; %清理变量,清屏,关闭图形窗口
load data %装载数据文件
for i=1:21; %for循环,从1到21
b=eemd(e(:,i),04,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图形的标题
号的方法,从根本上有
别于传统的信号时频分析方法,并在实际应用中取得了很好的效果。
EMD分解算法通过层层筛选,得到信号不同时间特征尺度的IMF分量。EMD
分解的主要目的是为了将信号进行平稳化处理,对IMF分量进行Hilbert变换,进
一步得到IMF分量对应的瞬时频率成分,这样得到的瞬时频率有了合理的物理意
义。通过Hilbert得到的的Hilbert/Huang频谱图是时间和频率的二变量函数,从中
可以得到任意时刻的频率信息,包括频率的大小和幅度以及出现的对应时刻,能
够详细的刻画非平稳非线性信号的时频特性。
这个分解是基于希尔伯特-黄变换和希尔伯特变换而来,通过黄变换滤除信号里局域的直流成分,短时内是纯交流成分。而之所以不直接使用希尔伯特变换后利用复信号的d(phi)/dt=w (phi是角度)的方式来求信号的瞬时频率,是因为信号可能存在非频率波动的成分,也就是说可能信号的波动是因幅值引起,这样求得的频率可能是负值,而希尔伯特变换的信号频率不存在负的,所以才需要以上的黄变换这个分解imf的过程。但这个分解精度纯粹因信号本身而异,存在一定的风险。不过据我认为,信号在离散的情况下,黄变换并不是必须的,只需要在希尔伯特变换之前加一些简单处理即可,这种方式得到的瞬时频率与用了imf后得到的再matlab下得到的图像基本一样。楼主可自己编写程序,这个程序包不是必须
首先要定义函数,然后用函数名调用。这个说起来有点复杂,建议你百度matlab函数的使用或者看书上的函数定义,你就会明白的。
网页链接 网页链接这两个经验挺好的
以上就是关于RandStream getDefaultStream没有了 有大牛遇到过这个问题么全部的内容,包括:RandStream getDefaultStream没有了 有大牛遇到过这个问题么、关于EEMD方法降噪,运用到了matlab软件,帮忙翻译一下、有没有人做过对气象数据的EMD或者HHT变换分析,数据经过EMD分解后,怎么求周期啊有程序的话最好。谢谢啦等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)