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


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

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


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


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


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

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

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

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


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


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


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


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

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

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

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

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

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


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

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

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


хмм, может я что не понимаю но неужели цифрового шума округления не достаточно ? у меня на выходе RRC фильтра было 11 эффективных бит, я усекал их до 9ти + выход эквалайзера был 18 бит, я его усекал до 9 ти бит. И как быть когда канал идёт в принципе малошумящий (кабельное соединение) ? подмешивать шум в приёмнике ?
petrov
Цитата(des00 @ May 15 2009, 09:50) *
хмм, может я что не понима...


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

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


у меня он не разваливался, у меня он находил решение, при котором он вытягивал частоты в районе частоты найквиста, где сигнала, при моем скруглении RRC фильтров не было. При этом функцию коррекции эквалайзер выполнял(убирал искажения в сигнале, минимизируя ошибку по решению).
alex_os
Цитата(des00 @ May 15 2009, 10:05) *
у меня он не разваливался, у меня он находил решение, при котором он вытягивал частоты в районе частоты найквиста, где сигнала, при моем скруглении RRC фильтров не было. При этом функцию коррекции эквалайзер выполнял(убирал искажения в сигнале, минимизируя ошибку по решению).

Ну так если корректирует нормально и не разваливается , какая разница вытягиваются вверх верхние частоты (на которых нет ничего ) или нет? Чего на это внимание обращать?
des00
Цитата(alex_os @ May 15 2009, 00:51) *
Ну так если корректирует нормально и не разваливается , какая разница вытягиваются вверх верхние частоты (на которых нет ничего ) или нет? Чего на это внимание обращать?


Хмм
1. это как-то не правильно
2. это может приводить к тому что эквалайзер, вытягивая верхние частоты, начинает разгонять коэффициенты фильтра, доводя некоторые до насыщения.
petrov
Цитата(des00 @ May 15 2009, 10:58) *
Хмм
1. это как-то не правильно
2. это может приводить к тому что эквалайзер, вытягивая верхние частоты, начинает разгонять коэффициенты фильтра, доводя некоторые до насыщения.


ИМХО наши представления о том какую ЧХ должен иметь эквалайзер несколько упрощенные, наблюдал много раз что из-за каких-то изменений в построении эквалайзера, синхронизации, критерии настройки и т. п. ЧХ изменяется и зачастую непонятным образом, но при этом ошибка то минимизируется.
Oldring
Цитата(alex_os @ May 15 2009, 10:51) *
Ну так если корректирует нормально и не разваливается , какая разница вытягиваются вверх верхние частоты (на которых нет ничего ) или нет? Чего на это внимание обращать?


Я не писал что там нет ничего. На этих частотах нет полезного сигнала.
alex_os
Цитата(Oldring @ May 15 2009, 13:44) *
Я не писал что там нет ничего. На этих частотах нет полезного сигнала.

Так, по идее, если бы на этих частотах была бы какая-то заметная энергетика, то их усиление увеличивало бы СКО на выходе корректора, и следовательно LMS должен был стремиться давить эти частоты. Примерно из этой оперы если на сигнал наложить гармоническую помеху то корректор будет стремится сойтись к режекторному фильтру (если не развалится конечно smile.gif)
Oldring
Цитата(vadimuzzz @ May 15 2009, 02:43) *
хм, интересно. а я думал, что 2/T эквалайзер лучше, чем 1/T. а где можно почитать про тот эффект, что вы описали?


Мне кажется что это очевидно. Если в пространстве параметров системы есть вырождение - жди неприятностей с ускользанием.

Цитата(alex_os @ May 15 2009, 14:08) *
Так, по идее, если бы на этих частотах была бы какая-то заметная энергетика, то их усиление увеличивало бы СКО на выходе корректора, и следовательно LMS должен был стремиться давить эти частоты. Примерно из этой оперы если на сигнал наложить гармоническую помеху то корректор будет стремится сойтись к режекторному фильтру (если не развалится конечно smile.gif)


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

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

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


