реклама на сайте
подробности

 
 
12 страниц V   1 2 3 > »   
Reply to this topicStart new topic
> Демодуляция QAM
_Anatoliy
сообщение Apr 9 2008, 04:40
Сообщение #1


Утомлённый солнцем
******

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



Коллеги,посоветуйте с чего начать,в этих делах пока новичёк.
Как я понимаю, для демодуляции QAM нужно восстановить частоту несущей и частоту символов.Порыскав по сети нашёл несколько алгоритмов восстановления частоты несущей,в основном везде предлагается умножать текущий символьный отсчёт на предыдущий и результат пропустить через полосовой фильтр.Попробовал в матлабе,получилось,но уж сильно зашумлённый данными синус получается после умножения,для качественной фильтрации нужно ставить FIR с не менее 4096 тапов,а то и больше.Может есть какие другие алгоритмы для выделения этих частот?
Go to the top of the page
 
+Quote Post
eugen_pcad_ru
сообщение Apr 9 2008, 06:38
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 642
Регистрация: 15-11-07
Пользователь №: 32 353



Собственно использовать на практике можно две схемы: 1) возведения в n-ую степень и использование полосового фильтра для выделения несущей; 2) переносить вниз и делать то же самое, но в комплексном сигнале. Методы восстановления есть по-моему в книге
Спилкер Дж. Цифровая спутниковая связь.
Ну и были тут где-то по-моему разные матлабовские модели... Можно на них посмотреть...
По-настоящему большой фильтр используется для восстановления тактовой. Для несущей (как правило) рассчитывается фильтр по маске (см. соответствующий стандарт).


--------------------
Правильно сформулированый вопрос содержит в себе половину ответа.
P.S.: Некоторые модераторы в качестве ответа так навязчиво предлагают посетить свой сайт, что иначе как саморекламу такие действия интерпретировать сложно.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Apr 9 2008, 08:10
Сообщение #3


Утомлённый солнцем
******

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



За книгу спасибо!Нашёл,качаю.

Вот какой у меня выход после фильтра на 256 тапов,по моему не очень хороший.См огибающую.

http://upload.caxapa.ru/qam_fir256.TIF
Go to the top of the page
 
+Quote Post
genadiy
сообщение Apr 9 2008, 08:55
Сообщение #4





Группа: Новичок
Сообщений: 7
Регистрация: 5-06-06
Пользователь №: 17 773



Несущая частота должна быть известна из условия. А вот случайная блуждающая фаза нет. Её то и нужно оценить системой ФАПЧ. В журнале Радиотехника №11 2004 есть статья: "Оптимальные алгоритмы приёма сигналов квадратурной амплитудной манипуляции" В.Е. Мартиросов. стр 41. Там есть всё от уравнения до структурной схемы в терминах которые должны быть понятны электронщикам. Статью готов обсудить если будет интерес.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Apr 9 2008, 09:31
Сообщение #5


Утомлённый солнцем
******

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



Цитата(genadiy @ Apr 9 2008, 11:55) *
Несущая частота должна быть известна из условия. А вот случайная блуждающая фаза нет. Её то и нужно оценить системой ФАПЧ. В журнале Радиотехника №11 2004 есть статья: "Оптимальные алгоритмы приёма сигналов квадратурной амплитудной манипуляции" В.Е. Мартиросов. стр 41. Там есть всё от уравнения до структурной схемы в терминах которые должны быть понятны электронщикам. Статью готов обсудить если будет интерес.


