Страница 1 из 2
Помехоустойчивое кодирование на обычных МК .
Добавлено: Сб мар 09, 2019 22:45:59
RadioHAM-433
Хай всем! Как выясняется весьма быстрая потеря телеметрии по аудиканалу при незначительном шуме на изображении. Тут вопрос про кодирование для приёма с шумами. Обычное кодирование с пилот тоном и без синхронизации ставит крест даже на приёме пакета с ошибкой не говоря о приёме данных без ошибки с шумами потому я рассматриваю несколько видов кодировок но они очень похожи.
Вот так получается обычная кодировка к примеру: (2 пилот тон, 1 и 0 биты данных) 22210010101010222. Пилот так же завершает пакет. Сейчас я использую 200, 400, и 600мкс длительности 600 пило тон, хотя и 100мкс должно пройти.
Вариант с пошаговой кодировкой и того 3 длительности (3 пилот тон, 2 синхронизация и 1 и 0 биты данных), и того получаем к примеру 333312012121020202333, притом можно увеличить избыточность 33331112220002222333333 тогда приём скажем 2-х импульсов нужной длительность из пачки дублей будет достаточно, притом можно дублировать больше и того можно получить большую помехоустойчивость.
В принципе любой из вариантов позволит принять пакет с ошибкой если синхронизация не потеряна хотя это я не рассматриваю.
Но второй вариант ставить синхронизация каждый байт это уменьшит количество служебных данных но такое рассматривать я пока не хочу как это требует применение алгоритмов исправления ошибок на высоком уровне что почти так же недостижимо как и сложные варианта спектрального кодирования на таких МК (mega328) сейчас тестовый вариант на tiny85 в ПДУ на приём на фоне сборки ПДУ.
Я конечно понимаю что аудиканал как то криво реализован что он начинает шуметь раньше изображения это явно ненормально, возможно переход на более узкую полосу (заменой фильтра) или переделка даже приёмника. В принципе там использует приёмник который выдаёт ПЧ (и это главное) остальное херня 2 микры одна видео другая аудио, 2 ПЧ фильтра и пару дросселей (1 подстроечный) это всё, но и МК, данные на приёмник идут по 2-х проводной линии не уверен что I2C, так же будет возможно произвольной установки частоты против канальной.
Есть другие варианты с кодировкой?
Или может какие то микры доступные для передачи данных по аналоговому каналу?
Re: Помехоустойчивое кодирование на обычных МК .
Добавлено: Сб мар 09, 2019 23:24:03
nds
подробности то где какая скорость нужна в какой среде и почему вообще передача аналоговым сигналом?
Re: Помехоустойчивое кодирование на обычных МК .
Добавлено: Вс мар 10, 2019 01:26:35
RadioHAM-433
Канал вообще то аналоговый обычная FM модуляция (притом не самый лучший), а скорость такая какая пройдёт по каналу так по ходу настроиться. А причём тут скорость? Скорость к кодировке отношение не имеет! Но я вижу другой кодировки просто быть не может в данном случае, остаются аппаратное решение в виде микры передачи данных по аналоговому каналу.
8-12кГц проходит, но 8кГц точно проходит вроде 10кГц гарантированно, но видимо оно так и есть. Но тут зависит от передатчика еще, передатчики разную девиацию гонят, притом выше определённой не поднимают при росте сигнала и девиация явно маловата, надо передатчик ковырять. Схемотехника разная, так что не удивительно что работают по разному, тем более аудиоканал на него плевать он бонус, есть вообще без аудио но это самые мелкие, такие я не использую.
Предполагаю что никто еще не гонял телеметрию с аппарата по аудиканалу я по крайней мере о таком не слышал (фИрменное такого не продают а от самоделок все моделисты носы воротят они китайскому высеру поклоняются за которое еще барыги ухитряются брать 10 цен, но по крайней мере на больших форумах такое не приветствуется мягко говоря, там главное покруче фирма, побольше жаргонных выражений)

