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

Нужна подсказка, как лучше принять данные из сигнала QPSK или OQPSK с несущей 406МГц. Весь пакет длиной 1с, в котором преамбула для синхронизации занимает 0.15 с, в остальном информация, где-то 30кбит.

Понимаю решение так, нужно опустить частоту гетеродином, примерно до 1МГц, ожидаю, что фаза сохраняется, далее вычисление на ПЛИС длительности текущего периода этой частоты. С помощью АЦП дискретизация с получением двух отсчетов со сдвигом в текущем периоде в 90 градусов, потом CORDIC для определения фазы. Далее привязка либо к преамбуле, либо к предыдущему измерению фазы.

Вопрос, такой метод подходит, либо есть другие попроще и понадежней. Может есть готовые ИМС. Поделитесь опытом, буду признателен.

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


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

Гляньте, может у CML что-нибудь и для QPSK есть; они модемы всякие делают.
Лет 10 уж к ним не ходил - санкции, м...ь их за ногу ))-8<Ж

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


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

Оbam, спасибо за подсказку на CML.

Нашел демонстрационную платформу "CML Microcircuits DE9941A Demonstration Platform" в  https://ar.mouser.com/new/cml-microcircuits/cml-de9941a-platform/

На первый взгляд она нам подходит. К ней есть и небольшой  pdf  https://ar.mouser.com/datasheet/2/976/cml_referer_download-1830294.pdf

Основа платформы вот эта микросхема CMX994 RF   https://eu.mouser.com/new/cml-microcircuits/cml-microcircuits-cmx994/

Цена чуть меньше 1000 USD.

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


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

Labkit подобного назначения дешёвым не бывает; фирма не сказать чтоб великая (а существует лет не меньше 30-и), но подобные специфические изделия делать знает как ;-)

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


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

On 7/16/2023 at 10:06 AM, Serhiy_UA said:

Нужна подсказка, как лучше принять данные из сигнала QPSK или OQPSK с несущей 406МГц. Весь пакет длиной 1с, в котором преамбула для синхронизации занимает 0.15 с, в остальном информация, где-то 30кбит.

Понимаю решение так, нужно опустить частоту гетеродином, примерно до 1МГц, ожидаю, что фаза сохраняется, далее вычисление на ПЛИС длительности текущего периода этой частоты. С помощью АЦП дискретизация с получением двух отсчетов со сдвигом в текущем периоде в 90 градусов, потом CORDIC для определения фазы. Далее привязка либо к преамбуле, либо к предыдущему измерению фазы.

Вопрос, такой метод подходит, либо есть другие попроще и понадежней. Может есть готовые ИМС. Поделитесь опытом, буду признателен.

Как вариант петлю коста или любой другой метод восстановления несущей. Дальше для ваших скоростей любой контроллер за 2-3 доллара с 5-8 мпс парой ацп и два  пермножителя с ФНЧ

https://michaelgellis.tripod.com/mixerscom.html

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


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

Пока планирую для демодуляции применить AD9361. Но не понятно, как работать с этой ИМС при вычислении текущей фазы.

 Будет ли правильно, если взяв два отсчета с выходов ADC со смещением в 90 градусов по каналу I, и далее CORDIC-ом вычислять текущую мгновенную фазу по этому каналу I. Аналогично и одновременно с  выборками I, но по каналу Q, и с тем же сдвигом в 90 градусов будут взяты два отсчета по которым также будет вычислена мгновенная фаза от Q. Разность от двух этих мгновенных фаз и даст искомое текущее значение фазы демодулятора. Предполагаю, что временной интервал для 90 градусов надо будет определять с помощью ПЛИС.

Будет ли это правильным для AD9361, или там надо работать как-то иначе.

Пытался, но пока безуспешно разобраться с данным вопросом в «Software-Defined Radio for Engineers» из книги https://www.gods69.com/download/Pluto_SDR/SDR4Engineers.pdf

Есть, правда, еще одна книга "Software-Defined Radio Handbook", с которой я еще не  успел поработать  https://cdn.everythingrf.com/live/software-defined-radio-v12.PDF, но ее беглый просмотр не дал результатов.

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

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


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

On 8/3/2023 at 4:19 PM, Serhiy_UA said:

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

Тактовая синхронизация при QPSK демодуляции

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


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

Уважаемый, blackfin, мне не удалось найти ответ по этой ссылке, и по использованию возможностей самой AD9361 тоже.

 

Что-то у меня зреет подозрение, что разность мгновенных фаз, что описана в моем посте выше, всегда равна 90 градусов. В общем, совсем тупик, нигде толково прочесть об этих подробностях в AD9361 не могу. 

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


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

Мне не хватает понимания методов демодуляции QPSK, почему-то эти методы не описаны (или я не нашел) по сравнению с большим множеством описаний модуляторов. Из-за этого не понятна роль в демодуляторах составляющих I и Q. Назначение и важность петли Костаса для восстановления несущей понятна. А как именно получать итоговый код из QPSK – полный туман. Нужна подсказка.

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


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

