Цитата(kaf @ Jul 12 2006, 23:02)

Цитата(=GM= @ Jul 12 2006, 20:28)

Лучше взять 8 выборок на период (частота выборок 144 кГц, т.е. прерывание каждые 6,9 мкс), тогда будет легко работать с байтовыми эталонами (просто делать два XOR каждые 8 прерываний, если по таблице, то можно прямо в прерывании). Ну а поскольку решение о принятом бите надо принять за 880 мкс (для авр это вагон времени), то еще останется время на выработку тактовой частоты и другие задачи.
Еще раз повторюсь есть несколько алгоритмов демодуляции BPSK, но в моем случае ключевую роль играет то, что я не могу выставить точную (кратную) частоту прерываний в контроллере по отношению к частоте несущей (а частота фазовых манипуляций привязана к частоте несущей).
Это не обязательное требование.
Хуже то, что у вас несущая гуляет несколько +- ~3%. Но и это может не сказаться так фатально, нужно промоделировать. Сделайте алгоритм в матлабе и посмотрите, что получится. Я бы сам сделал (просто интересно, но времени сейчас нет, через неделю в отпуск и доделываю все дела).
Критичное место, которое может не дать нормально работать алгоритму при этих условиях - это то, что когда вы домножаете входной сигнал на несущую, в результате получатся суммарная и разностная частоты. Далее при усреднении на длине, кратной периоду локальной несущей получается следующее:
Если локальная частота и несущая сигнала равны, то в выходном сигнале будет присутствовать удвоенная частота, которая при усреднении будет фактически задавлена ФНЧ с АЧХ sin(x)/x.
Если частоты разные, но суммарная частота не будет попадать на минимум функции АЧХ, соответственно какая то ее часть пролезет на выход и будет там пакостить.
Если при существующих отклонения несущей это становится критично, то можно попробовать:
1. Использовать ФАПЧ на несущую, то есть перейти к когерентному детектированию. Для этого реализовать петлю Костаса, и там демодулированный сигнал можно будет снять прямо с выхода одного из плеч ФАПЧ.
2. Использовать фильтр после перемножителя с другой АЧХ, который не будет обладать недостатком усредняющего фильтра.
Цитата
При кратных частотах выборки частоте несущей у меня с демодуляцией проблем нет, но только она начинает гулять (а плюс еще дребезг фронта при скачке фазы) у меня получается полный бардак.
Какой алгоритм вы используете? Можете привести матлабовскую его реализацию?