Перейти к содержанию
    

Отсутствие повторяемости работы демодулятора при эталонном сигнале с векторного генератора

Несколько дней уже бьюсь со следующей проблемой. Есть эталонный сгенерированный OFDM сигнал в MATLAB. Он загружается в векторный генератор, по кабелю подаётся на AD9361, а затем в демодулятор. Запускаю на генераторе однократно по одному фрейму. Помимо демодуляции, пишу сами IQ в приемнике. Fs = 61.44, BW = 56 МГц, в демодуляторе выфильтровываются каналы по 10 МГц. От запуска к запуску спектр сигнала может сильно отличаться. Это даже при сильном сигнале. При -90 dBm я даже корреляции с пилотом не могу найти. Бред какой-то. Шум -174 dBm/Hz, полоса 70 dB, 4 dB на МШУ. Где-то десятка должна оставаться. PAPR 10 дБ. По спецификации для данной полосы и QPSK чувствительность -97 дБм. Да и сама корреляция в модели в fixed point вытягивается при -15 дБ спокойно.

На более низких частотах AD9361 в других проектах работала. Буду ещё раз разбираться с AGC в ней.

На что-то ещё стоит обратить внимание в самом тракте? Вряд ли кабели и разъемы будут так на АЧХ влиять. Если, конечно, кабель не сломан где-то.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У вас очень много неизвестных в задаче в ее исходной постановке: и генератор, и мшу, и линейный тракт, и BB. Вам надо начать с декомпозиции: Отключите АРУ, отладьте мшу, гетеродины все, линейный тракт. Потом АЦП. Потом посмотрите, что выдает векторный генератор. А дальше уже замыкайте ару и подключайте ваш ofdm baseband.

Или же идите с другого конца: подайте IQ с векторного генератора на ацп. только сперва убедитесь, что вы генерируете то, что нужно, и что BB не "захлебывается" на Fs.

Помните, в журнале Радио в рубрике "конструкция выходного дня" была формулировка: "устройство в наладке не нуждается и начинает работать сразу после включения". Это не ваш случай скорее всего.

 

1 hour ago, Grizzly said:

 Бред какой-то.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

8 минут назад, FatRobot сказал:

Отключите АРУ, отладьте мшу, гетеродины все, линейный тракт. Потом АЦП. Потом посмотрите, что выдает векторный генератор. А дальше уже замыкайте ару и подключайте ваш ofdm baseband.

Первым делом завтра как раз выключить АРУ, вручную задавать rxGain на AD и смотреть на квадратуры. С гетеродинами всё нормально. Я уже на RF подаю с генератора. Отстройка не более 2 кГц, так что даже не надо искать целочисленную часть. Оценка частоты происходит корректно. Кстати, даже почти для всех случаев с последующей "кривой" демодуляцией.

А про генератор и такую частоту дискретизации не подумал. До этого на нем гораздо меньшие значения использовали. Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

13 часов назад, khach сказал:

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

Не работал МШУ на входе, с которого заводился сигнал. На соседнем входе на 15 дБ чувствительность лучше. Ожидаемые значения, прописанные в стандарте LTE, увидел. Эх...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Снова вернулся к этому проекту. На канале с исправным МШУ от запуска к запуску вот такая фигня. При этом чувствительность стала лучше по сравнению с неисправным каналом. Но есть еще проблемы. Уровень -60 дБм идет с генератора, а повторяемости в приемнике нет. Под рукой, к сожалению, нет эталонного векторного анализатора сигналов, чтобы проверить сигнал с генератора.

Fs = 61.44 МГц -> dds в 4 раза (ширина нужного сигнала стандартные 10 МГц для LTE). Обработка на 15.36 МГц. И такое через раз :( Может, на плисине клоки гуляют...

spectrum_bad.png

spectrum_good.png

 

Созвездия после демодуляции:

scatter_bad.png.22a29541c606250d3d219570b484f3df.pngscatter_good.png.1d207820899d118b63a67f45032190fc.png

 

Оценка частоты при "плохом" спектре неверная. В 2,5 раза отличается от истинной. Ну и с оценкой канала беда. За один пилот такую изрезанность не вытянуть. Не понимаю, откуда она берется.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 24.10.2019 в 23:36, Grizzly сказал:

Запускаю на генераторе однократно по одному фрейму.

А это как? И что такое "фрейм"? Это часом не один единственный OFDM символ?:)

 

1 час назад, Grizzly сказал:

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

