Estoy leyendo un flujo de bits con pérdida y necesito una manera de recuperar la mayor cantidad posible de datos utilizables. Puede haber 1 en lugar de 0 y 0 en lugar de 1, pero la precisión probablemente sea superior al 80%.Algoritmo de redundancia para leer el flujo de bits ruidoso
Una bonificación sería si el algoritmo pudiera compensar la falta/demasiados bits también.
La fuente que estoy leyendo es analógica con ruido (micrófono a través de FFT), y el tiempo de lectura puede variar según la velocidad de la computadora.
Recuerdo haber leído acerca de los algoritmos utilizados en CD-ROM's haciendo esto en 3? capas, así que supongo que usar varias capas es una buena opción. Sin embargo, no recuerdo los detalles, así que si alguien puede compartir algunas ideas, ¡sería genial! :)
Editar: datos de la muestra Agregado
Best case data: in: 0000010101000010110100101101100111000000100100101101100111000000100100001100000010000101110101001101100111000101110000001001111011001100110000001001100111011110110101011100111011000100110000001000010111 out: 0010101000010110100101101100111000000100100101101100111000000100100001100000010000101110101001101100111000101110000001001111011001100110000001001100111011110110101011100111011000100110000001000010111011 Bade case (timing is off, samples are missing): out: 00101010000101101001011011001110000001001001011011001110000001001000011000000100001011101010011011001 in: 00111101001011111110010010111111011110000010010000111000011101001101111110000110111011110111111111101
Edit2: soy capaz el fin de controlar los datos que se envían. Actualmente, intenta implementar una comprobación XOR simple (aunque no será suficiente).
¿Puedes controlar lo que está escrito en la transmisión? De lo contrario, su ejemplo de CD no se aplica, ya que requiere que los datos se escriban junto con los códigos de corrección de errores. – CodesInChaos
No entiendo esta pregunta. ¿Estás tratando de hacer algún tipo de protocolo de comunicación sobre un canal no confiable? ¿O tratando de encontrar algún tipo de algoritmo mágico que sea capaz, desde la nada, de adivinar qué está mal o no? – Euphoric
Estoy tratando de comunicarme por el sonido (altavoz + micrófono). Estoy usando una frecuencia específica para enviar bits, por lo que la aplicación está buscando esta frecuencia específica. –