如何在 Matlab 中 'break' 将高斯脉冲转换为离散部分
How to 'break' a Gaussian pulse into discrete parts in Matlab
我需要将一个连续的 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 个部分。有人可以指出我正确的方向吗?
为了让您的高斯分布在绘制时看起来像高斯分布,您需要确保:(1) 围绕它的中心对其进行采样,(2) 您的采样间隔远小于标准差(SD),以及 (3) 您在每侧至少采样 2 或 3 个 SD,因此您可以看到衰减。因此,在您的示例中,由于高斯以 tg
为中心,并且由于您的 SD 为 sd = 0.25
(顺便说一句,SD 设置脉冲持续时间,而不是 tg
),因此延长采样间隔,使用SD 作为衡量标准(而不是 tg
),然后移动它,使其以平均值为中心。使用 linspace
更容易完成所有这些操作:
t = linspace(-3*sd, 3*sd, 50) + tg;
如果您还想要 20 毫秒的脉冲持续时间,请按 20 毫秒的顺序设置 sd
,而不是 tg
。另请注意,"duration" 实际上是高斯分布的定义问题,因为它延伸到 +- 无穷大。您必须定义类似 "pulse duration is from -2 SDs to +2 SDs" 的内容,这意味着有效脉冲持续时间根据尾巴衰减的程度来定义。
% 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,'.-');
我需要将一个连续的 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 个部分。有人可以指出我正确的方向吗?
为了让您的高斯分布在绘制时看起来像高斯分布,您需要确保:(1) 围绕它的中心对其进行采样,(2) 您的采样间隔远小于标准差(SD),以及 (3) 您在每侧至少采样 2 或 3 个 SD,因此您可以看到衰减。因此,在您的示例中,由于高斯以 tg
为中心,并且由于您的 SD 为 sd = 0.25
(顺便说一句,SD 设置脉冲持续时间,而不是 tg
),因此延长采样间隔,使用SD 作为衡量标准(而不是 tg
),然后移动它,使其以平均值为中心。使用 linspace
更容易完成所有这些操作:
t = linspace(-3*sd, 3*sd, 50) + tg;
如果您还想要 20 毫秒的脉冲持续时间,请按 20 毫秒的顺序设置 sd
,而不是 tg
。另请注意,"duration" 实际上是高斯分布的定义问题,因为它延伸到 +- 无穷大。您必须定义类似 "pulse duration is from -2 SDs to +2 SDs" 的内容,这意味着有效脉冲持续时间根据尾巴衰减的程度来定义。
% 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,'.-');