Спасибо!
Интерес есть и очень большой.Только вот журнала этого у меня нет,а электронный вариант найти не получается:-((
Go to the top of the page
 
+Quote Post
petrov
сообщение Apr 9 2008, 10:39
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Вот посмотрите модели:
http://electronix.ru/forum/index.php?showtopic=23652

Практическая книга:
http://rapidshare.com/files/45943139/%%%%%...Nezami.rar.html

Сообщение отредактировал petrov - Apr 9 2008, 10:41
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Apr 9 2008, 11:24
Сообщение #7


Утомлённый солнцем
******

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



Цитата(petrov @ Apr 9 2008, 13:39) *
Вот посмотрите модели:
http://electronix.ru/forum/index.php?showtopic=23652

Практическая книга:
http://rapidshare.com/files/45943139/%%%%%...Nezami.rar.html


Большое Вам спасибо!
Книгу качаю,модели вечером посмотрю.Если будут вопросы по моделям - можно обратиться?
Go to the top of the page
 
+Quote Post
petrov
сообщение Apr 9 2008, 12:01
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(_Anatoliy @ Apr 9 2008, 15:24) *
Большое Вам спасибо!
Книгу качаю,модели вечером посмотрю.Если будут вопросы по моделям - можно обратиться?


Даже нужно, форум для этого и существует.
Go to the top of the page
 
+Quote Post
Михаил_K
сообщение Apr 9 2008, 12:44
Сообщение #9


Знающий
****

Группа: Свой
Сообщений: 552
Регистрация: 29-02-08
Пользователь №: 35 481



Цитата(_Anatoliy @ Apr 9 2008, 08:40) *
Коллеги,посоветуйте с чего начать,в этих делах пока новичёк.
Как я понимаю, для демодуляции QAM нужно восстановить частоту несущей и частоту символов.Порыскав по сети нашёл несколько алгоритмов восстановления частоты несущей,в основном везде предлагается умножать текущий символьный отсчёт на предыдущий и результат пропустить через полосовой фильтр.Попробовал в матлабе,получилось,но уж сильно зашумлённый данными синус получается после умножения,для качественной фильтрации нужно ставить FIR с не менее 4096 тапов,а то и больше.Может есть какие другие алгоритмы для выделения этих частот?


Какой имеено сигнал предполагается демодулировать. QAM16 или QAM256?
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Apr 9 2008, 12:49
Сообщение #10


Утомлённый солнцем
******

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



Цитата(Михаил_K @ Apr 9 2008, 15:44) *
Какой имеено сигнал предполагается демодулировать. QAM16 или QAM256?


От QPSK до QAM256 java script:emoticon(';)', 'smid_29')
Go to the top of the page
 
+Quote Post
Михаил_K
сообщение Apr 9 2008, 14:40
Сообщение #11


Знающий
****

Группа: Свой
Сообщений: 552
Регистрация: 29-02-08
Пользователь №: 35 481



Цитата(_Anatoliy @ Apr 9 2008, 16:49) *
От QPSK до QAM256 java script:emoticon(';)', 'smid_29')

Тогда попробуйте схему по решению.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Apr 9 2008, 15:18
Сообщение #12


Утомлённый солнцем
******

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



Цитата(Михаил_K @ Apr 9 2008, 17:40) *
Тогда попробуйте схему по решению.


Михаил,извините но что значит по решению?
Я не зря написал в корневом посте "Коллеги,посоветуйте с чего начать,в этих делах пока новичёк."



Цитата(petrov @ Apr 9 2008, 15:01) *
Даже нужно, форум для этого и существует.


Спасибо!

Первый вопрос по модели qam_fb_gardner_symbol_farrow_sync_fb_phase_sync_agc_2007_06_18.mdl

Для подстройки символьной скорости у Вас используется Gardner timing error detector. Как я понял это требует "вылавливания на приёмной стороне" периодической последовательности +- 1. В случае М-арных сигналов создаётся впечатление что такую последовательность нужно периодически вставлять в поток на передающей стороне. Так ли это?
Go to the top of the page
 
+Quote Post
petrov
сообщение Apr 9 2008, 17:43
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(_Anatoliy @ Apr 9 2008, 19:18) *
Первый вопрос по модели qam_fb_gardner_symbol_farrow_sync_fb_phase_sync_agc_2007_06_18.mdl

Для подстройки символьной скорости у Вас используется Gardner timing error detector. Как я понял это требует "вылавливания на приёмной стороне" периодической последовательности +- 1. В случае М-арных сигналов создаётся впечатление что такую последовательность нужно периодически вставлять в поток на передающей стороне. Так ли это?


Не так. Требуется равновероятность точек созвездия на интервале усреднения и коэффициент ската фильтра корень из приподнятого косинуса больше 0.2.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Apr 9 2008, 19:54
Сообщение #14


Утомлённый солнцем
******

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



Цитата(petrov @ Apr 9 2008, 20:43) *
Не так. Требуется равновероятность точек созвездия на интервале усреднения и коэффициент ската фильтра корень из приподнятого косинуса больше 0.2.


Спасибо!
В дальнейшем Вам удобно здесь общаться или можно в почту?
Go to the top of the page
 
+Quote Post
petrov
сообщение Apr 10 2008, 05:05
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(_Anatoliy @ Apr 9 2008, 23:54) *
Спасибо!
В дальнейшем Вам удобно здесь общаться или можно в почту?


Пишите здесь, это может быть ещё кому-нибудь интересно, больше людей смогут вам помочь.
Go to the top of the page
 
+Quote Post
Михаил_K
сообщение Apr 10 2008, 06:43
Сообщение #16


Знающий
****

Группа: Свой
Сообщений: 552
Регистрация: 29-02-08
Пользователь №: 35 481



Цитата(_Anatoliy @ Apr 9 2008, 19:18) *
Михаил,извините но что значит по решению?
Я не зря написал в корневом посте "Коллеги,посоветуйте с чего начать,в этих делах пока новичёк."
Спасибо!


По решению значит вот что. Например для ФМ4. Для определенности считаем, что точки должны находиться на диагоналях. Поэтому берем конкретный отсчет (символ) и смотрим по его координатам, где он находится. В зависимости от его нахождения вырабатываем сигнал ошибки для системы ФАПЧ. Строго говоря, для сигнала ФМ4 нужно брать арктангенс отношения Q/I. Но для практической реализации это не удобно. Я например делал так:
1. Проводится преобразование координат (знаков координат) текущей точки так, чтобы она попала в первый квадрант.
2. Берется разность координат - это и есть ошибка.

Вот кусок кода. Iin, Qin - координаты текущего символа

Int_I<=Iin;
Int_Q<=Qin;
Int_In<=(not Iin) + '1';
Int_Qn<=(not Qin) + '1';
if (Int_I(7) = '0' and Int_Q(7) = '0') then
IQuad<=Int_I;
QQuad<=Int_Q;
elsif (Int_I(7) = '1' and Int_Q(7) ='1') then
IQuad<=Int_In;
QQuad<=Int_Qn;
elsif (Int_I(7) = '0' and Int_Q(7) = '1') then
IQuad<=Int_Qn;
QQuad<=Int_I;
else
IQuad<=Int_Q;
QQUad<=Int_In;
end if;

Error<=IQuad - QQuad;

Для высших порядков QAM решающее устройство будет сложнее.
Кстати, если качество несущей частоты хорошее, можно пользоваться схемой костаса.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Apr 10 2008, 10:29
Сообщение #17


Утомлённый солнцем
******

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



Цитата(petrov @ Apr 10 2008, 08:05) *
Пишите здесь, это может быть ещё кому-нибудь интересно, больше людей смогут вам помочь.

Хорошо.
За какое время (количество символов) происходит символьная синхронизация(скажем при заданном Eb/N0 и заданном символьном рассогласовании)?
Чем вызвано применение символьной задержки по сигналу ошибки,а не подстройка ГУНТ?


Цитата(Михаил_K @ Apr 10 2008, 09:43) *
По решению значит вот что. Например для ФМ4. Для определенности считаем, что точки должны находиться на диагоналях. Поэтому берем конкретный отсчет (символ) и смотрим по его координатам, где он находится. В зависимости от его нахождения вырабатываем сигнал ошибки для системы ФАПЧ. Строго говоря, для сигнала ФМ4 нужно брать арктангенс отношения Q/I. Но для практической реализации это не удобно. Я например делал так:
1. Проводится преобразование координат (знаков координат) текущей точки так, чтобы она попала в первый квадрант.
2. Берется разность координат - это и есть ошибка.


Спасибо,приму к сведению.Сейчас просто накапливаю информацию.

Сообщение отредактировал _Anatoliy - Apr 10 2008, 10:36
Go to the top of the page
 
+Quote Post
petrov
сообщение Apr 10 2008, 10:50
Сообщение #18


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(_Anatoliy @ Apr 9 2008, 23:54) *
За какое время (количество символов) происходит символьная синхронизация(скажем при заданном Eb/N0 и заданном символьном рассогласовании)?


Это определяется коэффициентами передачи интегрирующего и пропорционального звена в ФАПЧ, у Незами посмотрите этот вопрос кратенько рассматривается, это теория автоматического управления в чистом виде.


Цитата(_Anatoliy @ Apr 9 2008, 23:54) *
Чем вызвано применение символьной задержки по сигналу ошибки,а не подстройка ГУНТ?


Не понял вопроса.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Apr 10 2008, 11:05
Сообщение #19


Утомлённый солнцем
******

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



Цитата(petrov @ Apr 10 2008, 13:50) *
Это определяется коэффициентами передачи интегрирующего и пропорционального звена в ФАПЧ, у Незами посмотрите этот вопрос кратенько рассматривается, это теория автоматического управления в чистом виде.
Не понял вопроса.


Можно генератор импульсов символьной синхронизации фапчем подстраивать под частоту символов.А у Вас применяется Farrow_interpolator у Незами тоже его нашёл.Чем такой способ лучше?
Go to the top of the page
 
+Quote Post
petrov
сообщение Apr 10 2008, 11:22
Сообщение #20


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(_Anatoliy @ Apr 10 2008, 15:05) *
Можно генератор импульсов символьной синхронизации фапчем подстраивать под частоту символов.А у Вас применяется Farrow_interpolator у Незами тоже его нашёл.Чем такой способ лучше?


Там и подстраивается генератор импульсов плюс дробная часть с NCO используется в интерполяторе фарроу для точного вычисления символа, иначе отсчёт с выхода согласованного фильтра брался бы с точностью до частоты дискретизации и не попадал бы в максимум раскрытия глазка.
Go to the top of the page
 
+Quote Post
fontp
сообщение Apr 10 2008, 11:25
Сообщение #21


Эксперт
*****

Группа: Свой
Сообщений: 1 467
Регистрация: 25-06-04
Пользователь №: 183



Цитата(petrov @ Apr 10 2008, 15:22) *
Там и подстраивается генератор импульсов плюс дробная часть с NCO используется в интерполяторе фарроу для точного вычисления символа, иначе отсчёт с выхода согласованного фильтра брался бы с точностью до частоты дискретизации и не попадал бы в максимум раскрытия глазка.


Он кажется не о том спросил. Если я понял правильно.
Он, кажется, спросил: Почему бы не использовать АНАЛОГОВЫЙ фапч, вместо того чтобы использовать интерполяцию на заданной фиксированой последовательности отсчётов.
Тогда ответ не лучше или хуже. Ответ: Чтобы двигать фазу отсчётов АЦП прямо в аналоге нужен дорогой и развесистый фронт-энд. Часто такой возможности нет. И для полностью цифровой модели это криво

Т.е. если АЦП позволяет двигать фазу отсчётов с нужной точностью можно использовать аналоговый ФАПЧ с сигналом рассогласования по алгоритму например Гарднера. Если фазу АЦП двигать нельзя или точность недостаточна, задача решается в цифре интерполятором. Это скорее альтернативные подходы, чем взаимозаменяющие лучше-хуже
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Apr 10 2008, 12:39
Сообщение #22


Утомлённый солнцем
******

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



Цитата(petrov @ Apr 10 2008, 14:22) *
Там и подстраивается генератор импульсов плюс дробная часть с NCO используется в интерполяторе фарроу для точного вычисления символа, иначе отсчёт с выхода согласованного фильтра брался бы с точностью до частоты дискретизации и не попадал бы в максимум раскрытия глазка.


Я правильно понял - NCO подстраивается под символьную частоту, а интерполятор обеспечивает нулевой фазовый сдвиг(попадание в максимум раскрытия глазка)?

Но у Вас на выходе фазового детектора стоит интегратор,значит NCO и так будет подстроен с точностью до фазы(т.е. в установившемся режиме разность фаз будет равна нулю и без интерполятора)?



Цитата(fontp @ Apr 10 2008, 14:25) *


Понял,спасибо.
Go to the top of the page
 
+Quote Post
petrov
сообщение Apr 10 2008, 12:52
Сообщение #23


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(_Anatoliy @ Apr 10 2008, 16:39) *
Я правильно понял - NCO подстраивается под символьную частоту, а интерполятор обеспечивает нулевой фазовый сдвиг(попадание в максимум раскрытия глазка)?

Но у Вас на выходе фазового детектора стоит интегратор,значит NCO и так будет подстроен с точностью до фазы(т.е. в установившемся режиме разность фаз будет равна нулю и без интерполятора)?


Без интерполятора не будет в общем случае. Опорные генераторы в приёмнике и передатчике никак не синхронизированы ни по частоте ни по фазе, нет гарантии что в приёмнике отсчёт попадёт в максимум глазка, без интерполятора фапч будет брать ближайший возможный отчёт, но будет оставаться временная ошибка в наихудшем случае, до половины периода дискретизации.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Apr 10 2008, 14:23
Сообщение #24


Утомлённый солнцем
******

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



Цитата(petrov @ Apr 10 2008, 15:52) *
Без интерполятора не будет в общем случае. Опорные генераторы в приёмнике и передатчике никак не синхронизированы ни по частоте ни по фазе, нет гарантии что в приёмнике отсчёт попадёт в максимум глазка, без интерполятора фапч будет брать ближайший возможный отчёт, но будет оставаться временная ошибка в наихудшем случае, до половины периода дискретизации.


Понятно.Я как раз думал что у Вас происходит подстройка опорного генератора приёмника под генератор передатчика по частоте и фазе.Теперь вижу что это не так.
А всё таки,нельзя ли как то подстроить генератор приёмника?Не упростит ли это задачу?
Go to the top of the page
 
+Quote Post
Михаил_K
сообщение Apr 11 2008, 06:18
Сообщение #25


Знающий
****

Группа: Свой
Сообщений: 552
Регистрация: 29-02-08
Пользователь №: 35 481



Цитата(_Anatoliy @ Apr 10 2008, 18:23) *
Понятно.Я как раз думал что у Вас происходит подстройка опорного генератора приёмника под генератор передатчика по частоте и фазе.Теперь вижу что это не так.
А всё таки,нельзя ли как то подстроить генератор приёмника?Не упростит ли это задачу?


Если предполагается прием сигнала на определенной тактовой частоте, то для АЦП хорошо подходит кварцевый гун, который и подстраивается. У меня во всех модемах на фиксированную скорость так сделано. Соотвественно не нужно делать интерполятор, который отъедает приличный кусок ПЛИСа.
Go to the top of the page
 
+Quote Post
petrov
сообщение Apr 11 2008, 06:55
Сообщение #26


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(_Anatoliy @ Apr 10 2008, 18:23) *
Понятно.Я как раз думал что у Вас происходит подстройка опорного генератора приёмника под генератор передатчика по частоте и фазе.Теперь вижу что это не так.
А всё таки,нельзя ли как то подстроить генератор приёмника?Не упростит ли это задачу?


Смотря что понимать под упрощением. Так ведь можно модем в аналоге реализовать без FPGA и сигнальных процессоров. Дополнительные ГУН, ЦАП, обвязка, разводка печатной платы, отладка всего этого хозяйства вместо простого, сразу работающего, математического алгоритма это упрощение? И не будет это стоить дешевле. В серьёзном модеме интерполятор символьной синхронизации занимает незначительную часть вычислительных ресурсов. Современные средства ЦОС позволяют сделать всё в цифре не понимаю зачем нужно делать шаг назад.
Go to the top of the page
 
+Quote Post
fontp
сообщение Apr 11 2008, 07:17
Сообщение #27


Эксперт
*****

Группа: Свой
Сообщений: 1 467
Регистрация: 25-06-04
Пользователь №: 183



Цитата(petrov @ Apr 11 2008, 10:55) *
Смотря что понимать под упрощением. Так ведь можно модем в аналоге реализовать без FPGA и сигнальных процессоров. Дополнительные ГУН, ЦАП, обвязка, разводка печатной платы, отладка всего этого хозяйства вместо простого, сразу работающего, математического алгоритма это упрощение? И не будет это стоить дешевле. В серьёзном модеме интерполятор символьной синхронизации занимает незначительную часть вычислительных ресурсов. Современные средства ЦОС позволяют сделать всё в цифре не понимаю зачем нужно делать шаг назад.


Иметь в аналоге, что-то что можно сделать в цифре есть шаг назад, поскольку аналог это источник нестабильности и разброса параметров. Но не всё так однозначно. ФАПЧ на самом деле может быть полностью цифровым (хоть и на уровне аналогового фронт-энда), если АЦП имеет функцию в цифре линейно двигать фазу отсчётов. Такие АЦП есть. И хотя возникают вопросы с какой точностью они реально это делают, с какими переходными характеристиками, особенно задержкой, и всё такое - если это регулирование адекватно задаче, то это возможно лучшее решение. Остаётся только единственный недостаток: интерполятор это алгоритм который полностью и легко отлаживается в модельной обстановке, а программа ФАПЧ с управлением АЦП - риал-тайм процесс, отладить который значительно сложнее. Но это ж не смертельно
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Apr 11 2008, 07:52
Сообщение #28


Утомлённый солнцем
******

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



Цитата(Михаил_K @ Apr 11 2008, 09:18) *
Если предполагается прием сигнала на определенной тактовой частоте, то для АЦП хорошо подходит кварцевый гун, который и подстраивается. У меня во всех модемах на фиксированную скорость так сделано. Соотвественно не нужно делать интерполятор, который отъедает приличный кусок ПЛИСа.


Вот-вот,и я об этом же подумал. beer.gif

Только как нормально выделить несущую и символьную тактовую?

У Незами всё вроде красиво получается,я попробовал в матлабе модель по рисунку 7-3 для QAM-16. Работает,выделяет ошибку несущей,но почемуто не точно,даёт ошибку в пределах +- 1,5 Гц, как ни бился уменьшить её не получилось.Да и для QAM-256 возводить отсчёты в 256-ю степень мало приятного...

Цитата(petrov @ Apr 11 2008, 09:55) *
Смотря что понимать под упрощением. Так ведь можно модем в аналоге реализовать без FPGA и сигнальных процессоров. Дополнительные ГУН, ЦАП, обвязка, разводка печатной платы, отладка всего этого хозяйства вместо простого, сразу работающего, математического алгоритма это упрощение? И не будет это стоить дешевле. В серьёзном модеме интерполятор символьной синхронизации занимает незначительную часть вычислительных ресурсов. Современные средства ЦОС позволяют сделать всё в цифре не понимаю зачем нужно делать шаг назад.


Спасибо! Я Вас понял.
Go to the top of the page
 
+Quote Post
petrov
сообщение Apr 11 2008, 08:19
Сообщение #29


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(_Anatoliy @ Apr 11 2008, 11:52) *
У Незами всё вроде красиво получается,я попробовал в матлабе модель по рисунку 7-3 для QAM-16. Работает,выделяет ошибку несущей,но почемуто не точно,даёт ошибку в пределах +- 1,5 Гц, как ни бился уменьшить её не получилось.Да и для QAM-256 возводить отсчёты в 256-ю степень мало приятного...


У Незами как раз и написано что для QAM это плохой алгоритм, для фазовой синхронизации используйте ФАПЧ управляемую разностью между аргументом решения и аргументом принимаемого вектора. Для плотных созвездий будет маленькая полоса захвата:
http://electronix.ru/forum/index.php?showtopic=45021

У вас кстати модуляция непрерывная или пакетная?
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Apr 11 2008, 08:36
Сообщение #30


Утомлённый солнцем
******

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



Цитата(petrov @ Apr 11 2008, 11:19) *
У Незами как раз и написано что для QAM это плохой алгоритм, для фазовой синхронизации используйте ФАПЧ управляемую разностью между аргументом решения и аргументом принимаемого вектора. Для плотных созвездий будет маленькая полоса захвата:
http://electronix.ru/forum/index.php?showtopic=45021

У вас кстати модуляция непрерывная или пакетная?


Спасибо за ссылку!Модуляция у меня будет непрерывная.

Скажите,а Ваша модель сильно изменится для QAM-256 или косметически?
Go to the top of the page
 
+Quote Post
petrov
сообщение Apr 11 2008, 08:41
Сообщение #31


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(_Anatoliy @ Apr 11 2008, 12:36) *
Спасибо за ссылку!Модуляция у меня будет непрерывная.

Скажите,а Ваша модель сильно изменится для QAM-256 или косметически?


Ну на QAM256 переделать ничего не стоит, только это не готовый модем а просто пояснение некоторых принципов.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Apr 11 2008, 09:20
Сообщение #32


Утомлённый солнцем
******

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



Цитата(petrov @ Apr 11 2008, 11:41) *
Ну на QAM256 переделать ничего не стоит, только это не готовый модем а просто пояснение некоторых принципов.


Да,конечно.Очень интересно на Вашей модели разбираться с принципом работы,ещё раз спасибо!

А Вы не пробовали уменьшить количество отсчётов на символ(до 4)?Я пока не настолько хорошо разобрался в модели.Просто у меня ожидается битрейт 200...300mbps.
Go to the top of the page
 
+Quote Post
petrov
сообщение Apr 11 2008, 09:35
Сообщение #33


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(_Anatoliy @ Apr 11 2008, 13:20) *
Да,конечно.Очень интересно на Вашей модели разбираться с принципом работы,ещё раз спасибо!

А Вы не пробовали уменьшить количество отсчётов на символ(до 4)?Я пока не настолько хорошо разобрался в модели.Просто у меня ожидается битрейт 200...300mbps.


Можно частоту дискретизации уменьшить вплоть до минимально необходимой по котельникову. Интерполятору фарроу необходима передискретизация примерно больше 4.5 отсчётов на символ, зависит от требуемой точности, тогда придётся полифазным фильтром увеличить количество отсчётов необходимое для нормальной работы интерполятора фарроу, всё это ессно делается без увеличения тактовой частоты в FPGA.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Apr 11 2008, 09:53
Сообщение #34


Утомлённый солнцем
******

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



Цитата(petrov @ Apr 11 2008, 12:35) *
Можно частоту дискретизации уменьшить вплоть до минимально необходимой по котельникову. Интерполятору фарроу необходима передискретизация примерно больше 4.5 отсчётов на символ, зависит от требуемой точности, тогда придётся полифазным фильтром увеличить количество отсчётов необходимое для нормальной работы интерполятора фарроу, всё это ессно делается без увеличения тактовой частоты в FPGA.


Спасибо! Думаю смысл Вами сказанного окончательно пойму только после того как разложу Вашу модель "по полочкам".Будем рыть дальше.
Go to the top of the page
 
+Quote Post
Михаил_K
сообщение Apr 11 2008, 11:04
Сообщение #35


Знающий
****

Группа: Свой
Сообщений: 552
Регистрация: 29-02-08
Пользователь №: 35 481



Цитата(petrov @ Apr 11 2008, 10:55) *
Смотря что понимать под упрощением. Так ведь можно модем в аналоге реализовать без FPGA и сигнальных процессоров. Дополнительные ГУН, ЦАП, обвязка, разводка печатной платы, отладка всего этого хозяйства вместо простого, сразу работающего, математического алгоритма это упрощение? И не будет это стоить дешевле. В серьёзном модеме интерполятор символьной синхронизации занимает незначительную часть вычислительных ресурсов. Современные средства ЦОС позволяют сделать всё в цифре не понимаю зачем нужно делать шаг назад.


В модеме, который я делал почти 5 лет назад, первый интерполятор был сделан на GC3011 (вроде бы, давно было). Затем переделали его на Virtex2. Интерполятор в месте с системой тактовой синхронизации занял отдельный плис 1500. Он требовал 30 умножителей, блок ОЗУ для хранения 15х4096 12-разярдных коэффициентов. Но зато позволял принимать сигналы на любой тактовой частоте, от 1 кГц до 50 МГц. Полностью весь демодулятор был сделан на 5 плисах Virtex2. 2 полуторотысячника и 3 тысячника.

В модеме, который я делал два года назад, на фиксированную частоту использовался ГУН, который стоит 30 долларов. Весь демодулятор поместился в четырехсотый спартан.
Go to the top of the page
 
+Quote Post
petrov
сообщение Apr 11 2008, 12:01
Сообщение #36


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(Михаил_K @ Apr 11 2008, 15:04) *
В модеме, который я делал почти 5 лет назад, первый интерполятор был сделан на GC3011 (вроде бы, давно было). Затем переделали его на Virtex2. Интерполятор в месте с системой тактовой синхронизации занял отдельный плис 1500. Он требовал 30 умножителей, блок ОЗУ для хранения 15х4096 12-разярдных коэффициентов. Но зато позволял принимать сигналы на любой тактовой частоте, от 1 кГц до 50 МГц. Полностью весь демодулятор был сделан на 5 плисах Virtex2. 2 полуторотысячника и 3 тысячника.

В модеме, который я делал два года назад, на фиксированную частоту использовался ГУН, который стоит 30 долларов. Весь демодулятор поместился в четырехсотый спартан.


http://www.altera.ru/cgi-bin/price/price

Altera Cyclone III EP3C16E144C8 31,36$
15408 логических элементов, логический элемент - 4-х входовой LUT + триггер
56 18bit умножителей

Согласитесь что сейчас символьная синхронизация на внешнем ГУНе будет худшим решением с любой точки зрения?
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Apr 11 2008, 13:27
Сообщение #37


Утомлённый солнцем
******

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



Цитата(petrov @ Apr 11 2008, 15:01) *


А можно ещё вопросики по Незами рис. 7-3?Хочется разобраться.

1).Какова цель введения нелинейности [x]^M?
2).Это схема является частотным детектором?Вроде у него полоса захвата должна быть пошире чем фазового(в фазовом детекторе сигнальный вектор за счёт частотного сдвига не должен попасть в область соседней сигнальной точки созвездия).
3).Схема по Незами рис. 7-3 имеет область захвата dF <= +- 1 / (2*M*T),для QAM16 это будет +- 1/32T. А Ваша модель работает при 1/18T,Вы можете это как-то прокомментировать?
Go to the top of the page
 
