在計(jì)算機(jī)編程中,控制論是一個(gè)重要的概念。Python 作為一種廣泛使用的編程語言,也有許多方便使用的控制論庫,例如 SciPy 中的 signal 模塊。
# 導(dǎo)入必要的庫 import numpy as np from scipy import signal import matplotlib.pyplot as plt # 設(shè)定信號 N = 1000 t = np.linspace(0, 1, N, endpoint=False) x = np.sin(2 * np.pi * 10 * t) + np.sin(2 * np.pi * 20 * t) # 設(shè)定濾波器 b, a = signal.butter(4, 0.1, 'lowpass') # 進(jìn)行濾波 y = signal.filtfilt(b, a, x) # 展示結(jié)果 fig, (ax1, ax2) = plt.subplots(2, 1, sharex=True) ax1.plot(t, x) ax1.set_title('Original signal') ax1.axis([0, 1, -2, 2]) ax2.plot(t, y) ax2.set_title('Filtered signal') ax2.axis([0, 1, -2, 2]) plt.tight_layout() plt.show()
上面的代碼演示了一個(gè)低通濾波的例子。首先設(shè)定了一個(gè)包含兩個(gè)正弦波的信號。然后使用signal.butter
函數(shù)生成了一個(gè)四階低通濾波器。最后使用signal.filtfilt
函數(shù)對信號進(jìn)行濾波,得到了濾波后的信號。最后使用 Matplotlib 來展示原始信號和濾波后的結(jié)果。
通過 Python 提供的控制論庫,我們可以輕松實(shí)現(xiàn)許多控制論的應(yīng)用,例如濾波、自適應(yīng)控制、PID 控制等等,為計(jì)算機(jī)控制領(lǐng)域的研究者和開發(fā)者提供了強(qiáng)大的工具。