У Вас полоса узкая, меньше 30МГц, сделайте несущую на генераторе под 100МГц и смотрите любым хорошим осциллографом:)

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

13 минут назад, Самурай сказал:

А это как? И что такое "фрейм"? Это часом не один единственный OFDM символ?:)

То есть однократное "проигрывание" записи при нажатии кнопки. 7 OFDM символов, стандартная половина слота LTE.

 

13 минут назад, Самурай сказал:

У Вас полоса узкая, меньше 30МГц, сделайте несущую на генераторе под 100МГц и смотрите любым хорошим осциллографом:)

На картинках уже снесенный в ноль сигнал после прореживания в 4 раза и фильтрации. Так-то с генератора идет на несущей в полосе 56 МГц, но должно всё равно схватить осциллографа.

 

Из-за АРУ могут быть такие искажения в спектре? Я ожидал, что при подключении по кабелю будет примерно одинаковая картина при каждой генерации, а на деле половина не демодулируется.

 

P.S. В модели по этой записи я всё хорошо демодулирую и декодирую. При добавлении АБГШ получаю ожидаемые результаты.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 hours ago, Grizzly said:

Из-за АРУ могут быть такие искажения в спектре? Я ожидал, что при подключении по кабелю будет примерно одинаковая картина при каждой генерации, а на деле половина не демодулируется.

если включен fast attack, то АРУ очень быстро обучается. проверьте дефолтные параметры трансивера. если используете готовую отладочную плату от AD или если в своей плате вывели сигналы ctrl_out[7:0], то можно посмотреть уровень усиления АРУ и проследить его устаканивание. кстати, а случаем не подключили ли управление внешним МШУ на трансивер? если, конечно, его у вас можно байпасить

либо настройте АРУ в мануальный режим и через ctrl_in настройте на нужное усиление.

есть ощущение, что вход трансивера в перегрузке

протестируйте с непрерывным сигналом без модуляции, будет ли идеальный синус после АЦП

как захватывайте данные с axi корки трансивера в ПЛИС? насколько я помню она там выдает и забирает сэмплы на клоке 245,76 МГц. в своей реализации я выбросил dma и подключил разноклоковые fifo на передачу 61,44->245,76 и прием 245,76->61,44 и не имел проблем.

у меня с трансивером проблем не было почти, единственное что фильтры цифровые по умолчанию почему-то не включались.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

15 минут назад, quato_a сказал:

если включен fast attack

slow attack, fast attack сконфигурировать не удалось, но буду еще пробовать

я тоже думал про перегруз, реакция на такой короткий фрейм

но в реальности у меня во всей полосе разные каналы по 10 МГц, поэтому slow attack был выбран. правда, в этом случае АРУ может в основном учитывать во всей полосе самый сильный сигнал, а потом после выфильтровывания придется обрабатывать какой-нибудь слабый канал. хоть ещё одно цифровое АРУ ставь на каждый канал в таком случае

15 минут назад, quato_a сказал:

то можно посмотреть уровень усиления АРУ

плата собственного изготовления. уровень мощности с каналов есть, раз в секунду мониторится, но это, конечно, слишком большой период для моего случая. попробую чаще

 

15 минут назад, quato_a сказал:

будет ли идеальный синус после АЦП

да, это первым делом проверил, всё хорошо.

 

15 минут назад, quato_a сказал:

как захватывайте данные с axi корки трансивера в ПЛИС? насколько я помню она там выдает и забирает сэмплы на клоке 245,76 МГц. в своей реализации я выбросил dma и подключил разноклоковые fifo на передачу 61,44->245,76 и прием 245,76->61,44 и не имел проблем.

уточню у наших плисоводов. я делаю дальнейшую обработку. самое интересное, что на 30,72 проблем особых нет, но сама прошивка несколько иная. FIR в ad9361, отрабатывается один канал 20 МГц

 

15 минут назад, quato_a сказал:

у меня с трансивером проблем не было почти, единственное что фильтры цифровые по умолчанию почему-то не включались.

у нас включаются, но на 61,44 он какой-то не очень, даже с децимацией 2. в моей задаче надо из всей полосы выфильтровывать каналы по 10 МГц, поэтому я решил ограничиться только аналоговым фильтром на 56 МГц, а цифровой сделать с одним коэффициентом 2^15 :) в ПЛИС при децимации канальные фильтры фильтруют нужное

