MATLAB|高频信号的小波分析技术要点

1. 问题描述

信号处理技术中,对于非平稳信号(频域特征随着时间变化的信号),简单的傅立叶分析无法展示信号频率特征随着时间的变化。故往往采用小波分析技术。由于超声导波的频散特性,研究中往往采用小波分析,参考文献中的示例如下:

MATLAB|高频信号的小波分析技术要点_第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 读取数据

MATLAB|高频信号的小波分析技术要点_第2张图片

4.2 分析参数设置

分析参数采用对话框输入:

MATLAB|高频信号的小波分析技术要点_第3张图片
  • 500、700为低通滤波器参数,为了滤除高频噪音;
  • 设置色谱图的频率范围[0 600] kHz
    原始的采样频率为62500 kHz,降采样10倍后为62500 kHz,故直接分析后的色谱图范围在[0 6250] kHz,这个范围远大于实际信号的频率500 kHz,故需设置最终显示的频率范围。

4.3 低通滤波与重采样

  • 低通滤波


    MATLAB|高频信号的小波分析技术要点_第4张图片
  • 重采样


    MATLAB|高频信号的小波分析技术要点_第5张图片

4.4 小波分析

MATLAB|高频信号的小波分析技术要点_第6张图片

5. 常见问题

本文的程序下载见:https://git.coding.net/frank0449/matlab.git

MATLAB|高频信号的小波分析技术要点_第7张图片

本文用时 30 m

你可能感兴趣的:(MATLAB|高频信号的小波分析技术要点)