I have a PCM signal recording of UART data after high-pass filter. The recording looks like this:
I know baud rate and parity setting beforehand. What algorithm could help me recover actual binary data from the recording automatically?
This signal looks pretty good, so that a simple sign decision gives you "low" or "high" periods.
Then, you just start at the beginning, and count samples until you find your start bit.
From the start bit, you just sample your signal in 1 bit period, 2 bit periods, ... and get your transmit data stream. Remember, UART is by definition unsynchronized.