|
|
  |
Демодуляция QAM |
|
|
|
Jun 26 2008, 06:26
|

Утомлённый солнцем
     
Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832

|
Цитата(petrov @ Jun 25 2008, 16:44)  Это созвездие не подходит. И дифференциальное кодирование неправильно осуществляется у вас. Разберитесь для начала с диф кодированием QPSK. Это созвездие было из DVB-T,заменил на DVB-C.
Дифференциальное кодирование переделал,только не помогло это:-((
Что-то происходит с узлом подстройки по частоте несущей:если убрать блок Phase/FrequencyOffset из линии связи и на перемножитель подать константу то дескремблер восстанавливает любой код без ошибок.Но так не интересно.Что ещё можно посмотреть? Происходит ошибка выбора квадранта т.к. при большом коде ошибка кратна 16-ти. Может попробовать диффкодирование из DVB-C?
|
|
|
|
|
Jul 12 2008, 12:11
|

Утомлённый солнцем
     
Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832

|
Цитата(petrov @ Apr 11 2008, 12:35)  Можно частоту дискретизации уменьшить вплоть до минимально необходимой по котельникову. Интерполятору фарроу необходима передискретизация примерно больше 4.5 отсчётов на символ, зависит от требуемой точности, тогда придётся полифазным фильтром увеличить количество отсчётов необходимое для нормальной работы интерполятора фарроу, всё это ессно делается без увеличения тактовой частоты в FPGA. Александр,а можно немного подробнее об этом?Я упёрся в эту проблему,не получается сделать в FPGA интерполятор Фарроу при Ftakt = 8*Fsymb,слишком высокая частота тактов. А 4 такта на символ не нравится,проверял.Как это можно обойти?Мне очень понравилось Ваше"всё это ессно делается без увеличения тактовой частоты в FPGA". Допустим,после полифазного интерполятора c R=2 есть две шины данных,одна с основными отсчётами,другая с интерполированными.Обе шины тактируются клоком Ftakt = 4*Fsymb.Можно эти шины как-то завести в Фарроу чтобы он тоже работал с Ftakt = 4*Fsymb,но при этом вёл себя так,как будто работает с Ftakt = 8*Fsymb?
|
|
|
|
|
Jul 14 2008, 05:03
|

Утомлённый солнцем
     
Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832

|
Цитата(petrov @ Jul 12 2008, 19:53)  Комбинационная схема интерполятора работает на символьной частоте Это как?Сигнал Mu приходит с символьной частотой,но внутри символа он обрабатывается с частотой входных данных. Цитата(petrov @ Jul 12 2008, 19:53)  если вы понимаете как поступают отсчёты на отводы с линии задержки интерполятора при тупой реализации с повышением тактовой без полифазного фильтра Так отсчёты на отводы тупо задерживаются на такт для каждого отвода,без обработки,что тут понимать?Или Вы имели ввиду отводные множители?Тут пока ясности нет. Цитата(petrov @ Jul 12 2008, 19:53)  коммутировать так же с двух шин полифазного фильтра не представляет никаких сложностей. То есть,интерполятор Фарроу изменять не нужно,следует изменить только алгоритм заполнения линии задержки?Но ведь если на выходах полифазного фильтра мы имеем два отсчёта на такт(8 отсчётов на символ) то интерполятор Фарроу должен будет их обработать за 4 такта на символ?Тогда видимо из двух отсчётов полифазного фильтра нужно сформировать неким образом один отсчёт и подсунуть его Фарроу? И ещё одна неприятность.В общем виде Фарроу представляет собой Out = A*Mu^3+B*Mu^2+C*Mu+D, где A,B,C,D - выходы отводных сумматоров.У Вас в модели Mu изменяется от -1 до 0.Для реализации в FPGA мне нужно Mu представить некой шиной например 8 бит(Mu изменилось в 2^8).Тогда чтобы не изменить рабочую точку Фарроу мне нужно вместо А,B,C подставить (А / 2^24,B/2^16,C/2^8).Для того чтобы после деления от А осталось хотя бы 8 бит, изначально А дожен иметь разрядность 2^32.Неприятно умножать такие числа,особенно с большой скоростью.Или то,о чём я сейчас пишу не является обязательным условием?Но в матлабе после изменения Mu Фарроу заработал только после ввода этих коэффициентов.
|
|
|
|
|
Jul 14 2008, 11:37
|
Гуру
     
Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937

|
Цитата(_Anatoliy @ Jul 14 2008, 09:03)  Это как?Сигнал Mu приходит с символьной частотой,но внутри символа он обрабатывается с частотой входных данных.
Так отсчёты на отводы тупо задерживаются на такт для каждого отвода,без обработки,что тут понимать?Или Вы имели ввиду отводные множители?Тут пока ясности нет.
То есть,интерполятор Фарроу изменять не нужно,следует изменить только алгоритм заполнения линии задержки?Но ведь если на выходах полифазного фильтра мы имеем два отсчёта на такт(8 отсчётов на символ) то интерполятор Фарроу должен будет их обработать за 4 такта на символ?Тогда видимо из двух отсчётов полифазного фильтра нужно сформировать неким образом один отсчёт и подсунуть его Фарроу? В интерполяторе вычисления производятся с символьной частотой а не с частотой входных данных, вы можете поместить его в следующий клок домен и вытащить наружу только 4 шины на которые сейчас у вас поступают отсчёты с линии задержки с отводами и шину для mu, и на эти отводы должно то же самое поступать как бы вы не делалали с полифазным фильтром или без или ещё как, просто в нужный момент надо те же самые остчёты подать что и в случае более тупой реализации, ну были отсчёты у вас последовательно во времени, теперь они в пространстве ещё разнесены на выходе полифазного фильтра, это вопрос внимательной манипуляции с отсчётами. Цитата(_Anatoliy @ Jul 14 2008, 09:03)  И ещё одна неприятность.В общем виде Фарроу представляет собой Out = A*Mu^3+B*Mu^2+C*Mu+D, где A,B,C,D - выходы отводных сумматоров.У Вас в модели Mu изменяется от -1 до 0.Для реализации в FPGA мне нужно Mu представить некой шиной например 8 бит(Mu изменилось в 2^8).Тогда чтобы не изменить рабочую точку Фарроу мне нужно вместо А,B,C подставить (А / 2^24,B/2^16,C/2^8).Для того чтобы после деления от А осталось хотя бы 8 бит, изначально А дожен иметь разрядность 2^32.Неприятно умножать такие числа,особенно с большой скоростью.Или то,о чём я сейчас пишу не является обязательным условием?Но в матлабе после изменения Mu Фарроу заработал только после ввода этих коэффициентов. Да все эти вопросы конечной разрядности не приятные, но таких мест будет куча, надо научиться прикидывать где промасштабировать, где округлить разряды, где с повышенной точностью вычисления надо проводить и т. п. это никто кроме вас сделать не сможет. Какая у вас символьная скорость? Наверняка можно на одном умножителе весь интерполятор сделать.
|
|
|
|
|
Jul 14 2008, 12:24
|

Утомлённый солнцем
     
Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832

|
Цитата(petrov @ Jul 14 2008, 14:37)  В интерполяторе вычисления производятся с символьной частотой а не с частотой входных данных, вы можете поместить его в следующий клок домен и вытащить наружу только 4 шины на которые сейчас у вас поступают отсчёты с линии задержки с отводами и шину для mu, и на эти отводы должно то же самое поступать как бы вы не делалали с полифазным фильтром или без или ещё как, просто в нужный момент надо те же самые остчёты подать что и в случае более тупой реализации, ну были отсчёты у вас последовательно во времени, теперь они в пространстве ещё разнесены на выходе полифазного фильтра, это вопрос внимательной манипуляции с отсчётами. Често говоря не понял ответа.Ведь после интерполятора в блоке one_sps_clock_domain стоит ещё одна линия задержки из двух регистров,и данные в нее пишутся два раза за символ.А Вы говорите что в интерполяторе вычисления производятся с символьной частотой. Я пробовал вот такой коммутатор:
interpolator.doc ( 143.5 килобайт )
Кол-во скачиваний: 168 Здесь входы - выход полифазника,а выходы через коммутатор используются в качестве линии задержки,коммутация выполняется каждый такт(чётный-верхний выход,нечётный - нижний выход).Но тут идёт потеря данных,два такта правильные данные,два потеряны. Цитата(petrov @ Jul 14 2008, 14:37)  Да все эти вопросы конечной разрядности не приятные, но таких мест будет куча, надо научиться прикидывать где промасштабировать, где округлить разряды, где с повышенной точностью вычисления надо проводить и т. п. это никто кроме вас сделать не сможет. Какая у вас символьная скорость? Наверняка можно на одном умножителе весь интерполятор сделать. Ну да,я в матлабе разрядности и проверяю. Fsymb = 35 Msps. А как можно интерполятор Фарроу сделать на одном умножителе?
|
|
|
|
|
Jul 14 2008, 13:22
|
Гуру
     
Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937

|
Цитата(_Anatoliy @ Jul 14 2008, 16:24)  Често говоря не понял ответа.Ведь после интерполятора в блоке one_sps_clock_domain стоит ещё одна линия задержки из двух регистров,и данные в нее пишутся два раза за символ.А Вы говорите что в интерполяторе вычисления производятся с символьной частотой. В смысле вычисления производятся столько раз сколько нужно вам отсчётов на символ но не как не с входной частотой, я ж не знаю сколько у вас там отсчётов на символ нужно для обработки последующей, можно и с одним сделать и с двумя и с дробным, просто условно писал с символьной частотой и даже выше оговаривался в скобках что может и два осчёта быть напрмер для дробного эквалайзера. Цитата(_Anatoliy @ Jul 14 2008, 16:24)  Я пробовал вот такой коммутатор: Пробуйте ещё :) Цитата(_Anatoliy @ Jul 14 2008, 16:24)  Fsymb = 35 Msps. А как можно интерполятор Фарроу сделать на одном умножителе? Да высокая символьная, наверное с последовательной обработкой нет смысла заморачиваться.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|