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

 
 
> адаптивный эквалайзер - сходится или нет?
vadimuzzz
сообщение May 14 2009, 12:14
Сообщение #1


Гуру
******

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



накидал модельку линейного эквалайзера в матлабе, он выполнен в арифметике с фикс. точкой и с точночтью до цикла соответствует его описанию на VHDL(и железу). эквалайзер слепой, MMA(multi modulus algorithm), похож на метод Годара. вначале смотрел на коротких интервалах времени (порядка 10 тыс. итераций) и вроде алгоритм сходится, а в железе - не работает. проблема в том, что в железе я могу посмотреть только короткие (порядка 1 тыс. выборок) фреймы с интервалом между фреймами порядка миллиона итераций и процесс как фильтр разваливается, я не вижу, только результат. сгенерил в матлабе 10млн отсчетов, подал на вход, и заметил, что после относительно быстрой начальной подстройки, коэффициенты начинают мееедленно дрейфовать (см. скриншоты). как мне кажется, это из-за целочисл. вычислений и округлений. так ли это и какие элементы наиболее чувствительны к ошибкам округления? сейчас у меня отсчеты 8-битные, коэффициенты 16-битные, сильно увеличивать разрядность не позволят ресурсы. хватит такой точности?
скриншоты,модель в симулинке,генератор отсчетов - в приложении.
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 

Прикрепленные файлы
Прикрепленный файл  EQU.mdl.zip ( 12.6 килобайт ) Кол-во скачиваний: 42
Прикрепленный файл  eye_gen16Q.m.zip ( 343 байт ) Кол-во скачиваний: 28
 
Go to the top of the page
 
+Quote Post
3 страниц V   1 2 3 >  
Start new topic
Ответов (1 - 14)
petrov
сообщение May 14 2009, 13:02
Сообщение #2


Гуру
******

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



Цитата(vadimuzzz @ May 14 2009, 16:14) *
сгенерил в матлабе 10млн отсчетов, подал на вход, и заметил, что после относительно быстрой начальной подстройки, коэффициенты начинают мееедленно дрейфовать (см. скриншоты). как мне кажется, это из-за целочисл. вычислений и округлений. так ли это и какие элементы наиболее чувствительны к ошибкам округления? сейчас у меня отсчеты 8-битные, коэффициенты 16-битные, сильно увеличивать разрядность не позволят ресурсы. хватит такой точности?
скриншоты,модель в симулинке,генератор отсчетов - в приложении.


Так сделайте модель на плавающей точке и смотрите из-за целочисленности или нет. Куча всяких причин может быть из-за чего коэффициенты разваливаются в том числе и из-за совместной работы со схемами синхронизации. Ещё надо следить чтобы при реализации на FPGA небыло переполнений и т. п. возможно недостаточно только округлений в модели.
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение May 14 2009, 13:29
Сообщение #3


Гуру
******

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



Цитата(petrov @ May 14 2009, 20:02) *
Так сделайте модель на плавающей точке и смотрите из-за целочисленности или нет. Куча всяких причин может быть из-за чего коэффициенты разваливаются в том числе и из-за совместной работы со схемами синхронизации. Ещё надо следить чтобы при реализации на FPGA небыло переполнений и т. п. возможно недостаточно только округлений в модели.

на плавающей точке есть модели, они работают. схемы синхронизации я пока исключил из рассмотрения, гоняю тесты в матлабе и моделсиме. контроля переполнений пока нет, но и самих переполнений пока тоже, крупные баги я выловил. а есть где-нибудь почитать про ошибки округления в таких схемах? да, еще по синхронизации вопрос, у меня тактовая частота не устанавливается точно, выбирается ближайший отсчет, ошибка ~1-2% от Ts. как эквалайзер реагирует на такие ошибки (теоретически)?
Go to the top of the page
 
+Quote Post
petrov
сообщение May 14 2009, 13:50
Сообщение #4


Гуру
******

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



Цитата(vadimuzzz @ May 14 2009, 17:29) *
на плавающей точке есть модели, они работают. схемы синхронизации я пока исключил из рассмотрения, гоняю тесты в матлабе и моделсиме. контроля переполнений пока нет, но и самих переполнений пока тоже, крупные баги я выловил. а есть где-нибудь почитать про ошибки округления в таких схемах?


Посмотрите в книжках по адаптивным фильтрам, но не факт что там всё до конца рассмотрено и подходит для вашего случая, на практике всёравно как-то прикидывать надо, может чисто экспериментально на модели подбирать разрядности и т. п.


Цитата(vadimuzzz @ May 14 2009, 17:29) *
да, еще по синхронизации вопрос, у меня тактовая частота не устанавливается точно, выбирается ближайший отсчет, ошибка ~1-2% от Ts. как эквалайзер реагирует на такие ошибки (теоретически)?


