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

 
 
> адаптивный эквалайзер - сходится или нет?
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
 
Start new topic
Ответов
des00
сообщение May 15 2009, 04:47
Сообщение #2


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

Группа: Модераторы
Сообщений: 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
vadimuzzz
сообщение May 15 2009, 13:20
Сообщение #3


Гуру
******

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



Цитата(des00 @ May 15 2009, 11:47) *
Недавно закончил похожий проект, FSE 2sps. Видел абсолютно тоже самое что и у вас. Мучал Матлаб/Моделсим/Железку иногда доходило до битья головой о стену.
...
В моей реализации причина была в ограничении коэффициентов эквалайзера с фиксированной точкой в диапазоне -2.0/+1.99, когда я расширил рабочий диапазон коэффициентов до -4.0/+3.99 все стало работать нормально. Дополнительно "нарыл" в литературе такой способ стабилизации эквалайзера как утечка. Правда при этом эквалайзер не находит оптимального решения и в зависимости от разного mu влияние утечки на решение эквалайзера разное, тут надо смотреть на допустимую ошибку настройки эквалайзера.
...
ЗЫ. В моей системе использовались данные/коэффициенты 9 бит, метод вычисления ошибки по решению 9 бит, метод адаптации signed error LMS (хотя пробывал все), аккумуляторы коэффициентов 24 бита, mu = 1/2^12. в рабочей системе оставил утечку с коэффициентом 0.9999997615814208984375

о, спасибо за цифры, есть за что ухватиться. не ткнете в ссылку на литературу?

Цитата(Oldring @ May 15 2009, 17:57) *
Мне кажется что это очевидно. Если в пространстве параметров системы есть вырождение - жди неприятностей с ускользанием.

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

Ну и представьте на пальцах. Входной сигнал гладкий. А в фильтре каждый второй коэффициент меняет знак. То есть чтобы получить искомый результат вычитаются близкие по модулю числа с противоположным знаком. IMHO как правило в этом нет ничего хорошего.

Может быть я что-то забыл - но разве это не эквивалентно LMS с утечками?

не очевидно. я правильно понял, что если сильно подавить какие-то частоты(напр. в районе Найквиста), то это плохо?
и все эти ускользания и утечки, где про это почитать?
Go to the top of the page
 
+Quote Post
des00
сообщение May 17 2009, 10:33
Сообщение #4


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

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



Цитата(vadimuzzz @ May 15 2009, 07:20) *
о, спасибо за цифры, есть за что ухватиться. не ткнете в ссылку на литературу?


я читал об этом в книге Adaptive filters Ali H. Sayed, part IV Mean-Square Performance, раздел Drift problem.


Цитата(Oldring @ May 15 2009, 07:44) *
Да, если задавить какие-то частоты вместе с шумом на них - это обычно не здорово. Корреляционные матрицы вырождаются, адаптивные алгоритмы начинают вести себя нехорошо. Поэтому в таких случаях принимают специальные меры, вроде подмешивания дополнительного шума к сигналу или вводя искусственные утечки по-другому.


Хотел бы уточнить вот какие моменты:
1. подавление каких именно частот в приёмниках не здорово ? Обычно до RRC фильтров ставят децимирующие фильтры, которые давят всё что выше найквиста, а затем RRC, который режет нужную полосу. Получается что АЧХ этих фильтров надо как-то специально подстраивать, чтобы не давили лишнее?
2. существует ли какой-то алгоритм определения корреляционных матриц/собственных чисел кореляционных матриц на основе известного сигнала, кроме как посчитать их по реальному сигналу? Ведь по идее передается и принимается шумовой сигнал (данные скремблируются) и появление отсчётов в сигнале равновероятно. Во всех книгах по эквалайзерам выводиться только формула mu < 1/Lmax, но нигде не сказано как определить этот порог точно, для конкретного применения.

Цитата
Классическая литература по этим вопросам - Haykin "Adaptive Filter Theory". Ну и тонкости конкретных методов по статьям обычно хорошо еще смотреть.


не могли бы вы поделиться этой книгой %) или она есть в запасниках ? Спасибо.


--------------------
Go to the top of the page
 
+Quote Post
des00
сообщение Jun 23 2009, 05:35
Сообщение #5


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

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



Цитата(des00 @ May 17 2009, 04:33) *
2. существует ли какой-то алгоритм определения корреляционных матриц/собственных чисел кореляционных матриц на основе известного сигнала, кроме как посчитать их по реальному сигналу? Ведь по идее передается и принимается шумовой сигнал (данные скремблируются) и появление отсчётов в сигнале равновероятно. Во всех книгах по эквалайзерам выводиться только формула mu < 1/Lmax, но нигде не сказано как определить этот порог точно, для конкретного применения.


тема заглохла, но может кому понадобится. инженерная оценка данного параметра есть у в книге Haykin "Adaptive Filter Theory" стр.402 раздел про LMS эквалайзеры Simple Working Rules.

Вопрос к гуру, если судить по этой оценке то mu < 1/(tap input power). т.е. если по входу тапы ну положим 10 ти битные [-512:511], ару ставит сигнал в точки [-255:255] получается что mu < 1/255^2 :: mu < 1/2^16. не сильно ли маленький коэффициент подстройки ?


--------------------
Go to the top of the page
 
+Quote Post
petrov
сообщение Jun 23 2009, 09:45
Сообщение #6


Гуру
******

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



