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

Символьная синхронизация QPSK (Детектор Гарднера - Петлевой фильтр - Modulo-1 Counter)

Опишу проблему

Как понятно из заголовка пытаюсь сделать символьную синхронизацию для QPSK системы
Основываясь на информации из книги "Michael Rice - Digital Communications: A Discrete-Time Approach", символьную синхронизацию делал по принципу:

1) Interpolator - Piecewise структура фильтра Фарроу
2) Timing Error Detector - Детектор Гарднера
3) Loop Filter
4) Interpolation Control  - структура "Modulo-1 Counter"

В чем проблема ?
Проблема в том, что система символьной синхронизации одновременно работает и нет, то есть периодически повторяется следующий процесс:
1) Система находит оптимальный момент выборки (максимального раскрытия глазка)
2) Система теряет оптимальный момент выборки

На осциллограмме input и output фильтра Фарроу наблюдается картина как на скриншоте ниже
 

Осциллограмма.png

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


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

Вопрос то в чем? почему не работает? Ну думаю в левом верхнем углу модели у вас буквы не хватет) А если без шуток выкладывайте модель. Может у вас там просто петля не настроена

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


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

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

Вопрос то в чем? почему не работает? Ну думаю в левом верхнем углу модели у вас буквы не хватет) А если без шуток выкладывайте модель. Может у вас там просто петля не настроена

Прикрепил модель для 20a и для 18b

qpsk_electronix.slx qpsk_electronix_18b.slx

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


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

Выскажу небольшое предположение

Возможно вся система работает некорректно по причине того, что используемый детектор Гарднера работает на скорости 2 выборки на символ, а SRRC на модуляторе и демодуляторе выдают 10 выборок на символ

Может ли быть в этом проблема или нет, как думаете?

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

Вопрос то в чем? почему не работает? Ну думаю в левом верхнем углу модели у вас буквы не хватет) А если без шуток выкладывайте модель. Может у вас там просто петля не настроена

 

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

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


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

Zalman_

Вот буквально в предыдущей теме ссылка на модельку где все это работает.

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


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

4 минуты назад, petrov сказал:

Zalman_

Вот буквально в предыдущей теме ссылка на модельку где все это работает.

Вопрос, а можете сказать как тема называется или же ссылку дать?
Буду очень признателен (над неработающей STS сижу уже не первый день)

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


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

Только что, petrov сказал:

Большое спасибо
Буду разбираться

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


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

1 hour ago, Zalman_ said:

Большое спасибо
Буду разбираться

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

да, посмотите у @petrov в модели, у него проще и нагляднее это место сделано.

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


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

Спасибо за советы, буду ковыряться

1 минуту назад, des00 сказал:

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

да, посмотите у @petrov в модели, у него проще и нагляднее это место сделано.

 

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


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

24.11.2020 в 14:15, petrov сказал:

Добрый вечер!

Копаюсь с Вашей моделью

Мне непонятны следующие моменты (я новичок в этой тематике и многих вещей еще не знаю)
1) У Вас модулятор создает 8PSK, затем в канале перед АБГШ стоит downsample (в нем значение 2) и по факту из 8PSK делаете QPSK. Зачем так делать и что это дает?
2) В модуляторе SRRC имеет значение wc = 1/4, а в приемнике стоит wc = 1/2. Понятно, что тот самый блок downsample снизил значение sps в 2 раза и теперь вместо 4 sps у вас 2sps, но зачем так было сделано? Знаю, что SRRC на передающей и приемной стороне должны быть идентичны, но у Вас они различны. Можете объяснить ?
3) Рассматривая систему STS есть - Interpolator, TED, Loop Filter, Interpolation Control. Мне непонятно вот что, что конкретно нужно крутить и менять, чтобы адаптировать систему под свою задачу, то есть если я в лоб выставлю значения 4sps (на обеих SRRC) и уберу блок downsample (чтобы значение sps было неизменным в канале), а также в NCO поменяю значение константы у блока Math Function (операция mod) на 4, то ничего не работает, хотя больше в модели ничего не меняю. Сразу отвечу на вопрос по поводу Loop Filter, в нем я тоже пытался крутить параметры, а результат все равно был отрицательным. Под отрицательным результатом я понимаю следующее. В процессе работы Вашей модели я вижу 4 точки для QPSK, но через время происходит рассинхронизация и эти точки превращаются в мешанину, после чего проходит какой-то интервал времени и вновь эти 4 точки находятся. 
Я не знаю, что скрывается за этой проблемой, так как не делая свою модель, а используя Вашу как эталон, получаю отрицательный результат даже казалось бы в настолько правильно сделанной модели.

Можете объяснить где я ошибаюсь и что не до конца понимаю в этом всем? 

 

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


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

10 hours ago, Zalman_ said:

2) В модуляторе SRRC имеет значение wc = 1/4, а в приемнике стоит wc = 1/2. Понятно, что тот самый блок downsample снизил значение sps в 2 раза и теперь вместо 4 sps у вас 2sps, но зачем так было сделано? Знаю, что SRRC на передающей и приемной стороне должны быть идентичны, но у Вас они различны. Можете объяснить ?

Идентичны должны быть частотные характеристики по скруглению, полосе. А на какой частоте они реализованы дело десятое. Можно сделать передатчик с интерполяцией 100, а приемник 2.5 и это будут согласованные приподнятые косинусы)

Quote


3) Рассматривая систему STS есть - Interpolator, TED, Loop Filter, Interpolation Control. Мне непонятно вот что, что конкретно нужно крутить и менять, чтобы адаптировать систему под свою задачу, то есть если я в лоб выставлю значения 4sps (на обеих SRRC) и уберу блок downsample (чтобы значение sps было неизменным в канале), а также в NCO поменяю значение константы у блока Math Function (операция mod) на 4, то ничего не работает, хотя больше в модели ничего не меняю.

Детектор гарднера работает только при двух отсчетах на символ. И только при двух. По выходу интерплятора должен быть сигнал децимированный до 2двух отсчетов на символ и сигналы 2sps, 1sps. Сами эти сигналы вырабатываются в NCO. На входе приемного интерплятора может быть любое спс больше двух(пока считайте что это так). Вот исходя из этой парадигмы и проанализируйте будет ли работать та модель если вы просто поменяете константы или ее надо кардинально переделать.

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


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

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

Идентичны должны быть частотные характеристики по скруглению, полосе. А на какой частоте они реализованы дело десятое. Можно сделать передатчик с интерполяцией 100, а приемник 2.5 и это будут согласованные приподнятые косинусы)

Детектор гарднера работает только при двух отсчетах на символ. И только при двух. По выходу интерплятора должен быть сигнал децимированный до 2двух отсчетов на символ и сигналы 2sps, 1sps. Сами эти сигналы вырабатываются в NCO. На входе приемного интерплятора может быть любое спс больше двух(пока считайте что это так). Вот исходя из этой парадигмы и проанализируйте будет ли работать та модель если вы просто поменяете константы или ее надо кардинально переделать.

Про SRRC понял, спасибо

Да, я заметил, что во всех моделях есть тот самый переход на 2 и 1 sps, однако не понимал, что и где копать
То есть по факту тактирование детектора Гарднера и тактирование интерполятора должно быть в одном clock domain, то есть в 2sps.
Понятно, что на выходе интерполятора будет 2sps, а вот откуда и зачем нам нужен 1sps?

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

Zalman_

Попробуйте отличия поискать.

qpsk_8_sps_fb_sync_2020_11_25.mdl

Хорошо, спасибо, буду искать

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


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

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

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

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

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

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

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

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

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

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