. А это ведь уже готовый канал, что очень актуально для мелкой леталки, помимо платы еще и антенна. Так что использование аудиоканала очень актуально. Его как правило никто не использует, но иногда звук по нему гоняют если микрофон на камере имеется и камера не запечатана в гермокожух.
Re: Помехоустойчивое кодирование на обычных МК .
Добавлено: Вс мар 10, 2019 02:34:09
SIM31
[uquote="RadioHAM-433",url="/forum/viewtopic.php?p=3586999#p3586999"]Его как правило никто не использует, но иногда звук по нему гоняют если микрофон на камере имеется и камера не запечатана в гермокожух.[/uquote]
DTFM же есть, и обычные модемы от 300 бит/с и выше. Тема известная и там всё давно проработано, и максимальная скорость и коррекция ошибок.
Вот тут тема похожая
http://forum.easyelectronics.ru/viewtop ... 14&t=35433
http://forum.easyelectronics.ru/viewtop ... 0%B0%D0%BB
http://forum.easyelectronics.ru/viewtop ... 0%B0%D0%BB
...
Я бы делал самый простой вариант с фазовой модуляцией, даже АЦП не нужен, по длительности импульсов определяем частоту и декодируем в поток данных. Там самосинхронизирующийся код.
Re: Помехоустойчивое кодирование на обычных МК .
Добавлено: Вс мар 10, 2019 12:14:20
RadioHAM-433
DTMF это и есть спектральное кодирование то есть аналоговое. Цифровое под аналоговый канал конечно же идёт но там узкий диапазон скоростей который даёт преимущество над шумом, а спектральное там почти до бесконечности повышать отношение сигнал/шум со снижением скорости.
Делать спектральное кодирование/декодирование понятно программными средствами конечно же никто не будет в любом случае.
В данном случае я просто решил как уточнить что другого варианта нет с кодировкой нет. Но а так же как я понимаю подобных микр доступных нет для работы по аналоговому каналу с различными скоростями? То есть при потери пакетов просто переход на более низкую скорость.
Поток телеметрии в случае передачи ориентации аппарата сильно возрастает, делают так накладывают OSD видео и это всё передают, но ведь это не мой метод! Я перадаю чистый сигнал а уже на приме могу наложить, но скажем при слабом сигнале будет просто низкая частота обновления телеметрии.
Это временное решение скорее всего использовании аудиканала, хотя иметь такую возможность надо без каких либо вариантов, на данном этапе МК телеметрии интегрирован на плату питания видеоканала, и всё вот и готов обратный канал просто и сердито!
Маленькая леталка и куча антенн это же бля

лучше сразу

. А ведь все эти 2.4ГГц и уж подавно 5.4ГГц это опять таки не мой метод! Не выше 1ГГц или там где то на ДМВ.
Мне уже на длях придут видеопередатчики ДМВ диапазона постараюсь от 1.2ГГц отказаться для замемки.
Re: Помехоустойчивое кодирование на обычных МК .
Добавлено: Вс мар 10, 2019 12:25:42
nds
воот
уже выяснилось что аппарат у вас летает
а ведь могли предложить использовать готовый телефонный модем и были бы правы потому что информацию от которой зависит решение из вас клещами выдирать нужно
осталось выяснить необходимую дальность и ограничения по массе и энергопотреблению
Re: Помехоустойчивое кодирование на обычных МК .
Добавлено: Вс мар 10, 2019 12:30:17
ПростоНуб
Для аналоговых каналов важно, чтобы интегральная составляющая сигнала была нулевой. Я бы использовал в Вашем случае дифференциальное Манчестерское кодирование на нижнем уровне и протокол коррекции ошибок на более высоком уровне.
Протоколы коррекции ошибок, по возрастанию сложности алгоритма:
1. Продольно-поперечный контроль четности. То есть бит четности вычисляется для каждого байта, а каждые N байт - сумма по модулю 2 всех байтов. Получается матрица, позволяющая исправлять одинарные ошибки. Может быть расширен дополнительным байтом циклической четности, что позволит исправлять двойные ошибки.
2. LDPC - тоже основан на расчете четности, но по предварительно расчитываемой матрице
3. Код Хемминга
4. БЧХ-коды (частный случай - код Рида-Соломона)
Re: Помехоустойчивое кодирование на обычных МК .
Добавлено: Вс мар 10, 2019 13:03:48
КРАМ
К сказанному передо мной остается лишь добавить, что стоит пустить по каналу обычный меандр с рейтом передаваемых сообщений и посмотреть во что он превратился на приемной стороне.
Есть смутное подозрение, что узковаты штанишки...
Но для односторонней связи Боуз-Чоудхури-Хоквингем смотрятся предпочтительнее.

