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

python 矩形窗函數

錢斌斌1年前8瀏覽0評論

矩形窗函數是一種常用的時域濾波器,也是數字信號處理中最基礎的窗函數之一。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庫的使用可以方便地實現矩形窗函數的生成與信號的濾波處理。