Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Учет уровня шума при мягких демодуляции/декодировании
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
AEG
Здравствуйте!

Меня интересует проблема учета уровня шума при мягких демодуляции/декодировании. Прилагаю скриншот с симулинковской моделью, на которой отображены так же результаты моделирования. Можно видеть, что принятие неверной сигмы 1.5 при формировнии решений демодулятора дает лучший результат, чем принятие истинной сигмы 1.0. Результат для меня неожиданный и непонятный. Различе небольшое, но статистически значимое, поскольку выборка большая, и моделирование проводилось неоднократно с разными начальными условиями генератора случайных чисел. Результат один.

Помимо этого видно, что учет разных сигм дает вообще не очень-то различный результат. Я ожидал другого. Можно вообще использовать приближенные LLR вместо точных, где сигма вообще не участвует. Результат опять таки будет мало отличаться. Зачем же тогда вообще нужен учет шума, если толку мало?

Модель изготовлена из матлаб-симулинковского демо "LLR vs. Hard Decision Demodulation". Все параметры модуляции, кодирования и т.д. такие же как в демке. Их можно крутить, но по сути ничего не меняется. Используются неквантованные решения демодулятора.

Расчитываю на помощь экспертов.
Спасибо!
Нажмите для просмотра прикрепленного файла
des00
Цитата(AEG @ Apr 15 2015, 00:02) *
Помимо этого видно, что учет разных сигм дает вообще не очень-то различный результат. Я ожидал другого. Можно вообще использовать приближенные LLR вместо точных, где сигма вообще не участвует. Результат опять таки будет мало отличаться. Зачем же тогда вообще нужен учет шума, если толку мало?

ИМХО это особенность реализации мягкого декодера витерби в матлабе и его "деревянность" как алгоритма декодирования в принципе. (Ничего не имею против классического витерби, но выбор максимально правдоподобного пути определенного символами, давно не рулит). Попробуйте поставить турбодекодер или лдпц.
Grizzzly
При небольших рассогласованиях в оценке мощности шума существенных ухудшений BER не будет. Если же вы вместо 1 будете использовать оценку, скажем, равную 7, то увидите, что BER резко ухудшится.
Если в том примере из MATLAB вы будете работать с неверной оценкой в схеме с квантованием, то уже при малых рассогласованиях оценки шума будет плохой BER, поскольку уровни квантователя расситываются заранее на определенную мощность шума.
Как сказал выше des00, для LDPC и турбокодов для некоторых алгоритмов неверная оценка шума очень критична.

Цитата
Можно видеть, что принятие неверной сигмы 1.5 при формировнии решений демодулятора дает лучший результат, чем принятие истинной сигмы 1.0. Результат для меня неожиданный и непонятный.

Как вы определили, что именно этот результат лучший? С помощью функции berconfint можете посчитать доверительные интервалы. На скриншоте виден объективный разброс в статистике.
andyp
Цитата(AEG @ Apr 14 2015, 19:02) *
Помимо этого видно, что учет разных сигм дает вообще не очень-то различный результат. Я ожидал другого. Можно вообще использовать приближенные LLR вместо точных, где сигма вообще не участвует. Результат опять таки будет мало отличаться. Зачем же тогда вообще нужен учет шума, если толку мало?

Модель изготовлена из матлаб-симулинковского демо "LLR vs. Hard Decision Demodulation". Все параметры модуляции, кодирования и т.д. такие же как в демке. Их можно крутить, но по сути ничего не меняется. Используются неквантованные решения демодулятора.

Расчитываю на помощь экспертов.
Спасибо!


Могу посоветовать повторить моделирование на ОСШ пониже. На 10 раличия в способах формирования мягких решений не сильно влияют. Также, я думаю, что для 6..7 значащей цифры в BER маловато статистики. Статистики было бы достаточно, чтобы сказать, что BER лучше, чем 10^-7, если бы не было зафиксировано ошибок. Но для сравнения, которое Вы проводите, мне кажется, что передано недостаточно бит. Вы ж врядли даже все возможные кодовые слова сверточного кода по разу передали.
serjj
Почему если выбрать approximate log-likelihood ratio вместо обычного log-likelihood ratio результат не зависит от сигма шума? Прикладываю модельку с экспериментом. При этом если выбрать log-likelihood ratio то при значительной ошибке сигма и низком snr получем большой ber. В моем понимание approximate метод позволяет перейти от логарифма суммы экспонент к max/min функциям, при этом сигма выносится за скобки, но не уходит из конечного выражения. Какая-то особенность реализации матлабовского approximate log-likelihood ratio? что-то вроде автоматической нормировки сигмы к 1, на подобии той что делают на практике?
Нажмите для просмотра прикрепленного файла