+Quote Post
petrov
сообщение Apr 11 2008, 14:33
Сообщение #38


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(_Anatoliy @ Apr 11 2008, 17:27) *
А можно ещё вопросики по Незами рис. 7-3?Хочется разобраться.

1).Какова цель введения нелинейности [x]^M?
2).Это схема является частотным детектором?Вроде у него полоса захвата должна быть пошире чем фазового(в фазовом детекторе сигнальный вектор за счёт частотного сдвига не должен попасть в область соседней сигнальной точки созвездия).
3).Схема по Незами рис. 7-3 имеет область захвата dF <= +- 1 / (2*M*T),для QAM16 это будет +- 1/32T. А Ваша модель работает при 1/18T,Вы можете это как-то прокомментировать?


1) для того чтобы избавиться о модуляции, посмотрите модельки для QPSK, при умножении фазы на 4 она превращается в линию(по модулю 2pi ессно), для QAM16 не надо на 16 фазу умножать, а на 4 как для QPSK, но только плохой это детектор для QAM
2) да является, она работает как она работает, с чем сравнивать?
3)вот представьте себе передачу подряд какой-то одной точки QAM созвездия,пусть на приёме один вектор в точности попадает в решение, из-за сдвига частоты dF на следующем символьном интервале принимаемый вектор повернётся на 2*pi*dF*T радиан, если он попадает в область другого решения то захвата не будет
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Apr 11 2008, 14:50
Сообщение #39