В модели смотрите как реагирует.
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение May 14 2009, 14:11
Сообщение #5


Гуру
******

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



Цитата(petrov @ May 14 2009, 20:50) *
Посмотрите в книжках по адаптивным фильтрам, но не факт что там всё до конца рассмотрено и подходит для вашего случая, на практике всёравно как-то прикидывать надо, может чисто экспериментально на модели подбирать разрядности и т. п.

а примеры вам не встречались, типа "вот X коэфф. разрядность Y бит - работает", мож. статьи?

Цитата(petrov @ May 14 2009, 20:50) *
В модели смотрите как реагирует.

не очень представляю как такую ошибку сымитировать, а делать детальную модель схемы смысла нет, слишком долго считать будет
Go to the top of the page
 
+Quote Post
petrov
сообщение May 14 2009, 14:29
Сообщение #6


Гуру
******

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



Цитата(vadimuzzz @ May 14 2009, 18:11) *
а примеры вам не встречались, типа "вот X коэфф. разрядность Y бит - работает", мож. статьи?


Думаю нет простых ответов нигде.


Цитата(vadimuzzz @ May 14 2009, 18:11) *
не очень представляю как такую ошибку сымитировать, а делать детальную модель схемы смысла нет, слишком долго считать будет


Наверняка можно всё сымитировать и с приемлемой скоростью даже в симулинке, а какие ещё варианты если в железки не видны нюансы.
Go to the top of the page
 
+Quote Post
Oldring
сообщение May 14 2009, 16:02
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874



Цитата(vadimuzzz @ May 14 2009, 16:14) *
как мне кажется, это из-за целочисл. вычислений и округлений. так ли это и какие элементы наиболее чувствительны к ошибкам округления?


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

У Вас два отсчета на символ? Наверное в этом дело. Посмотрните на свои графики где уезжает эквалайзер - вблизи Найквиста. Там нет полезного сигнала, поэтому характеристика эквалайзера может скользить как угодно. Думаю дело в этом.

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


--------------------
Пишите в личку.
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение May 14 2009, 16:44
Сообщение #8


Гуру
******

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



Цитата(Oldring @ May 14 2009, 23:02) *
Сомневаюсь что ошибки округления могут давать такие эффекты. В устойчивой системе со временем их влияние ослабляется, а не накапливается.

У Вас два отсчета на символ? Наверное в этом дело. Посмотрните на свои графики где уезжает эквалайзер - вблизи Найквиста. Там нет полезного сигнала, поэтому характеристика эквалайзера может скользить как угодно. Думаю дело в этом.

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

эээ.. не совсем понял насчет Найквиста. отсчета 2 на символ, да, но сигнал ошибки вычисляется 1 раз на символ(и подстройка коэфф. тоже ), в точках созвездия. на ошибки округления меня наводит тот факт, что коэффициенты уплывают оч. медленно.
Go to the top of the page
 
+Quote Post
Oldring
сообщение May 14 2009, 16:52
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874



Цитата(vadimuzzz @ May 14 2009, 20:44) *
эээ.. не совсем понял насчет Найквиста. отсчета 2 на символ, да, но сигнал ошибки вычисляется 1 раз на символ(и подстройка коэфф. тоже ), в точках созвездия. на ошибки округления меня наводит тот факт, что коэффициенты уплывают оч. медленно.


Это не важно сколько раз на символ вычисляются ошибки. Свертка с FIR эквалайзера есть перемножение в частнотной области. Со временем Ваш эквалайзер дрейфует в сторону задирания высоких частот вблизи частоты Найквиста, где обычно при использовании RRC нет вообще полезного сигнала.


--------------------
Пишите в личку.
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение May 14 2009, 22:43
Сообщение #10


Гуру
******

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



Цитата(Oldring @ May 14 2009, 23:52) *
Это не важно сколько раз на символ вычисляются ошибки. Свертка с FIR эквалайзера есть перемножение в частнотной области. Со временем Ваш эквалайзер дрейфует в сторону задирания высоких частот вблизи частоты Найквиста, где обычно при использовании RRC нет вообще полезного сигнала.

хм, интересно. а я думал, что 2/T эквалайзер лучше, чем 1/T. а где можно почитать про тот эффект, что вы описали?
Go to the top of the page
 