Ару по сути однотаповый эквалайзер, большие разрядности mu будут в нём для регулирования диапазона мощностей входного сигнала. Если есть АРУ и канал не вносит искажений и допустим нету шумов, то mu эквалайзера может 1 равняться. В общем mu надо исходя из модели канала рассчитывать.
Go to the top of the page
 
+Quote Post
des00
сообщение Jun 23 2009, 10:08
Сообщение #7


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

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



Цитата(petrov @ Jun 23 2009, 04:45) *
Если есть АРУ и канал не вносит искажений и допустим нету шумов, то mu эквалайзера может 1 равняться. В общем mu надо исходя из модели канала рассчитывать.


если я вас правильно понял вы говорите про нормированный mu, а в вопросе выше я писал про ненормированный mu. И если судить по Хайкину то вывод формулы mu < 1/(tap input power) как раз и основан на модели канала. Он использует пессимистичную оценку Lmax < tr[R], а корр. матрица R составлена из отсчетов свертки ИХ канала с данными.

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


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

Сообщений в этой теме
- vadimuzzz   адаптивный эквалайзер - сходится или нет?   May 14 2009, 12:14
- - petrov   Цитата(vadimuzzz @ May 14 2009, 16:14) сг...   May 14 2009, 13:02
|- - vadimuzzz   Цитата(petrov @ May 14 2009, 20:02) Так с...   May 14 2009, 13:29
|- - petrov   Цитата(vadimuzzz @ May 14 2009, 17:29) на...   May 14 2009, 13:50
||- - vadimuzzz   Цитата(petrov @ May 14 2009, 20:50) Посмо...   May 14 2009, 14:11
||- - petrov   Цитата(vadimuzzz @ May 14 2009, 18:11) а ...   May 14 2009, 14:29
|- - Fast   Цитата(vadimuzzz @ May 14 2009, 17:29) ко...   May 18 2009, 07:56
|- - des00   Цитата(Fast @ May 18 2009, 02:56) второй ...   May 18 2009, 08:13
|- - Fast   Цитата(des00 @ May 18 2009, 12:13) Частот...   May 18 2009, 08:51
||- - des00   Цитата(Fast @ May 18 2009, 03:51) 2sps, э...   May 18 2009, 09:02
||- - petrov   Цитата(Fast @ May 18 2009, 12:51) 2sps, э...   May 18 2009, 09:03
||- - Fast   Цитата(des00 @ May 18 2009, 13:02) хмм, м...   May 18 2009, 09:33
||- - petrov   Цитата(Fast @ May 18 2009, 13:33) что обя...   May 18 2009, 09:52
||- - Fast   на практике и то и то лучше работает, в зависимост...   May 18 2009, 10:06
||- - Михаил_K   Цитата(Fast @ May 18 2009, 14:06) вопрос ...   May 18 2009, 14:59
||- - Oldring   Цитата(Михаил_K @ May 18 2009, 18:59) Хот...   May 18 2009, 15:18
|- - Oldring   Цитата(des00 @ May 18 2009, 12:13) хмм, р...   May 18 2009, 10:04
|- - vadimuzzz   Цитата(des00 @ May 18 2009, 15:13) Ali H....   May 18 2009, 14:19
- - Oldring   Цитата(vadimuzzz @ May 14 2009, 16:14) ка...   May 14 2009, 16:02
|- - vadimuzzz   Цитата(Oldring @ May 14 2009, 23:02) Сомн...   May 14 2009, 16:44
|- - Oldring   Цитата(vadimuzzz @ May 14 2009, 20:44) ээ...   May 14 2009, 16:52
|- - vadimuzzz   Цитата(Oldring @ May 14 2009, 23:52) Это ...   May 14 2009, 22:43
|- - Oldring   Цитата(vadimuzzz @ May 15 2009, 02:43) хм...   May 15 2009, 10:57
|- - alex_os   Цитата(des00 @ May 15 2009, 08:47) Эффект...   May 15 2009, 05:15
||- - des00   Цитата(alex_os @ May 14 2009, 23:15) Немн...   May 15 2009, 05:50
||- - petrov   Цитата(des00 @ May 15 2009, 09:50) хмм, м...   May 15 2009, 05:54
||- - des00   Цитата(petrov @ May 14 2009, 23:54) Все р...   May 15 2009, 06:05
||- - alex_os   Цитата(des00 @ May 15 2009, 10:05) у меня...   May 15 2009, 06:51
||- - des00   Цитата(alex_os @ May 15 2009, 00:51) Ну т...   May 15 2009, 06:58
|||- - petrov   Цитата(des00 @ May 15 2009, 10:58) Хмм 1...   May 15 2009, 07:04
||- - Oldring   Цитата(alex_os @ May 15 2009, 10:51) Ну т...   May 15 2009, 09:44
||- - alex_os   Цитата(Oldring @ May 15 2009, 13:44) Я не...   May 15 2009, 10:08
|- - Oldring   Цитата(vadimuzzz @ May 15 2009, 17:20) я ...   May 15 2009, 13:44
|- - Oldring   Цитата(des00 @ May 17 2009, 14:33) Хотел ...   May 17 2009, 12:07
|- - petrov   Цитата(des00 @ Jun 23 2009, 14:08) Но даж...   Jun 23 2009, 10:30
- - petrov   Adaptive_Filter_Theory__3ed__-_Haykin.djvu http://...   May 17 2009, 14:21


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

 


RSS Текстовая версия Сейчас: 3rd July 2025 - 20:50
Рейтинг@Mail.ru


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