[an error occurred while processing this directive]
[an error occurred while processing this directive]
|
И при скорости 1200 (достаточно частоты дискретизации 9600)такой алгоритм можно реализовать на 51 с 2 MIPS, а уж на ATmega с новым ядром - вообще без проблем. Алгоритм описан в любом мало-мальски приличном учебнике по радиоприемным устройствам.
Суть алгоритма (оптимальный асинхронный демодулятор) следующая:
1.Выборки входного сигнала Xk поступают в 2 канала. В одном из них они умножаются на cos с частотой 1500 Гц, в другом - на sin той же частоты (синтезируются по короткой таблице). Получаются REk и IMk.
2.Сигналы REk и IMk фильтруются одинаковыми фильтрами типа скользящего среднего длиной чуть меньше битового интервала (1/1200с).
Такие фильтры умножений не требуют. Получаем сигналы FREk и FIMk.
3.FREk и FIMk поступают в линии задержки длиной ровно один битовый интервал каждая. Поэтому в каждый момент доступны как текущие значения FREk и FIMk, так и задержанные DFREk и DFIk.
4.По знаку выражения FREk * DFIMk - FIMk * DFREk принимается решение о текущем принимаемом бите - 0 или 1.
E-mail: info@telesys.ru