
对信号进行Hilbert变换并计算边际谱的demo
# 探索信号处理:从经验模态分解到边际谱计算
在信号处理的奇妙世界里,今天咱们来聊聊如何对信号进行hilber变换求取边际谱。
咱们先来看第一步,将两个信号叠加得到原始信号。假设我们有两个简单的正弦信号,在Python里
实现如下:
```python
import numpy as np
import matplotlib.pyplot as plt
# 生成两个正弦信号
t = np.linspace(0, 1, 1000, endpoint=False)
signal1 = np.sin(2 * np.pi * 5 * t)
signal2 = np.sin(2 * np.pi * 10 * t)
# 叠加得到原始信号
original_signal = signal1 + signal2
```
这里,我们用`numpy`的`linspace`函数生成了时间序列`t`,然后基于这个时间序列分别生成了频
率为5Hz和10Hz的两个正弦信号`signal1`和`signal2`,最后将它们叠加得到了`original_signal`,也就
是我们的原始信号。
接下来要对原始信号进行经验模态分解(emd分解)得到本征模态函数(imfs)。不过Python标准库没
有现成的emd分解实现,这里假设我们自己写了一个简单的emd函数(实际中可以用`PyEMD`库等更成熟的
实现),像这样:
```python
def simple_emd(signal):
# 简单的emd实现示例,仅作示意,并非完整可用代码
imfs = []
residual = signal.copy()
while True:
# 这里省略实际的筛选过程
imf = residual
imfs.append(imf)