Еще вот статейку почитал по soft decision для OFDM, мб будет интересно:
Нажмите для просмотра прикрепленного файла
Они сигму нормируют к 1, считая шум постоянным на каждой поднесущей, но учитывают мощность канальных весов для корректировки значений метрик. Насколько это реально улучшит OFDM систему в условиях частотно-селективных замираний? Интуитивно мне это понятно, т.к. чем меньше i-й канальный вес, тем больше подавление на данной поднесущей и больше "раздувание" шума после выравнивания, следовательно меньше достоверность бит переданных в данном символе, но интересно как это на практике будет - есть смысл так делать или нет.
Grizzzly
Посмотрел справку и последнюю редакцию Communications System Toolbox User's Guide для 2015a. Там в формуле с аппроксимацией есть деление на сигма в квадрате пед скобкой. При этом они ссылаются на статью Витерби ”An Intuitive Justification and a Simplified Implementation of the MAP Decoder for Convolutional Codes”, в которой нет упоминаний про уровень шума.
Остается только самому написать скрипт и сравнить с LLR, которые выдает симулинковский демодулятор. Мне тоже кажется, что там есть нормировка к единичной мощности.
andyp
Цитата(serjj @ Apr 15 2015, 10:43) *
Почему если выбрать approximate log-likelihood ratio вместо обычного log-likelihood ratio результат не зависит от сигма шума? Прикладываю модельку с экспериментом. При этом если выбрать log-likelihood ratio то при значительной ошибке сигма и низком snr получем большой ber. В моем понимание approximate метод позволяет перейти от логарифма суммы экспонент к max/min функциям, при этом сигма выносится за скобки, но не уходит из конечного выражения. Какая-то особенность реализации матлабовского approximate log-likelihood ratio? что-то вроде автоматической нормировки сигмы к 1, на подобии той что делают на практике?


Это особенность алгоритма витерби - вынесенная за скобки сигма не влияет на результат декодирования.

petrov
Цитата(serjj @ Apr 15 2015, 10:43) *
Интуитивно мне это понятно, т.к. чем меньше i-й канальный вес, тем больше подавление на данной поднесущей и больше "раздувание" шума после выравнивания, следовательно меньше достоверность бит переданных в данном символе, но интересно как это на практике будет - есть смысл так делать или нет.


Вообще интуитивно понятно, что в OFDM возможности мяких кодов как бы недоиспользуются, грубо, канал нам известен из оценки, в задавленных поднесущих инфы нет, в поднесущих, где сложение лучей в фазе произошло, наоборот сигна/шум очень хороший, т. е. ошибки ближе к жёстким, как бы в такой ситуации БЧХ с исправлением стираний не сильно хуже оказался. Более того каналы с замираниями могут быть и справлены без избыточного кодирования вообще!
andyp
Цитата(petrov @ Apr 15 2015, 11:46) *
Более того каналы с замираниями могут быть и справлены без избыточного кодирования вообще!


Для OFDM этот тезис неверен именно потому, что в каждом кодовом блоке теряются биты, попадающие на спектральные нули. Для того, чтобы их восстановить, нужна небольшая избыточность. OFDMа без избыточности не бывает, так как именно избыточность кода позволяет реализовать частотное разнесение.
serjj
Цитата
Посмотрел справку и последнюю редакцию Communications System Toolbox User's Guide для 2015a. Там в формуле с аппроксимацией есть деление на сигма в квадрате пед скобкой. При этом они ссылаются на статью Витерби ”An Intuitive Justification and a Simplified Implementation of the MAP Decoder for Convolutional Codes”, в которой нет упоминаний про уровень шума.

Ага, вот здесь у них даётся мат описание алгоритмов LLR и ALLR: справка.

