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

 
 
 
Reply to this topicStart new topic
> реализация перфорации в декодере Витерби, Проблема с описанием канала или самой перфорацией?
Muscat
сообщение Oct 22 2010, 13:02
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 277
Регистрация: 8-04-09
Из: Москва
Пользователь №: 47 382



В процессе реализации декодера Витерби (7, 133 171) столкнулся со следующей проблемой.

Не могу разобраться с алгоритмом перфорирования. Как его реализовывать?

Вариант 1, взят из мануала Texac Instruments к одному из ДСП
Заменять выкалываемые биты слабыми нулями и единицами.
Код
     data_dec(4:6:2*l)=3;
     data_dec(5:6:2*l)=4;

Далее декодирование как обычно, получается такая вот кривая (под Rate 1 подразумевается 1/2, чистый поток).

нижний зеленый график - без перфорации, согласуется с ожидаемым. Загиб синего связан с ограничением на число прогонов.
Вариант второй, когда мы не учитываем в принципе выколотые биты. Это я так понял делается так.
Исходные пары бит на входе декодера
1 3 5
2 4 6
Но 4 и 5 были "выколоты", значит в первой паре для вычисления метрики перехода используем оба бита, во втором случае не рассматриваем 2 бит, в третей паре - 1 бит.
Можно сформировать следующий вектор
021021021...
Код
if Perf==1
     data_dec(4:6:2*l)=3;
     data_dec(5:6:2*l)=4;
     puncture_vector(1:3:l)=0;
     puncture_vector(2:3:l)=2;
     puncture_vector(3:3:l)=1;

И добавить этот вектор в качестве входного аргумента для функции вычисления метрик.
Код
function [BM] = BranchMetric_punc(X,hard_soft,punct)
if hard_soft==1
    One=7;
else One=1;
end

if punct==0
    BM(1)=X(1)+X(2);
    BM(2)=X(1)+(One-X(2));
    BM(3)=(One-X(1))+X(2);
    BM(4)=(One-X(1))+(One-X(2));
elseif punct==1
    BM(1)=X(2);
    BM(2)=One-X(2);
    BM(3)=X(2);
    BM(4)=One-X(2);
elseif  punct==2
    BM(1)=X(1);
    BM(2)=X(1);
    BM(3)=(One-X(1));
    BM(4)=(One-X(1));
end
end


Результат чуть лучше.
Те же результаты я увидел в дипломной работе одного китайского студента. Однако "теория" в виде книги "Кодирование с исправлением ошибок в ЦСПИ" Дж.Кларка и Дж.Кейна говорит мне, что я ничего не понимаю в кодерах и дает следующие кривые.

Нижняя правая группа графиков как раз мой случай, кривая 7.
У них для перфорированного кода при 5 децибелах- Pбитовое на уровне 10^-5, при 4= 10^-4.
Проигрыш по сравнению с кодером без перфорирования (верний правый) составляет что то около 1 дБ.Что я делаю не так?
Есть предположение, что проблема в том, что я работаю с отношением Сигнал-Шум, а в учебнике кривые для Ебита-Ншума.
Если так, то вопрос по поводу того, как привести все к единому стандарту, а то у функции awgn много не ясных для меня параметров.
sigpower - зачем нам указание мощи сигнала в дебиваттах, если мы работаем с относительным значением сигнал шум?
'measured' - взвешенный к чему? К средней мощности сигнала?

Короче говоря, какие параметры нужно установить для моделирования передачи BPSK через AWGN с заданным Eбита/N0?
Я делаю это сначала заменяя нули на -1, а затем подаю полученный вектор в качестве аргумента для функции awgn. потом квантую.

Подскажите, что не так?



--------------------
Because it's there
Go to the top of the page
 
+Quote Post
ASN
сообщение Oct 22 2010, 13:46
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 459
Регистрация: 15-07-04
Из: g.Penza
Пользователь №: 326



"Помехоустойчивость и эффективность систем передачи информации". Под редакцией А.Г.Зюко.Москва "Радио и связь".1985
Страница 90, таблица 3.4.
Код
speed (1/2), d=10 (11)
speed (2/3), d=06 (1110)
speed (3/4), d=05 (111001)
speed (4/5), d=04 (11101010)
speed (5/6), d=04 (1110011001)
speed (6/7), d=03 (111010011001)
speed (7/8), d=03 (11101010011001)

На место выколотых бит заносится 0.
Go to the top of the page
 
+Quote Post
Muscat
сообщение Oct 22 2010, 18:46
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 277
Регистрация: 8-04-09
Из: Москва
Пользователь №: 47 382



Да спасибо, только вопрос не об этом. У меня как раз и стоит такой вектор перфорирования, выкалывание 4 и 5 бита.
Вопрос в том что заносить и как декодировать?

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


--------------------
Because it's there
Go to the top of the page
 
+Quote Post
Grumbler_2002
сообщение Oct 23 2010, 08:42
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 154
Регистрация: 5-01-05
Из: г. Зеленоград
Пользователь №: 1 817



Сразу уточню, чтобы было меньше вопросов, что Ваша кривая у Кларка и Кейна 6, а не 7, поскольку параметр v=k-1. Глубина декодирования для данной скорости у Вас какая? Учтите, что все графики даются без квантования, то есть будут потери, которые надо тоже оценить.
Go to the top of the page
 
+Quote Post
Muscat
сообщение Oct 25 2010, 11:24
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 277
Регистрация: 8-04-09
Из: Москва
Пользователь №: 47 382



Глубина декодирования 64, увеличение ее не приносит заметно улучшения, так же как и число уровней квантования - 8 уровней дает проигрыш по сравнению с бесконечностью что то там около 0.5 дБ.
Сейчас считаю 3 кривых БЕР, для чистого потока, для перфорированного и для системы без кодирования. Досчитаю, покажу. По уровню 10^-4 ожидается проигрыш между чистым и перфорированным около 3 дБ.

рассчиталась следующая кривуля.


"Загиб" вверх синего графика связан с тем, что расчет шел для 100 000 бит, так что ошибку по уровню 10^-4 он оценил не вполне корректно. Зеленый график посчитан для 1М бит.

Короче говоря этот график подтвердил мои сомнения в том, что введение перфорации это вовсе не хороший способ увеличить скорость пожертвовав парой дБ, а достаточно сомнительная процедура, так как видно что при сигнал-шуме в 4дБ неперфорированный кодек справляется с задачей выдавая ошибку на уровне 10^-4, а перфорированный работает даже хуже, чем "чистый" поток.
Из этого графика так же можно сделать вывод, что применение такого кодера целесообразно в достаточно хороших каналах, где уровень сигнала на 10дБ выше шума и где нужно исправлять совсем уж редкие ошибки, то есть там где "синий" график уже ощутимо удалиться от "красного".

Сообщение отредактировал Muscat - Oct 25 2010, 11:27


--------------------
Because it's there
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 27th July 2025 - 21:47
Рейтинг@Mail.ru


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