Цитата(Waso @ Sep 26 2011, 12:54)

megadocent, спасибо за развернутый ответ!
В том-то и дело, что длинными пакетами до 255 байт данных + служебная информация. Толи кварцы так врут, толи эффекты в радиоэфире такие случаются, толи погрешность интервалов семплирования у меня набегает - но в реальных условиях если синхронизироваться только по старту длинного пакета, то к концу синхра теряется. Поэтому надо периодически корректировать номер семпла.
Меня Баркер привлек своей АКФ и тем что применение псевдослучайных последовательностей позволяет искусственно увеличить чуствительность приемника. Т.е. выделять сигнал при меньшем SNR. Но, как видится теперь, это лучше всего работает при анализе аналогового сигнала с приемника. А у меня данные с радиомодуля выходят в двоичном виде. 0 и 1.
Буду применять манчестер и оверсемплинг - это классика в моей ситуации. Если кому понадобится - погуглите "Oversampling and data decision". Мне этот труд был известен и ранее, но хотелось попробовать Баркера.

Пожалуйста.

1) Тактирование кварцом? Ну тогда хз. Не должно убегать сильно за пару сотен байт. Хотя... Вы опрашиваете ножку? Сами? И посылаете дергая из программы ножку? Тогда ничего удивительного. А если у вас прерывание важное пришло? Одна Атмега потупила, не послала байт, послала с опозданием, вторая протупила, пропустила бит и пошла опрашивать со сдвигом. Тут очень внимательно надо 7 раз перепроверить, что принимаете вы точно с той же частотой, что и передаете.
2) Пробовали на листе бумаги (excel тоже удобно) 2 колонки написать. Что приняли и что пришло?
Попробуйте. Очень полезно.
а) Если у вас именно систематически (и довольно редко) уезжает - увидите на скольких битах вы уезжаете. Проверяйте кварцы.
001100110011001100110011
001100100110010011001001
каждый 7 бит теряется. От кварца, конечно, должно не так ехать... А 1 бит в кучу-кучу-кучу бит... Но тем не менее.
б) Если у вас уезжает случайно, не систематически, тогда я грешу на то, что опрашиваете/посылаете не равномерно.
001100110011001100110011
001100100110110011001100
Потерян 8 и 14 биты.
в) Случайные битовые ошибки - тогда и правда шум.
001100110011001100110011
001010110001001110110101
3) Синхро надо не только зацепить, но и корректировать. Это как бы само собой. У меня на бит данных 16 бит ПСП. В бите данных 512 отсчетов. Выгоднее раз в 512 отсчетов проверить 2 соседних, и посмотреть, не уезжаю ли я, чем каждый отсчет гадать что у нас, 1 или 0.
4) ПСП рулит. =) Должна сильно устойчивость к помехам подняться. В разы, по сравнению с сигналом без ПСП. И это не зависит от того, как вы биты получаете. Я вот анализируя сигнал тоже, по сути, выделяю биты, а уже потом биты сравниваю с образцами ПСП. Просто я делаю это за 1 проход и чуть точнее, анализируя сигнал.
5) Сдается мне, у вас не в канале дело. Где-то ошибка. Иначе применение баркера дало бы довольно ощутимые результаты по сравнению с его отсутствием.
Я бы посоветовал:
а) Выписать передаваемый сигнал (поток битов), принимаемый сигнал, сравнить.
б) Проверить что у вас частота, с которой вы выплевываете биты точно равна частоте, с которой опрашиваете.