请教HHT工具箱中toimage函数中关于频率的问题
在toimage函数中function = toimage(A,f,varargin)
DEFSPL = 400;
...
if isvector(A)%判断A是否为行向量或者列向量
A = A(:)';%按列转换成一行
f = f(:)';
end
...
f = min(f,0.5);
f = max(f,0);%保证瞬时频率在0~0.5,是否是由于在hilbert变换中没有采样间隔这个概念,按照采样点数直接变换的,所以频率在0~0.5?
indf = round(2*f*(sply-1)+1);%下标必须为整数
indt = repmat(round(linspace(1,length(t),splx)),size(A,1),1);%下标必须为整数,且与indf对应行数为imf个数,列数为点数
im = accumarray(,A(:),);
indt = indt(1,:);
tt = t(indt);
ff = (0:sply-1)*0.5/sply+1/(4*sply);%真实的各点对应的中心频率为什么是这样一个表达式?
烦请了解的给予指教,谢谢! 顶一个,希望高人解释
回复 沙发 sockhui 的帖子
我也站一个位。。。:lol :handshake 我认识你。 我最近也一直在学习toimage这个函数通过hhspectrum()函数获得时间间隔,幅值,然后通过toimage将其频率计算出来。
为什么要限制DEFSPL = 400;这个是什么意思呢? 我也遇到了与楼上相同的问题,并且当我的参数取=toimage(A,f,tt,length(tt))时会出错,说我的程序超出内存。如果取默认值DEFSPL = 400时,程序运行正常,我想问一下,这样取值对原始数据的分析有影响吗?
请高手帮忙了! DEFSPL = 400是频率分辨率,如果分辨率设置过大而采样点数又很多的话,可能会造成matlab内存不足,因为函数中有个变量im是个 时间分辨率x频率分辨率 的二维矩阵 如果去默认值DEFSPL = 400,对最终出来的结果的正确与否有影响吗?我觉得没有,但不敢确定,讨论一下。 对不起,是取DEFSPL = 400 正确性肯定没有影响,只是分辨率高低的问题 谢谢你的指点! 回复 wdecai 的帖子
楼主能不能给我发个HHT变换工具箱啊,急用啊,谢谢:15211074650@163.com{:{01}:}
新手,受益了,3Q. 没人研究这个了? wdecai 发表于 2010-3-5 15:42 static/image/common/back.gif
在toimage函数中
function= toimage(A,f,varargin)
DEFSPL = 400;
瞬时频率0~0.5即将频率归一化!除以采样频率得到的。 楼主能不能给我发一份HHT工具箱啊,我是新手,谢谢啊。
taosky01@msn.com
页:
[1]
2