Re: Помехоустойчивое кодирование на обычных МК .
Добавлено: Вс мар 10, 2019 14:34:37
kaetzchen
в модуляцию вводится еще один параметр- время, и надо делать вжык-вжик-вжык по спектру, скорость, бодрейт при этом падает, Чирп-модуляция типо.
Re: Помехоустойчивое кодирование на обычных МК .
Добавлено: Вс мар 10, 2019 16:56:18
SIM31
DTMF это и есть спектральное кодирование то есть аналоговое. Цифровое под аналоговый канал конечно же идёт но там узкий диапазон скоростей который даёт преимущество над шумом, а спектральное там почти до бесконечности повышать отношение сигнал/шум со снижением скорости.
Делать спектральное кодирование/декодирование понятно программными средствами конечно же никто не будет в любом случае.
DTMF без проблем декодируют микроконтроллером, даже PIC на 4 МГц декодирует
http://kazus.ru/articles/146.html
http://ua3vvm.qrz.ru/digital/html/dtmf-decoder.htm
Но проще фазовая модуляция. Передается меандр, высокие частоты обрезаются аналоговым трактом автоматически, на приемной стороне работаем с тем что есть, чем выше требования к скорости и ниже соотношение сигнал/шум тем сложнее алгоритм. В самом простом случае при медленной скорости и качественном канале можно работать как с дискретным сигналом (например 100 периодов синусоиды на бит сигнала), а при высокой скорости, уже сложнее, если на 1 бит приходится на 1-3 периода.
Например частота передается 5000 Гц, на 1 бит 100 периодов несущего сигнала скорость 50 бит/с, алгоритм проще некуда и даже АЦП не нужен. Просто детектируем переход нуля компаратором
Спойлер

