怎样将频率转化成真实的频率。
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 的帖子
还有希望给予解答,为什么我的右边纵轴出现了负值。 希望高手给予解答。 用的是归一化频率楼主用0.01*fs =100Hz0.05*fs=50回复 板凳 xiangyu537 的帖子
谢谢 解答,我想问能能把 纵坐标轴直接转化成可以看出100hz 和50hz。(就是图像显示的纵坐标直接是100hz和50hz)。2为什什么我右边的是负值,能转化为正值吗? 那是因为取了-20lg 所以会出现幅值回复 5楼 xiangyu537 的帖子
277299838 这个是我的回复 地板 jiangxiaolong 的帖子
time:set(gca,'xtick',,'Xticklabel',)frequency:set(gca,'ytick',,'yticklabel',)
右边纵轴出现负值是因为默认蓝色的时候能量最小。如果想改一下话,可以用这个语句
colorbar('yticklabel',{})
这时候的一个问题是:我这里从0到20的标注是在先colorbar后知道了默认的值以后手动改的,如果能编程序直接
在colorbar后就出现从0到20就比较好了。也希望高手能指点?
回复 7楼 yanzhang_1 的帖子
1.时间轴的是在哪里改啊?是在函数上改吗?还是在编程时改,我不知道要怎么做.能解说的详细点吗?2.你说的colorbar的问题我想是不是在函数里面改,DISP_HHS函数可以改成0到20,具体的是在73和76行 im后面数值都改改成0到20,就可以了。 disp_hhs(im);将这个函数的输入需要改一下,默认为的采样频率为1,如果想改成真实频率,则需要你输入你的采样频率,disp_hhs(E,[],fs); fs代表你的采样频率! 在disp-hhs函数里改一下fs
页:
[1]