您应该为仿真进行多少次迭代,以进行BER计算的“蒙特卡罗模拟”?

时间:2016-05-09 07:33:42

标签: matlab simulation montecarlo

编辑问题

对于 误码率计算 ,您应该进行多少次迭代才能使模拟成为准确的“蒙特卡罗模拟”?

最低价值是多少?如果我想以指数增长的数字重复模拟五次?我应该从1e2开始因此>>迭代= [1e2 1e3 1e4 1e5 1e6]或1e3>> [1e3 1e4 1e5 1e6 1e7]?或者是其他东西?通常的做法是什么?

其他信息: 之前我使用[8e3 1e4 3e4 5e4 8e4 1e5],但根据教授说这还不够。因为结果不理想。

模拟在我的计算机上花费很长时间,因此我无法根据结果不断更改迭代。如果有这方面的常见做法,请告诉我。

感谢@BillBokeey帮助我编辑问题。

2 个答案:

答案 0 :(得分:0)

你的教授建议我作为定性的,但不是定量的方法来估计你的模拟的收敛。

坦率地说,我不知道如何计算BER,但我对MC的一些积分计算做了大量的处理。

在这种情况下,您在某个时间间隔内对x i 进行采样并进行计算 f MC = S i f i / N,其中S表示求和。我们知道f MC 会收敛到 true 值,方差为sigma 2 / N(或sigma / sqrt(N)的std.deviation )。那么我们做什么,我们在sigma的相同模拟估计中计算,假设足够大的Nsigma的良好近似并且得到模拟误差。在实际条件下,除了f MC ,我们计算第二动量和和f 2 MC = S i f 2 i / N,最后得到s = sqrt(f 2 MC - (f MC 2 )/ sqrt(N)作为MC模拟的估计误差(虽然它会有点偏差)。

因此,您可以绘制BER的相同图形值和模拟的统计误差。您甚至可以做得更好 - 要求用户输入所需的统计错误(例如,以%表示,意味着用户输入s / f * 100),并继续进行模拟,直到达到所需的精度。

你可以判断10 9 点是否足够......

答案 1 :(得分:0)

假设我们将模拟的BER表示为Pb_hat,并将[(1-alpha)Pb,(1 + alpha)Pb]表示为Pb_hat,其中Pb是 true BER,而alpha是偏差容限百分比(例如0.1),然后摘自[van Trees 2013,pg。 [83]我们知道,以置信概率pc获得Pb_hat所需的蒙特卡罗试验次数为K =(c / alpha)^ 2 x(1-Pb)/ Pb, 表c中给出了c。

表I:高斯分布的置信区间概率

<身体>
pc 0.900 0.950 0.954 0.990 0.997
c 1.645 1.960 2.000 2.576 3.000

示例:假设我们要模拟10 ^ -4的BER,偏差容差百分比为0.01,置信概率为0.950,那么从表I中我们知道c = 1.960并通过应用公式K =(1.96 / 0.01)^ 2 x(1-10 ^ -4)/ 10 ^ -4 = 384121584蒙特卡洛试验。不过,这是一个令人惊讶的巨大价值。

根据经验,K应该在1O / BER左右 [Jeruchim 1984]

[van Trees 2013],HL van Trees,KL Bell和Z. Tian,检测,估计和过滤理论,第二版,新泽西州霍博肯:Wiley,2013年。

[Jeruchim 1984] M. Jeruchim,“在数字通信系统仿真中估算误码率的技术”,在IEEE通讯领域精选杂志上,第1卷。 2,没有1,第153-170页,1984年1月,doi:10.1109 / JSAC.1984.1146031。