用imagesc函数画图,坐标轴的问题
我借鉴emd_fmsin.m里面的程序,画了个频率为20的余弦信号。用imagesc函数画图,频率并不显示在20处。程序如下:
clc;
close all;
delt=1/100;
t1=;
f=20;
x=cos(2*pi*f*t1);
t=1:120;
% time-frequency distributions
Nf = 128;% # of frequency bins
Nh = 31;% short-time window length
w = tftb_window(Nh,'Kaiser');
= tfrrsp(x',t,Nf,w,1);
figure(1)
imagesc((rs(1:64,:)))
% set(gca,'ytick',,'yticklabel',)
xlabel('time')
ylabel('frequency')
图为
若加上set(gca,'ytick',,'yticklabel',)此句命令,则会显示在频率20处,但是每换一个Nf就要把
)这部分进行重新计算,想请教大家,用imagesc函数画图时,坐标轴显示有什么可遵循的规则没??谢谢!
[ 本帖最后由 beefyy 于 2007-8-2 15:35 编辑 ] 1,没有找到 tftb_window函数,直接用window函数。
2,楼主的错误主要是:在x中设置信号的频率为20,而在作图时直接用rs,这时x轴是对应于坐组中的下标值(从1至64),而不是对应于频率。要计算出频率用到imagesc中,便能对应20了。
程序有:
delt=1/100;
t1=;
f=20;
x=cos(2*pi*f*t1);
t=1:120;
% time-frequency distributions
Nf = 128;% # of frequency bins
Nh = 31;% short-time window length
w = window(Nh,'Kaiser');
= tfrrsp(x',t,Nf,w,1);
df=1/(delt*Nf);
ff=(0:63)*df;
figure(1)
imagesc(t,ff,rs(1:64,:))
% set(gca,'ytick',,'yticklabel',)
xlabel('time')
ylabel('frequency')
axis('xy') 谢谢songzy41!
回复 2楼 的帖子
我也遇到这个问题,太感谢了,嘿嘿 网上高手如云啊 借鉴一下
页:
[1]