А если нужно будет 500-1500 бит/с, тут нужно будет восстанавливать исходный сигнал и тупо 100 периодов ждать собирая статистику по сигналу не получится, нужен будет АЦП и немного более сложный алгоритм, но без преобразования Фурье и подобной жести.
Просто сравниваем фазу сигнала, опережает ожидаемое значит бит 0, отстает значит бит 1.
Или то же самое с частотой. Передаем частоту 2500 Гц - бит 0, частота 5000 Гц - бит 1. Тут даже проще, никакая синхронизация не нужна. Считаем интервал перехода через 0 сигнала и вычисляем наиболее похожу частоту.
Re: Помехоустойчивое кодирование на обычных МК .
Добавлено: Вс мар 10, 2019 17:08:13
ПростоНуб
[uquote="SIM31",url="/forum/viewtopic.php?p=3587581#p3587581"]DTMF без проблем декодируют микроконтроллером
без преобразования Фурье и подобной жести.[/uquote]
Вы так шутите? DTMF декодируют на МК алгоритмом Герцеля, который как раз и является реализацией дискретного преобразования Фурье.
Добавлено after 2 minutes 6 seconds:
[uquote="SIM31",url="/forum/viewtopic.php?p=3587581#p3587581"]Но проще фазовая модуляция[/uquote]
Фазовая модуляция плохо применима для аналоговых каналов, где важна нулевая интегральная составляющая сигнала.
Re: Помехоустойчивое кодирование на обычных МК .
Добавлено: Вс мар 10, 2019 17:12:55
SIM31
[uquote="kaetzchen",url="/forum/viewtopic.php?p=3587463#p3587463"]в модуляцию вводится еще один параметр- время, и надо делать вжык-вжик-вжык по спектру, скорость, бодрейт при этом падает, Чирп-модуляция типо.[/uquote]
И как это ловить на 8-битном микроконтроллере? ))
Re: Помехоустойчивое кодирование на обычных МК .
Добавлено: Вс мар 10, 2019 17:16:10
RadioHAM-433
что стоит пустить по каналу обычный меандр с рейтом передаваемых сообщений и посмотреть во что он превратился на приемной стороне
Да жуть в что он превратится!
Вот на входе меандр почти, но немного сглажены импульсы, RC фильтром он же ШИМ фильтрует по факту, тут ШИМ используется только для симметрии сигнала 127 +/- 127.
Зы я вроде и хочу биты дублировать только еще и надо переход между битами то есть синхронизация, а то ведь бит он уже становится неопределённым по количеству импульсов.
Или то же самое с частотой. Передаем частоту 2500 Гц - бит 0, частота 5000 Гц - бит 1. Тут даже проще, никакая синхронизация не нужна. Считаем интервал перехода через 0 сигнала и вычисляем наиболее похожу частоту.
Сразу видно что ты не когда не делал ни одного алгоритма передачи нормального.
Не коррекция ошибок на высоком уровне бред.
Манчестеровское кодирование а как там можно исправлять ошибки на высоком уровне? Там в принципе пакет с ошибкой принять нельзя уже.
Сорри файл не вставился
https://yadi.sk/d/FGKph8BCMN6FRQ
Re: Помехоустойчивое кодирование на обычных МК .
Добавлено: Вс мар 10, 2019 17:23:56
SIM31
[uquote="ПростоНуб",url="/forum/viewtopic.php?p=3587592#p3587592"]Фазовая модуляция плохо применима для аналоговых каналов, где важна нулевая интегральная составляющая сигнала.[/uquote]
Там канал имеет ограничение по нижним частотам, скорее всего 50-100 Гц и никакой интегральной составляющей не будет. Думаю фазовая модуляция переживет, если снизу частоты порежут.
Картинка из интернета первая попавшаяся, даже цифры похожие
Спойлер

Добавлено after 6 minutes 36 seconds:
[uquote="RadioHAM-433",url="/forum/viewtopic.php?p=3587600#p3587600"]Да жуть в что он превратится![/uquote]
Да любой цифровой сигнал на длинной линии жуть, вот RS232 на 20 метров кабель
Ну или тут попроще конечно
И передается без ошибок каким-то образом. Выглядит ужасно, но в нужные моменты времени биты принимают нужный уровень и нормальной распознаются. Там и шумы, и звон и емкость кабеля, но работает же.
Re: Помехоустойчивое кодирование на обычных МК .
Добавлено: Вс мар 10, 2019 17:27:12
RadioHAM-433
https://yadi.sk/d/FGKph8BCMN6FRQ
Да работает конечно.
По нижним частотам хз ниже пилот тона быть не может а это выше килогерца, это протокол для аналоговых каналов. Только у цифрового сигнала есть одно маленькое НО 0 разрядность, у спектра бесконечная.
А вот спектральное кодирование и после каких манипуляций ты сможешь найти в них интервалы похожие на 2 и 4 кило? На слух их слышно на спектре видно, а вот по импульсам они не отличимы от шума после преобразования их в 1 и 0 там будет настоящий шум тут сигнал -22дБ вроде бы. Притом на слух их отлично слышно!
https://yadi.sk/d/4Jm5Qadgc1UgoQ
Я имел ввиду коррекция ошибок на высоком уровне для это не для этого железа.
Re: Помехоустойчивое кодирование на обычных МК .
Добавлено: Вс мар 10, 2019 17:38:04
КРАМ
[uquote="SIM31",url="/forum/viewtopic.php?p=3587603#p3587603"]Да любой цифровой сигнал на длинной линии жуть, вот RS232 на 20 метров кабель[/uquote]
Не фантазируйте. У Вас никудышняя метрика.
Тем более, что RS232 используется только до 15 метров.
Для того, чтобы нужный уровень был в нужное время, стартовый бит должен быть корректно определен.
Для работы на длинный кабель необходимо этот кабель корректно терминировать. И тогда в нем и на 200 метров на нагрузке все ОК. По форме мало отличается от исходного сигнала, только амплитуда меньше.
Re: Помехоустойчивое кодирование на обычных МК .
Добавлено: Вс мар 10, 2019 17:46:23
RadioHAM-433
Но вообще провод от радиоканала отличается тем что по радио расстояние не искажает сигнал. Для радиоканала и аналоговых каналов протоколы не имеют привязки к полярности и симметричен. Разница лишь в том что для аналогового канала сигнал двухполярный, есть 0 это будет всё что ниже 0, а 1 что выше. Но это лишь абстрактное описание к реальным 0 и 1 отношения не имеет как вообще байты в самом простом варианте передаются через 1 инверсно.
А в линии колебания возникают их-за несогласования. Вон как в видео сигнале уже через резюк 75Ом согласование и на другой стороне тоже 75Ом иначе там вообще так размажет с таким то спектром и колебаниями после импульсов синхронизации