+Quote Post
des00
сообщение May 15 2009, 04:47
Сообщение #11


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(vadimuzzz @ May 14 2009, 07:14) *
накидал модельку линейного эквалайзера в матлабе, он выполнен в арифметике с фикс. точкой и с точночтью до цикла соответствует его описанию на VHDL(и железу). эквалайзер слепой, MMA(multi modulus algorithm), похож на метод Годара. вначале смотрел на коротких интервалах времени (порядка 10 тыс. итераций) и вроде алгоритм сходится, а в железе - не работает. проблема в том, что в железе я могу посмотреть только короткие (порядка 1 тыс. выборок) фреймы с интервалом между фреймами порядка миллиона итераций и процесс как фильтр разваливается, я не вижу, только результат. сгенерил в матлабе 10млн отсчетов, подал на вход, и заметил, что после относительно быстрой начальной подстройки, коэффициенты начинают мееедленно дрейфовать (см. скриншоты). как мне кажется, это из-за целочисл. вычислений и округлений. так ли это и какие элементы наиболее чувствительны к ошибкам округления? сейчас у меня отсчеты 8-битные, коэффициенты 16-битные, сильно увеличивать разрядность не позволят ресурсы. хватит такой точности?
скриншоты,модель в симулинке,генератор отсчетов - в приложении.


Недавно закончил похожий проект, FSE 2sps. Видел абсолютно тоже самое что и у вас. Мучал Матлаб/Моделсим/Железку иногда доходило до битья головой о стену.

Эффект выглядел в точности как

Цитата(Oldring @ May 14 2009, 11:52) *
Это не важно сколько раз на символ вычисляются ошибки. Свертка с FIR эквалайзера есть перемножение в частнотной области. Со временем Ваш эквалайзер дрейфует в сторону задирания высоких частот вблизи частоты Найквиста, где обычно при использовании RRC нет вообще полезного сигнала.


Эквалайзер вытаскивал частоты в районе Найквиста (где RRC вырезал все до уровня 70дБ!!!), см рисунок. на этом рисунке развитие эквалайзера в железке на интервале времени порядка 30 минут. Что и главное как эквалайзер что-то находит в этой полосе, так и осталось для меня загадкой, точное объяснение этого эффекта я не нашёл.

В моей реализации причина была в ограничении коэффициентов эквалайзера с фиксированной точкой в диапазоне -2.0/+1.99, когда я расширил рабочий диапазон коэффициентов до -4.0/+3.99 все стало работать нормально. Дополнительно "нарыл" в литературе такой способ стабилизации эквалайзера как утечка. Правда при этом эквалайзер не находит оптимального решения и в зависимости от разного mu влияние утечки на решение эквалайзера разное, тут надо смотреть на допустимую ошибку настройки эквалайзера.

ЗЫ. В моей системе использовались данные/коэффициенты 9 бит, метод вычисления ошибки по решению 9 бит, метод адаптации signed error LMS (хотя пробывал все), аккумуляторы коэффициентов 24 бита, mu = 1/2^12. в рабочей системе оставил утечку с коэффициентом 0.9999997615814208984375
Эскизы прикрепленных изображений
Прикрепленное изображение
 


--------------------
Go to the top of the page
 
+Quote Post
alex_os
сообщение May 15 2009, 05:15
Сообщение #12


Знающий
****

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



Цитата(des00 @ May 15 2009, 08:47) *
Эффект выглядел в точности как
Эквалайзер вытаскивал частоты в районе Найквиста (где RRC вырезал все до уровня 70дБ!!!), см рисунок. на этом рисунке развитие эквалайзера в железке на интервале времени порядка 30 минут. Что и главное как эквалайзер что-то находит в этой полосе, так и осталось для меня загадкой, точное объяснение этого эффекта я не нашёл.

Немножко белого шума нужно было добавить на вход эквалайзера smile.gif, тогда бы LMS не уплывал бы фиг знает куда..


--------------------
ну не художники мы...
Go to the top of the page
 
+Quote Post
des00
сообщение May 15 2009, 05:50
Сообщение #13


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(alex_os @ May 14 2009, 23:15) *
Немножко белого шума нужно было добавить на вход эквалайзера smile.gif, тогда бы LMS не уплывал бы фиг знает куда..


хмм, может я что не понимаю но неужели цифрового шума округления не достаточно ? у меня на выходе RRC фильтра было 11 эффективных бит, я усекал их до 9ти + выход эквалайзера был 18 бит, я его усекал до 9 ти бит. И как быть когда канал идёт в принципе малошумящий (кабельное соединение) ? подмешивать шум в приёмнике ?


--------------------
Go to the top of the page
 
+Quote Post
petrov
сообщение May 15 2009, 05:54
Сообщение #14


Гуру
******

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



Цитата(des00 @ May 15 2009, 09:50) *
хмм, может я что не понима...


Я тоже что-то не понимаю. Какие-то ужасы тут рассказывают. smile.gif

Все развалы в итоге с какими-то ошибками связаны.
Go to the top of the page
 
+Quote Post
des00
сообщение May 15 2009, 06:05
Сообщение #15


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(petrov @ May 14 2009, 23:54) *
Все развалы в итоге с какими-то ошибками связаны.


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


--------------------
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 1st July 2025 - 02:38
Рейтинг@Mail.ru


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