溫馨提示×

SciPy中怎么使用濾波器設計和應用不同類型的濾波器

小億
104
2024-05-24 16:27:13
欄目: 編程語言

在SciPy中,可以使用scipy.signal模塊來進行濾波器設計和應用不同類型的濾波器。以下是一個簡單的示例代碼,展示了如何設計和應用一個低通濾波器:

import numpy as np
from scipy import signal
import matplotlib.pyplot as plt

# 生成一個示例信號
t = np.linspace(0, 1, 1000, endpoint=False)
x = np.sin(2 * np.pi * 5 * t) + 0.5 * np.sin(2 * np.pi * 20 * t)

# 設計一個低通濾波器
b, a = signal.butter(4, 0.1, 'low')

# 應用濾波器
filtered_x = signal.filtfilt(b, a, x)

# 繪制原始信號和濾波后的信號
plt.figure()
plt.plot(t, x, 'b', label='Original Signal')
plt.plot(t, filtered_x, 'r', label='Filtered Signal')
plt.legend()
plt.show()

在這個示例中,首先生成了一個包含兩個頻率成分的信號。然后使用signal.butter函數(shù)設計了一個4階的低通濾波器,截止頻率為0.1。最后使用signal.filtfilt函數(shù)將設計好的濾波器應用到信號上,并繪制了原始信號和濾波后的信號。你可以根據(jù)需要調(diào)整濾波器的階數(shù)和截止頻率,或者嘗試設計其他類型的濾波器,例如高通濾波器或帶通濾波器。

0