我正在读一个有损的比特流,我需要一种方法来恢复尽可能多的可用数据.可以有1代替0和0代表1,但准确度可能超过80%.
如果算法可以补偿丢失/太多位,则可以获得奖励.
我正在读取的信号源是噪声模拟(麦克风通过FFT),读取时序可能因计算机速度而异.
我记得读过CD-ROM中使用的算法吗?层,所以我猜测使用几个层是一个不错的选择.我不记得细节,所以如果有人可以分享一些很棒的想法!:)
编辑:添加样本数据
Best case data: in: 0000010101000010110100101101100111000000100100101101100111000000100100001100000010000101110101001101100111000101110000001001111011001100110000001001100111011110110101011100111011000100110000001000010111 out: 0010101000010110100101101100111000000100100101101100111000000100100001100000010000101110101001101100111000101110000001001111011001100110000001001100111011110110101011100111011000100110000001000010111011 Bade case (timing is off, samples are missing): out: 00101010000101101001011011001110000001001001011011001110000001001000011000000100001011101010011011001 in: 00111101001011111110010010111111011110000010010000111000011101001101111110000110111011110111111111101
Edit2:我能够控制发送的数据.目前正在尝试实现简单的XOR检查(虽然这还不够).