Понятно. Всё не так уж плохо.
Думается, предложенный ниже алгоритм будет работать.
1. Прежде всего, выбираем частоту дискретизации случайного процесса. Она должна быть не меньшей удвоенной частоты чипов ПСП (я бы взял для начала четырёхкратный оверсэмплинг: N=4). Разрядность АЦП при таком отношении С/Ш не имеет особого значения (можно в качестве АЦП использовать даже стробируемый компаратор - потери при этом составят величину около 1 дБ относительно АЦП с бесконечным числом разрядов). Представление чисел желательно сделать знаковым (в случае простого компаратора это будет 1 и -1).
2. Синхронизируем выборку сигнала с частотой передачи ПСП (как я понимаю, уже сделано).
3. Определяем точные границы символов сообщения.
Могу предложить такой способ: выделяем в исходной последовательности два участка длиной в 1 ПСП, идущие один за другим без промежутков. Находим оценку взаимной энергии (0-го корреляционного терма: R00) между ними.
Далее, сдвигаем обе подпоследовательности на один отсчёт. Находим следующий 0-й корреляционный терм, и т.д., до получения оценки КФ процесса длиной в 1 ПСП (100 чипов). Строго говоря, это будет не корр. функция, но название используем для краткости.
Эту операцию нужно делать многократно, усредняя оценки КФ, вычисленные по каждой подпоследовательности длиной в 1 ПСП. При этом нужно учитывать знак среднего (или максимального) значения получаемых оценок - если он разнится с накопленным значением, кандидат на суммирование нужно инвертировать (умножить на -1). Операция не столь уж трудоёмка, как может показаться на первый взгляд, если использовать при вычислении метод коррекции начальных и конечных точек.
Выполнив необходимое количество усреднений, и получив "хорошую" оценку КФ, находим положение максимума её модуля. Оно будет соответствовать смещению начала символа относительно начала анализируемого участка - задача поиска границ ПСП решена.
4. Отсчитав нужное количество выборок, "становимся" на начало ПСП. Заводим "аккумулятор" - знаковый 16...32-разрядный массив памяти длиной 100* N, где N - коэффициент передискретизации. Инициализируем его первой реализацией сигнала длиной в 1 символ (100 чипов ПСП). Находим единственный корреляционный терм R00 между аккумулятором и следующей реализацией сигнала длиной в 1 символ. Если он со знаком "+", прибавляем подпоследовательность к аккумулятору поэлементно, если со знаком "-" - вычитаем. Это называется операцией "накопления со снятием сообщения". Выполняя такую операцию рекуррентно, накапливаем в аккумуляторе достаточное количество реализаций со снятым сообщением.
5. Накопленная в аккумуляторе функция - это и есть оценка ПСП! Для увеличения достоверности оценки её следует обработать фильтром скользящего среднего порядка N-1 (длиной N), выделить из результата фильтрации N подпоследовательностей длиной 100 отсчётов с шагом выборки N, выбрать из них имеющую максимальную энергию, и найти знак каждого из её элементов.
Усё.
ЗЫ. Если где ошибся - поправьте, плиз. ФормУлы счас писать лень; оценивать необходимое количество операций накопления - тоже, но если непонятно - можно забабахать.
ЗЗЫ. Предложенный метод - не единственный. Придумался вот ещё один, эквивалентный по степени достоверности результата, так что приводить его не буду.
Естественно, ПСП данным методом определяется с точностью до знака. Восстановить знак можно только декодировав сообщение, и выбрав один из 2-х вариантов.