Si tengo una cierta cantidad de bytes para transferir en serie, ¿cómo puedo determinar qué CRC (CRC8, CRC16, etc., básicamente cuántos CRC de bits?) Usar y aún tener un porcentaje de detección de errores alto? Hay una formula para esto?¿Cómo determinar qué CRC usar?
Respuesta
Para responder a esta pregunta, debe conocer el bit error rate de su canal que solo se puede determinar empíricamente. Y una vez que tenga la BER medida, debe decidir qué tasa de detección es "suficientemente alta" para sus propósitos.
Enviar cada mensaje, por ejemplo, 5 veces le dará una detección bastante buena, incluso en un canal muy ruidoso, pero que reduce su rendimiento un poco. Sin embargo, si envía comandos a una sonda de espacio profundo, puede necesitar esa redundancia.
Desde el punto de vista de la longitud del CRC, se aplican estadísticas normales. Para un ancho de bits de CRC, tiene 1/(2^n)
posibilidad de tener un falso positivo. Entonces, para un CRC de 8 bits, tiene una posibilidad de 1/255, etc.
Sin embargo, el polinomio elegido también tiene un gran impacto. La matemática depende en gran medida de los datos que se transfieren y no es una respuesta fácil.
Debe evaluar algo más que CRC dependiendo de su mecanismo de comunicación (FEC con sistemas tales como códigos turbo es muy útil y común).
- 1. Cómo usar boost :: crc?
- 2. ¿Cómo determinar qué nivel de registro usar?
- 3. CRC comprueba los archivos
- 4. explícitamente determinar qué función pura de usar
- 5. Cálculo del divisor CRC
- 6. ¿Cómo determinar qué tipo de índice usar en Postgres?
- 7. CRC-CCITT (0xFFFF) función?
- 8. CRC preestablecido y residuo
- 9. ¿Cómo determinar qué es CFTypeRef?
- 10. campo CRC-32 en zip
- 11. Cómo determinar qué compilador se solicitó
- 12. Colisiones esperadas para el crc perfecto de 32 bits
- 13. Longitud de datos frente a CRC Longitud
- 14. Determinación del algoritmo CRC a partir de datos + aplicación CRC integrada.
- 15. Cómo determinar qué botón presionado en Android
- 16. ¿Cómo puedo determinar qué iOS SDK tengo?
- 17. Cómo usar el vtable para determinar el tipo de clase
- 18. Cómo calcular CRC de 32 bits en Ruby on rails?
- 19. ¿Es posible hacer una corrección de errores rudimentaria con CRC?
- 20. Determinar qué rubygem está usando
- 21. ¿Qué significa hacer/determinar algo "programáticamente"?
- 22. ¿Determinar qué causó LayoutUpdate/ArrangeOverride?
- 23. ¿Cómo puedo determinar qué celda de una JTable se seleccionó?
- 24. ¿Cómo determinar qué métodos se llaman en un método?
- 25. Determinar qué características son suficientes para iniciar
- 26. Determinar qué bloqueos son los más disputados?
- 27. ¿La mejor manera de probar la lógica CRC?
- 28. ¿Determinar qué botón se presionó en Tkinter?
- 29. Determinar qué compilador creó un Win32 PE
- 30. Cómo determinar qué JAR se utilizan en una aplicación