Проектирование RRC для QPSK в MATLAB (Filter Designer)

igor_fpga
Сообщения: 2
Зарегистрирован: 21 сен 2020, 11:09

Проектирование RRC для QPSK в MATLAB (Filter Designer)

Сообщение igor_fpga »

Добрый день!
Перед началом работы в этом направлении изучил Вашу статью http://ru.dsplib.org/content/signal_isi/signal_isi.html
После изучения понял, что RRC фильтр необходим и перешел к его реализации с помощью Filter Designer
В общем суть проблемы в следующем

Есть Filter Designer
FD.png
У него есть несколько параметров:
- Specify Order - порядок фильтра (в моем случае 118);
- Window - выбор окна (по умолчанию оставил Kaiser, у которого параметр Beta = 1)
- Fs - частота дискретизации (частота, на которой работает RRC, в моем случае - 1.6 МГц)
- Fc - частота среза (согласно Вашей статье, она должна быть в 2 раза меньше, чем скорость передачи информации Br, то есть в моем случае Br = 50 кбит/с, следовательно Fc = 25 кГц)
- Rolloff - параметр, позволяющий определить ширину полосы перехода. Например, Fc * Rolloff = Bandwidth. (25000 * 0.25 = 6250, то есть полоса перехода будет от 18750 Гц до 31250)

На этом параметры FD заканчиваются
При реализации данного фильтра я получаю следующую ИХ
Так как делаю модулятор QPSK на FPGA, то далее полученный фильтр переводится в Verilog код, компилируется и проходит этап симуляции в ModelSim, скриншот приложил

У меня ранее получалось то, что описано у Вас в статье для случая BPSK сигнала, то есть фильтр имел такой же отклик (синяя полоса на 3 и 4 графике на "Рисунок 15: Поясняющие осциллограммы BPSK модулятора"). Однако параметры этого фильтра я не сохранил, и после этого не могу вновь привести фильтр к виду, показанному на рисунке "Рисунок 15: Поясняющие осциллограммы BPSK модулятора".

Собственно говоря, вопрос - Где ошибся?

На втором рисунке (результате симуляции) видно, что фильтр "подает признаки жизни", однако обратив внимания на последовательность входных импульсов видно, что все же фильтр отрабатывает некорректно
MS.png
MS.png (11.48 КБ) 3400 просмотров
Заранее спасибо!

Аватара пользователя
Бахурин Сергей
Администратор
Сообщения: 1114
Зарегистрирован: 05 окт 2010, 19:55
Контактная информация:

Re: Проектирование RRC для QPSK в MATLAB (Filter Designer)

Сообщение Бахурин Сергей »

Видимо с полосой фильтра какие-то проблемы. Явно по моделсим видно, что фильтр слишком узкополосный. Я рекомендую для начала сделать симуляцию в матлабе работы фильтра. Есть предополжение, что где-то samplerate фильтра не соответствует частоте клока FPGA или скорости битового потока (верхние импульсы на графике моделсима идут слишком часто и фильтр не успевает их отработать), но это догадки без симуляции сказать что-то определенное сложно.

igor_fpga
Сообщения: 2
Зарегистрирован: 21 сен 2020, 11:09

Re: Проектирование RRC для QPSK в MATLAB (Filter Designer)

Сообщение igor_fpga »

Полоса, а также клок в порядке
То есть полоса выбрана из соображений по статье
Клок в порядке, потому что ранее получалось успешно запустить данный фильтр и он работал без трудностей

Проблема была решена путем увеличения коэффициента Beta для окна Kaiser до значения 10.
При таком окне происходит преобразование ИХ фильтра в ту, которая необходима для получения конечного результата. То есть окно "усекает" область боковых лепестков таким образом, что на моделировании мы видим результат такой же, как и на "Рисунок 15: Поясняющие осциллограммы BPSK модулятора".

В итоге все получилось и в конечном счете на выходе умножителей все сходится с требуемыми графиками

Ответить