On 8/5/2023 at 8:47 PM, Serhiy_UA said:

Мне не хватает понимания методов демодуляции QPSK, почему-то эти методы не описаны (или я не нашел) по сравнению с большим множеством описаний модуляторов. Из-за этого не понятна роль в демодуляторах составляющих I и Q. Назначение и важность петли Костаса для восстановления несущей понятна. А как именно получать итоговый код из QPSK – полный туман. Нужна подсказка.

Для понимания лучше всего погонять в матлабе(симуинке) и посмотреть на результат.   Понимание всего очень простое.  

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

 однако моменты  скачков фазы вы можете увидеть,    

Если  есть петля коста , она держит фазу и IQ скачет именно по позициям  90 град  . Если петли коста нет фаза рандомна   хотя скачки и происходят со сдвигом  по 90 грд но сами позиции рандомны 

например вместо 0-90-180-270 с коста  получите чтото типа 10- 100-190-280

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

Теперь вы можете делать выбоки IQ в средине битов  и получить обычное созвездие QPSK  только  повернутое на случайную величину. Ну а дальше уже думаю не проблема 

Кстати у вас скорость вроде 30кбит /c  по вашему описанию?

"получать итоговый код из QPSK – полный туман. Нужна подсказка." -еще раз, если вы реализуете пелю коста для QPSK то на выходе ФД получите сразу ваши биты в виде амплитуд , например                  0вольт = 0 грд   .   0.5вольт = 90грд     1вольт = 180 грд    -0.5 вольт = 270 грд  

Изменено пользователем spirit_1

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


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

spirit_1, большое спасибо за разъяснения, информация для меня очень интересна.

Немного о задаче, что надо решить. Это гражданский контрольно-тестовый прибор для приема данных от спасательных радиобуев, с несущей  406 МГц. Там в секунду надо принять около 300 бит, из них примерно 50 преамбула, 200 информация, 50 контроль информации по БЧХ. То есть итоговая скорость у OQPSK 150 символов в секунду. Каждый бит I и Q у двух-битного символа на протяжении его передачи дополнительно модулирован псевдослучайной М-последовательность из 255 бит, причем I прямой, а Q зеркальной (не инверсной). Таким образом в итоге получаем скорость около 30 кбит/с. 

В микросхеме AD9361 и подобных, а хотелось бы использовать AD9361, не видно Costas Loop не для QPSK (OQPSK), ни для BPSK. Как там без неё обходятся, пока не понятно. Похоже, еще есть какие-то алгоритмы, так как AD9361 достаточно популярна. 

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

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

Если есть другие методы и соображения, то хотел бы их узнать.

 

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


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

47 minutes ago, Serhiy_UA said:

В микросхеме AD9361 и подобных, а хотелось бы использовать AD9361, не видно Costas Loop не для QPSK (OQPSK), ни для BPSK. Как там без неё обходятся, пока не понятно. Похоже, еще есть какие-то алгоритмы, так как AD9361 достаточно популярна. 

Конечно невидно. Потому что AD9361 это просто АЦП ЦАП и миксер наверх и вниз. Никаких модуляторов и демодуляторов, а также их частей внутри нет. 

Вы просто можете получить свой сигнал разложенный на IQ на частоте дискретизации в несколько МГц. 

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


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

On 8/6/2023 at 8:59 PM, Serhiy_UA said:

 

 

Если в буе вы будете использовать только то что вы написали то зачем использовать трансивер за 300 долларов с полосой до 6 ггц

 что бы получить IQ  от сигнала 400 мег и скорости 30кб.с   ?

Можно найти намного более дешевые приемники ценой в несколько долларов дающие на выходе IQ

Вы хотите использзовать трансивер не как ZeroIF  а получить две промежуточные низкие частоты , сдвинутые на 90 град?

 

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


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

Может у кого сохранились ссылки на реальные схемы аналоговых carrier recovery и clock recovery петель? А то последнне время все ушло в цифру, но она сейчас не всегда стала доступна или по ценам себя не оправдявает. Приходится "возвращаться к корням".

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


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

spirit_1, спасибо за подсказку.

Для меня аналоговая тема сложна, а с ПЛИС и МК – могу многое, опыт большой. Был реальный цифровой вычислитель с измерением фазы и амплитуды на ПЧ 250кГц для регулировок в ФАР у РЛС, но там работал со знатоками аналоговых схем.

ZeroIF может и подойдет, надо изучить, особенно если будет дополнительная возможность подключиться компараторами к сигналам I  и Q. Это упростит, например, измерения периода, а также позволит в цифре подстраиваться под фазу.

Если есть еще варианты в русле темы, то сообщайте, пока со структурой окончательно не определились.

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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