在SciPy中,可以使用scipy.signal.hilbert
函數來計算Hilbert變換。Hilbert變換是一種信號處理技術,用于計算信號的解析信號,其中實部是原始信號,虛部是帶通濾波后的信號。
下面是一個示例,演示如何計算Hilbert變換并應用于信號:
import numpy as np
from scipy.signal import hilbert
import matplotlib.pyplot as plt
# 生成一個示例信號
t = np.linspace(0, 1, 500)
signal = np.sin(2 * np.pi * 5 * t)
# 計算Hilbert變換
analytic_signal = hilbert(signal)
amplitude_envelope = np.abs(analytic_signal)
# 繪制原始信號和解析信號的幅度包絡
plt.figure()
plt.plot(t, signal, label='Signal')
plt.plot(t, amplitude_envelope, label='Amplitude envelope')
plt.xlabel('Time')
plt.ylabel('Amplitude')
plt.legend()
plt.show()
在上面的示例中,我們首先生成一個示例信號,然后使用hilbert
函數計算其Hilbert變換。最后,我們計算解析信號的幅度包絡,并將原始信號和幅度包絡繪制在同一圖表中。這樣可以很好地展示Hilbert變換的效果。