我需要将连续的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个零件中被分解。有人可以指点我正确的方向吗?
答案 0 :(得分: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,'.-');