Полная версия этой страницы:
демодуляция
ninurta
Jul 23 2009, 11:35
Добрый день!
Возникла проблема и суть ее вот в чем: В демодуляторе сигнала QAM16 используется стандартная схема восстановления тактовой частоты с полифазным интерполятором и обратной связью. В качестве детектора временной ошибки используется детектор по методу Гарднера. Сигнал имеет частоту дискретизации чуть больше чем два отсчета на символ и тактовая частота на приемной стороне все время «убегает» вперед. Для сигналов BPSK, QPSK и OQPSK, в которых переходы сигнала через ноль могут быть только из «-1», в «1» или из «1», в «-1» данная схема работает отлично. Сигнал ошибки имеет вид равномерного, пилообразного сигнала. В сигнале же QAM16 могут быть переходы из «-1», в «3», или «1», в «-3», которые, как мне кажется, дают погрешность в вычислении ошибки и пилообразный сигнал ошибки получается неравномерным, что приводит к неточному восстановлению тактовой частоты. Подскажите, каким образом в данной ситуации восстанавливать тактовую частоту и если можно ссылки на модели в matlab.
petrov
Jul 23 2009, 12:25
Для QAM детектор гарднера так же работает, примеры здесь:
http://electronix.ru/forum/index.php?showtopic=23652Все точки созвездия должны быть равновероятными, считайте что QAM это та же самая QPSK только с шумом, с шумом ведь QPSK работает, эти погрешности про которые вы говорите в среднем равны нулю, они усредняются в петле обратной связи.
ninurta
Jul 24 2009, 07:42
Спасибо за разъяснения и модели. Модели, кстати, я скачал и посмотрел ранее.
Тогда получается в моей схеме восстановления тактовой не совсем правильно работает петлевой фильтр ошибки по тактовой. Более подробно моя схема работает так: после детектора Гарднера сигнал ошибки попадает на петлевой фильтр, где выход фильтра y[n] = x[n]*Kp - x[n - 1]*Ki + y[n - 1],
x[n] - ошибка после детектора Гарднера
x[n - 1] - ошибка после детектора Гарднера, задержанная на один такт
y[n - 1] - задержанный на один такт выход петлевого фильтра
Kp - пропорциональный множитель
Ki - интегральный множитель
далее отфильтрованный сигнал накапливается в аккумуляторе и в зависимости от значения аккумулятора выбирается ветка полифазного фильтра, выполняющая коррекцию временной ошибки. таким образом происходит выбор веток полифазного фильтра с "0" по L, где L-фактор интерполяции. При достижении аккумулятора значения L аккумулятор сбрасывается в "0". Если можно, укажите какие в моей схеме могут быть недостатки, или ошибки и каким образом правильно расчитать коэффициенты петлевого фильтра.
petrov
Jul 24 2009, 08:09
Смотрите как в модели сделано. Единственное отличие у вас вместо интерполятора Farrow полифазный фильтр, дробную задержку mu вы должны проквантовать в соответствии с количеством веток фильтра и правильно с помощью mu их мультиплексировать. Коэффициенты считаются в соответствии с классической теорией автоматического управления.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.