python 计算包络
时间: 2023-07-05 11:35:30 浏览: 150
如果您想要计算一个信号的包络,可以使用 Python 中的 Hilbert 变换。以下是一个使用 SciPy 库中的 hilbert 函数计算包络的示例代码:
```python
import numpy as np
from scipy.signal import hilbert
# 生成信号
t = np.linspace(0, 1, 500)
signal = 2 * np.sin(2 * np.pi * 10 * t) + np.sin(2 * np.pi * 20 * t)
# 计算包络
analytic_signal = hilbert(signal)
envelope = np.abs(analytic_signal)
# 显示结果
import matplotlib.pyplot as plt
fig, (ax_orig, ax_envelope) = plt.subplots(2, 1, sharex=True)
ax_orig.plot(t, signal)
ax_orig.set_title('Signal')
ax_envelope.plot(t, envelope)
ax_envelope.set_title('Envelope')
plt.show()
```
在上面的代码中,我们首先生成了一个简单的信号,然后使用 hilbert 函数计算了信号的解析信号。解析信号是一个复数,其实部是原始信号,虚部是信号的 Hilbert 变换。我们可以通过对解析信号的模进行求取来计算信号的包络。最后,我们使用 Matplotlib 库将原始信号和包络信号绘制在同一个图中。
阅读全文