色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

python 濾波函數

劉姿婷1年前10瀏覽0評論

Python是一種非常流行且強大的編程語言,可以應用于各種領域,例如數據分析、深度學習、自然語言處理等。在信號處理方面,Python也提供了許多濾波函數,可用于數據去噪和平滑。接下來我們將介紹Python常用的幾種濾波函數。

import numpy as np
import matplotlib.pyplot as plt
from scipy.signal import butter, lfilter
# 創建一段帶有噪聲的信號
t = np.linspace(0, 1, 1000)
x = np.sin(2*np.pi*10*t) + np.sin(2*np.pi*20*t) + np.sin(2*np.pi*30*t)
noise = 0.2 * np.random.randn(len(t))
x_noisy = x + noise
# 定義一個濾波函數
def butter_lowpass(cutoff, fs, order=5):
nyq = 0.5 * fs
normal_cutoff = cutoff / nyq
b, a = butter(order, normal_cutoff, btype='low', analog=False)
return b, a
# 使用濾波函數進行信號平滑處理
def apply_filter(data, cutoff=15, fs=1000, order=5):
b, a = butter_lowpass(cutoff, fs, order=order)
y = lfilter(b, a, data)
return y
# 對帶有噪聲的信號進行平滑處理
x_filtered = apply_filter(x_noisy, cutoff=30)
#繪制原始信號、帶噪聲信號和平滑信號的圖像
plt.plot(t, x, 'r-', label='original signal')
plt.plot(t, x_noisy, 'g-', label='noisy signal')
plt.plot(t, x_filtered, 'b-', linewidth=2, label='filtered signal')
plt.xlabel('Time [s]')
plt.legend()
plt.grid(True)
plt.show()

上述代碼使用了一個低通濾波器對帶有噪聲的信號進行平滑處理。首先生成一段帶有噪聲的信號(通過加入隨機噪聲來模擬真實世界中的信號),然后定義了一個butter_lowpass函數,用于創建一個低通Butterworth濾波器。接著定義了apply_filter函數,該函數用于對輸入信號進行平滑處理。最后,應用濾波器將帶有噪聲的信號進行平滑,并將處理結果與原始信號和帶噪聲信號的圖像進行比較。

總之,Python提供了許多方便的濾波函數,可以有效地去除噪聲和平滑信號。以上僅僅是一個簡單示例,讀者可以根據實際需求自行選擇適當的濾波函數。