xinglong-liu 发表于 2007-11-18 13:17

关于TF时频工具箱gabor变换的疑问

最近学习了TF时频工具箱知识。并利用gabor小波对一些简单的信号作了分析。有些疑问。
信号为‘
信号f在(0.45,0.55)范围内,f=5*sin100*pi*t.其余时间为0.

利用TF时频工具箱的tfrgabor进行变换后,小波系数的绝对值时频分布为
小波系数实部分布图






觉得小波系数实部的分布有些奇怪。
于是又MATLAB 的complex morlet 进行了变换。
小波系数的绝对值时频分布为

小波系数实部分布图



为何采用两种不同的小波函数,得到的小波系数的实部分布差别如此大?
我是涉入小波使用的新手,还希望大家给与指点。

zhlong 发表于 2007-11-18 15:01

楼主要把你写的程序贴出来,方便别人试运行一下。

xinglong-liu 发表于 2007-11-18 16:09

麻烦zhong及格位高手帮忙分析一下:
感觉TF toolbox 的结果有些莫名其妙!

clear all
%define raw signal
ts=1e-3;tc=0.45;te=1;
tec=0.55;
SampFreq =1/ts;
t=;NL=length(t);
fx=zeros(NL,1);
Ntc=tc/ts;Nte=te/ts;
w=100;
for i=1:NL
    tt=i*ts;
    if (tt>=tc)&(tt<=tec)
    fx(i)=5*sin(2*pi*w*(tt-0.45));
    end
end
sig=fx';

% complex morlet transform
c = cwt(sig,1:0.1:50,'cmor1-1.5');
mesh(abs(c))
mesh(real(c))
title('Complex morlet1-1.5 transform')

% complex gabor transform from TB toolbox
Nc=500;
Q=50;
Nr=length(sig)*Q/Nc;
= tfrgabor(sig,Nc,Q);
tc=linspace(t(end)/Nc,t(end),Nc);
fr=linspace(SampFreq/Nr,SampFreq/2,round(Nr/2))';
TFR=TFR(1:round(Nr/2),:);
mesh(tc,fr,TFR);
mesh(tc,fr,real(DGR(1:50,:)))
ylabel('Frequency / Hz');
xlabel('Time / sec');

破凰 发表于 2007-11-18 17:33

回复 #3 xinglong-liu 的帖子

用不同的小波基得到的结果肯定是不一样的的哈。不同的信号要选择合适的小波基。
你的坐标好像也没弄对。

xinglong-liu 发表于 2007-11-18 20:04

不同小波的基不一样的确会得到不同的结果。我选的两个小波基的形状比较接近。所以我觉得得到的结果也应该近似。
另外,TF toolbox 工具箱中函数= tfrgabor(sig,Nc,Q)中TFR与abs(DGR)有何不同?为何两者结果不同。
还想请问”破煌” 我的坐标哪里有问题,请帮我指明。

xuyuling 发表于 2007-11-18 20:19

TFR为Gabor系数的模的平方,即TFR应与abs(DGR)的平方相等。
你用两种方法画出的分布图的坐标表示不一样

破凰 发表于 2007-11-18 20:27

回复 #5 xinglong-liu 的帖子

你要将尺度转换为频率。很多帖子都讲了的,你自己找下吗。
时间轴就用原信号的。
我没看出两者有很大的区别啊。小波方法得到图的x和Y轴和时频分析方法得到的图是反的。你旋转下就是了。

xinglong-liu 发表于 2007-11-19 10:49

gabor母小波表达式
psi(t)=sqrt(b)/pi^0.25*exp(-0.5*(b*t)^2+w0*t).
请问在TF toolbox 的tfrgabor函数中,b和w0的值为多少?
实际频率可以根据公式f=w0*fs/(2*pi*a);进行计算。
另外,我在论坛里面找了好久,没有发现关于tfrgabor的尺度转换频率的贴子。
还请”破煌” 帮忙指明。非常感谢!

破凰 发表于 2007-11-19 11:23

回复 #8 xinglong-liu 的帖子

你用tfrgabor画的图是对的哈,我是说你用morlet小波画的图不对。

xinglong-liu 发表于 2007-11-19 11:55

是吗?我还正纳闷呢?tfrgabor的尺度频率转换问题错在哪儿?morlet画的图的确不对,需要调换一下。
不过,我还是想知道,在TF toolbox 的tfrgabor函数中,b和w0的值是多少?我看了TF toolbox的turtorial,没收获。

cuixuepeng 发表于 2009-9-11 21:34

回复 沙发 zhlong 的帖子

你好,我想请教你一下:
= tfrgabor(sig,Nc,Q)
上面这句里面的参数sig,Nc,Qj 是怎么取值的?
下面是我的程序:
x=load('11-4.txt');
figure(1);
fs=100;
n=length(x);
t=0:1/fs:(n-1)/fs;
plot(t,x);
xlabel('time');
ylabel('amplitude');
hold on;
=tfrgabor(x,n,32);
%时频表示
figure(2);
plot(abs(tfr));
xlabel('时间t');
ylabel('频率f');

提示错误:
Error in ==> tfrgabor at 10
=tfrgabor(x,n,32);

我的信号在附件里,谢谢!

我爱计算机 发表于 2010-1-10 09:12

回复 11楼 cuixuepeng 的帖子

=TFRGABOR(SIG,N,Q,H,TRACE)
        SIG : signal to be analyzed (length(SIG)=N1).
        N   : number of Gabor coefficients in time (N1 must be a multiple
              of N)                    (default : divider(N1)).
        Q   : degree of oversampling ; must be a divider of N
                                  (default : Q=divider(N)).
        H   : synthesis window, which was originally chosen as a Gaussian
              window by Gabor. Length(H) should be as closed as possible
              from N, and must be >=N (default : Gauss(N+1)).
              H must be of unit energy, and CENTERED.
        TRACE : if nonzero, the progression of the algorithm is shown
                                         (default : 0).
Example :
sig=fmlin(128);
tfrgabor(sig,64,32);

ahousta 发表于 2010-12-6 10:04

好问题好回复
页: [1]
查看完整版本: 关于TF时频工具箱gabor变换的疑问