puppuppy 发表于 2012-8-1 19:28

请帮忙看一个wavelab工具箱awt函数的问题,谢谢!

我目前正在研究如何用小波得到非平稳信号的瞬时频率。我大致读了“Wavelet Tour of signal processing”这本书的4.3和4.4节。为了测试解析小波,我做了一个简单的例子。我用了WAVELAB工具箱提供的AWT函数。然而,测试结果和预期相距甚远。下面是我的matlab代码:

////////////////////////////MATLAB PROGRAM/////////////////////////////////////////////////////////
t=1/800:1/800:1;
s=sin(2*pi*50*t)+sin(2*pi*100*t);%the signal has a duration of 1 sec, with 800 sample rate, and with two frequency elements, 50 and 100%
awt = AWT(s);   %analytic wavelet transform with default voice number of 12%
%set and figure out the scalogram of signal s%
delta = 1/15;
unit = (1-3*delta)/3;
h3 = ;
h2 = ;
h1 = ;
h0 = ;
sz   = size(awt);
logawt = awt';
linawt = log2linChap4(flipud(logawt),12);
figure(1);clf
set(gcf, 'NumberTitle','off', 'Name','Window 1')
axes('position',h3);
ImageAWTnew(linawt','Overall','gray','lin');
//////////////////////////////////////////////////////////////////////////////////////////////////////////////

以上的代码是我参照WAVELAB提供的“Wavelet Tour of signal processing”这本书的参考代码写的,这个参考代码就是图4.16的matlab仿真,参考代码叫做wt04fig16.m可以在wavelab850\\Books\WaveTour\WTCh04 目录中找到。 下面贴出结果:

从图中可以看出,小波系数的大部分能量集中在80hz和160hz左右,而不是预想的50hz和100hz。请问谁能告诉我这个代码有什么问题吗?还是AWT这个函数有问题呢?
谢谢大家!

puppuppy 发表于 2012-8-1 22:21

up ~ up~ up~
页: [1]
查看完整版本: 请帮忙看一个wavelab工具箱awt函数的问题,谢谢!