[an error occurred while processing this directive]
[an error occurred while processing this directive]
|
========
На самом деле, для вполне правильного алгоритма достаточно 2-4
умножения на выборку
И при скорости 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.
*** Не совсем понятно, откуда частота 1500 и почему одна? Если не трудно, дайте ссылку на литературу, где все это описано, а еще лучше на ИНЕТ
========
Видать на TI так и не сходили.
А то увидели бы, что умножений там нужно всего несколько штук да
и делают их в основном свигом и справляется с этим простой MSP
без встроенного умножителя и остаеться у него еще уйма времени.
*** Сходил, посмотрел. В spra347.pdf на стр.18 предложено вычислять что-то вроде свертки входного сигнала т.е. пермножать между собой два синуса: s(n)*s(n-k)=A^2*sin(2*pi*F*Te*n)*sin((2*pi*F*Te*(n-k)), где Te - период дискретизации. Откровенно говоря не знаю, как обойти эту проблему при отсуствии аппаратного умножителя и дефиците времени. Посоветуйте что-нибудь.
========
В чём по твоему выражается плохая помехоустойчивость 1 типа
алгоритмов ?
Кстати а какие частоты 0 и 1 ?
*** Это "не интегральный" способ приема, поэтому любая импульсная помеха приведет к ошибке определения периода.
0 = 1300Гц
1 = 2100Гц
E-mail: info@telesys.ru