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

 

В 07.08.2023 в 18:50, khach сказал:

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

Деды делали на транзисторах ( но это не точно). Попытка восстановить - в архиве.

Всего-то 63 транзистора в 7 перемножителях и один корпус инверторов для квадратурного VCO.

QPSK .rar

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

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


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

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

Деды делали на транзисторах

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

Ps. Вот бы найти схемы чего то древнего типа Agilent 8981B Vector Modulation Analyzer

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


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

On 8/10/2023 at 12:16 PM, khach said:

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

Ps. Вот бы найти схемы чего то древнего типа Agilent 8981B Vector Modulation Analyzer

Как по мне   не надо зацикливаться на цифровой или аналоговой . Это реализация одного и того же разными методами

Для синхронизации исторически использовались  очень узкополосные фильтры типа электромеханических для мгц или на ОУ    или системы с применением ФАПЧ

нарисуйте в LTspice петлю коста . Реализация 4 смесителя  в олном корпусе  типа аналоговых ключей и  один или два корпуса оу для фильтрации и усиления

 

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


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

Провел небольшое моделирование на С++ для отработки алгоритма определения момента изменения фазы путем вычисления автокорреляционной функции с задержкой на период. Здесь три группы графиков с изменением фазы на 90, 180 и 270 градусов. В каждой исходная синусоида, она же сдвинутая на период и значение автокорреляционной функции, вычисленной скользящей сверткой.

image.jpeg.78fbe8f687bfea8a32bdde828ff5e399.jpeg

Думаю, что можно было бы это применить.

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


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

А почему бы не использовать микросхемы декодеров PSK? Потому что 406 МГц - это всего лишь несущая частота, а не частота следования информационных битов. Это как если бы вы делали радиоприемник, заводя на АЦП радиочастоту

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


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

EdgeAlignet, если можно, утоните о каких микросхемах декодеров PSK идет речь. Я столкнулся с тем, что многие ИМС очень скудно описаны, например, AD9361. Предполагаю выделять информацию на ПЧ до 1 МГц.

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


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

On 8/12/2023 at 3:37 PM, Serhiy_UA said:

Провел небольшое моделирование на С++ для отработки алгоритма определения момента изменения фазы путем вычисления автокорреляционной функции с задержкой на период. Здесь три группы графиков с изменением фазы на 90, 180 и 270 градусов. В каждой исходная синусоида, она же сдвинутая на период и значение автокорреляционной функции, вычисленной скользящей сверткой.

image.jpeg.78fbe8f687bfea8a32bdde828ff5e399.jpeg

Думаю, что можно было бы это применить.

Я бы сделал немного по другому

1. Делаем задержку в 1/2 длинны бита

image.thumb.png.43328bfcb92735fb49e006090b16f6c0.png

2. умножаем оба канала(прямой и задержанный)

image.thumb.png.7917cd132a1f263273bd159dfbbbf6c4.png

3. пропускаем через узкополосный звенящий полосовой фильтр(красная линия)

image.thumb.png.161ca7256b554b45e1b1b21182a866cb.png

4. далее копаратор и получаем  битовую синхронизацию

Так выглядит после ФНЧ с полосой 1/Tbit  зеленая, синий -модулирущая последовательность модулятора передатчика,  красный -после звенящего фильтра

image.thumb.png.42fbf4a395a9aa13b26dba75a0bbefc0.png

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


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

9 часов назад, spirit_1 сказал:

красный -после звенящего фильтра

"звенящий фильтр" это такая штука, у которой наверняка очень крутая ФЧХ на частоте "звона" , поэтому , имхо, в практическом плане получается, что "красная линия" не годится для например тактирования АЦП на частоте символьной синхронизации. Ибо -90......+90 градусов - как повезет с фазой ФЧХ. Из этого вытекает, что надо бы её еще умножить на n, тактировать АЦП на кратной частоте и и при этом кратность должна быть не маленькая - затем , чтобы легче было в цифровом виде интерполировать отсчеты и искать путем такой интерполяции точки созвездия с наименьшими артефактами оцифровки, возникшими по причине работы формирующего фильтра ( фильтров Найквиста в передатчике и приемнике). Это как раз проблема, которую решает knach , если я правильно его понял. Потому что при высокой символьной скорости  качественная цифровая интерполяция требует оочень существенных вычислительных способностей интерполятора. n=4 и интерполятор типа Фарроу тут не катят, хотя для приема QPSK могло бы и устроить , но не для измерения качества созвездия.

image.png.665613293c55d23b5340442e1768b62f.png вот как при таком сигнале с большим сигнальным SNR получить качественные отсчеты квадратур на символьной частоте? 

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


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

spirit_1, Вы пишите, "Я бы сделал немного по другому" 

Мои познания в высокочастотной аналоговой технике слабоваты, если можно, приводите принципиальную схему на ИМС, мне станет понятнее, или ссылку на источник (хотя, настаивать не могу). Цель - обсудить несколько методов разграничения битовых последовательностей и выделить лучший.

Данные о проекте мною приведены выше, вопросов ещё много, и пока такой. Можно ли сделать две ступени преобразования, например с 406 МГц на 10.7 МГц, а потом где-то на 200 кГц, для дальнейшей цифровой обработки (почему 10.7 МГц - мне сказали, что можно легко купить уже готовый фильтр). Не повлияют ли эти ступени на достоверность фаз, и как лучше в этом случае поступить.

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


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

2 hours ago, Serhiy_UA said:

Данные о проекте мною приведены выше, вопросов ещё много, и пока такой. Можно ли сделать две ступени преобразования, например с 406 МГц на 10.7 МГц, а потом где-то на 200 кГц, для дальнейшей цифровой обработки (почему 10.7 МГц - мне сказали, что можно легко купить уже готовый фильтр). Не повлияют ли эти ступени на достоверность фаз, и как лучше в этом случае поступить.

А не проще взять полосовой на ~406 и за ним АЦП на 10-60МГц с УВХ выше 406?

Практически любая ПЛИС \ ЦСП скушает параллельный поток с АЦП на 10-60МГц, а дальше можно и цифрой ваши 200-> 30кГц получать.

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


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

_4afc_, не совсем понял Вашу идею. Если оцифровывать входной сигнал в 406 МГц с УВХ менее 2.5 нс, и с АЦП  с частотой дискретизацией 10-60 МГц, то как это согласовывается с теоремой Котельникова-Найквиста. Потом, будет ли все же сохранена фаза и её сдвиги на 90, 180 и 360 градусов. Мне не понятен этот метод.

Spirit_1, мне показалось, что Вы предложили автокорреляцию выполнять не с задержанным периодом, а с его половиной. Я промоделировал это на своей С++ программе. Результат приятно удивил, получается, что объем вычислений сократился вдвое и этот метод можно использовать.

image.thumb.jpeg.81e66b568182b2fad309318ab5dbf4c6.jpeg

Демодулятор с автокорреляционным (АК) методом выделения момента изменения фазы я нашел в прилагаемой статье на рис.3. Но там предлагалось вычислять АК со сдвигом на период. 

02-Kokhanov.pdf

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


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

4 hours ago, Serhiy_UA said:

_4afc_, не совсем понял Вашу идею. Если оцифровывать входной сигнал в 406 МГц с УВХ менее 2.5 нс, и с АЦП  с частотой дискретизацией 10-60 МГц, то как это согласовывается с теоремой Котельникова-Найквиста.

Посмотрите графики в документации на LTC2162 - как минимум до 140МГц приведены параметры, УВХ 550МГц.

Только перед АЦП надо поставить что-то типа A264-406M1

4 hours ago, Serhiy_UA said:

 Потом, будет ли все же сохранена фаза и её сдвиги на 90, 180 и 360 градусов. Мне не понятен этот метод.

Так возьмите свои графики с частотой 406МГц и оцифруйте на 25МГц - увидите ответ на свой вопрос.

PS: имеется ввиду "оцифруйте" на Си/Матлабе

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


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

Я бы сначала рекомендовал сделать рабочую модель в чем угодно Mathlab LTspice, C++ etc,

Когда у вас все будет рабочее и понятно как и что тогда можно приступать в железу

А так вы не зная как будет проходить процесс декодировки бросаетесь то в одно железо то в другое

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

Я бы взял дешевый IQ приемник , оцофровал бы скажем 1 мб.с спаренным ацп , реализовал бы в цифре чтото типа петли коста и замкунул на фапч приемника

но вариант выше имеет свои плюсы и минусы . Можете сделать  чтото одно или оба смоделировать и выбрать что лучше а потом уже пробовать в железе

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


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

On 8/13/2023 at 7:00 PM, Serhiy_UA said:

_4afc_, не совсем понял Вашу идею. Если оцифровывать входной сигнал в 406 МГц с УВХ менее 2.5 нс, и с АЦП  с частотой дискретизацией 10-60 МГц, то как это согласовывается с теоремой Котельникова-Найквиста. Потом, будет ли все же сохранена фаза и её сдвиги на 90, 180 и 360 градусов. Мне не понятен этот метод.

Spirit_1, мне показалось, что Вы предложили автокорреляцию выполнять не с задержанным периодом, а с его половиной. Я промоделировал это на своей С++ программе. Результат приятно удивил, получается, что объем вычислений сократился вдвое и этот метод можно использовать.

image.thumb.jpeg.81e66b568182b2fad309318ab5dbf4c6.jpeg

Демодулятор с автокорреляционным (АК) методом выделения момента изменения фазы я нашел в прилагаемой статье на рис.3. Но там предлагалось вычислять АК со сдвигом на период. 

02-Kokhanov.pdf 125.65 kB · 2 downloads

В сети , на гитхабе в том числе  есть хренова куча вариантов обработки QPSK  в SDR приемниках ,  на питоне , на С++ и на чем угодно еще

может и на FPGA  сможете готовые найти .Но принцип тот же .  Цифровая фильтрация и пеля Коста в цифровом виде только 

Ключевые слова поиска SDR QPSK

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


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

Spirit_1, спасибо за понимание, для меня эта тема была нова. На гитхаб загляну.

С помощью подсказок «из зала» мне стало понятней как принимать данные из QPSK, для этого:

1.Определить период тактовой частоты ПТЧ (время между двумя прохождениями на подъемах Q или I через ноль)

2.Найти момент равенства положительных кодов I и Q (соответствует углу 45 градусов), по которому занести в вычитающий счетчик код ПТЧ и вычитать единицу по Clk до достижения нуля.

3.В момент равенства счетчика нулю принять следующую пару кодов I, Q и сравнить между собой. Если разница модулей большая, то просуммировать фазовое приращение\уменьшение с кодом ПТЧ, чтобы уменьшить отклонению в кодах I, Q, чем подстраиваем фазу. Суммарное значение записать в счетчик, продолжив его вычитание по Clk. Далее постоянно выполнять пункт 3.

4.Текущую фазу 45, 135, 225 и 315 градусов и соответствующие им символы 00, 10, 11 и 01 можно определять по знакам кодов I, Q, то есть без вычисления фазы в CORDIC.

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

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

Если что-то попутал, то поправьте. Работы еще по QPSK много.

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


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

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

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

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

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

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

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

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

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

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