【发布时间】:2018-01-26 14:56:52
【问题描述】:
我需要重叠使用 MATLAB 和 LTspice 生成的阈值电压的 MC 高斯分布。如果我使用相同的平均值(即 0.3558)和 sigma 值(3*sigma=10% 即 sigma=0.0333)模拟然后 MATLAB 分布比 LTspice 分布宽得多。另一方面,如果我对我的模拟和 LTspice 中的 sigma = 10% 和 MATLAB 中的 sigma = 0.0333 使用相同的平均值,那么两个图都会重叠。但是我需要为我的两个模拟加入相同的 sigma 值。我可以知道 LTspice 和 MATLAB 中的 sigma 和 3*sigma 之间的关系是什么,我该如何解决这个问题?
MATLAB 代码已附在下面。
n= 5000; %no of runs%
m= 0.3558; %nominal Vth/Mean%
sd= 0.0333; % 3*sigma standard deviation%
Vth= m + sd*randn(n,1); %Gaussian distribution of Vth%
figure(2);
hist(Vth); %Histogram of Vth%`
已附上生成高斯分布的LTspice代码。
VTH1=.3558*(1+gauss(0.1)) % sigma=10%
【问题讨论】:
-
你有什么问题? sigma 和 3*sigma 有什么关系?答案是乘以 3。
-
当我在 LTspice 中使用 sigma 和在 MATLAB 中使用 3*sigma 时,我得到了相同的结果。但是当我在两者中使用 sigma 或 3*sigma 时,我是否需要得到相同的结果我的模拟?我可以知道为什么会有这种差异吗?
-
问题不就是高斯的表达方式吗?在您的 LTspice 代码中,您应该执行与在 Matlab 中相同的操作:
m + sd*gauss(1.0)。问题是在 LTspice 中,您的代码相当于:.3558 + (.3558*0.1)*randn()。问题确实是您的因子 .3558 会影响 LTspice 代码中的均值和方差。 -
但是我在 LTspice 和 MATLAb 中生成高斯分布的方式对吗?我可以采用其中一种方式吗?
标签: matlab gaussian montecarlo