太好了,阿杰 👍
Morlet 小波分析(Morlet Wavelet Analysis)” 是信号处理、地震分析、语音识别、脑电(EEG)分析等常用的时频分析工具。
它结合了 傅里叶变换的频域优势小波变换的时域局部化能力,可以揭示信号在不同时间点上的频率变化。

下面我给你讲一个结构清晰、图像化的 Morlet 小波分析详解👇


🎯 一、背景与动机

传统的 傅里叶变换(Fourier Transform) 有个致命问题:
它只能告诉你“信号里有哪些频率”,但无法告诉你这些频率“在什么时候出现”。

➡️ 时域丢失问题
对于非平稳信号(频率随时间变化),傅里叶变换就不够用了。

Morlet 小波变换(Morlet Wavelet Transform) 就是为了解决这个问题。
它在时域与频域上同时具有局部化特性。


📘 二、Morlet 小波定义

Morlet 小波是由一个复指数函数和一个高斯包络函数相乘得到的。

1️⃣ 连续形式:

[
\psi(t) = \pi^{-\frac{1}{4}} e^{j\omega_0 t} e^{-\frac{t^2}{2}}
]

其中:

  • ( e^{j\omega_0 t} ):复正弦波(控制频率)
  • ( e^{-\frac{t^2}{2}} ):高斯包络(控制时间局部化)
  • ( \omega_0 ):中心角频率,一般取 5~6

➡️ 这使得 Morlet 小波兼具 频率分析能力时间定位能力


🧠 三、核心思想:伸缩与平移

在小波变换中,我们通过平移(时间位置)和伸缩(尺度变化)来分析信号的不同部分。

Morlet 小波的伸缩和平移形式:

[
\psi_{a,b}(t) = \frac{1}{\sqrt{a}} \psi\left(\frac{t – b}{a}\right)
]

参数解释:

参数意义
(a)尺度参数(scale) → 控制频率(a 越大,频率越低)
(b)平移参数(translation) → 控制时间位置
(\frac{1}{\sqrt{a}})归一化,保证能量不随尺度变化

🔍 四、Morlet 小波变换公式

信号 ( x(t) ) 的连续小波变换(CWT)为:

[
W(a,b) = \int_{-\infty}^{+\infty} x(t) , \psi_{a,b}^*(t) , dt
]

其中:

  • ( W(a,b) ):小波系数(表示信号在尺度 a、时间 b 下的能量)
  • ( \psi_{a,b}^*(t) ):Morlet 小波的复共轭
  • 通过改变 a、b,我们得到一个 时频图(Time-Frequency Representation)

🌊 五、与傅里叶变换对比

特性傅里叶变换Morlet 小波变换
分析对象全局局部
时域定位❌ 无✅ 有
频域分辨率随尺度变化
适用信号平稳信号非平稳信号
核心思想频谱分析时频联合分析

🎨 六、可视化理解(概念图)

时间轴 →→→

传统傅里叶:一个整体频谱(全局分析)
Morlet小波:移动的“频率窗口”,局部分析每一段信号

Morlet 小波可以被理解为一个“带有高斯窗的正弦波”,
它在信号上滑动(平移 b),同时可伸缩(调整 a),从而观察信号在不同时间点的频率变化。


🧮 七、Python 实现示例

pywt(PyWavelets)库或 scipy.signal.cwt 进行 Morlet 小波分析。

示例代码:

import numpy as np
import matplotlib.pyplot as plt
from scipy.signal import morlet, cwt

# 生成测试信号:频率变化的正弦波
t = np.linspace(0, 2, 400)
x = np.sin(2 * np.pi * 5 * t) + np.sin(2 * np.pi * 20 * t * (t > 1))

# Morlet小波分析
widths = np.arange(1, 64)
cwt_matrix = cwt(x, morlet, widths)

plt.figure(figsize=(10,6))
plt.imshow(abs(cwt_matrix), extent=[0, 2, 1, 64], cmap='jet', aspect='auto',
           vmax=abs(cwt_matrix).max(), vmin=0)
plt.title("Morlet Wavelet Transform (CWT)")
plt.ylabel("Scale")
plt.xlabel("Time [s]")
plt.show()

👉 输出的图像显示:

  • y轴是“尺度(scale)”或“对应频率”;
  • x轴是时间;
  • 颜色表示信号能量强度。

📊 八、结果解读

在上面的例子中:

  • 前 1 秒信号频率约 5 Hz;
  • 后 1 秒信号频率约 20 Hz;
  • 小波变换图中可看到“低频高能 → 高频高能”的过渡,非常直观。

🧩 九、Morlet 小波的优缺点

优点缺点
✅ 适合非平稳信号分析❌ 分辨率受尺度影响
✅ 时频联合分析能力强❌ 计算复杂度较高
✅ 高斯窗抑制噪声❌ 参数选择(ω₀, scale范围)需经验调整

🧭 十、Morlet 小波的应用领域

应用方向示例
🎧 语音信号分析分析语音音调变化、识别特征频率
🧠 脑电(EEG)信号检测脑波频段(α、β、γ波)变化
🌋 地震信号分析检测地震波在不同时间的频率演化
⚙️ 机械故障诊断识别轴承振动信号的特征频率变化
🌊 金融时序分析研究价格波动的短期与长期周期性成分

✅ 十一、小结速览

项目内容
小波类型Morlet(复小波)
定义高斯窗 × 复正弦波
参数频率 ω₀、尺度 a、平移 b
功能时频联合分析
实现工具Python(scipy, pywt), MATLAB(cwt, morlet)