Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Передача низкоскоростной телеметрии на 439Мгц- ASK
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
KostyantynT
Добрый день. Стоит задача передачи низкоскоростной телеметрии на очень простых приемниках- передатчиках. Кодирование-декодирование - софтом (ARM).

1. Кодирование 1/0 - кодом Баркера
2. Проверка и восстановление - преамбула +сообщение+CRC сообщения+восстанавливающий код (еще не выбрал).

Лет 15 назад это делал на ассемблере для АВР + добавлял плавающие кода (использовал 128 битные ПСП последовательности). Для 1 и 0 делаем по три бинарных свертки (early,center, later). Дальше нам надо скорректировать частоту опорного генератора. На AVR я просто подстраивал коэффициенты деления таймера. Все работало. В текущем софтовом решении так подстраивать частоту опорного генератора нельзя. Какой простой алгоритм можно использовать для оценки результатов сверток и выделения битовой последовательности?
Fat Robot
Сделайте 'опорный генератор' в софте и подстраивайте его. Все сведется к оцениванию значения сигнала между фактическими отсчетами ацп, т.е. к интерполяции.

В случае ПСП интерполятор может быть очень простым, например zero-order hold, т.е. в зависимости от оцененной и усредненной разности фаз между локальной опорой и тактовой принимаемого сигнала (ваш early-late detector) вы либо дублируете 1 отсчет, либо пропускаете 1 отсчет, либо оставляете все, как есть.
KostyantynT
Цитата(Fat Robot @ Aug 12 2015, 09:23) *
Сделайте 'опорный генератор' в софте и подстраивайте его. Все сведется к оцениванию значения сигнала между фактическими отсчетами ацп, т.е. к интерполяции.
В случае псп интерполятор может быть очень простым, например zero-order hold, т.е. в зависимости от оцененной и усредненной разности фаз между локальной опорой и тактовой принимаемого сигнала (ваш early-late detector) вы либо дублируете 1 отсчет, либо пропускаете 1 отсчет, либо оставляете все, как есть.

Логично, те двигать "фазу". Просто алгоритм надо привязать к системным тикам таймера в ОС и делать свертку в момент его прерываний. Если использовать вместо достаточно длинной ПСП 11 позиционный код баркера может можно будет обойтись без такой точно подстройки фазы и испрльзоввать какой-нибудь мажоритарный алгоритм?
Fat Robot
Конечно. Вы можете подстраивать частоту и/или фазу программного генератора, "тикающего" 1 раз за время псп. на каждый тик вы считаете 3 значения на выходе корелятора для early-late gate, и по "центральному" значению принимаете решение о символе.
KostyantynT
Цитата(Fat Robot @ Aug 12 2015, 10:24) *
Конечно. Вы можете подстраивать частоту и/или фазу программного генератора, "тикающего" 1 раз за время псп. на каждый тик вы считаете 3 значения на выходе корелятора для early-late gate, и по "центральному" значению принимаете решение о символе.

А есть какие-то "рекомендованные" задержки между eraly-late gate и центральным отсчетом относительно битового интервала кода баркера? Или взять чуть меньше половины? Тогда крутизна передачной характеристика петли фапч будет максимальной.
Fat Robot
Ничего нового я вам не посоветую:

http://mathworks.com/help/comm/ref/earlyla...ngrecovery.html



Цитата(KostyantynT @ Aug 12 2015, 08:36) *
А есть какие-то "рекомендованные" задержки между eraly-late gate и центральным отсчетом относительно битового интервала кода баркера? Или взять чуть меньше половины? Тогда крутизна передачной характеристика петли фапч будет максимальной.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.