Может быть я что-то забыл - но разве это не эквивалентно LMS с утечками?
vadimuzzz
Цитата(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 с утечками?

не очевидно. я правильно понял, что если сильно подавить какие-то частоты(напр. в районе Найквиста), то это плохо?
и все эти ускользания и утечки, где про это почитать?
Oldring
Цитата(vadimuzzz @ May 15 2009, 17:20) *
я правильно понял, что если сильно подавить какие-то частоты(напр. в районе Найквиста), то это плохо?
и все эти ускользания и утечки, где про это почитать?


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

Классическая литература по этим вопросам - Haykin "Adaptive Filter Theory". Ну и тонкости конкретных методов по статьям обычно хорошо еще смотреть.
des00
Цитата(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". Ну и тонкости конкретных методов по статьям обычно хорошо еще смотреть.


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


IMHO для понимания на пальцах этого достаточно помнить, что при при ортогональном преобразовании координат собственные значения не изменяются. И что DFT есть ортогональное преобразование. И что если в матрице есть нулевая строка или столбец - у матрицы есть нулевое собственное значение. Поэтому если в спектре есть нулевая полоса - будут близкие к нулю собственные значения. Более детально - нужно читать теорию случайных процессов. Четырехтомник Ван-Триса вроде был был в запасниках.

Хайкин, судя по всему, давно лежит в /pub/DOC/Dsp-Book/HAYKIN/
petrov
Adaptive_Filter_Theory__3ed__-_Haykin.djvu
http://rapidshare.de/files/47195961/Adapti...aykin.djvu.html

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

второй момент, Вам правильно говорят про попытки нащупать что-то у Найквиста, коэф-ты корректора дрейфуют к локальному минимуму, кот. расположен близко, - значит не хватает полосы, попробуйте не 2T а 3T, все таки у КАМ-сигналы не обрываются точно на Найквисте, а имеют еще плюс 10-30% к полосе в наследство от формирующего фильтра

не надо костыли подставлять в алгоритм, ухудшающие качество, в виде утечки и шума, надо выяснить причину
des00
Цитата(Fast @ May 18 2009, 02:56) *
второй момент, Вам правильно говорят про попытки нащупать что-то у Найквиста, коэф-ты корректора дрейфуют к локальному минимуму, кот. расположен близко, - значит не хватает полосы, попробуйте не 2T а 3T, все таки у КАМ-сигналы не обрываются точно на Найквисте, а имеют еще плюс 10-30% к полосе в наследство от формирующего фильтра


хмм, разъясните ламеру, а откуда там что то взялось ? Частота найквиста это же половина частоты дискретизации или если говорить с точки зрения спектра, при нарезке сигнала 2sps, это 2*Fверхняя частота спектра цифрового сигнала. RRC фильтр выдает эффективную полосу по уровню -30дб (1+a)*Fверхнее, что для скругления 0.5 даст 1.5*Fверхнее. В интервале [1.5:2]*Fверхнее нет ничего, т.к. приёмный RRC фильтр там очень хорошо все вырезал.

Цитата
не надо костыли подставлять в алгоритм, ухудшающие качество, в виде утечки и шума, надо выяснить причину


Ali H. Sayed, не считает это костылями %)
Fast
Цитата(des00 @ May 18 2009, 12:13) *
Частота найквиста это же половина частоты дискретизации или если говорить с точки зрения спектра, при нарезке сигнала 2sps, это 2*Fверхняя частота спектра цифрового сигнала.
2sps, это 1*Fверхняя, соотв. ничего он там хорошо не вырезал
Цитата(des00 @ May 18 2009, 12:13) *
Ali H. Sayed, не считает это костылями %)
а для какого случая Сайед рассматривал введение шумов и утечки ?
des00
Цитата(Fast @ May 18 2009, 03:51) *
2sps, это 1*Fверхняя, соотв. ничего он там хорошо не вырезал


хмм, меня учили считать так берем поток 30 мегабит, Fверхнее этого потока 15МГц, пропускаем его через фильтр найквиста с a = 0.5 получаем полосу 22.5 МГц, по приему режем поток на 60МГц (2sps : 4Fверхнее). Частота найквиста в этом случае 30 МГц. В интервале от 22.5 до 30 МГц RRC все вырежет.

Цитата
а для какого случая Сайед рассматривал введение шумов и утечки ?


уже приводил где смотреть вот немного текста

Цитата
Drift problem. The fact that the LMS filter can produce unbounded weight estimates in some
situations is illustrated in Prob. IV.39. This so-called drift problem has been described in several
references including, for example, Gitlin, Meadors, and Weinstein (1982), Ioannou and Kokotovic
petrov
Цитата(Fast @ May 18 2009, 12:51) *
2sps, это 1*Fверхняя, соотв. ничего он там хорошо не вырезал
а для какого случая Сайед рассматривал введение шумов и утечки ?


Это обязательная штука при реализации с конечной разрядностью, особенно для дробных эквалайзеров.
Fast
Цитата(des00 @ May 18 2009, 13:02) *
хмм, меня учили считать так берем поток 30 мегабит, Fверхнее этого потока 15МГц, пропускаем его через фильтр найквиста с a = 0.5 получаем полосу 22.5 МГц, по приему режем поток на 60МГц (2sps : 4Fверхнее). Частота найквиста в этом случае 30 МГц. В интервале от 22.5 до 30 МГц RRC все вырежет.
так понятно, ок. только не 30 мбит, а мбод.
а сигнал развален на квадратуры и снесен в ноль.
Цитата(petrov @ May 18 2009, 13:03) *
Это обязательная штука при реализации с конечной разрядностью, особенно для дробных эквалайзеров.
что обязательная, компенсация drift problem для всех целочисленных адаптивных корректоров ?
petrov
Цитата(Fast @ May 18 2009, 13:33) *
что обязательная, компенсация drift problem для всех целочисленных адаптивных корректоров ?