Утомлённый солнцем
******

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



Цитата(petrov @ Apr 11 2008, 17:33) *
2) да является, она работает как она работает, с чем сравнивать?
3)вот представьте себе передачу подряд какой-то одной точки QAM созвездия,пусть на приёме один вектор в точности попадает в решение, из-за сдвига частоты dF на следующем символьном интервале принимаемый вектор повернётся на 2*pi*dF*T радиан, если он попадает в область другого решения то захвата не будет


2).С Вашей моделью.У Вас же применён фазовый детектор,а полоса захвата шире.
3).Это я понимаю.Видно неточно сформулировал вопрос.Я хотел сказать что Ваша модель обеспечивает более широкую полосу захвата(1/18 > 1/32).
Go to the top of the page
 
+Quote Post
petrov
сообщение Apr 11 2008, 15:06
Сообщение #40


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(_Anatoliy @ Apr 11 2008, 18:50) *
2).С Вашей моделью.У Вас же применён фазовый детектор,а полоса захвата шире.
3).Это я понимаю.Видно неточно сформулировал вопрос.Я хотел сказать что Ваша модель обеспечивает более широкую полосу захвата(1/18 > 1/32).


Ну обеспечивает какую-то полосу, вы поняли чем она определяется, а 1/32 это вы неправильно взяли, та формула для BPSK и QPSK, нету такого детектора для QAM чтоб в 16 степень возводить. smile.gif
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Apr 11 2008, 15:27
Сообщение #41


Утомлённый солнцем
******

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



Цитата(petrov @ Apr 11 2008, 18:06) *
Ну обеспечивает какую-то полосу, вы поняли чем она определяется, а 1/32 это вы неправильно взяли, та формула для BPSK и QPSK, нету такого детектора для QAM чтоб в 16 степень возводить. smile.gif


Понятно,спасибо. А тем более в 256-ю smile.gif
Go to the top of the page
 
+Quote Post
Михаил_K
сообщение Apr 11 2008, 15:58
Сообщение #42


Знающий
****

Группа: Свой
Сообщений: 552
Регистрация: 29-02-08
Пользователь №: 35 481



Цитата(petrov @ Apr 11 2008, 16:01) *
http://www.altera.ru/cgi-bin/price/price

Altera Cyclone III EP3C16E144C8 31,36$
15408 логических элементов, логический элемент - 4-х входовой LUT + триггер
56 18bit умножителей

Согласитесь что сейчас символьная синхронизация на внешнем ГУНе будет худшим решением с любой точки зрения?

Не соглашусь.
XC3S400-4TQ144C XC3S400-4TQ144C - 400,000 SYSTEM GATE 1.2 VOLT FPGA $16,10
Кстати, ГУНы тоже бывают разные. Например делал я и с использованием ГУНов HOSONIC. Вроде доллара по 3 за штуку. И не забывайте, что генератор для АЦП нужен все равно. И еще, дополнительная логика в ПЛИСе приводит к увеличению выделяемого тепла, что между прочим становится довольно серьезной проблемой, особенно если устройство стоит на улице.
Посмотрите сюда http://www.grpz.ru/projects/index.shtml.
Станция "Струна-8". Там как раз стоит мой модем в котором hosonic. Коробочка у антенны содержит УМ, МШУ, дуплексер и полноценный модем с мультиплексором, демультиплексором, системой ТУТС. А размер у нее не такйо уж и большой. И каждые лишние 200-300 мВт тепла на плисе пагубно сказываются на надежности устройства.
Go to the top of the page
 
+Quote Post
alex_os
сообщение Apr 11 2008, 19:28
Сообщение #43


Знающий
****

Группа: Свой
Сообщений: 521
Регистрация: 12-05-06
Пользователь №: 17 030



Цитата(Михаил_K @ Apr 11 2008, 18:58) *
Не соглашусь.
XC3S400-4TQ144C XC3S400-4TQ144C - 400,000 SYSTEM GATE 1.2 VOLT FPGA $16,10
Кстати, ГУНы тоже бывают разные. Например делал я и с использованием ГУНов HOSONIC. Вроде доллара по 3 за штуку. И не забывайте, что генератор для АЦП нужен все равно. И еще, дополнительная логика в ПЛИСе приводит к увеличению выделяемого тепла, что между прочим становится довольно серьезной проблемой, особенно если устройство стоит на улице.
Посмотрите сюда http://www.grpz.ru/projects/index.shtml.
Станция "Струна-8". Там как раз стоит мой модем в котором hosonic. Коробочка у антенны содержит УМ, МШУ, дуплексер и полноценный модем с мультиплексором, демультиплексором, системой ТУТС. А размер у нее не такйо уж и большой. И каждые лишние 200-300 мВт тепла на плисе пагубно сказываются на надежности устройства.

Что-то сильно монстроидальный интерполятор получился у Вас. У меня полиномиальный интерполятор 3го порядка , структура Farrow, порядка 2000LE в первом циклоне занимал. На 100 Мгц работает, при том что умножителей в этой плисине нет вообще.


--------------------
ну не художники мы...
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Apr 11 2008, 19:44
Сообщение #44


Утомлённый солнцем
******

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



Цитата(petrov @ Apr 11 2008, 18:06) *


И ещё один вопросик.
Если у меня символьная скорость будет находиться в диапазоне,скажем от 10 до 20 msps(к примеру приёмник должен уметь принимать данные от разных передатчиков,а у каждого передатчика своя символьная скорость),то как правильно поступить - изменять тактовую частоту АЦП по принципу ВСЕГДА 4 ТАКТА НА СИМВОЛ или установить фиксировано 80 МГц? laughing.gif
Go to the top of the page
 
+Quote Post
petrov
сообщение Apr 12 2008, 07:26
Сообщение #45


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(_Anatoliy @ Apr 11 2008, 23:44) *
И ещё один вопросик.
Если у меня символьная скорость будет находиться в диапазоне,скажем от 10 до 20 msps(к примеру приёмник должен уметь принимать данные от разных передатчиков,а у каждого передатчика своя символьная скорость),то как правильно поступить - изменять тактовую частоту АЦП по принципу ВСЕГДА 4 ТАКТА НА СИМВОЛ или установить фиксировано 80 МГц? laughing.gif


