hilbert变换 python
时间: 2023-07-07 15:20:12 浏览: 122
Hilbert_transform_Hilberttransform_K._离散hilbert变换_frequencysampl
在Python中,可以使用SciPy库中的`scipy.signal.hilbert`函数来进行Hilbert变换。该函数的使用方法如下:
```python
import numpy as np
from scipy.signal import hilbert
# 构造一个信号
t = np.linspace(0, 1, 500)
y = np.sin(2 * np.pi * 10 * t) + np.sin(2 * np.pi * 20 * t)
# 对信号进行Hilbert变换
y_hilbert = hilbert(y)
# 计算信号的幅度和相位
y_amplitude = np.abs(y_hilbert)
y_phase = np.angle(y_hilbert)
# 可视化结果
import matplotlib.pyplot as plt
fig, axs = plt.subplots(3, 1, figsize=(8, 8))
axs[0].plot(t, y)
axs[0].set_title('Original Signal')
axs[1].plot(t, y_amplitude)
axs[1].set_title('Amplitude Envelope')
axs[2].plot(t, y_phase)
axs[2].set_title('Instantaneous Phase')
plt.show()
```
上述代码中,首先构造了一个包含两个正弦波的信号。然后使用`hilbert`函数对信号进行Hilbert变换,得到复信号`y_hilbert`。接下来,计算复信号的幅度和相位,并可视化结果。
阅读全文