Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Дробное понижение тактовой частоты после АЦП
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
MKS
Добрый день.
Для QPSK демодулятора пытаюсь сделать систему символьной синхронизации на основе полиномиального интерполтора и NCO. Трудность в том что сигнал оцифровывается с частотой 6 отсчётов на символ, а практически вся схема должна работать на 4-х, 2-х и 1-м отсчёте на символ. Соорудил модель в simulink в которой с помощю NCO и интерполятора получаю деление на 6/4. Вроде всё работает нормально. Но при реализации её на Verilog получаю неправильную работу - созвездие при скачках сигнала delta (смотри модель) разваливается. Корень проблемы, как мне видится, во времянке которую выдаёт verilog версия NCO. Собственно у меня просьба, кто разбирается в данном вопросе не могли бы взглянуть на модель и на код NCO и подсказать что не так, и как делать правильно.
Заранее спасибо.
Нажмите для просмотра прикрепленного файла Нажмите для просмотра прикрепленного файла
des00
1. я же засылал в твою почту модель дробного децимирующего NCO. Не помогло ? %)))
2. в коде разъезжаются delta_o и sps4_ce_o. ну и остальные стробы
MKS
Для des00
1. Посмотрел почту, там только интерполирующий NCO, либо может это было очень давно sm.gif . Собственно simulink модель которую я прикрепил к сообщению работает, или в ней что то не так ?
2. То что в коде всё разезжается, я тоже заметил. Но вот понять почему так происходит и исправить ситуацию моего мозга уже не хватает wacko.gif

Не могу понять как вообще подходить к проектированию подобной системы. Я в начале нарисовал на бумаге дискретные отсчёты с АЦП, посчитал точки в которых надо интерполировать последовательность, попытался интуитивно соорудить такой генератор-интерполятор, но ничего рабочего пока не получилось. Может есть какие то методики по которым можно синтезировать подобную схему?
des00
Цитата(MKS @ Sep 16 2012, 10:41) *
1. Посмотрел почту, там только интерполирующий NCO, либо может это было очень давно sm.gif . Собственно simulink модель которую я прикрепил к сообщению работает, или в ней что то не так ?

хмм, запамятовал. но вроде как симулинковскую модель 100% высылал. завтра с работы вышлю рабочий верилоговский вариант.
Цитата
2. То что в коде всё разезжается, я тоже заметил. Но вот понять почему так происходит и исправить ситуацию моего мозга уже не хватает wacko.gif Не могу понять как вообще подходить к проектированию подобной системы.

вот этот разъезд и нужно убрать. на выходе дельта и се, на котором эта дельта была посчитанна, должны быть в один и тот же момент времени. Под этот же момент времени должны быть подогнанны остальные се "клоки". Ну и при обработке надо не забывать что се должны быть выровненны относительно друг друга и выходов блоков %)

подходить как к обычному NCO, решая вопрос, как посчитать 4спс сигнал, на 6спс частоте. дельта зависит от того, какой именно интерполятор вы используете (порядок и архитектура).

Ну и при построении дробного интерполирующего и децимирующего NCO есть большая разница, если первый реализуется как счетчик с дробным инкрементом по фиксированному модулю == 1, то второй как счетчик с фиксированным инкрементом по дробному модулю. Как я вижу у вас с этим все нормально. Странно что не работает.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.