Learning signal encoding
I suggest the use of Hidden Markov Models, with two possible states: (1) high levels and (0) low levels. 

This technique might be helpful to decode your signal. Probably you would need a specific HMM for each codification.

If noise is an issue an FIR filter with a Blackman-Harris window function would allow you to isolate the frequency you're concerned with.