я уже начал сомневаться в том, что можно ли на 2 ГГц пользоваться кабелем для передачи сигнала с векторного генератора в ad9361. не искажает ли он :-)))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

37 minutes ago, Grizzly said:

я уже начал сомневаться в том, что можно ли на 2 ГГц пользоваться кабелем для передачи сигнала с векторного генератора в ad9361. не искажает ли он :-)))

ничего кабель кроме потерь не сделает, если КСВН норм. на моей практике 2,4 ГГц норм по кабелю проходит. можно взять даже самые простейшие ВЧ-кабели на 300 МГц, там будет просто больше затухание.

40 minutes ago, Grizzly said:

отрабатывается один канал 20 МГц

я не совсем понял. у Вас в полосе 56 МГц на один физический приемный канал трансивера приходит несколько сигналов на разных частотах и разной полосы и Вы одновременно их оцифровывайте и обрабатываете? это несколько реализаций/прошивок?

48 minutes ago, Grizzly said:

плата собственного изготовления. уровень мощности с каналов есть

или подключено несколько физических каналов трансивера и каждый раз переконфигурируете его на нужный канал?

 

43 minutes ago, Grizzly said:

хоть ещё одно цифровое АРУ ставь на каждый канал в таком случае

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

 

попробуйте захватить сырые сэмплы с АЦП, будет видно что происходит с сигналом во временной области

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

22 минуты назад, quato_a сказал:

у Вас в полосе 56 МГц на один физический приемный канал трансивера приходит несколько сигналов на разных частотах и разной полосы и Вы одновременно их оцифровывайте и обрабатываете? это несколько реализаций/прошивок?

Оцифровываю сразу всю полосу 56 МГц одним каналом трансивера, а затем выбираю, с каким именно частотным каналом работать. Вот эта фильтрация идёт уже в ПЛИС. Может понадобиться часто и быстро переключаться между каналами, поэтому фильтрация идёт в параллель, а уже решение о том, какой канал демодулировать, принимается позднее.

В случае с полосой 20 МГц - это другой проект. Там всегда только один канал, поэтому на трансивере 30.72 и фильтрация на ПЛИС не требовалась.

22 минуты назад, quato_a сказал:

попробуйте захватить сырые сэмплы с АЦП, будет видно что происходит с сигналом во временной области

Спасибо. Буду пробовать. В версии без фильтрации на ПЛИС это было просто, в нынешней ко мне идут уже расфильтрованные отсчеты с каналов. Попрошу разработчиков, чтобы вывели весь сырой поток.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, забыл, что трансивер 2tx-2rx MIMO.

9 hours ago, Grizzly said:

Попрошу разработчиков, чтобы вывели весь сырой поток.

Попросите разработчиков сделать вам блок управляемого захвата. На подобие ILA отладчика. У меня так в проектах по ЦОС в ПЛИС вставляю блок захвата, который синхронной на клоке работы интересующего блока захватывает массив данных в FIFO и потом выдает этот массив по внешнему интерфейсу на ПК, где можно быстро проанализировать. С ПК отправляется адрес интересующей контрольной точки (например, данных с АЦП, после фильтров, после дециматора, эквалайзера, частотного синхронизатора и проч и проч) на основе которого мультиплексируються входные данные на блок захвата с разных интересующих отлаживаемых блоков. Можно добавить и триггер, по которому будет захват синхронный по нужному событию (например, порог входной мощности превышен и значит пошли символы с АЦП). У меня так в разных проектах блок захвата передает данные по eth или COM-порту сразу в matlab (из него же и управляю захватом).

Ниже скрин примера подключения блока захвата modem_capture к интересующему отлаживаемому блоку.

modem_capture.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Имхо чисто в цифре ( внутри плис) разобраться  с проблемой не получится. Надо что то типа https://www.allaboutcircuits.com/news/rigol-introduces-vector-signal-analysis-option-RSA5000-spectrum-analyzer/

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

По картинкам созвездий - область принятия решений размазана. Но с чем это связано ( джиттер, шум АЦП, проблемы с алгоритмом)- сказать пока нельзя.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

44 minutes ago, khach said:

По картинкам созвездий - область принятия решений размазана. Но с чем это связано ( джиттер, шум АЦП, проблемы с алгоритмом)- сказать пока нельзя.

достаточно лишь захватить сырые данные с АЦП в матлаб и демодулировать. тогда будет точно ясно: ошибка в демодуляторе или в формировании эталонного сигнала с генератора

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...