溫馨提示×

SciPy中怎么計算和應用Hilbert變換

小億
108
2024-05-25 12:47:09
欄目: 編程語言

在SciPy中,可以使用scipy.signal.hilbert函數(shù)來計算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函數(shù)計算其Hilbert變換。最后,我們計算解析信號的幅度包絡,并將原始信號和幅度包絡繪制在同一圖表中。這樣可以很好地展示Hilbert變換的效果。

0