.
Re: Помехоустойчивое кодирование на обычных МК .
Добавлено: Вс мар 10, 2019 17:50:59
SIM31
[uquote="КРАМ",url="/forum/viewtopic.php?p=3587626#p3587626"]Для того, чтобы нужный уровень был в нужное время, стартовый бит должен быть корректно определен.[/uquote]
Стартовый бит и определен, как и любой другой. Если сравнение по красной линии будет без потери бит передача данных, единственное что уменьшается помехоустойчивость (нужно терминатор ставить, но можно и не ставить если всё устраивает)
там передается что-то вроде 001111111 001111111 001111111
Re: Помехоустойчивое кодирование на обычных МК .
Добавлено: Вс мар 10, 2019 17:56:25
КРАМ
[uquote="RadioHAM-433",url="/forum/viewtopic.php?p=3587600#p3587600"]Да жуть в что он превратится!
Вот на входе меандр почти, но немного сглажены импульсы, RC фильтром он же ШИМ фильтрует по факту, тут ШИМ используется только для симметрии сигнала 127 +/- 127.[/uquote]
Что у Вас за идиотская привычка излагать проблемы каким то птичьим языком? Вы можете привести эпюры сигнала после модуляции на передающей стороне и эпюры после демодулятора на приемной? Нахрена мне слушать этот пердеж? Что я могу из него узнать о сигнале?
Или Вы пытаетесь протолкнуть старую идею ШИМом заменить ЧМ? Я Вам раньше говорил, что это не прокатит, в отличии от АМ.
Добавлено after 1 minute 40 seconds:
[uquote="SIM31",url="/forum/viewtopic.php?p=3587640#p3587640"]Если сравнение по красной линии будет[/uquote]
У Вас приведены ДВЕ диаграммы. Первая - никуда не годная. Скорее всего в ней земля подвешена.
Добавлено after 2 minutes 51 second:
[uquote="RadioHAM-433",url="/forum/viewtopic.php?p=3587633#p3587633"]Разница лишь в том что для аналогового канала сигнал двухполярный[/uquote]
Причем тут двухполярность? В дифференциальной линии нет никакой двухполярности. Еще раз предлагаю НА РУССКОМ ТЕХНИЧЕСКОМ ЯЗЫКЕ описать примененное решение. И привести измеренные эпюры.
Re: Помехоустойчивое кодирование на обычных МК .
Добавлено: Вс мар 10, 2019 17:58:39
RadioHAM-433
Так я кинул сигналы, вообще то ни каких проблем нету! До передатчика там почти прямоугольные импульсы немного сглаженные, я не сохранял это всё оно не актуально в принципе
https://yadi.sk/d/FGKph8BCMN6FRQ
После прохождения срез по высоким импульсы приняли вид треугольных а более короткие вообще похожи на синус. Я кинул именно сам сигнал!
Какая к чёрту дифференциальная линия это аналоговый канал! Аналоговый канал этот то что не пропускает абсолютное значение, то есть имеет ограничение по низким частотам.