Algorithm 突发错误的模拟算法

Algorithm 突发错误的模拟算法,algorithm,math,simulation,Algorithm,Math,Simulation,我想为我的程序模拟错误爆发,但我不确定如何去做 假设我的固定误码率为2/10,错误突发长度从4位到12位不等,并且有无限的比特流,如何使错误突发以随机间隔发生,长度从4位到12位不等,同时仍能确保平均误码率收敛到2/10?假设在选择错误突发长度时对集合进行均匀采样。那么错误突发的预期长度是(4+5+…+12)/9=8 注意:您可以根据需要对错误突发长度进行采样-下面我们实际使用的是错误突发长度的期望值 如果希望总体误码率为2/10,则只需执行以下操作: error_lengths = [4, 5

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


假设我的固定误码率为2/10,错误突发长度从4位到12位不等,并且有无限的比特流,如何使错误突发以随机间隔发生,长度从4位到12位不等,同时仍能确保平均误码率收敛到2/10?

假设在选择错误突发长度时对集合进行均匀采样。那么错误突发的预期长度是
(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
每次迭代的预期良好位数=1
每次迭代的预期错误位数=8/32


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

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

假设错误突发长度的分布为E,干净间隔长度的分布为C,这两个分布分别是M_E和M_C。然后,您需要做的是推导/构造一个参数化C分布,使M_C=4 M_e。要启动该过程,请选择概率为0.2的错误突发,而选择概率为0.8的干净间隔作为第一个间隔。然后使用E和C分布在错误循环和清洁循环之间交替,以生成持续时间


例如,如果两种类型的间隔都遵循均匀分布,则平均错误突发长度为8,需要平均长度为32的干净间隔。例如,你可以用U(31,33)、U(1,63)或U(10,54)来实现这一点——这三种方法的平均值都是32。

我认为你在或上发帖会更走运。对于如何处理您的问题,我可以做出一些天真的猜测,但我并不声称自己在概率或信号处理方面有任何专业知识。这种方法不错,只是偶尔会产生背对背的错误序列,可能超过指定的最大序列长度12。在恢复几何采样之前,您应该强制至少一个非错误,并相应地将平均值向下调整一个。@pjs OP实际上没有指定错误突发必须是非相邻的。。。无论如何,我已经更新了为这种情况提供的算法。是的,但我认为它隐含在指定长度的上限中。也许OP会澄清他的意图。谢谢!是,错误突发长度的所有值的可能性相同。
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