跳转至

使用高斯脉冲

产生高斯脉冲

原文:https://www.geesforgeks.org/create-a-gauss-pulse-using-scipy-signal-gausspulse/

先决条件 : Scipy

高斯滤波器的脉冲响应写成高斯函数,如下所示:

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

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

语法:scipy . signal . gaussulse(t,fc retquad,retenv)

参数:

  • t: 输入数组。
  • fc: 中心频率。
  • 返回:如果为真,返回信号的虚部和实部。默认值为假。
  • retenv: 如果为真,返回信号包络。默认值为假。

返回

  • yI: 信号的实部。总是回来。
  • yQ: 信号虚部。仅当 retquad 为真时返回。
  • yenv: 信号的包络。仅当 retenv 为真时才返回。

进场:

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

使用上述方法的实现描述如下:

蟒蛇 3

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()

输出:



回到顶部