АЦП конечно на фиксированной максимальной частоте, в FPGA будете фильтры менять т. п.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Apr 12 2008, 08:48
Сообщение #46


Утомлённый солнцем
******

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



Цитата(petrov @ Apr 12 2008, 10:26) *
АЦП конечно на фиксированной максимальной частоте, в FPGA будете фильтры менять т. п.


А можно немного подробнее?В чём тут хитрость?Мне казалось что лучше изменять тактовую,тогда параметры фильтров вроде менять не нужно.
Go to the top of the page
 
+Quote Post
proxi
сообщение Apr 12 2008, 10:25
Сообщение #47


Гуру
******

Группа: Banned
Сообщений: 2 754
Регистрация: 5-06-05
Из: Zurich
Пользователь №: 5 744



Цитата(_Anatoliy @ Apr 12 2008, 11:48) *
А можно немного подробнее?В чём тут хитрость?Мне казалось что лучше изменять тактовую,тогда параметры фильтров вроде менять не нужно.

Что бы зарядить разные скорости потока, нужны соответственно разные фильтры а на практике
их еще нужно подбирать так как реальный тракт имеет разные искажения для разный потоков..
Go to the top of the page
 
+Quote Post
petrov
сообщение Apr 12 2008, 11:45
Сообщение #48


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(_Anatoliy @ Apr 12 2008, 12:48) *
А можно немного подробнее?В чём тут хитрость?Мне казалось что лучше изменять тактовую,тогда параметры фильтров вроде менять не нужно.


Да никаких хитростей нет. Аналоговые фильтры перед АЦП тоже будете изменять? "Лучше" это только проще для понимания, это опять к вопросу аналоговой реализации, характеристики модема будут хуже.


Цитата(proxi @ Apr 12 2008, 14:25) *
...а на практике их еще нужно подбирать так как реальный тракт имеет разные искажения для разный потоков..


Для этого эквалайзер есть.

Сообщение отредактировал petrov - Apr 12 2008, 11:46
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Apr 12 2008, 12:04
Сообщение #49


Утомлённый солнцем
******

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



Цитата(petrov @ Apr 12 2008, 14:45) *
Да никаких хитростей нет. Аналоговые фильтры перед АЦП тоже будете изменять? "Лучше" это только проще для понимания, это опять к вопросу аналоговой реализации, характеристики модема будут хуже.
Для этого эквалайзер есть.


Ясно,спасибо.Но если диапазон символьных скоростей относится,например, как 1:4 и с возможным шагом 1% то непонятно как тогда быть?Может по заданной символьной скорости вычислять необходимые коэффициенты фильтров?Не хранить же все возможные в памяти?
Go to the top of the page
 
+Quote Post
proxi
сообщение Apr 12 2008, 12:07
Сообщение #50


Гуру
******

Группа: Banned
Сообщений: 2 754
Регистрация: 5-06-05
Из: Zurich
Пользователь №: 5 744



Цитата(petrov @ Apr 12 2008, 14:45) *
Да никаких хитростей нет. Аналоговые фильтры перед АЦП тоже будете изменять? "Лучше" это только проще для понимания, это опять к вопросу аналоговой реализации, характеристики модема будут хуже.
Для этого эквалайзер есть.

Ясно дело но ведь подбирают...
Go to the top of the page
 
+Quote Post
petrov
сообщение Apr 12 2008, 12:38
Сообщение #51


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(_Anatoliy @ Apr 12 2008, 16:04) *
Ясно,спасибо.Но если диапазон символьных скоростей относится,например, как 1:4 и с возможным шагом 1% то непонятно как тогда быть?Может по заданной символьной скорости вычислять необходимые коэффициенты фильтров?Не хранить же все возможные в памяти?


Ну это не значит что надо громадное количество фильтров. Символьный синхронизатор будет ресамплить с некоторой передискретизацией, внутри будет фиксированный согласованный фильтр давить "хвосты" ненужные, а перед интерполятором ФНЧ с загружаемыми коэффициентами, в памяти небольшое количество наборов коэффициентов, такое чтоб наложений спектров небыло при ресамплинге.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Apr 12 2008, 13:27
Сообщение #52


Утомлённый солнцем
******

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



Цитата(petrov @ Apr 12 2008, 15:38) *
Ну это не значит что надо громадное количество фильтров. Символьный синхронизатор будет ресамплить с некоторой передискретизацией, внутри будет фиксированный согласованный фильтр давить "хвосты" ненужные, а перед интерполятором ФНЧ с загружаемыми коэффициентами, в памяти небольшое количество наборов коэффициентов, такое чтоб наложений спектров небыло при ресамплинге.


Спасибо,пока больше вопросов нет.
Go to the top of the page
 
+Quote Post
Михаил_K
сообщение Apr 12 2008, 14:57
Сообщение #53


Знающий
****

Группа: Свой
Сообщений: 552
Регистрация: 29-02-08
Пользователь №: 35 481



Цитата(_Anatoliy @ Apr 11 2008, 23:44) *
И ещё один вопросик.
Если у меня символьная скорость будет находиться в диапазоне,скажем от 10 до 20 msps(к примеру приёмник должен уметь принимать данные от разных передатчиков,а у каждого передатчика своя символьная скорость),то как правильно поступить - изменять тактовую частоту АЦП по принципу ВСЕГДА 4 ТАКТА НА СИМВОЛ или установить фиксировано 80 МГц? laughing.gif


Да, и вот тут-то интерполятор и понадобиться.


Цитата(alex_os @ Apr 11 2008, 23:28) *
Что-то сильно монстроидальный интерполятор получился у Вас. У меня полиномиальный интерполятор 3го порядка , структура Farrow, порядка 2000LE в первом циклоне занимал. На 100 Мгц работает, при том что умножителей в этой плисине нет вообще.


Все зависит от того, какое качество вы хотите получить smile.gif . У нас для идеального сигнала (с тестового генератора) С/Ш на выходе демодулятора для сигнала QAM256 порядка 41 - 43 дБ на тактовых порядка 40 МГц.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jun 25 2008, 11:05
Сообщение #54


Утомлённый солнцем
******

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



Цитата(petrov @ Apr 12 2008, 15:38) *


Александр,видимо к Вам вопрос.
Я переделал Вашу модель qam_fb_gardner_symbol_farrow_sync_fb_phase_sync_agc_2007_06_18.mdl для QAM64,всё работает (пока в матлабе),осталась одна непонятка.Вы в своей модели скремблируете число "5" и после демодуляции и дескремблирования получаете те же "5".У меня же созвездия стоят устойчиво,а на выходе вместо пятёрки мусор.Скремблер я переделал под QAM64,дескремблер его код восстанавливает нормально(если его включить сразу в модуляторе).Что нужно проверить?Может у меня созвездие повёрнуто на 90(180,270) градусов?Как это проверить?
Go to the top of the page
 
+Quote Post
petrov
сообщение Jun 25 2008, 11:57
Сообщение #55


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(_Anatoliy @ Jun 25 2008, 15:05) *
Александр,видимо к Вам вопрос.
Я переделал Вашу модель qam_fb_gardner_symbol_farrow_sync_fb_phase_sync_agc_2007_06_18.mdl для QAM64,всё работает (пока в матлабе),осталась одна непонятка.Вы в своей модели скремблируете число "5" и после демодуляции и дескремблирования получаете те же "5".У меня же созвездия стоят устойчиво,а на выходе вместо пятёрки мусор.Скремблер я переделал под QAM64,дескремблер его код восстанавливает нормально(если его включить сразу в модуляторе).Что нужно проверить?Может у меня созвездие повёрнуто на 90(180,270) градусов?Как это проверить?


У вас должна неоднозначность фазы как то восстанавливаться, через дифференциальное кодирование например или через передачу какой-то известной последовательности. У меня было сделано дифференциальное кодирование, при этом нужно специальным образом пронумерованное созвездие, оно кстати не наилучшее с точки зрения битовой ошибки. В блоке который сдвиг несущей задаёт, можно и фазу сдвинуть, попробуйте +-90, 180, при каком то должно заработать если других ошибок нету.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jun 25 2008, 12:48
Сообщение #56


Утомлённый солнцем
******

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



Цитата(petrov @ Jun 25 2008, 14:57) *
У вас должна неоднозначность фазы как то восстанавливаться, через дифференциальное кодирование например или через передачу какой-то известной последовательности. У меня было сделано дифференциальное кодирование, при этом нужно специальным образом пронумерованное созвездие, оно кстати не наилучшее с точки зрения битовой ошибки. В блоке который сдвиг несущей задаёт, можно и фазу сдвинуть, попробуйте +-90, 180, при каком то должно заработать если других ошибок нету.

Спасибо Александр!
Установил фазу 180 градусов и проверочный код "4" - всё заработало!Но при коде "5" ни при какой фазе восстановления нет.Такого же не должно быть...Дифференциальное кодирование у меня есть.
И ещё,при коде "5" в захват система входит примерно за 5000 символов,а при коде "23" - более 20000 символов.Может глянете надосуге?

Не удаётся файл присоединить....Сейчас куда-нибудь выложу.

http://upload.caxapa.ru/u8tq64fpga_temp.mdl

