Jump to content

    

Состояния демодулятора, диаграмма работы, логика мониторинга, переключений и т.д.

По-моему мнению, зачастую куда сложнее отладить логику работы демодулятора по сравнению с алгоритмами по отдельности. Грубая синхронизация, точная, демодуляция, оценки ОСШ и канала - всё это моделируется относительно несложно по отдельности. Однако нужно в работу приемника заклдывать, что делать при пропадании сигнала, как организовать переход от более точной обратно к грубой синхронизации, при этом всём нужно следить за буферами, флагами и т.д. Если по алгоритмам полно публикаций и моделей, то почему-то вопросы продумывания логики работы демодулятора в целом нигде не разбираются. Например, мониторинг разных порогов при работе ФАПЧ, чтобы дать оценку корректности её работы и понять, нужна ли грубая пересинхронизация, я встречал только в книжке Незами. Саму реализацию данного подхода я видел в работающем коде на одной из прошлых работ, когда только начинал работать в области цифровой связи.

Существуют ли какие-то нибудь практические книги, публикации, подобные труду Незами, в которых объясняется принцип функционировая приемника? Безусловно, возможны сотни комбинаций из алгоритмов слежения, оценок, демодуляции, для каждой будет своя диаграмма работы. Здесь как раз проявляется искусство инженера. Но всё-таки захотель увидеть что-то фундаментальное на конктретном примере от более опытных и знающих.

Share this post


Link to post
Share on other sites

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

Часто получается, что физический и канальный уровень тесно сплетены и в реальном времени обмениваются всякими флагами. А вот 3-й уровень уже мало связан с первыми двумя.

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

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

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

 

Share this post


Link to post
Share on other sites

@quato_a у нас тоже такое разделение используется. Я раньше в основном занимался моделированием и реализацией отдельных алгоритмов для физического уровня. Сейчас допиливаю доставшийся демодулятор, но он настолько ужасен, что лучше переписать самому. Пропуски фреймов в начале, нет толком флагов-состояний, какие-то срывы синхронизаций, дофига банальных описок и ошибок. Начал заводить флаги, делать разные проверки, посыпались буферы, где-то вообще начало зацикливаться. В итоге улучшения, безусловно, есть, но тратится много времени и не всегда решения красивы. Перед тем, как переписывать, хочу как следует продумать логику и структуру работы, чтобы в итоге самому не сделать нечто подобное. То есть сами отдельные элементы мне понятны, но как такогово опыта сделать полностью "с нуля" нет. Видимо, в данном случае только практика поможет.

Спасибо за ссылку. Читаю.

Share this post


Link to post
Share on other sites
6 hours ago, Grizzly said:

Существуют ли какие-то нибудь практические книги, публикации, подобные труду Незами, в которых объясняется принцип функционировая приемника? Безусловно, возможны сотни комбинаций из алгоритмов слежения, оценок, демодуляции, для каждой будет своя диаграмма работы. Здесь как раз проявляется искусство инженера. Но всё-таки захотель увидеть что-то фундаментальное на конктретном примере от более опытных и знающих.

Мне не встречалось, все на собственном опыте. У меня стоит специальный секвенсер, который аппаратно контролирует статистику работы приемника и принимает решения по какому сценарию работаем.

Вот тут как раз должен помочь симулинк со своим стейт флоу. расписать основные параметры, крутиляторы и варьировать алгоритмы 

Share this post


Link to post
Share on other sites
10 hours ago, Grizzly said:

@quato_a ... Сейчас допиливаю доставшийся демодулятор, но он настолько ужасен, что лучше переписать самому...

Знакомый опыт. Тоже приходилось рефакторить доставшийся модем... много боли

Share this post


Link to post
Share on other sites
8 часов назад, des00 сказал:

аппаратно

У меня пока что программная реализация с последующим переносом на DSP и использованием всяких аппаратных блоков типа FFT.

3 часа назад, quato_a сказал:

много боли

Эх, буду набираться опыта :drinks:

8 часов назад, des00 сказал:

стейт флоу

Тоже думал про его использование.

Share this post


Link to post
Share on other sites

Прочитайте описание уровня MAC для вашей системы, или для схожей с вашей. По номенклатуре межуровневых сигналов вы сможете понять логику работы, какие блоки вам нужны в PHY, какие оценки и т.п.

Share this post


Link to post
Share on other sites
10 часов назад, FatRobot сказал:

какие блоки вам нужны в PHY, какие оценки и т.п.

С этим разобрался. Осталось грамотно воедино собрать и заставить работать :) Пока допиливаю доставшееся в наследство, но, скорее всего, перепишу.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now