以地震领域为例,时频变换能够刻画地震资料的时频特征,进而辅助地质构造解释。在各种时频分析工具中,连续小波变换CWT是描述地震资料时频特征的常用工具。选择合适的基小波是CWT的关键问题。对于不同类型的信号前人有针对性的设计了许多基小波。Morlet提出了Morlet小波并将其应用于地震信号分析。Morlet小波因其良好的时频特性被广泛应用于地震信号处理、湍流分析和医电信号处理。有学者通过分析地震信号的传播特征发现当基小波与地震子波越接近时,时频分析结果局域化性质越好且抗噪性越强。通过修正地震子波公式,可以构造一种解析小波,即三参数小波TPW。通过调整三个参数,TPW可以匹配待分析地震子波,使用该子波进行的时频变换结果具有较好的时频局部化性质。然而,不同地震资料包含的地震子波不同。因此,利用野外资料估计地震子波是关键。地震子波的估计是一个复杂的非线性问题,传统方法很难解决。机器学习是一种数据驱动的方法,它可以在输入和输出数据之间建立一种复杂的非线性映射关系。
鉴于此,采用基于数据驱动的自适应性小波构造方法,主要内容包括计算数据驱动的小波,计算单级离散小波变换,计算逆单级离散小波变换,由从低通滤波器创建高通滤波器,由高通滤波器创建低通滤波器。两个例子:第一个例子是为Kuramoto-Sivashinsky数据寻找和绘制最优小波及其频谱(Kuramoto-Sivashinsky 方程是一个非线性常微分方程);第二个例子是为高斯白噪声数据寻找最优小波。
% Perform optimization
ZZT = Z*Z.'; % pre-compute this once
x = fminunc(@(x) costfun(x,Z,ZZT,lambda2),[gamma0;theta0],options);
% Extract gamma and theta, construct r and u
if mod(m,4)==0
gamma = x(1:m/4);
theta = x(m/4+1:end);
r = [sqrt(2)*cos(gamma); 1; sqrt(2)*sin(flipud(gamma))];
else
gamma = x(1:(m-2)/4+1);
theta = x((m-2)/4+2:end);
r = [sqrt(2)*cos(gamma); sqrt(2)*sin(flipud(gamma))];
end
uhat(1:m/2+1) = [r(1); r(2:m/2).*exp(1i*theta); r(m/2+1)];
uhat(m/2+2:m) = conj(flipud(uhat(2:m/2)));
完整代码可通过知乎学术咨询获得:
https://www.zhihu.com/consult/people/792359672131756032?isMe=1
u = ifft(uhat);
工学博士,担任《Mechanical System and Signal Processing》《中国电机工程学报》《控制与决策》等期刊审稿专家,擅长领域:现代信号处理,机器学习,深度学习,数字孪生,时间序列分析,设备缺陷检测、设备异常检测、设备智能故障诊断与健康管理PHM等。