> У тебя есть исходный сигнал, состоящий из "полок" строго в -1 и +1.Это само по себе еще куда ни шло...
> Длительность сих "полок" не известна.
...но это уже очень плохой дизайн протокола сразу не старте, если цель прием сигнала в плохих условиях. Не оптимизировано на это. Знание моментов начала пакета и таймингов битов сильно улучшает дело. В чем можно убедиться посмотрев на дизайн протоколов созданных для работы в таких условиях.
Более того - скоростные линки передают клок не для красоты: сэмплирование в конкретные и правильные моменты времени тоже сильно улучшает дело. Совсем асинхронный сигнал проблематично разогнать до хорошего битрейта. Ошибки клока ведут к тому что весь хвост пакета где врезался или выпал лишний бит - ошибка. С таким числом ошибок даже мощный FEC не справится, не говоря про простой и быстрый типа ECC.
> Ты можешь проиграть исходный сигнал сколько угодно раз, при этом паттерн шума будет иным.
Если допустить что биты все же постоянны по скорости (вполне достижимое требование) тогда есть такое соображение: сумма сигналов битов отлична от ноля. А шум так то взаимно аннулируется, его среднее около ноля. И processing gain ценой потери битрейта возникает именно оттуда :D. Коррелятор GPS занимается именно этим.
> Сигнал модулирован идеальным белым шумом выше уровня сигнала - это значит, что
> уровней ниже -1 и +1 у нас в результате не появляется.
Это не так уж важно, если на самом деле каждый "cупер-бит" был кодирован пачкой "мини-битов". Прикинь, коррелятор GPS всего лишь залоченый на те же параметры PRNG и ксорка. Если корреляция сильная, это наш сигнал, и мы можем видеть его вероятное состояние. А если слабая - ну, упс, это не наш сигнал - или лок не удался, ессно этот фокус требует знание точных времянок чтобы "маленькие" биты попадали в свои интервалы, без этого магия с реинфорсом правильных значений не сработает.
Смотри: sum(1+0.6, 1-0.6, 1+0.6, 1-0.6) / 4 дает ровно 1. А случайное телепание +/- 0.6 представленное немного утрировано и упрощенно - аннулировано. Ну как, при захвате битов как 1 и 0 из шума ты будешь часто видеть сие как 0x55 или 0xAA, я отмасштабировал до 0.6, но можешь и в бинарном виде так же. Если не нравится дробная математика, на большой пачке мини-битов валидно целыми числами оперировать, GPS коррелятор лишь XORит вход с лоченым на chip rate PRNG да смотрит на уровень корреляции. И тут можно уже иначе решать что это. "Скорее всего 1", "Скорее всего 0", "вообще не наш сигнал". Ну вот так вот.
> Как будем в реальном мире восстанавливать?
Посмотри на GPS/CDMA/прочие подвиды идей в духе DSSS. Вот так и будем. А кто тебе сказал что вон то не работает? Шенона оно конечно не обойдет, битрейт на избыточное кодирование битиков придется потерять, извините.
А, да, я говорил что основы (line) coding и проч в рфских вузах не дают? Ну вот оно и заметно. Эксперты блин, вообще не способные CDMA осознать.