Код "17" восстанавливается только при фазе 270 градусов,чехарда какая-то:-(((
Go to the top of the page
 
+Quote Post
petrov
сообщение Jun 25 2008, 12:49
Сообщение #57


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(_Anatoliy @ Jun 25 2008, 16:36) *
Спасибо Александр!
Установил фазу 180 градусов и проверочный код "4" - всё заработало!Но при коде "5" ни при какой фазе восстановления нет.Такого же не должно быть...Дифференциальное кодирование у меня есть.
И ещё,при коде "5" в захват система входит примерно за 5000 символов,а при коде "23" - более 20000 символов.Может глянете надосуге?
Не удаётся файл присоединить....Сейчас куда-нибудь выложу.


Не должна от передаваемой информации синхронизация слетать. Значит скремблер плохой, у меня в модели он от балды, так что не больно там за основу берите. Так если есть диф кодирование, то почему же оно не работает? Как созвездие нумеровали?

Модель вашу посмотреть не смогу, у вас симулинк новее.

Сообщение отредактировал petrov - Jun 25 2008, 12:51
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jun 25 2008, 12:55
Сообщение #58


Утомлённый солнцем
******

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



Цитата(petrov @ Jun 25 2008, 15:49) *
Не должна от передаваемой информации синхронизация слетать. Значит скремблер плохой, у меня в модели он от балды, так что не больно там за основу берите. Так если есть диф кодирование, то почему же оно не работает? Как созвездие нумеровали?

Для созвездия взял нумерацию из QAM64 для DVB-C.А какой лучше скремблер применить?Модель сможете глянуть?
Go to the top of the page
 
+Quote Post
petrov
сообщение Jun 25 2008, 13:08
Сообщение #59


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(_Anatoliy @ Jun 25 2008, 16:55) *
Для созвездия взял нумерацию из QAM64 для DVB-C.А какой лучше скремблер применить?Модель сможете глянуть?


Вы уверены что нумерация подходит для вашего диф кодирования? Выложите картинку из стандарта. Сремблер возьмите однобитный, на основе генератора M последовательности максимальной длины.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jun 25 2008, 13:25
Сообщение #60


Утомлённый солнцем
******

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



Цитата(petrov @ Jun 25 2008, 16:08) *
Вы уверены что нумерация подходит для вашего диф кодирования? Выложите картинку из стандарта. Сремблер возьмите однобитный, на основе генератора M последовательности максимальной длины.


http://upload.caxapa.ru/qam64.GIF
Посмотрите,пожалуйста.
Взял однобитный скремблер из DVB-C - не помогло.

Вот схема модулятора http://upload.caxapa.ru/Modulator.GIF
Go to the top of the page
 
+Quote Post
petrov
сообщение Jun 25 2008, 13:44
Сообщение #61


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(_Anatoliy @ Jun 25 2008, 17:25) *
http://upload.caxapa.ru/qam64.GIF
Посмотрите,пожалуйста.
Взял однобитный скремблер из DVB-C - не помогло.

Вот схема модулятора http://upload.caxapa.ru/Modulator.GIF


Это созвездие не подходит. И дифференциальное кодирование неправильно осуществляется у вас. Разберитесь для начала с диф кодированием QPSK. Диф кодирование для QAM для 2-х битов которые адресуют квадрант созвездия осуществляется так же как и для QPSK. Остальные биты адресуют точки внутри квадранта, вы должны пронумеровать их так чтобы при поворотах созвездия на +-90 и 180 эти биты не менялись, ну и по возможности соседние точки дожны отличаться в меньшем количестве битов.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jun 25 2008, 13:55
Сообщение #62


Утомлённый солнцем
******

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



О,сейчас приклеился файл...

Цитата(petrov @ Jun 25 2008, 16:44) *
Это созвездие не подходит. И дифференциальное кодирование неправильно осуществляется у вас. Разберитесь для начала с диф кодированием QPSK. Диф кодирование для QAM для 2-х битов которые адресуют квадрант созвездия осуществляется так же как и для QPSK. Остальные биты адресуют точки внутри квадранта, вы должны пронумеровать их так чтобы при поворотах созвездия на +-90 и 180 эти биты не менялись, ну и по возможности соседние точки дожны отличаться в меньшем количестве битов.


Спасибо! Да,с диффкодированием я намудрил.Буду переделывать.И квадранты проверю,результат сообщу уже видимо завтра.
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jun 26 2008, 06:26
Сообщение #63


Утомлённый солнцем
******

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



Цитата(petrov @ Jun 25 2008, 16:44) *
Это созвездие не подходит. И дифференциальное кодирование неправильно осуществляется у вас. Разберитесь для начала с диф кодированием QPSK.

Это созвездие было из DVB-T,заменил на DVB-C.
Прикрепленное изображение

Дифференциальное кодирование переделал,только не помогло это:-((
Прикрепленное изображение


Что-то происходит с узлом подстройки по частоте несущей:если убрать блок Phase/FrequencyOffset из линии связи и на перемножитель подать константу то дескремблер восстанавливает любой код без ошибок.Но так не интересно.Что ещё можно посмотреть?

Происходит ошибка выбора квадранта т.к. при большом коде ошибка кратна 16-ти.

Может попробовать диффкодирование из DVB-C?
Прикрепленное изображение
Go to the top of the page
 
+Quote Post
petrov
сообщение Jun 26 2008, 07:33
Сообщение #64


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Это созвездие подходит, только кодирование грея для двух старших битов уже встроено.
Не надо Phase/FrequencyOffset убирать, частоты нулевой делаете, а сдвиг фазы 0 +-90 180 перебираете для проверки вашего диф кодирования. Не надо бездумно из стандартов какие-то операции вытаскивать, всё должно работать как и для 16 QAM работает, никакой принципиальной разницы нет. Вы на приёмной стороне декодер не забыли изменить?
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jun 26 2008, 08:05
Сообщение #65


Утомлённый солнцем
******

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



Цитата(petrov @ Jun 26 2008, 10:33) *
Вы на приёмной стороне декодер не забыли изменить?


Нет,тогда бы он не восстанавливал код без блока Phase/FrequencyOffset.
Например,код "60" восстанавливается с блоком Phase/FrequencyOffset при FrequencyOffset=0 и Phase=270.При остальных фазах не восстанавливается.Вот ошибка при Phase=90.

Прикрепленное изображение
Go to the top of the page
 
+Quote Post
petrov
сообщение Jun 26 2008, 08:09
Сообщение #66


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(_Anatoliy @ Jun 26 2008, 12:05) *
Нет,тогда бы он не восстанавливал код без блока Phase/FrequencyOffset.
Например,код "60" восстанавливается с блоком Phase/FrequencyOffset при FrequencyOffset=0 и Phase=270.При остальных фазах не восстанавливается.Вот ошибка при Phase=90.

Прикрепленное изображение


Ищите ошибки...
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jun 26 2008, 13:39
Сообщение #67


Утомлённый солнцем
******

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



Цитата(petrov @ Jun 26 2008, 11:09) *
Ищите ошибки...


При FrequencyOffset=0 и Phase=0 комплексный гетеродин компенсации частотной ошибки выдаёт на перемножитель сигнал 0-i*1,в результате этого на выходе перемножителя сигнал появляется уже сдвинутым на -90 градусов и неправильно демаппируется.Если поставить Phase=90 то происходит компенсация фазового сдвига и передаваемый код декодируется нормально.Поясните,пожалуйста,эту ситуацию.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jun 26 2008, 14:40
Сообщение #68


Утомлённый солнцем
******

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



Александр,Ваша модель тоже так себя ведёт если поставить контрольный код "40".По модулю 16.

Странно,но сегодня повторить эту ситуацию с Вашей моделью мне не удалось,при тех же параметрах что вчера.
Похоже я поторопился с выводами,следствие продолжается...
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jun 28 2008, 05:56
Сообщение #69


Утомлённый солнцем
******

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



Как оказалось,алгоритм дифф-кодирования должен выбираться согласно формируемому созвездию.Я этого не знал.После замены алгоритма дифф-кодирования на нужный,проверочный код стал стабильно восстанавливаться при любой фазовой ошибке(0,-90,90,180) и независимо от значения кода.Только после этого почему-то стал хуже работать узел синхронизации по несущей,буду искать причину,после её устранения можно будет начать работать с FPGA.
Александр,большое Вам спасибо за помощь!
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jul 12 2008, 12:11
Сообщение #70


Утомлённый солнцем
******

Группа: Свой
Сообщений: 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?
Go to the top of the page
 
+Quote Post
petrov
сообщение Jul 12 2008, 16:53
Сообщение #71


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Комбинационная схема интерполятора работает на символьной частоте(ну или например на удвоенной для дробного эквалайзера), если вы понимаете как поступают отсчёты на отводы с линии задержки интерполятора при тупой реализации с повышением тактовой без полифазного фильтра, то коммутировать так же с двух шин полифазного фильтра не представляет никаких сложностей.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jul 14 2008, 05:03
Сообщение #72


Утомлённый солнцем
******

Группа: Свой
Сообщений: 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 Фарроу заработал только после ввода этих коэффициентов.
Go to the top of the page
 
+Quote Post
petrov
сообщение Jul 14 2008, 11:37
Сообщение #73


Гуру
******

Группа: Свой
Сообщений: 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 Фарроу заработал только после ввода этих коэффициентов.


Да все эти вопросы конечной разрядности не приятные, но таких мест будет куча, надо научиться прикидывать где промасштабировать, где округлить разряды, где с повышенной точностью вычисления надо проводить и т. п. это никто кроме вас сделать не сможет. Какая у вас символьная скорость? Наверняка можно на одном умножителе весь интерполятор сделать.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jul 14 2008, 12:24
Сообщение #74


Утомлённый солнцем
******

Группа: Свой
Сообщений: 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.
А как можно интерполятор Фарроу сделать на одном умножителе?
Go to the top of the page
 
+Quote Post
petrov
сообщение Jul 14 2008, 13:22
Сообщение #75


Гуру
******

Группа: Свой
Сообщений: 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.
А как можно интерполятор Фарроу сделать на одном умножителе?


Да высокая символьная, наверное с последовательной обработкой нет смысла заморачиваться.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jul 14 2008, 13:54
Сообщение #76


Утомлённый солнцем
******

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



Цитата(petrov @ Jul 14 2008, 16:22) *
В смысле вычисления производятся столько раз сколько нужно вам отсчётов на символ но не как не с входной частотой, я ж не знаю сколько у вас там отсчётов на символ нужно для обработки последующей, можно и с одним сделать и с двумя и с дробным, просто условно писал с символьной частотой и даже выше оговаривался в скобках что может и два осчёта быть напрмер для дробного эквалайзера.

Понял,спасибо!
Цитата(petrov @ Jul 14 2008, 16:22) *
Пробуйте ещё smile.gif

Конечно буду копать дальше,что ещё остаётся.Сейчас придумал методику проверки Фарроу на "вшивость",удалось уменьшить размерность входных данных до 16-ти бит!!!
Цитата(petrov @ Jul 14 2008, 16:22) *
Да высокая символьная, наверное с последовательной обработкой нет смысла заморачиваться.

Это точно,я такой вариант даже не рассматривал.
Go to the top of the page
 
+Quote Post
MKS
сообщение Jul 14 2008, 15:56
Сообщение #77


Местный
***

Группа: Свой
Сообщений: 469
Регистрация: 13-03-05
Пользователь №: 3 315



Анатолий, а какую степень полинома вы используете в интерполяторе ?
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jul 14 2008, 16:14
Сообщение #78


Утомлённый солнцем
******

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



Цитата(MKS @ Jul 14 2008, 18:56) *
Анатолий, а какую степень полинома вы используете в интерполяторе ?


Схема взята из книги Незами.Так же присутствует в моделях Петрова.
Прикрепленное изображение


Только Gain13 должен быть равен 1.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jul 15 2008, 07:24
Сообщение #79


Утомлённый солнцем
******

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



Цитата(petrov @ Jul 14 2008, 16:22) *
В смысле вычисления производятся столько раз сколько нужно вам отсчётов на символ но не как не с входной частотой, я ж не знаю сколько у вас там отсчётов на символ нужно для обработки последующей, можно и с одним сделать и с двумя и с дробным, просто условно писал с символьной частотой и даже выше оговаривался в скобках что может и два осчёта быть напрмер для дробного эквалайзера.


А я всё о Фарроу... Не сростается у меня общая картина. Не могу увязать то что Вы говорили раньше с тем что говорите сейчас.

Раньше Вы говорили так:
Цитата(petrov @ Aprel 11 2008, 16:22) *
Можно частоту дискретизации уменьшить вплоть до минимально необходимой по котельникову. Интерполятору фарроу необходима передискретизация примерно больше 4.5 отсчётов на символ[color=#FF0000], зависит от требуемой точности, тогда придётся полифазным фильтром увеличить количество отсчётов необходимое для нормальной работы интерполятора фарроу, всё это ессно делается без увеличения тактовой частоты в FPGA.


Если посмотреть АЧХ Фарроу то видно,что при менее 5-ти отсчётов на символ растёт нелинейность фильтра,а при трёх отсчётах он вообще не будет работать.
На картинке по оси х число 10 соответствует частоте дискетизации.
Прикрепленное изображение
Go to the top of the page
 
+Quote Post
petrov
сообщение Jul 15 2008, 07:30
Сообщение #80


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Тут о разных вещах речь идёт. В первой цитате речь шла о количестве отсчётов для последующей обработки после интеропляции. Во второй сколько отсчётов требуется для работы интерполятора, не устраивает вас 5 берите больше.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jul 15 2008, 07:46
Сообщение #81


Утомлённый солнцем
******

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



Цитата(petrov @ Jul 15 2008, 10:30) *
Тут о разных вещах речь идёт. В первой цитате речь шла о количестве отсчётов для последующей обработки после интеропляции. Во второй сколько отсчётов требуется для работы интерполятора, не устраивает вас 5 берите больше.


Спасибо,теперь понятно о чём речь.
Я с удовольствием взял бы 8 отсчётов,да по скорости не вписываюсь.Идея фикс - придумать полифазный интерполятор Фарроу,что бы он работал при 4-х отсчётах на символ так же,как обычный при 8-ми.
Бредовая идея?
Go to the top of the page
 
+Quote Post
petrov
сообщение Jul 15 2008, 07:53
Сообщение #82


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(_Anatoliy @ Jul 15 2008, 11:46) *
Спасибо,теперь понятно о чём речь.
Я с удовольствием взял бы 8 отсчётов,да по скорости не вписываюсь.Идея фикс - придумать полифазный интерполятор Фарроу,что бы он работал при 4-х отсчётах на символ так же,как обычный при 8-ми.
Бредовая идея?


Не надо ничего выдумывать, всё уже придумано, даже разобраться в этом сложно, не говоря о том чтобы новое придумать. Хотите чтобы при четырёх отсчётах интерполятор удовлетворительно работал берите более высокого порядка, только может так получиться что он будет сложнее чем комбинация полифазного фильтра и кубического интерполятора, последнее очень часто используется на практике, не с проста видимо.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jul 15 2008, 07:59
Сообщение #83


Утомлённый солнцем
******

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



Цитата(petrov @ Jul 15 2008, 10:53) *
Не надо ничего выдумывать, всё уже придумано, даже разобраться в этом сложно, не говоря о том чтобы новое придумать. Хотите чтобы при четырёх отсчётах интерполятор удовлетворительно работал берите более высокого порядка, только может так получиться что он будет сложнее чем комбинация полифазного фильтра и кубического интерполятора, последнее очень часто используется на практике, не с проста видимо.


Более высокий порядок потянет за собой увеличение размерности шин данных,тоже не сахар.
Честно говоря я пока так и не понял как сделать комбинацию полифазного фильтра и кубического интерполятора.Два интерполятора и разбить коэффициенты?
Go to the top of the page
 
+Quote Post
fontp
сообщение Jul 15 2008, 08:01
Сообщение #84


Эксперт
*****

Группа: Свой
Сообщений: 1 467
Регистрация: 25-06-04
Пользователь №: 183



Цитата(_Anatoliy @ Jul 15 2008, 11:46) *
Бредовая идея?


Интерполяторы можно построить для любого к-ва самплов/бит >1 . Вопрос в качестве, т.е. в конечном счёте в энергопотерях

Пример интерполятора работающего на частоте 2/T (для 16-QAM)

Interpolator for all-digital receivers
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jul 15 2008, 08:09
Сообщение #85


Утомлённый солнцем
******

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



Цитата(fontp @ Jul 15 2008, 11:01) *
Интерполяторы можно построить для любого к-ва самплов/бит >1 . Вопрос в качестве, т.е. в конечном счёте в энергопотерях

Пример интерполятора работающего на частоте 2/T (для 16-QAM)

Interpolator for all-digital receivers


Спасибо!Интересная информация.
Вот как раз из-за качества я и забраковал интерполятор от Незами для своей задачи.Видимо он хорош для небольших символьных скоростей.
Go to the top of the page
 
+Quote Post
petrov
сообщение Jul 15 2008, 08:11
Сообщение #86


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(_Anatoliy @ Jul 15 2008, 11:59) *
Более высокий порядок потянет за собой увеличение размерности шин данных,тоже не сахар.
Честно говоря я пока так и не понял как сделать комбинацию полифазного фильтра и кубического интерполятора.Два интерполятора и разбить коэффициенты?


Интерполятор конечно один. В конце-концов вы можете сделать 8 отсчётов на символ с увеличением тактовой, ведь на высокой частоте будут работать только мультиплексор на выходе полифазного фильтра и линия здержки для интерполятора, а эти схемы на очень высокой частоте могут работать.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jul 15 2008, 08:28
Сообщение #87


Утомлённый солнцем
******

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



Цитата(petrov @ Jul 15 2008, 11:11) *
Интерполятор конечно один. В конце-концов вы можете сделать 8 отсчётов на символ с увеличением тактовой, ведь на высокой частоте будут работать только мультиплексор на выходе полифазного фильтра и линия здержки для интерполятора, а эти схемы на очень высокой частоте могут работать.


Вы предлагаете в линию задержки записывать со скоростью 8 отсчётов на символ, а перемножители запускать в 2(а то и в 4) раза реже?Я правильно Вас понял? Логика работы от этого не нарушится?
Go to the top of the page
 
+Quote Post
petrov
сообщение Jul 15 2008, 08:42
Сообщение #88


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(_Anatoliy @ Jul 15 2008, 12:28) *
Вы предлагаете в линию задержки записывать со скоростью 8 отсчётов на символ, а перемножители запускать в 2(а то и в 4) раза реже?Я правильно Вас понял? Логика работы от этого не нарушится?


Полифазный фильтр работает на входной частоте, интерполятор в следующем клок домене уже находится положим работает со скоростью 2 отсчёта на символ. Во и получяется что если в лоб делать то на 8 отсчётов будет работать только мультиплексор и линия задержки, а если ещё чуть-чуть сообразить то очевидно можно и без увеличения до 8 отсчётов тактовой обойтись.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jul 15 2008, 09:06
Сообщение #89


Утомлённый солнцем
******

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



Цитата(petrov @ Jul 15 2008, 11:42) *
Полифазный фильтр работает на входной частоте, интерполятор в следующем клок домене уже находится положим работает со скоростью 2 отсчёта на символ. Во и получяется что если в лоб делать то на 8 отсчётов будет работать только мультиплексор и линия задержки, а если ещё чуть-чуть сообразить то очевидно можно и без увеличения до 8 отсчётов тактовой обойтись.


Большое Вам спасибо,Алесандр!
Проверил в матлабе - прекрасно работает при 2-х отсчётах на символ!!!С меня пиво!Куда выслать? smile.gif
Go to the top of the page
 
+Quote Post
petrov
сообщение Jul 15 2008, 09:14
Сообщение #90


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(_Anatoliy @ Jul 15 2008, 13:06) *
Большое Вам спасибо,Алесандр!
Проверил в матлабе - прекрасно работает при 2-х отсчётах на символ!!!С меня пиво!Куда выслать? :)


Незачто. Не понял правда что у вас там заработало. :)
Пиво слать не надо, не пью, будете в седующий раз другим объяснять как делать. :)
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jul 15 2008, 09:27
Сообщение #91


Утомлённый солнцем
******

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



Цитата(petrov @ Jul 15 2008, 12:14) *
Незачто. Не понял правда что у вас там заработало. smile.gif
Пиво слать не надо, не пью, будете в следующий раз другим объяснять как делать. smile.gif

Принято!
Я выходные перемножители Фарроу стал включать два раза в символ.Времени теперь вагонsmile.gif
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Jul 25 2008, 02:12
Сообщение #92


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



Всем привет!
я разрабатываю радиорелейную станцию, так сказать all-in-one.
на данный момент я сваял модем для приема/передачи QPSK, вся обработка в цифре,
вход/выход -ПЧ. хочу попробовать модифицировать проект под 16-QAM и в связи с этим есть ряд вопросов
(с QAM я не работал).
1. про ФАПЧи и АРУ. Я так понимаю, что сначала нужно нормализовать амплитуду принятого сигнала (АРУ),
т.к. виденные мной детектора фазовых ошибок используют информацию об амплитуде сигнала. это так?
2. про скремблер. насколько я понял, при восстановлении тактовой частоты используются те же алгоритмы,
что и для QPSK (я у себя в проекте использую дет. Гарднера). в 16-QAM переходы через 0 реже, т.е. скремблер необходим? имеются в виду практичексие соображения, ведь скремблер размножает ошибки.
2 petrov, я сейчас разбираю ваш пример в матлабе
qam_fb_gardner_symbol_farrow_sync_fb_phase_sync_agc_2007_06_18.mdl
не понял часть схемы. там в модуляторе есть умножение на 1/4 округление, умножение на 4 и сложение с исходным сигналом. это для чего?
еще там есть дифференциальное кодирование, оно же 3дБ чувствительности крадет, нет?
не пинайте, если часть вопросов уже здесь обсуждались, мог прохлопать.
Go to the top of the page
 
+Quote Post
petrov
сообщение Jul 25 2008, 08:33
Сообщение #93


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



1. АРУ необходимо т. к. в QAM информация передаётся в том числе изменением амплитуды.
2. Для нормальной синхронизации необходимо чтобы все точки созвездия были равновероятны на интервале усреднения синхронизаторов что в QAM что в QPSK. Размножение ошибок в скремблере приводит к несущественным энергетическим потерям.

Это выделение 2-х старших бит которые подвергаются диф. кодированию. Не крдёт оно 3 дБ, не путайте с диф. демодуляцией. Вообще не больно то смотрите на это скремблирование кодирование оно просто для примера сделано чтоб живую передачу данных было видно.
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Jul 25 2008, 09:19
Сообщение #94


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



по п.1 я не то имел в виду, я про последовательность(во времени) включения цепей:
т.е. сначала включается АРУ, после захвата АРУ включается захват тактовой, потом несущей. так?
про дифф. кодирование: а для чего оно, если демодуляция не дифференциальная?
еще по АРУ. у меня сейчас работает так: на входе АЦП стоит VGA с цифр. управлением, он работает так, чтобы
АЦП находился в линейном режиме. на малом сигнале он дает макс. усиление, т.е. не регулирует. для QPSK
это нормально, а вот для QAM видимо надо еще один каскад АРУ делать в цифровой области?
Go to the top of the page
 
+Quote Post
petrov
сообщение Jul 25 2008, 09:32
Сообщение #95


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(vadimuzzz @ Jul 25 2008, 13:19) *
по п.1 я не то имел в виду, я про последовательность(во времени) включения цепей:
т.е. сначала включается АРУ, после захвата АРУ включается захват тактовой, потом несущей. так?


Ну ессно сначала АРУ должно отработать чтобы хотя бы в ворота АЦП попасть, ну и само собой если у вас используется восстановление фазы управляемое решениями то АРУ должно быть настроено более-менее для получения этих решений . "Включается" "после" это всё условно ведь схемы синхронизации совместно могут работать.

Цитата(vadimuzzz @ Jul 25 2008, 13:19) *
про дифф. кодирование: а для чего оно, если демодуляция не дифференциальная?
90гр. неоднозначность устранять?


да +-90,180

Сообщение отредактировал petrov - Jul 25 2008, 09:38
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Jul 25 2008, 09:40
Сообщение #96


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



Цитата(petrov @ Jul 25 2008, 16:32) *
Ну ессно сначала АРУ должно отработать чтобы хотя бы в ворота АЦП попасть, ну и само собой если у вас используется восстановление фазы управляемое решениями то АРУ должно быть настроено более-менее для получения этих решений . "Включается" "после" это всё условно ведь схемы синхронизации совместно могут работать.
да

про ворота АЦП ясно, у меня так и работает. а как на малом сигнале быть? когда АРУ уже не тянет? как я выше написал?
ведь если нормализовать амплитуду на входе АЦП, то его динамический диапазон не используется, а у меня вся
схема на этом основана и усиление в тракте относительно небольшое.
а про восстановление фазы: а где посмотреть на схемы без управления решениями?
Go to the top of the page
 
+Quote Post
petrov
сообщение Jul 25 2008, 10:03
Сообщение #97


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(vadimuzzz @ Jul 25 2008, 13:40) *
про ворота АЦП ясно, у меня так и работает. а как на малом сигнале быть? когда АРУ уже не тянет? как я выше написал?
ведь если нормализовать амплитуду на входе АЦП, то его динамический диапазон не используется, а у меня вся
схема на этом основана и усиление в тракте относительно небольшое.


Можно и в цифре сделать АРУ. Всё же разрядность АЦП должна определяться динамическим диапазоном сигнала, зачем более дорогой АЦП брать и потом то же АРУ ещё в цифре делать?

Цитата(vadimuzzz @ Jul 25 2008, 13:40) *
а про восстановление фазы: а где посмотреть на схемы без управления решениями?


Ну погуглите чтоли. А лучше делайте управляемое решениями. smile.gif
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Jul 26 2008, 00:05
Сообщение #98


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



Цитата(petrov @ Jul 25 2008, 17:03) *
Можно и в цифре сделать АРУ. Всё же разрядность АЦП должна определяться динамическим диапазоном сигнала, зачем более дорогой АЦП брать и потом то же АРУ ещё в цифре делать?
Ну погуглите чтоли. А лучше делайте управляемое решениями. smile.gif

ну это вроде тенденции в мире, чтоб АЦП как можно раньше ставить и эффективно его ДД использовать.
ну а динамики хочется побольше smile.gif
просто раньше хороших АЦП не было, а сейчас каждый месяц все круче и круче выходят.
это я книжек начитался, вот здесь неплохо об этом написано:
"RF and Baseband Techniques for Software Defined Radios" Peter B. Kenington.
там идея такая, чтоб не гнать усиление по ВЧ/ПЧ и вообще минимизировать количество аналоговых цепей.
АЦП вроде тоже не такие дорогие, по крайней мере дешевеют. а АРУ в цифре сделать несложно, несколько десятков
LE в FPGA. вопрос в необходимости, но раз она есть, то сделаю.
"А лучше делайте управляемое решениями. smile.gif"
лучше в каком смысле? чтоб не гуглить? smile.gif
или есть какие-то еще соображения (ну там проще/дешевле), я просто не в теме smile.gif
Go to the top of the page
 
+Quote Post
petrov
сообщение Jul 26 2008, 09:06
Сообщение #99


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(vadimuzzz @ Jul 26 2008, 04:05) *
"А лучше делайте управляемое решениями. smile.gif"
лучше в каком смысле? чтоб не гуглить? smile.gif
или есть какие-то еще соображения (ну там проще/дешевле), я просто не в теме smile.gif


Хорошо работает, чаще всего используется.
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Jul 27 2008, 07:32
Сообщение #100


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



Цитата(petrov @ Jul 26 2008, 16:06) *
Хорошо работает, чаще всего используется.

ну, более-менее ясно. вот еще вопросик, на будущее. если делать 64-QAM, что менять потребуется?
делать TCM? где-то читал, что без TCM модуляции высокого порядка непрактичны.
Go to the top of the page
 
+Quote Post

12 страниц V   1 2 3 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 26th June 2025 - 05:57
Рейтинг@Mail.ru


Страница сгенерированна за 0.02761 секунд с 7
ELECTRONIX ©2004-2016