Построение модулятора FSK-модема.

В основе работы модулятора лежит следующее соотношение:

S(t) = cos((ωc±δω)t+ϕ),

где S(t) – передаваемый сигнал, ωc – несущая частота, δω – девиация частоты,

t – время, ϕ – сдвиг фазы.

Для каждого периода Т S(t) с частотой f0 = (fc + δf) или f1 = (fc – δf) соответствует передаче «0» или «1». Если представить

ω0 = (ωc + δω),

ω1 = (ωc – δω),

то можно получить выражения для ωc и δω:

ωc = (ω0 + ω1)/2,

δω = (ω0 – ω1)/2.

При переходе от формирования сигнала «0» к «1» и обратно изменяется только величина приращения аргумента функции косинуса (без изменения аргумента), что исключает появление скачков в формируемом сигнале. При этом происходит только небольшое изменение наклона функции.

Таким образом, для выбранного стандарта fc = 1700 Гц, f1 = 1300 Гц, f0 = 2100 Гц, δf = 400 Гц.

Простейшим способом формирования сигнала в модуляторе при использовании цифровой техники является табличный метод формирования синусоиды. Для этого в памяти модулятора хранится таблица синуса из некоторого числа точек в диапазоне от 0 до 2π.

Число точек в таблице определяется частотой дискретизации, скоростью передачи и частотами единицы и нуля. Частота дискретизации выбирается по теореме Котельникова исходя из максимальной передаваемой частоты и скорости передачи. Согласно теореме Котельникова соотношение частоты дискретизации fД и максимальной частоты (в нашем примере f0) должно быть не менее 2. На практике обычно выбирается соотношение 4 или больше:

fД = 2100 Ч 4 = 8400 Гц. (4)

За время передачи одного бита информации должно передаваться целое число отсчетов синуса. Частота дискретизации выбирается кратной скорости передачи из ряда 600, 1200, 2400, 4800, 9600 Гц. Таким образом, ближайшее значение, превышающее (4), равно 9600 Гц.

Время передачи одного бита информации определяется соотношением

Т = 1 / V ,

где V – скорость передачи данных.

А период дискретизации (время между двумя последовательными дискретными отсчетами данных) определяется соотношением

Δt = 1 / fД .

При выбранной частоте дискретизации за секунду передается 9600 отсчетов синуса и таким образом на один бит передаваемой информации приходится

n = Т / Δt = fД / V = 9600 / 1200 = 8

отсчетов, где V = 1200 бод – заданная скорость передачи данных.

Если выбрать размер таблицы синуса в 9600 отсчетов и выдавать с частотой дискретизации каждый отсчет из таблицы, то за секунду будут переданы все отсчеты из таблицы (один период), что соответствует частоте 1 Гц. Если выбирать из таблицы отсчеты с шагом 2 – получим сигнал с частотой 2Гц, а если с шагом 1300 – 1300Гц.

Таким образом, таблица из 9600 отсчетов позволяет формировать сигналы с частотами, кратными 1 Гц. Но поскольку нам необходимо формировать сигнал с частотами 1300 Гц и 2100 Гц, то совсем не обязательно иметь такую большую таблицу. В нашем случае достаточна дискретность по частоте в 100 Гц.

Найдем наибольший общий делитель для чисел 1300, 2100 и 9600 (f1, f0 и fД соответственно), который равен 100. Разделив данные числа на 100, получим следующие значения S1=13, S0=21 и N=96, где S1 и S0 – шаг по таблице для «1» и «0» соответственно, а N – размер таблицы синуса.

Для уменьшения объема памяти для хранения синуса можно ограничиться только одной четвертью синуса, но при этом усложняется алгоритм формирования синусоиды. Учитывая, что длина таблицы синуса в нашем случае не очень велика, для упрощения алгоритма можно хранить полную таблицу синуса.

Выбирая данные из таблицы с шагом 1, мы за секунду (9600 тактов) переберем таблицу 100 раз (100 периодов синуса), что дает сигнал с частотой

100 Гц, с шагом 13 – 1300 Гц, а с шагом 21 – 2100 Гц, что и требуется при

наших исходных данных.

Таким образом, принцип работы модулятора заключается в выборке из таблицы размерности N отсчетов с шагом S1 или S0 (в зависимости от передаваемого бита) в течение n тактов и выдачи их в АЦП с частотой fД. Затем производится анализ очередного передаваемого бита и выборка продолжается с тем же или другим шагом. Так как при переходе от одного бита к другому изменяется только шаг в таблице (приращение аргумента синуса), то формируемый сигнал не имеет разрывов фазы. Точность формирования сигнала зависит только от стабильности задающего генератора. При выходе адреса за пределы таблицы его необходимо скорректировать, уменьшив на длину таблицы.

Результат работы модулятора при передаче двух стоповых бит («1»), стартового бита («0»), 16-ти информационных бит (FF00h) и двух стоповых бит («1») показан на рис. 1.5.