green 发表于 2008-4-10 20:37

hht可以对调频信号进行分解吗

请问hht可以对调频信号进行分解吗?我运用HHT程序对x1=sin(2*pi*20*t(1:N/2));x2=sin(2*pi*10*t(N/2+1:end));
x=;该调频信号进行分解,采样频率跟采样点数均去300,其他未作处理。但是提示下面错误信息。
??? Error using ==> mtimes
Inner matrix dimensions must agree.
Error in ==> disp_hhs at 40
imagesc(t,fliplr(fs*(1:size(im,1))/(2*size(im,1))),im,);
Error in ==> UFM at 18
disp_hhs(im);

另外对调幅信号进行处理时,只显示出载波信号的频率,这样的结果是正确的吗

zhangnan3509 发表于 2008-4-10 20:52

hht可以分解调频信号,但是我觉得问题不是emd的事,而是生成的信号。
楼主把你的程序贴出来

green 发表于 2008-4-10 21:17

fs=300;
N=300;
n=0:1:N-1;
t=n/fs;
x1=sin(2*pi*20*t(1:N/2));
x2=sin(2*pi*10*t(N/2+1:end));
x=;
figure
subplot(311);
plot(t(1:N/2),x1);
subplot(312);
plot(t(N/2+1:end),x2);
subplot(313);
plot(t,x)
imf=emd(x);
=hhspectrum(imf);
=toimage(A,f);
disp_hhs(im);
colormap(flipud(gray))

zhangnan3509 发表于 2008-4-10 21:29

??? Output argument "A" (and maybe others) not assigned during call to "D:\Program Files\MATLAB71\work\pack_emd\package_emd\tan\hhspectrum.m (hhspectrum)".

Error in ==> hhspectrum at 20
if nargin < 2

Error in ==> green1 at 16
=hhspectrum(imf);

我运行的抱错结果是这样的,又看了workspace,发现这个信号之分解出一阶IMF,如果这么看,就和没分解一样。我想是不是楼主选的信号非常接近iMF的定义,所以出了这样的问题,如果是这两个调频信号叠加,就不会有运行不出来这种问题了

green 发表于 2008-4-10 22:27

谢谢系主任,我修改了一下参数,反复运行了几次,不知道为什么又可以显示出来了,奇怪的是现在的程序跟贴出来的一模一样,很是诡异亚:lol ,不过还好出来结果了

zhangnan3509 发表于 2008-4-10 22:40

回复 5楼 的帖子

呵呵 你是怎么修改的参数?

green 发表于 2008-4-11 15:38

我之前只是改了下fs跟N的值,就运行出来了,后来我直接把上面的程序重新运行了一下也出来结果了。想当什么都没有处理不知道为什么就出来了。我也很奇怪

t911h 发表于 2015-9-5 17:51

Inner matrix dimensions must agree. 从这句看出你的参数设置的不对,查看一下你的数据,应该是采样频率低了

starryman 发表于 2015-9-6 21:17

请教算法 程序
页: [1]
查看完整版本: hht可以对调频信号进行分解吗