Хотелось бы задать вопрос гуру итертивного декодирования (и мягкого декодирования вообще):
Если в рассчёте метрик по методу approximate log-likelihood ratio мы вводим масштабирование на 1/sigma^2, то при меньшем snr входная достоверность каждого бита уменьшается. Логично вроде бы. Но мы полагаем, что действие шума усредненно по всем битам, тогда все метрики взвешиваются на 1/sigma^2 и при увеличении мощности шума достоверность всех бит на входе декодера уменьшается пропорционально. В процессе итераций декодера он просто скомпенсирует это уменьшение достоверности. Другое дело, если метрики взвешиваются различными коэффициентами как в приведенной выше статье с OFDM и частотно-селективными замираниями. Мое понимание, что важно не абсолютная достоверность метрик на входе декодера, а их соотношение между собой. Правильно ли я думаю?
petrov
Цитата(andyp @ Apr 15 2015, 11:52) *
Для OFDM этот тезис неверен именно потому, что в каждом кодовом блоке теряются биты, попадающие на спектральные нули. Для того, чтобы их восстановить, нужна небольшая избыточность. OFDMа без избыточности не бывает, так как именно избыточность кода позволяет реализовать частотное разнесение.


Избыточность не нужна! Разнесение можно реализовать без избыточности.

Цитата(serjj @ Apr 15 2015, 11:55) *
Правильно ли я думаю?


Да.
serjj
Немного оффтопа.
Цитата
Для OFDM этот тезис неверен именно потому, что в каждом кодовом блоке теряются биты, попадающие на спектральные нули. Для того, чтобы их восстановить, нужна небольшая избыточность. OFDMа без избыточности не бывает, так как именно избыточность кода позволяет реализовать частотное разнесение.

Я знаю три вида избыточности в OFDM (на уровне OFDM символов данных): избыточность FEC, избыточность CP/ZP, избыточность пилот-тонов. При этом на декодирование символов, попавших в спектральные нули, влияет только первая избыточность, которая никак не связана с OFDM. Про какую избыточность вы говорите?

Цитата
Более того каналы с замираниями могут быть и справлены без избыточного кодирования вообще!

Согласен с andyp, то что попало в спектральные нули, может быть вытянуто только FEC'ом.
des00
Цитата(serjj @ Apr 15 2015, 17:22) *
Согласен с andyp, то что попало в спектральные нули, может быть вытянуто только FEC'ом.

немного потроллю, а вы их (биты) адамаром размажьте каждый бит по всему спектру, а потом соберите wink.gif
petrov
Цитата(serjj @ Apr 15 2015, 13:22) *
Согласен с andyp, то что попало в спектральные нули, может быть вытянуто только FEC'ом.


Это не так, разнос битов между поднесущими может быть осуществлён без избыточности, это должно быть очевидно из возможности приёма single carrier в канале со спектральными нулями без какого-либо избыточно кодирования, single carrier можно представить в виде OFDM с прекодером.

Нажмите для просмотра прикрепленного файла

Цитата(des00 @ Apr 15 2015, 13:54) *
немного потроллю, а вы их (биты) адамаром размажьте каждый бит по всему спектру, а потом соберите wink.gif


В точку!
andyp
Цитата(des00 @ Apr 15 2015, 13:54) *
немного потроллю, а вы их (биты) адамаром размажьте каждый бит по всему спектру, а потом соберите wink.gif


Только после того, как будет открыт способ собрать wink.gif На текущий момент коды адамара декодируются при помощи преобразования адамара и избыточность там есть.

Цитата(petrov @ Apr 15 2015, 13:57) *
Это не так, разнос битов между поднесущими может быть осуществлён без избыточности, это должно быть очевидно из возможности приёма single carrier в канале со спектральными нулями без какого-либо избыточно кодирования, single carrier можно представить в виде OFDM с прекодером.

Нажмите для просмотра прикрепленного файла


