% inputs : - im : image matrix (e.g., output of \% - t (optional) : time instants (e.g., output of \ % - inf (optional) : -dynamic range in dB (wrt max) % default : inf = -20 %
% utilisation : disp_hhs(im) ; disp_hhs(im,t) ; disp_hhs(im,inf) % disp_hhs(im,t,inf) figure
colormap(bone)
colormap(1-colormap); if nargin==1 inf=-20;
t = 1:size(im,2); end
if nargin == 2 if length(t) == 1 inf = t;
t = 1:size(im,2); else inf = -20; end end if inf>= 0
error('infdoitetre< 0') end
M=max(max(im));
im = log10(im/M+1e-300); inf=inf/10;
imagesc(t,fliplr((1:size(im,1))/(2*size(im,1))),im,[inf,0]); set(gca,'YDir','normal') xlabel(['time'])
ylabel(['normalized frequency']) title('Hilbert-Huang spectrum') function [f,z]=fftfenxi(t,y)
L=length(t);N=2^nextpow2(L);
?t默认计算的信号是从0开始的 t=linspace(t(1),t(L),N);deta=t(2)-t(1); m=0:N-1;
f=1./(N*deta)*m;
%下面计算的Y就是x(t)的傅里叶变换数值
%Y=exp(i*4*pi*f).*fft(y)%将计算出来的频谱乘以exp(i*4*pi*f)得到频移后[-2,2]之间的频谱值 Y=fft(y);
z=sqrt(Y.*conj(Y)); 复制代码
4.总结。
(1)边际谱与傅里叶谱的比较: 意义不同:边际谱从统计意义上表征了整组数据每个频率点的累积幅值分布,而傅里叶频谱的某一点频率上的幅值表示在整个信号里有一个含有此频率的三角函数组分。
作用不同:边际谱可以处理非平稳信号,如果信号中存在某一频率的能量出现,就表示一定有该频率的振动波出现,也就是说,边际谱能比较准确地反映信号的实际频率成分。而傅里叶变换只能处理平稳信号。
(2) HHT与Hilbert变换的比较:
Hilbert变换只是单纯地求信号的瞬时振幅,频率和相位,有可能出现没有意义的负频率;HHT变换先将信号进行EMD分解,得到的是各个不同尺度的分量,对每一个分量进行Hilbert变换后得到的是有实际意义的瞬时频率。
PS:运行上面的程序需要装时频工具箱,我仅将用到的emd分解的程序贴到下面。
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库用希尔伯特黄变换(HHT)求时频谱和边际谱(2)在线全文阅读。
相关推荐: