2

我需要将一个连续的Gaussian脉冲分解成50 discrete parts,这样我就可以在计算中使用 50 个单独的幅度中的每一个。这是我尝试过的:

% Gauss pulse discretisation
tg = 20*10^(-3);         % pulse duration [sec]
B1 = 1;                  % max amplitude [muT]
t  = -tg/2:tg/50:tg/2;   % sampling times
sd = 0.25;               % pulse standard deviation
% pulse shape
p  = B1*exp(-((t-tg/2).^2)/(2*sd.^2));
plot(t,p);

然而,情节看起来一点也不像高斯脉冲20ms in duration!是如何sampling time定义的有问题吗?例如,如果sampling time定义为

t  = -1:tg/50:1

那么脉冲看起来确实像高斯,但它被分解为 5001 个部分。有人可以指出我正确的方向吗?

4

1 回答 1

0

为了让您的高斯在绘制时看起来像高斯,您需要确保:(1)围绕其中心对其进行采样,(2)您的采样间隔远小于标准偏差(SD),并且(3) 每边至少采样 2 或 3 个 SD,这样就可以看到衰减。因此,在您的示例中,由于高斯以 为中心tg\2,并且您的 SD 是sd = 0.25(顺便说一下,SD 设置脉冲持续时间,而不是tg),延长采样间隔,使用 SD 作为度量(而不是tg),然后移动它以均值为中心。使用以下方法更容易完成所有这些操作linspace

t = linspace(-3*sd, 3*sd, 50) + tg\2;

如果您还想要 20 毫秒的脉冲持续时间,sd请按 20 毫秒的顺序制作,而不是tg. 另请注意,“持续时间”实际上是高斯的定义问题,因为它扩展到 +- 无穷大。您必须定义诸如“脉冲持续时间从 -2 SD 到 +2 SD”之类的内容,这意味着有效脉冲持续时间是根据尾部衰减的程度来定义的。

% Gauss pulse discretisation
tg = 0;         % pulse center [sec]
B1 = 1;         % max amplitude [muT]
sd = .5*20*10^(-3);% half the pulse duration (msec)
t  = tg/2 + linspace(-3*sd,3*sd,50);  
% pulse shape
p  = B1*exp(-((t-tg/2).^2)/(2*sd.^2));
plot(t,p,'.-');

高斯

于 2015-11-29T20:00:28.830 回答