Ну я вообще-то каноническую OFDM имел в виду, когда мультиплексируются поднесущие, каждая из которых модулируется.
Но если Вы про это... Ну надеюсь авторы за последние >15 лет нашли способ преодолеть те "мелкие" трудности, которые стояли на пути практической реализации этой идеи.
AEG
Цитата(serjj @ Apr 15 2015, 10:43) *
Почему если выбрать approximate log-likelihood ratio вместо обычного log-likelihood ratio результат не зависит от сигма шума? <...>. В моем понимание approximate метод позволяет перейти от логарифма суммы экспонент к max/min функциям, при этом сигма выносится за скобки, но не уходит из конечного выражения. Какая-то особенность реализации матлабовского approximate log-likelihood ratio? что-то вроде автоматической нормировки сигмы к 1, на подобии той что делают на практике?

Да, сигма выносится за скобки для LLR, и для всей последовательности (пути). Т.е. если сравнивать две (или n) последовательности, то сигма будет одинаковым множителем в обоих выражениях и не будет влияет на выбор МП последовательности. Вроде так.


Цитата(andyp @ Apr 15 2015, 11:43) *
Это особенность алгоритма витерби - вынесенная за скобки сигма не влияет на результат декодирования.

Да. Точнее МП подхода, но на практике это одно и тоже.
des00
Цитата(andyp @ Apr 15 2015, 19:50) *
Только после того, как будет открыт способ собрать wink.gif На текущий момент коды адамара декодируются при помощи преобразования адамара и избыточность там есть.

хммм, мы точно про одного и того же адамара говорим ?
Код
N = 8;

msg = randi([0:1], 1, N);

coded = hadamard(N) * msg';

decoded = inv(hadamard(N)) * coded;

