欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

python 成形濾波器

錢良釵2年前10瀏覽0評論

Python作為一種高級編程語言,擁有豐富的庫函數和工具,其中之一就是成形濾波器。

# 導入庫
import numpy as np
import matplotlib.pyplot as plt
from scipy.signal import butter, filtfilt
# 設定采樣頻率和信號
fs = 1000  # 采樣頻率
fc = 50  # 截止頻率
t = np.arange(0, 1, 1/fs)
signal = np.sin(2 * np.pi * 10 * t) + np.sin(2 * np.pi * 100 * t)
# 設計濾波器
order = 4
wn = 2 * fc / fs
b, a = butter(order, wn, 'highpass')
# 濾波信號
filtered_signal = filtfilt(b, a, signal)
# 繪制信號和濾波后的信號頻譜
plt.subplot(2, 1, 1)
plt.plot(t, signal)
plt.title('Original Signal')
plt.xlabel('Time (s)')
plt.ylabel('Amplitude')
plt.subplot(2, 1, 2)
freq = np.fft.rfftfreq(len(t), d=1/fs)
fft_signal = np.fft.rfft(signal)
fft_filtered = np.fft.rfft(filtered_signal)
plt.plot(freq, np.abs(fft_signal), label='Original')
plt.plot(freq, np.abs(fft_filtered), label='Filtered')
plt.title('Frequency Spectrum')
plt.xlabel('Frequency (Hz)')
plt.ylabel('Amplitude')
plt.legend()
plt.show()

以上代碼中,numpy庫和matplotlib庫被用于信號生成和圖像繪制;scipy.signal庫中的butter和filtfilt函數分別用于生成濾波器和濾波信號。

在設計濾波器時,需要設定濾波器的階數和截止頻率,本例中使用了4階高通濾波器,截止頻率為50Hz。

最后通過繪制信號時頻圖,我們可以清晰地看到,通過成形濾波器的處理,原信號中的低頻分量被濾除,保留了高頻分量。