Я коррелирую на ДСП, но я там ищу последовательность битов в переданном фазово-модулированном сигнале. По сути в ДСП реализовано то, что у вас в радиомодуле. Потому работаю не с битами, а с большим количеством отсчетов. Раскажу как у меня, и как бы на вашем месте делал.
Цитата
1. В каком виде анализируется поток данных - в аналоговом (с выхода смесителя подаем на АЦП), или в цифровом (после смесителя стоит скажем триггер Шмидта, а с его выхода уже двоичный сигнал поступает на DSP) ?
У меня цепочка сигнала такова -
аналоговый вход -> аналоговый фильтр (передаем в зашумленной полосе, дабы отсеять шум за пределами нашей полосы) -> АЦП -> ДСП.
Весь анализ в ДСП. И ДСП анализирует и коррелирует не биты двоичного сигнала, а семплы.
У вас приходят сразу биты, так что у вас должно быть Радиомодуль->Атмега.
Цитата
2. Сколько семплов приходится на один битик Баркеровской последовательности?
Зависит от вашей частоты дискретизации и скорости передачи данных. Частоты дискретизации зависит от скорости несущей. У меня на 1 бит 24 отсчета. Но у меня не биты с радиомодуля, а аналоговый сигнал оцифрованный.
Из того, что я понял, у вас сразу идут биты. Минимально достаточно 1 семпл на бит (при условии что тактовые приемника и передатчика идеальны). Больше семплов - точнее синхронизация. Я бы опрашивал раза в 2-4 чаще, если мощности хватает. Идут у вас 100 бит/с - я бы опрашивал ногу с частотой 200-400раз в секунду. Так легче синхронизироваться.
Цитата
3. Наверное DSP всетаки делают честную свертку - умножают и складывают. Умножают и складывают. ?
Да. Если в лоб - каждый отсчет сигнала на образец. Если не в лоб - можно применять БПФ.
Цитата
4. Какой уровень погрешности допускают нормальные корреляторы? Если есть возможность делать С семплов на бит, а сама последовательность Баркера N-битная, то максимум коррелятора равен N*C. При достаточно большом С можно вводить погрешности равные или больше N. Верно рассуждаю?
Корреляторы обычно делают так, чтобы они не зависели от чего-либо. И на выходе получаем float число от -1 до 1. С другой стороны у вас сигнал без амплитуды, так что имеет смысл говорить в абсолютных числах. Но, имхо, о погрешности мало смысла говорить. Тут скорее не погрешность, а граница срабатывания, которую мы сами задаем.
Не вижу смысла на каждый семпл пытаться определить 1 или 0 и коррелировать. Вам надо точно синхронизироваться (вот тут корреляция и нужна). А потом уже каждый xx отсчетов сравнивать с последовательностью, задав, что если количество совпавших семплов <xx/2 у вас 0, а если больше, у вас 1.
Или у вас данные не пакетами/непрерывно, а переодически может быть 1 бит данных?