Python:使用 Dirac Delta 函数绘制方程

数据挖掘 Python matplotlib
2022-02-27 20:53:11

我试图从一把锋利的剃须刀上绘制预期的衍射图案,其公式为:

I(p)=14δ2(p)+14π2p2
其中p=sinθλ

我最初只想制作一个简单的 x 值列表并将它们输入方程以获取 y 值并绘制它们,如下所示:

x = [theta for theta in range(-90,90)]

y = [I(theta) for theta in x]

plt.plot(x,y)

但是,我不确定如何编写因为我不知道如何在 python 中编写 dirac delta 函数。如何绘制这个函数?I(θ)

1个回答

使用 scipy 库函数

在这个例子中

从 scipy 导入 numpy 作为 np 导入信号 number_points =100 location_of_impulse= 60 it_theta=signal.unit_impulse(number_points ,location_of_impulse)

你必须自己做缩放

顺便说一句,以下是 SCIPY 的直接副本,可能更具启发性................................. ………………………………………………………………………………………………………………………………………………

从 scipy 导入 numpy 作为 np 导入信号导入 matplotlib.pyplot 作为 plt imp = signal.unit_impulse(100, 40) b, a = signal.butter(4, 0.2) response = signal.lfilter(b, a, imp)

plt.plot(np.arange(-50, 50), imp) plt.plot(np.arange(-50, 50), response) plt.margins(0.1, 0.1) plt.xlabel('时间[样本]' ) plt.ylabel('幅度') plt.grid(True)

'