Свежие обсуждения
Микроконтроллеры

Оптимальный фильтр для манчестера с известными параметрами

1 3

Подскажите физический принцип реализации (без программной формализации).

 

Нельзя ли развернуть вопрос? Что фильтровать, зачем?

 

Многократно повторяющееся кодовое слово в присутствии помех, по спектру совпадающих со спектром самой посылки.
Известна длительность кодового слова, длительность бита, количество битов в слове.
Суть такая. Полезный сигнал детерминирован по времени, помеха случайна.
Пока, кроме простого усреднения ничего на ум не пришло. Оцифровка, последовательное суммирование отсчетов, отстоящих друг от друга на время длительности кодового слова, деление на количество суммирований. Своего рода - текущее среднее. Думаю, что это не оптимальная обработка.
Вот я и спрашиваю, каков оптимальный алгоритм фильтрации?

А зачем фильтровать? Странный вопрос. Чтобы восстановить кодовый сигнал из шумов, ну или, если хотите, повысить достоверность принимаемой информации.

 

Амброзий тут подобным голову всем морочил. Но у него ничего конкретного не было, трёп только.

 

Всё равно не очень понял Речь идёт о программной фильтрации аналогового сигнала?
В том манчестере, с которым я имел дело, я получал логические сигналы, нолики и единички
Вы что, манчестер на АЦП будете подавать?
Во-первых, это нужен очень быстрый контроллер и очень быстрое АЦП. Даже наверное DSP нужен.
Во-вторых, если спектры помехи и сигнала совпадают, то никакое скользящее среднее не поможет. (имхо)
Наверное какой-нибудь корреляционный алгоритм может частично спасти ситуацию.

Из примитивных алгоритмов - запоминать все моменты изменения состояния входа и пытаться их все декодировать (игнорируя переходы, не попадающие в частоту манчестера). При неудаче отбрасывать первый и снова декодировать.

 

типа - делается АОН - надо из нескольких принятых цифр отфильтровать правильную
-------
алгоритмов фильтрации много - надо исходить из мощности процессора(память, скорость)
оптимизация сооветственно процессору - по памяти(оперативке), времени обработки, точности... в зависимости от конкретных требований

 

Манчестер можно представить состоящим из прямоугольных импульсов длительностью То и 2То. Оптимальный фильтр для них - интегратор с соответствующей постоянной времени. А перед обработкой попробуйте сделать когерентное накопление кодовых слов. Отношение сигнал/шум увеличивается как квадратный корень из числа накоплений. Сейчас у меня число накоплений равно 5, а в некоторых проектах доходило до 30, причём сразу в цифре. Но не для манчестера, а для затухающих радиоимпульсов частотой порядка 450 МГц.

 

Уточняю. Манчестерская кодовая посылка является огибающей АМ модуляции сигнала, передаваемого по радиоканалу. Несущая - 125 кГц (кто помнит, тот знает ) Естественно, на предельных дальностях сигнал обрастает шумами и помехами. Задача - получить чистый манчестер, используя тот факт, что одна и та же кодовая посылка передается непрерывно. Естественно, что использовать надо усреднение или накопление (как хотите), тратив на это как можно меньше кодовых слов (времени). Именно в этом и должна заключаться оптимальность фильтрации.

Теперь, что я сейчас сделал в железе. Есть приемник с полосой пропускания по ВЧ, равной 1/То. То - длительность короткого импульса. На выходе амплитудного детектора также установлен подчищающий фильтр с полосой пропускания 1/2То. Таким образом, демодулированная кодовая посылка по форме представляет собой треугольные импульсы меньшей длительности и небольшая плоская вершинка у импульсов удвоенной длительности. По низам полоса тоже ограничена так, что визуально импульс удвоенной длительности дифференцирован. Далее сигнал поступает на 8-разрядный АЦП с частотой дискретизации такой, что на длительность То приходится 32 отсчета (сэмпла). В буферной памяти может храниться информация об оцифрованном сигнале длительностью до 30 слов (можно и больше). Дальнейшая обработка в микроконтролере пока не сделана, а весь буфер по USB сливается в компьютер, в котором и отрабатывается алгоритм наиболее оптимальной фильтрации.

Сейчас реализовано текущее когерентное суммирование отсчетов с периодом корреляции точно равным длительности кодового слова. Далее происходит деление на количество суммирований. Джордж (GM) правильно вещает, что отношение сигнал/шум растет пропорционально квадратному корню из числа суммирований. Но неужели оптимальнее такой последетекторной обработки ничего придумать нельзя?

Теперь по АМ детектору. Известно, что он обладает пороговыми свойствами и при малых отношениях с/ш на входе отношение с/ш на выходе катастрофически падает. Если я выкину АМ детектор и буду оцифровывать сигнал прямо на ВЧ с большой частотой дискретизации, какую оптимальную цифровую обработку можно предложить в этом случае?

AnSi: надо исходить из мощности процессора(память, скорость)
оптимизация сооветственно процессору - по памяти(оперативке), времени обработки, точности...

В этом плане ограничений пока нет. Сначала хотелось бы понять сам принципиальный подход к решению данной задачи. Цель - получить максимальную дальность считывания.

 

Откровенно говоря, по оцифровке ВЧ сигнала, ничего кроме БПФ в голову не приходит. Но тут микроконтроллер наверняка не вытянет, без DSP не обойдетесь. GM, думаю, более точно ответит.

 

chav1961: Но тут микроконтроллер наверняка не вытянет, без DSP не обойдетесь.
Да это не проблема. Хоть DSP, хоть FPGA, в которых лично я ничего не понимаю, но есть люди... Меня интересуют оптимальные алгоритмы для данного конкретного случая в популярной интерпретации, хоть с БПФ, хоть с вейвлетами...