biterr(msg, decoded')
AEG
Цитата(des00 @ Apr 14 2015, 19:11) *
но выбор максимально правдоподобного пути определенного символами, давно не рулит

Почему символами? Мягкие решения же для битов. И МП цепочка битов ищется. Не?
des00
Цитата(AEG @ Apr 15 2015, 20:12) *
Почему символами? Мягкие решения же для битов. И МП цепочка битов ищется. Не?

Тип мягкого решения (для битов или для символов), определяет расчет метрик для декодера, но тип декодирования: выбор наиболее правдоподобной метрики пути или метрики бита будет определяться алгоритмом декодирования. Классический витерби работает с метрикой пути, витерби с мягким выходом уже работает с битами, но ИМХО тут уже и до MAP алгоритма недалеко.
AEG
Еще раз та же модель, взята выборка на порядок больше: 1,6 миллиардов бит. Результаты те же: неверная сигма слегка, но достоверно лучше.

Нажмите для просмотра прикрепленного файла
des00
Цитата(AEG @ Apr 15 2015, 20:19) *
Еще раз та же модель, взята выборка на порядок больше: 1,6 миллиардов бит. Результаты те же: неверная сигма слегка, но достоверно лучше.

Уже говорил возьмите другой декодер. Если учесть что дисперсия входит в мягкое решение в знаменатель, то нормировка на 0.5 - "разгоняет" шум метрики, а нормировка на 1.5 уменьшает. Может где еще saturation есть внутри блочков + дубовость витреби... вот и результат.
petrov
Цитата(andyp @ Apr 15 2015, 15:50) *
Ну надеюсь авторы за последние >15 лет нашли способ преодолеть те "мелкие" трудности, которые стояли на пути практической реализации этой идеи.


Если не ошибаюсь, вроде в DVB-T2 такое уже используется, причём разносить каждый бит по всем поднесущим не требуется, буквально по нескольким, уже получается близко к каналу без замираний.
andyp
Цитата(des00 @ Apr 15 2015, 16:10) *
хммм, мы точно про одного и того же адамара говорим ?
Код
N = 8;

msg = randi([0:1], 1, N);

coded = hadamard(N) * msg';

decoded = inv(hadamard(N)) * coded;

biterr(msg, decoded')


>> inv(hadamard(4))
ans =

0.25000 0.25000 0.25000 0.25000
0.25000 -0.25000 0.25000 -0.25000
0.25000 0.25000 -0.25000 -0.25000
0.25000 -0.25000 -0.25000 0.25000

>> 4*inv(hadamard(4))*[1;-1;-1;-1]
ans =

-2
2
2
2

>> 4*inv(hadamard(4))*[1;-1;-1;1]
ans =

0
0
0
4

Уже должны закрасться подозрения...

Я всю дорогу говорил про старину-бинарного Адамара
http://en.wikipedia.org/wiki/Hadamard_code
serjj
AEG, посмотрите модификацию модели, которую я выложил на несколько постов выше. При низком snr и большой разнице в сигмах вы увидите, что LLR даёт ошибку при неверном сигма. Но ИМХО с точки зрения реальной применимости, не нужно закладываться на алгоритм рассчёта мягких решений, требующий рассчёта сигмы (особенно точного её рассчёта), т.к. это задача нетривиальная. Есть алгоритмы, которые обеспечивают свою производительность только при относительно точной оценке сигмы (пример, MMSE), а в случае с мягкими решениями ALLR позволяет обойтись без дисперсии шума.
des00
Цитата(andyp @ Apr 15 2015, 20:37) *
Уже должны закрасться подозрения...

Преобразование должно быть дуальным, вы нарушили дуальность (точнее нормировку мощности) вот и результат.
Цитата
Я всю дорогу говорил про старину-бинарного Адамара

Вы говорили про код Адамара, а я про преобразование Адамара
Код
It performs an orthogonal, symmetric, involutional, linear operation on 2^m real numbers (or complex numbers, although the Hadamard matrices themselves are purely real).

Где то читал доку, про то как с помощью него снижают пикфатор OFDM на 2-4 дб, потом с помощью него можно делать эквалайзеры в ортогональном пространстве состояний(проверял в железе) и т.д. При соблюдении дуальности преобразования все работает.
andyp
Цитата(des00 @ Apr 15 2015, 16:48) *
Преобразование должно быть дуальным, вы нарушили дуальность (точнее нормировку мощности) вот и результат.


Я говорил про одну простую вещь - стирание одной поднесущей (в данном случае №4) не может быть исправлено с помощью "разнесения", получаемого в результате использования преобразования адамара. Любые комбинации бит, соответствующие словам бинарного кода, дадут всплески в одной из поднесущих (остальные 0). Т.е. такое разнесение без кодирования работать все равно не будет.
AEG
Цитата(serjj @ Apr 15 2015, 16:48) *
AEG, посмотрите модификацию модели, которую я выложил на несколько постов выше. При низком snr и большой разнице в сигмах вы увидите, что LLR даёт ошибку при неверном сигма. Но ИМХО с точки зрения реальной применимости, не нужно закладываться на алгоритм рассчёта мягких решений, требующий рассчёта сигмы (особенно точного её рассчёта), т.к. это задача нетривиальная. Есть алгоритмы, которые обеспечивают свою производительность только при относительно точной оценке сигмы (пример, MMSE), а в случае с мягкими решениями ALLR позволяет обойтись без дисперсии шума.

Да, я посмотрел спасибо. Но, собственно, при моем отношении сигнал/шум такая ошибка в сигме тоже даст худший результат. Двойка (при истинной сигме 1) у меня уже дает худший результат. При низких ОСШ мне тоже удавалось подобрать сигму, которая лучше истинной. Это и странно. Из математики вроде как истинная сигма должна быть лучшей сигмой на всех шумах. Или не должна...

Цитата(des00)
ИМХО тут уже и до MAP алгоритма недалеко.

Вот, кстати, да, подумалось, собственно МП не обязан минимизировать (как MAP) вероятность битовой ошибки (т.е. BER), а минимизирует вероятность ошибки кодового слова. Может в этом дело?

Цитата(des00)
Уже говорил возьмите другой декодер.

Я видел, да, спасибо.
Меня собственно интересует, где учет уровня шума может дать хороший выигрышь в BER. Т.е. смотреть турбо, лдпц. Что-то еще?
andyp
Цитата(petrov @ Apr 15 2015, 16:33) *
Если не ошибаюсь, вроде в DVB-T2 такое уже используется, причём разносить каждый бит по всем поднесущим не требуется, буквально по нескольким, уже получается близко к каналу без замираний.


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

Цитата(AEG @ Apr 15 2015, 17:42) *
Вот, кстати, да, подумалось, собственно МП не обязан минимизировать (как MAP) вероятность битовой ошибки (т.е. BER), а минимизирует вероятность ошибки кодового слова. Может в этом дело?


Кстати - да. Посмотреть на BLER - хорошая идея. Так все будет по крайней мере честно, если используется Витерби.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.