Да и Haykin то же самое пишет. Вообще на практике leaky LMS лучше работает, если внимательно посмотреть на LMS то в нём есть интегратор, и например при замирании шум может утащить коэффициенты неограниченно далеко, а утечка стягивает их к начальному значению и не даёт уехать неограниченно.
Oldring
Цитата(des00 @ May 18 2009, 12:13) *
хмм, разъясните ламеру, а откуда там что то взялось ?


Шуму квантования при обновлении коэффициентов в самом эквалайзере входной фильтр по фиг. И он интегрируется каждым коэффициентом.
Fast
на практике и то и то лучше работает, в зависимости от ситуации
Вы же сами все отлично знаете,
- если нет переполнений по коэф-там, то и утечек забываний не надо. например, у нас канал с АБГШ, сигнал в центре динамического диапазона, то вполне можно и 16-разрядным обойтись
- а для радиоканала ... это уже извините совсем другая история, не знаю такие одаренных, кто будет ставить здесь целочисленный коректор

на практике введение шума, утечки или забывания - вынужденная мера, не от хорошей жизни,
обусловленная либо особенностями алгоритма (напр. РНК) или нехваткой разрядности
и ведет к ухудшению качества по сравнению с оригинальными алгоритмами в плавающей точке

вопрос сейчас в другом, в чем ошибка а данном конкретном случае и проявится ли она в реальной ситуации ?
1. если в переполнении коэф-тов => повышаем их разрядность и/или вводим утечку
2. в другом месте => ищем далее
vadimuzzz
Цитата(des00 @ May 18 2009, 15:13) *
Ali H. Sayed, не считает это костылями %)

Хайкин тоже smile.gif оказывается я его читал, но до нужной главы (17) не дошел..неуч

Цитата(Fast @ May 18 2009, 17:06) *
вопрос сейчас в другом, в чем ошибка а данном конкретном случае и проявится ли она в реальной ситуации ?
1. если в переполнении коэф-тов => повышаем их разрядность и/или вводим утечку
2. в другом месте => ищем далее

есть еще численная неустойчивость алгоритма. если она имеет место - повышение разрядности гиганта мысли не спасает (Хайкин) - переполнение рано или поздно наступит.

Цитата(Fast @ May 18 2009, 17:06) *
- а для радиоканала ... это уже извините совсем другая история, не знаю такие одаренных, кто будет ставить здесь целочисленный коректор

обоснуйте
Михаил_K
Цитата(Fast @ May 18 2009, 14:06) *
вопрос сейчас в другом, в чем ошибка а данном конкретном случае и проявится ли она в реальной ситуации ?
1. если в переполнении коэф-тов => повышаем их разрядность и/или вводим утечку
2. в другом месте => ищем далее

Ошибки тут нету. Надо вводить утечку. Повышение разрядности вас не спасет. Хоть в даблах считайте, все равно коэффициенты будут расти, расти, расти.....
Oldring
Цитата(Михаил_K @ May 18 2009, 18:59) *
Хоть в даблах считайте, все равно коэффициенты будут расти, расти, расти.....


Ну так как точное вырождение АКМ совершено невероятно, есть надежда, что этот процесс уползания коэффициентов все-таки когда-нибудь остановится. Но наверное на это лучше все-таки не надеяться.
des00
Цитата(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. не сильно ли маленький коэффициент подстройки ?
petrov
Ару по сути однотаповый эквалайзер, большие разрядности mu будут в нём для регулирования диапазона мощностей входного сигнала. Если есть АРУ и канал не вносит искажений и допустим нету шумов, то mu эквалайзера может 1 равняться. В общем mu надо исходя из модели канала рассчитывать.
des00
Цитата(petrov @ Jun 23 2009, 04:45) *
Если есть АРУ и канал не вносит искажений и допустим нету шумов, то mu эквалайзера может 1 равняться. В общем mu надо исходя из модели канала рассчитывать.


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

В числовом примере был не прав, т.к. Хайкин рассматривает сумму средних квадратов отсчетов сигнала на интервале длинны эквалайзера, т.е. как я понимаю не мгновенную мощность, а среднюю. Но даже в этом случае получается что ненормированный mu имеет малое значение.
petrov
Цитата(des00 @ Jun 23 2009, 14:08) *
Но даже в этом случае получается что ненормированный mu имеет малое значение.


Рассмотрите просто АРУ, чем больше мощность входного сигнала относительно какого-то единичного уровня тем меньше должно быть mu, т е вы сами задаёте mu малым.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.