繁体   English   中英

为什么较高带宽强度分布会产生噪声?

[英]Why is there noise for higher bandwidth intensity distributions?

我一直在尝试以计算方式评估以下 E 场:

在此处输入图片说明

它基本上是给定波长的波的总和,由波长的高斯分布的平方根加权。

我通过 Python 通过包 scipy.integrate.quad 函数对 $x$ 的每个值执行高斯正交积分来计算它。 代码如下:

# Imports
import numpy as np
import scipy as sp
from scipy import integrate

# Parameters
mu = 0.635 # mean wavelength
sigma = 0.01 # std dev of wavelength distribution
# wl is wavelength
x_ara = np.arange(0, 1.4, 0.01)

# Limits of Integration
lower, upper = mu - 4*sigma, mu+4*sigma
if lower < 0 :
    print('lower limit met')
    lower = 1e-15 # cannot evaluate sigma = 0 due to singularity for gaussian function

# Functions
def Iprofile_func(wl, mu, sigma):
    profile = np.exp(-( ((wl-mu) / (np.sqrt(2)*sigma))**2))
    return profile

def E_func(x_ara, wl, mu, sigma):
    return np.sqrt(Iprofile_func(wl, mu, sigma)) * np.cos(2*np.pi/wl * (x_ara))

# Computation
field_ara = np.array([])
for x in x_ara:
    def E(wl):
        return E_func(x, wl, mu, sigma)

    field = sp.integrate.quad(E, lower, upper)[0]
    field_ara = np.append(field_ara, field)

我固定 $\\mu$ = 0.635 的值,并对 $\\sigma$ 的两个值执行相同的计算,$\\sigma$ = 0.01 和 $\\sigma$ = 0.2。 我得到的数组,我在下面绘制,上面的图是波长分布,而下面的图是计算场数组:

在此处输入图片说明

为什么sigma值增大时计算域中会出现噪声?

对于较大的 x,即使 lambda 的微小变化也确实会导致被积函数快速波动。 在某些时候,数值积分程序要么需要很长时间才能收敛,要么不会考虑足够多的积分点,因此每个积分点的贡献不会完全抵消,而是会准确显示您看到的噪声。 当我运行代码时,我实际上收到了来自 scipy 的关于达到限制的警告(“IntegrationWarning:已达到最大细分数(50)。”)。

好消息:您知道对于足够大的 x,积分必须为零。 没有必要在合理范围之外计算它。

例子:

x = 10,mu = 0.635,西格玛 = 0.01

积分界限是 mu+/-4sigma = [0.595, 0.675]

2Pi/0.595*10=105.6, 2Pi/0.675*10=93.08

这意味着被积函数在 x=10 处的波长范围内大约有两次振荡。

x = 100,其他都一样

这意味着被积函数在波长范围内振荡 20 次。

x = 10, mu = 0.635, sigma = 0.1

积分界限是 mu+/-4sigma=[0.235, 1.035]

2Pi/0.235*10=267.37, 2Pi/1.035*10=60.71

这意味着被积函数在 x=10 处已经在波长范围内进行了 33 次振荡。

x = 100,其他都一样

这意味着被积函数在波长范围内有 329 次振荡。

如果 x 或 sigma 变大,将需要越来越多的积分点。 因此,对于更大的 x,没有增加 scipy.integrate 中的限制的替代方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM