我一直试图在C中模拟二进制对称通道。
它应该像这样工作:用户输入一个表示错误率的数字(例如0.01 = 1%)。因此,例如,如果我从文件中读取1001,则每个位都有机会根据输入的百分比将其值分别更改为0/1。
从文件中读取并写入另一个文件已经有效,但我不知道如何使这些基于百分比的错误发生。
非常感谢任何帮助,提前谢谢。
答案 0 :(得分:-1)
为了生成基于百分比的错误,您可以执行以下操作:
double rate = get_rate(); // userinput between 0.0 and 1.0 for 0% - 100%
do {
double nr = drand48(); // Generates a number between 0.0 and 1.0
if (nr < rate) {
// Generate biterror here
}
} while (some_more_bits_to_check);