📜  使用 scipy.signal.gausspulse 创建高斯脉冲

📅  最后修改于: 2022-05-13 01:54:52.283000             🧑  作者: Mango

使用 scipy.signal.gausspulse 创建高斯脉冲

先决条件:Scipy

高斯滤波器的脉冲响应写为高斯函数如下:

g(t) = \frac{1}{\sqrt{2 \pi } \sigma} e^{- \frac{t^2}{2 \sigma^2}}

它的结果也是高斯的。在本文中,我们将使用 scipy 和 matplotlib Python库绘制 3Hz 的高斯脉冲。高斯脉冲用于运动分析的数字滤波器。使用 scipy 的 gausspulse() 方法创建高斯脉冲。 gausspulse() 在阵列 t 中指示的时间返回单位幅度的高斯调制正弦脉冲,中心频率“fc”以赫兹 (Hz) 为单位。

方法:

  • 导入所需的模块。
  • 使用 np.linespace 创建一个数据数组。
  • 创建一个 3 Hz 的高斯脉冲。
  • 标记图形。
  • 显示结果图。

使用上述方法的实现如下图所示:

Python3
from scipy import signal
import matplotlib.pyplot as plt
import numpy as np
  
t = np.linspace(-1, 1, 200)
  
i, q, e = signal.gausspulse(t, fc=3, retquad=True, retenv=True)
  
plt.plot(i, color='green')
plt.plot(q, color='black')
plt.plot(e, '--', color='red')
  
plt.title('Gauss pulse for a 3 Hz - Geeksforgeeks')
plt.ylabel("Normalized magnitude [dB]")
plt.xlabel("Normalized frequency [cycles per sample]")
plt.margins(0, 0.1)
plt.grid(which='both', axis='both')
plt.legend(['Inphase', 'Quadrature', 'Envelope'])
  
plt.show()


输出: