jiangxiaolong 发表于 2010-5-24 15:30

怎样将频率转化成真实的频率。

N=1000;
n=1:N;
fs=1000;
t=n/fs;
fx=10;
fy=50;
x=cos(2*pi*fx*t);
y=10*cos(2*pi*fy*t);
z=x+y;
data=z;
imf=emd(data);emd_visu(data,1:length(data),imf,1);
=hhspectrum(imf);
=toimage(A,f);
im=flipud(im);
disp_hhs(im);
colorbar;
这是我的一个程序。但是得到的figure4图的纵坐标不是对应于10或者50。请给我大侠给小弟提点一二,让我知道怎么把纵轴转换成真正的频率轴。谢谢了。

jiangxiaolong 发表于 2010-5-24 18:22

回复 楼主 jiangxiaolong 的帖子

还有希望给予解答,为什么我的右边纵轴出现了负值。 希望高手给予解答。

xiangyu537 发表于 2010-5-24 19:26

用的是归一化频率楼主用0.01*fs =100Hz0.05*fs=50

jiangxiaolong 发表于 2010-5-24 19:50

回复 板凳 xiangyu537 的帖子

谢谢 解答,我想问能能把 纵坐标轴直接转化成可以看出100hz 和50hz。(就是图像显示的纵坐标直接是100hz和50hz)。2为什什么我右边的是负值,能转化为正值吗?

xiangyu537 发表于 2010-5-24 20:15

那是因为取了-20lg   所以会出现幅值

jiangxiaolong 发表于 2010-5-24 21:48

回复 5楼 xiangyu537 的帖子

277299838 这个是我的

yanzhang_1 发表于 2010-5-26 16:27

回复 地板 jiangxiaolong 的帖子

time:set(gca,'xtick',,'Xticklabel',)
frequency:set(gca,'ytick',,'yticklabel',)
右边纵轴出现负值是因为默认蓝色的时候能量最小。如果想改一下话,可以用这个语句
colorbar('yticklabel',{})
这时候的一个问题是:我这里从0到20的标注是在先colorbar后知道了默认的值以后手动改的,如果能编程序直接
在colorbar后就出现从0到20就比较好了。也希望高手能指点?

jiangxiaolong 发表于 2010-5-27 12:00

回复 7楼 yanzhang_1 的帖子

1.时间轴的是在哪里改啊?是在函数上改吗?还是在编程时改,我不知道要怎么做.能解说的详细点吗?
2.你说的colorbar的问题我想是不是在函数里面改,DISP_HHS函数可以改成0到20,具体的是在73和76行 im后面数值都改改成0到20,就可以了。

fancy78066994 发表于 2010-5-28 09:41

disp_hhs(im);将这个函数的输入需要改一下,默认为的采样频率为1,如果想改成真实频率,则需要你输入你的采样频率,disp_hhs(E,[],fs); fs代表你的采样频率!

marry0539 发表于 2011-4-16 16:43

在disp-hhs函数里改一下fs
页: [1]
查看完整版本: 怎样将频率转化成真实的频率。