python 矩形窗函数
矩形窗函数是一种经常使用的时域滤波器,也是数字信号处理中最基础的窗函数之一。Python中可使用NumPy库实现矩形窗函数的生成。
import numpy as np def rect_window(N): """生成长度为N的矩形窗函数""" return np.ones(N) N = 10 window = rect_window(N) print(window)
上述代码中,我们定义了一个rect_window函数,用于产生指定长度的矩形窗函数。在这里,我们使用了NumPy中的ones函数,来生成一个长度为N的全1数组,即矩形窗函数。
下面我们可以通过生成的窗函数,来对信号进行滤波处理。
import numpy as np import matplotlib.pyplot as plt def rect_window(N): """生成长度为N的矩形窗函数""" return np.ones(N) N = 50 f1 = 2 f2 = 10 n = np.arange(N) x = 5 * np.sin(2 * np.pi * f1 * n / N) + 3 * np.sin(2 * np.pi * f2 * n / N) # 原始信号 window = rect_window(N) # 矩形窗 y = np.convolve(x, window, mode='same') / sum(window) # 滤波后信号 plt.subplot(3, 1, 1) plt.plot(n, x) plt.title("Original Signal") plt.subplot(3, 1, 2) plt.plot(n, window) plt.title("Rectangular Window") plt.subplot(3, 1, 3) plt.plot(n, y) plt.title("Filtered Signal") plt.tight_layout() plt.show()
在以上代码中,我们定义了一个原始信号x,其中包括了两个频率分别为2Hz和10Hz的正弦波。然后我们生成一个长度为50的矩形窗,并将其与原始信号进行卷积,得到滤波后的信号y。最后我们将原始信号、矩形窗和滤波后的信号绘制在同一张图上,以视察信号的变化。
总的来讲,矩形窗函数是经常使用的数字信号处理工具之一,Python中NumPy库的使用可以方便地实现矩形窗函数的生成与信号的滤波处理。
文章来源:丸子建站
文章标题:python 矩形窗函数
https://www.wanzijz.com/view/75310.html