声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2483|回复: 12

[小波] 关于TF时频工具箱gabor变换的疑问

[复制链接]
发表于 2007-11-18 13:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
最近学习了TF时频工具箱知识。并利用gabor小波对一些简单的信号作了分析。有些疑问。
信号为‘
信号f在(0.45,0.55)范围内,f=5*sin100*pi*t.其余时间为0.
raw signal.png
利用TF时频工具箱的tfrgabor进行变换后,小波系数的绝对值时频分布为 tfsgabor transform.png
小波系数实部分布图





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


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

使用道具 举报

发表于 2007-11-18 15:01 | 显示全部楼层
楼主要把你写的程序贴出来,方便别人试运行一下。
 楼主| 发表于 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=[ts:ts:te];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;
[TFR,DGR,GAM]= 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 的帖子

用不同的小波基得到的结果肯定是不一样的的哈。不同的信号要选择合适的小波基。
你的坐标好像也没弄对。
 楼主| 发表于 2007-11-18 20:04 | 显示全部楼层
不同小波的基不一样的确会得到不同的结果。我选的两个小波基的形状比较接近。所以我觉得得到的结果也应该近似。
另外,TF toolbox 工具箱中函数[TFR,DGR,GAM]= tfrgabor(sig,Nc,Q)中TFR与abs(DGR)有何不同?为何两者结果不同。
还想请问”破煌” 我的坐标哪里有问题,请帮我指明。
发表于 2007-11-18 20:19 | 显示全部楼层
TFR为Gabor系数的模的平方,即TFR应与abs(DGR)的平方相等。
你用两种方法画出的分布图的坐标表示不一样
发表于 2007-11-18 20:27 | 显示全部楼层

回复 #5 xinglong-liu 的帖子

你要将尺度转换为频率。很多帖子都讲了的,你自己找下吗。
时间轴就用原信号的。
我没看出两者有很大的区别啊。小波方法得到图的x和Y轴和时频分析方法得到的图是反的。你旋转下就是了。
 楼主| 发表于 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小波画的图不对。
 楼主| 发表于 2007-11-19 11:55 | 显示全部楼层
是吗?我还正纳闷呢?tfrgabor的尺度频率转换问题错在哪儿?morlet画的图的确不对,需要调换一下。
不过,我还是想知道,在TF toolbox 的tfrgabor函数中,b和w0的值是多少?我看了TF toolbox的turtorial,没收获。
发表于 2009-9-11 21:34 | 显示全部楼层

回复 沙发 zhlong 的帖子

你好,我想请教你一下:
[TFR,DGR,GAM]= 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;
[tfr,dgr,gam]=tfrgabor(x,n,32);
%时频表示
figure(2);
plot(abs(tfr));
xlabel('时间t');
ylabel('频率f');

提示错误:
Error in ==> tfrgabor at 10
[tfr,dgr,gam]=tfrgabor(x,n,32);

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

11-4.txt

25.18 KB, 下载次数: 8

发表于 2010-1-10 09:12 | 显示全部楼层

回复 11楼 cuixuepeng 的帖子

[TFR,DGR,GAM]=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);
发表于 2010-12-6 10:04 | 显示全部楼层
好问题  好回复
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-26 01:36 , Processed in 0.062612 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表