1. 问题描述
信号处理技术中,对于非平稳信号(频域特征随着时间变化的信号),简单的傅立叶分析无法展示信号频率特征随着时间的变化。故往往采用小波分析技术。由于超声导波的频散特性,研究中往往采用小波分析,参考文献中的示例如下:
本文预期实现文献中的小波分析技术。
2. 技术背景
MATLAB小波分析函数。
3. 解决方案
已知:
-
fs
,信号的采样频率 Hz -
s
,信号时程序列
wavename = ‘Morl’; % 小波类型设置
totalscal = 2048; % 尺度序列的长度
wcf = centfrq(wavename); % 小波的中心频率
cparam = 2*wcf*totalscal; % 为得到合适的尺度所求出的参数
a = totalscal:-1:0.2;
scal = cparam./a; % 得到各个尺度,以使转换得到频率序列为等差序列
coefs=cwt(s,scal,wavename); % 得到小波系数
f=scal2frq(scal,wavename,1/fs); % 将尺度转换为频率
imagesc(t2*1e6,f/100,abs(coefs)); % 绘制色谱图
3.1 分辨率控制
连续小波变换的基本函数为cwt
,变换得到小波系数。我们预期的图像纵坐标为频率,故需要scal2frq
函数将小波系数转换为频率数值。以上代码设置的参数很多,其中totalscal
控制频域的分辨率,在计算量允许的情况下,设置为可能的较大数值为宜。
3.2 图像绘制
时频谱中横轴为时间,纵轴为频率,坐标上每一个点还有一个能量强度的数值,因此实际上是三维的数据,但我们一般采用色谱图绘制,而不是三维图像。
3.3 信号降低采样
高频信号的点数一般很大,如笔者的测试数据,点数达到125000,信号频率范围在100~500 kHz,这样的点数规模,一般的pc机器难以完成运算。这种情况下,可以通过重采样,压缩信号点数,以便小波分析处理,如http://www.jianshu.com/p/921a09c88429。
4. 实施示例
4.1 读取数据
4.2 分析参数设置
分析参数采用对话框输入:
- 500、700为低通滤波器参数,为了滤除高频噪音;
- 设置色谱图的频率范围[0 600] kHz
原始的采样频率为62500 kHz,降采样10倍后为62500 kHz,故直接分析后的色谱图范围在[0 6250] kHz,这个范围远大于实际信号的频率500 kHz,故需设置最终显示的频率范围。
4.3 低通滤波与重采样
-
低通滤波
-
重采样
4.4 小波分析
5. 常见问题
本文的程序下载见:https://git.coding.net/frank0449/matlab.git
本文用时 30 m