2

我想为我的程序模拟错误爆发,但我不确定我将如何去做。

假设我有 2/10 的固定误码率和从 4 位到 12 位的不同错误突发长度以及无限的位流,我怎样才能使它以随机间隔发生错误突发长度不同从 4 位到 12 位,同时仍确保平均误码率收敛到 2/10?

4

2 回答 2

0

[4, 5, ..., 12]假设您在选择错误位突发的长度时对集合进行统一采样。那么错误突发的预期长度为(4+5+...+12)/9 = 8

注意:您可以根据需要对错误突发长度进行采样 - 我们在下面实际使用的只是对错误突发长度的期望

如果你想要一个整体的误码率2/10,你所要做的就是:

error_lengths = [4, 5, 6, 7, 8, 9, 10, 11, 12]
loop forever
    if rand() < 1/33 // with probability 1/33
         n = rand(error_lengths) // pick a random error length
         emit n contiguous error bits
    else
         emit 1 good bit

这样做的原因是,平均而言,对于每 33 次迭代,if条件是true1 次和false32 次。每个true平均产生 8 个错误位;每个false创造 1 个好位。

因此误码率为(1*8)/(1*8 + 32*1) = 8/40 = 2/10


编辑

如果你想保证没有两个错误序列是相邻的,你可以这样做:

error_lengths = [4, 5, 6, 7, 8, 9, 10, 11, 12]
loop forever
    if rand() < 1/32 // with probability 1/32
         n = rand(error_lengths) // pick a random error length
         emit n contiguous error bits
    emit 1 good bit

每次迭代的预期好比特数 = 1 每次迭代
的预期错误比特数 = 8/32

错误率 = (8/32)/(1+8/32) = 8/40 = 2/10

于 2013-07-26T21:14:15.007 回答
0

您告诉我们一个范围,但没有指定错误突发长度的分布,也没有指定干净间隔长度的分布。范围内的所有值是否同样可能,4 是否比 12 更频繁地出现,反之亦然,或者说,6 是最常见的情况?

假设您有错误突发长度的分布E和干净间隔长度的C分布,它们分别具有 M_ e和 M_ c的平均值。然后您需要做的是派生/构造C分布的参数化,以便 M_ c = 4 M_ e。要启动该过程,请为您的第一个间隔选择概率为 0.2 的错误突发与概率为 0.8 的干净间隔。然后使用EC分布在错误周期和干净周期之间交替以生成持续时间。

例如,如果两种类型的间隔都遵循均匀分布,则平均错误突发长度为 8,您需要平均长度为 32 的干净间隔。您可以使用 U(31,33)、U(1,63) 来实现,或 U(10,54),例如 - 所有三个都有 32 的手段。

于 2013-07-26T21:21:52.570 回答