Это типичный случай цифровой модуляции, известный как включение-выключение (OOK).
Довольно легко декодировать OOK: применять фильтр нижних частот с частотой среза, которая находится чуть ниже 1/символьной периодичности, децитировать ее выход так, что вы получите только 1 значение на длительность символа, а затем используйте экспериментально найденное порог, чтобы решить, что такое 0 и что такое 1.
Возможно, вам потребуется найти точную длину символа, и сначала начнется символ, если вы хотите быть действительно точным. Это классическая проблема синхронизации - в вашем случае кажется, что отправитель должен иметь острый край при каждом перемещении символа, поэтому высокочастотный фильтр передает ваш сигнал, и вы получите тактовый сигнал, который вы можете использовать для настройки который затем регулирует частоту дискретизации сигнала, поступающего в ваш декодер (как описано выше).
Для этого есть хорошая структура; GNU Radio поставляется со всеми строительными блоками, необходимыми для того, чтобы это произошло, у него активное сообщество, есть графический интерфейс, который поможет вам разработать приложение для обработки сигналов, если вы не используете графическую визуализацию в цепочке обработки сигналов, полученное приложение действительно портативный, он очень оптимизирован и поставляется с множеством примеров.