不加参数,直接用pause的话,就是程序暂停,直至用户按任意一个按键.
如果加参数.
比如pause(2.5)就是程序暂停2.5秒.
采用matlab中的延时函数pause:Halt execution temporarily实现代码如下:
1.pause, by itself, causes M-files to stop and wait for you topress any key before continuing.
2.pause(n) pauses execution for n seconds before continuing, wheren can be any nonnegative real number.
3.pause(inf) puts you into an infinite loop. To return to theMATLAB prompt, type Ctrl+C.
4.pause on allows subsequent pause commands to pauseexecution.
5.pause off ensures that any subsequent pause or pause(n) statements do not pause execution.
采用MATLAB中的延时函数pause:Halt execution temporarily实现代码如下:
1.pause, by itself, causes M-files to stop and wait for you topress any key before continuing.
2.pause(n) pauses execution for n seconds before continuing, wheren can be any nonnegative real number.
3.pause(inf) puts you into an infinite loop. To return to theMATLAB prompt, type Ctrl+C.
4.pause on allows subsequent pause commands to pauseexecution.
5.pause off ensures that any subsequent pause or pause(n) statements do not pause execution.
1、最大的问题是循环体里面的 pause(0.1),尤其是里面那一层循环。
2、很多赋值语句后面应该加分号,避免显示。
3、数组预置(对于这段代码而言不是很重要)。
里面那层的pause是在这样的循环结构中:
1
2
3
4
for k=1:10;
i=i+1;
for x=2:z-1;
for y=2:z-1;
粗略估算一下,会执行10*18*18次,每次0.1秒,仅这一句就会耗时324秒。
删除上述pasue之后,在我的电脑上运行大约需要27秒。
标量的信号能量就是信号幅度平方的积分,如果是数字信号,能量就是各点信号幅度值平方后的求和。 也可以在频率域计算,分发同上。幅度平方积分或求和。
我了解到对于HHT变换,主要有两种MATLAB函数代码,第一种是:[imf,residual,info] = emd(q); [hs,f,t,IMFinsf,imfinse] = hht(imf,fs); 第二种是[A,f,t]= hhspectrum(imf) ;[E,t,Cenf]=toimage(A,f)。 对于第一种,imfinse就是每一个IMF函数的瞬时能量,要得到原信号的瞬时能量谱,是否是将每个IMF函数的瞬时能量谱进行叠加? 对于第二种,该怎么求得原信号的瞬时能量谱?我了解到瞬时能量的定义如下:
第一种方法:
N=2048;
%fft默认计算的信号是从0开始的
t=linspace(1,2,N)';deta=t(2)-t(1);fs=1/deta;
x=5*sin(2*pi*10*t)+5*sin(2*pi*35*t);
plot(t,x);
xlabel('Time(s)');
imf = emd(x);
[hs,f,t,imfinsf,imfinse] = hht(imf,fs,'FrequencyResolution',1);
第二种方法:
clear;clc;clf;
N=2048;
%fft默认计算的信号是从0开始的
t=linspace(1,2,N);deta=t(2)-t(1);fs=1/deta;
x=5*sin(2*pi*10*t)+5*sin(2*pi*35*t);
z=x;
c=emd(z);
%计算HHT时频谱和边际谱
[A,fa,tt]=hhspectrum(c);
[E,tt1,cenf]=toimage(A,fa,tt,length(tt));
figure(3)
disp_hhs(E,tt1) %二维图显示HHT时频谱,E是求得的HHT谱
pause
figure(4)
for i=1:size(c,1)
faa=fa(i,:);
[FA,TT1]=meshgrid(faa,tt1);%三维图显示HHT时频图
surf(FA,TT1,E)
title('HHT时频谱三维显示')
hold on
end
hold off
还没有评论,来说两句吧...