声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 4412|回复: 4

[小波] MATLAB中小波分析尺度/频率转换的基本思想

[复制链接]
发表于 2009-5-27 15:08 | 显示全部楼层 |阅读模式

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

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

x

不知道有人发过没,发一下个人的理解吧



MATLAB中计算小波分析尺度所对应的频率,采用的计算方法为:
A way to do it is to compute the center frequency, Fc, of the wavelet and to use the following relationship.
Fa=Fc/(a*Delta) =Fs*Fc/a

where
  • a is a scale.
  • Delta is the sampling period= 1/Fs
  • Fc is the center frequency of a wavelet in Hz.
  • Fa is the pseudo-frequency corresponding to the scale a, in Hz.
采用的计算函数为F = scal2frq(A,'wname',DELTA)
其内部调用了如下计算函数F = centfrq(wname)./(a.*delta);



其中centfrq为小波的中心频率计算函数,中心频率的含义可由其MATLAB代码实现分析出来:
MATLAB中,用小波母函数的DFT中,幅度(模)最大点所对应的频率,作为对小波函数中心频率的估计(The frequency maximizing the FFT of the wavelet modulus is Fc),并用于尺度/频率的转换。
这是一种“近似”方法,这也是为什么MATLAB把计算出的频率称为pseudo-frequencies

switch wtype


case 1 , [nul,psi,xval] = wavefun(wname,iter);


case 2 , [nul,psi,nul,nul,xval] = wavefun(wname,iter);


case 3 , [nul,psi,xval] = wavefun(wname,iter);


case 4 , [psi,xval] = wavefun(wname,iter);


case 5 , [psi,xval] = wavefun(wname,iter);

end



T = max(xval)-min(xval);
% T is the size of the domain of psi.

n = length(psi);

psi = psi-mean(psi);
% psi is numerically centered.

psiFT = fft(psi);
% computation of the modulus

sp = (abs(psiFT));
% of the FT.





% Compute arg max of the modulus of the FT (center frequency).

[vmax,indmax] = max(sp);

if indmax > n/2

indmax = n-indmax+2;
% indmax is always >= 2.

end







per = T/(indmax-1);

% period corresponding to the maximum.

freq = 1/per;

% associated frequency.


计算各种小波函数的“波形”,给出“采样”的横纵坐标(当然了,计算机只能处理有限的离散点),分别为xvalpsi
采样点数为2^iter个,iter默认取8,即默认采256

























计算时域支撑宽度,即横坐标宽度

小波函数的采样点数


函数值去“直流”




小波函数做离散傅里叶变换


计算变换后有限复序列各元素的模


计算模最大的点对应的下标

考虑到实信号FFT结果是双边谱,必须考虑下标在负频率部分的情形,此时减去indmax才是对应的正频率。这是计算机计算精度有限造成的,理论上实小波函数的FFT应该是严格对称的。所以模最大点在正负频率各一个;但计算机实现必然只有一个,可能在正也可能在负。这里也可以看出MATLAB的算法是十分可靠细致的,考虑到了方方面面。





用模最大点对应的“频率”作为信号频率;注意该函数里的freq还是归一化的频率。

这也是为什么在scalfrq中要除以一个采样间隔。



[ 本帖最后由 Robotech 于 2009-5-27 15:26 编辑 ]
回复
分享到:

使用道具 举报

发表于 2009-5-27 16:10 | 显示全部楼层

回复 楼主 Robotech 的帖子

感觉对理解很有用!
问一下,比如对图像信号来说,逐个像素的取值处理,那么采样频率是不是就是1?即fs=1?
因为看到文献中大都是fa=fc/a,想知道这样理解的对不对?
发表于 2009-9-14 12:08 | 显示全部楼层

回复 楼主 Robotech 的帖子

楼主,问一下,如果求得了尺度频率,有什么用?对于确定一段信号的频率有什么帮助?急!!!谢谢!
信号在附件中

11-3.txt

25.16 KB, 下载次数: 16

 楼主| 发表于 2009-9-18 13:55 | 显示全部楼层
本帖最后由 VibInfo 于 2016-10-13 15:28 编辑
原帖由 cuixuepeng 于 2009-9-14 12:08 发表
楼主,问一下,如果求得了尺度频率,有什么用?对于确定一段信号的频率有什么帮助?急!!!谢谢!
信号在附件中

  尺度——>频率后,时间-尺度图,可以转换为时间-频率图,更容易与物理意义对应

其他原文和MATLAB帮助已经很明白了
发表于 2011-4-14 14:43 | 显示全部楼层
回复 4 # Robotech 的帖子

请教一下,时间和尺度是什么关系呢?怎么确定的啊?
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-12-26 08:46 , Processed in 0.076923 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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