If you understand correctly, you have two needs:
- Modulate the signal into sound and then demodulate it.
- Apply error correction because the channel is not reliable.
Modulation and demodulation is a well-known application, several ways to modulate information.
Number two, error correction is also well known and has several features. Which one is applicable depends on the error rate and whether you have a duplex operation so that you can request retries. If you have decent quality and you can request retries, then the approach that TCP uses is worth exploring.
Otherwise, you will have to move on to error detection and error correction algorithms, such as those used on the CDROM.
Edit after comment
Performing modulation / demodulation and not being able to resend narrow the problem. If you have problems with synchronization, I would still recommend that you familiarize yourself with the existing (de) modulation methods, as there are ways to automatically synchronize with the sender and increase the signal-to-noise ratio.
To the main problem; To correct errors, you will need to add a parity bit to the output stream in order to be able to detect errors. Starting with the article with direct error correction, @Justin has proposed a scheme that looks pretty simple but still powerful is the Hamming scheme (7.4) .
Anders abel
source share