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

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

1 2 3

Zandy, можно попробовать сделать что-то наподобие Уолша. Т.е. если кодовая посылка заранее известна, и ее просто требуется обнаружить, то продетектированный сигнал умножаете на ожидаемую кодовую посылку-шаблон (грубо говоря, там, где в шаблоне лог.1 - на единицу, там, где лог.0 - на минус единицу - в реальности это не совсем так) и накапливаете сумму. Есть ряд нюансов (в частности, со сдвигом фаз, нечетными гармониками и т.д.), но они все более-менее решаемые.

 

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

По-моему, лучше делать когерентное накопление до любой обработки, до детектора по крайней мере, меньше будет проигрыш в осш. Ещё лучше выкинуть детектор нафик совсем и сделать квадратурную обработку в цифре, получите идеальный детектор и практически потолок осш. Да, делить не надо, зачем вам лишние хлопоты? И не вещаю я насчёт sqrt(snr), это известный факт, в литературе отражён.

Что касается оптимального приёма модулированных радиоимпульсов в гауссовских шумах, то есть два подхода: согласованная фильтрация и коррелятор. Первый работает как бы в частотной области, второй во временной, теоретически они дают равное осш на выходе. Но требования к оборудованию различаются. Для согласованной фильтрации Кфильтра должен быть равен комплексно-сопряжённому спектру сигнала. Для коррелятора нужно иметь сигнал, когерентный с принимаемым. Естественно, что разные подходы приводят к разным реализациям да ещё с множеством компромиссов.

Если кодовое слово остаётся постоянным, то могу предложить ещё один подход: коррелятор на полное накопленное кодовое слово. Получите максимум максиморум осш. Здесь недостаток один, но существенный - времени на обработку потребуется вагон.

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

Ну так, используйте корреляционный приём, лучше всё равно нет. К концу накопления можно выделить местную когерентную несущую, обработать накопленный сигнал на корреляторе и получить, как я уже сказал, идеальный детектор и практически потолок осш.

Zandy: Есть приемник с полосой пропускания по ВЧ, равной 1/То. То - длительность короткого импульса. На выходе амплитудного детектора также установлен подчищающий фильтр с полосой пропускания 1/2То.

Тут у вас потери будут на длинных импульсах. Ещё одна мысль вслух, что можно залудить два коррелятора - на То и 2То и потом принимать решение, надо обдумать на досуге.

Zandy: Манчестерская кодовая посылка является огибающей АМ модуляции сигнала, передаваемого по радиоканалу

Всё, что здесь обсуждалось, никакого отношения к манчестеру не имеет, просто ключевая модуляция.

 

Большое спасибо за ответы!
Я сейчас в отпуске. Честно говоря не до цифровой обработки.
Джордж, не против, если я через пару недель еще тебя малость помучаю?

 

Не против, чем смогу, помогу. Учти, меня тут активно выпихивают на курсы по программированию на с++, я упираюсь, но пойти придётся, ничего не поделаешь, это будет где-то примерно через месяц.

 

Уже в каком-то топике я писал про современное решение RX : прямое преобразование ( два смесителя + - 90град.гет.) и на входы звуковой карты компа.. софта уже немало наработано. Лучше не сделать. Сейчас возможно залить программу с РС в совместимый одноплатный контроллер.

 

2Zandy: Обсасывая предмет данного разговора на практике могу сказать что тут значительно проще изменить схему для увеличения дальности чем написать алгоритм на _подходящем_ микроконтроллере. Городить считыватель чуть ли на ARM9 смысла никакого нет. Значительно проще: увеличить окно антенны; поставить довольно сильный входной усилитель и фильтр второго-четвёртого порядка с планкой в 3-5 кГц.

 

Wiza: увеличить окно антенны
А что это такое? Улучшить антенну, т. е. ее Кус. ? К сожалению, это ничего не дает, т. к. внешние помехи гораздо сильнее внутренних шумов.
Остальное тоже не понял, зачем.

 

Увеличить активную рабочую зону. Обрати внимание что размер рамки антенны для считывания с расстояния сантиметров в 50-70 составляет примерно 25х40 см. При повышении Кус входного каскада приходится более жестко фильтровать сигнал. Ну а сам Кус, понятно, влияет на чувствительность. И внешние помехи в диапазоне 2 кГц - всеже большая редкость. Получается что использование полосового фильтра тут более правильно.

 

Это не считыватель, точнее, не совсем считыватель. Что касается аналоговой части (антенны там всякие, усилители и пр.) - это совершенно другая тема, которую частично уже обсуждали. Здесь все резервы практически исчерпаны. Давайте не будем отвлекаться и будем рассматривать аналоговую часть только с точки зрения последующей наиболее оптимальной цифровой обработки. Речь идет об отношении с/ш в полосе 1/То меньшем или равным 1. Сложность и количество апаратурных затрат не пугает, т. к. ус-во не серийное, о цене комплектующих можно не заботиться. Стоимость трудоемкости разработки все равно будет много выше.

 

каков "То" - сколько периодов несущей(125к) попадает в "один бит" и в "полную цифру".
максимальные габариты, энергопотребление,...?
использование ПК допускается? (стационарный, переносной прибор?)