Jump to content

    

Zalman_

Участник
  • Content Count

    28
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Zalman_

  • Rank
    Участник

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Спасибо, обдумаю этот момент
  2. Видел эту статью Насколько понял из статьи она генерирует синус и косинус, то есть это классический CORDIC в качестве DDS синтезатора, а вот функцию atan2 не вычисляет
  3. Спасибо за рекомендацию, попробую еще какие-нибудь варианты теста корки Сегодня весь день этим занимался Результат был следующим В тестбенче корки уже генерируются рандомные значения, что упрощает работу с ним и вот расскажу как это было Примем, что на вход подаются два значение x = 0.11, а у = -0.38, тогда atan2 = -1.29 (все в радианах) В случае Verilog и SystemVerilog есть функция $atan2, которая позволяет посчитать значения и она выдает такой же результат, то есть -1.29 Ядро же выдает значения фазы, которые довольно сильно (на мой взгляд отстают от эталонного), вместо -1.29 выдает результат в районе -1.77 и т.д., то есть значения пляшут +- 0.5 Не знаю, возможно это нормально, но мне кажется, это большой погрешностью, но может быть ошибаюсь Буду дальше копаться с ним, однако, все равно вопрос остался открытым
  4. Добрый вечер! Есть задача в реализации atan2 в ПЛИС Ранние темы на форуме видел (пробовал варианты кода, которые были прикреплены) Также пробовал варианты с OpenCores Они работают, но неизвестно правильно или нет (некоторым вариантам реализации уже больше 5 лет, а с автором нет возможности связаться, так как он не заходил больше 2 лет) В связи с этим вопрос Есть ли какие-то реализации atan2 на Verilog на примете, которые можете кинуть и с автором которого можно проконсулироваться по работе корки?
  5. Про SRRC понял, спасибо Да, я заметил, что во всех моделях есть тот самый переход на 2 и 1 sps, однако не понимал, что и где копать То есть по факту тактирование детектора Гарднера и тактирование интерполятора должно быть в одном clock domain, то есть в 2sps. Понятно, что на выходе интерполятора будет 2sps, а вот откуда и зачем нам нужен 1sps? Хорошо, спасибо, буду искать
  6. Добрый вечер! Копаюсь с Вашей моделью Мне непонятны следующие моменты (я новичок в этой тематике и многих вещей еще не знаю) 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 точки находятся. Я не знаю, что скрывается за этой проблемой, так как не делая свою модель, а используя Вашу как эталон, получаю отрицательный результат даже казалось бы в настолько правильно сделанной модели. Можете объяснить где я ошибаюсь и что не до конца понимаю в этом всем?
  7. Вопрос, а можете сказать как тема называется или же ссылку дать? Буду очень признателен (над неработающей STS сижу уже не первый день)
  8. Выскажу небольшое предположение Возможно вся система работает некорректно по причине того, что используемый детектор Гарднера работает на скорости 2 выборки на символ, а SRRC на модуляторе и демодуляторе выдают 10 выборок на символ Может ли быть в этом проблема или нет, как думаете?