Системотехника. Проектирование радиотехнических систем
.pdf
При по ступлении на вход кодера каждого инфор мационного символа U i
Вх
0 |
|
1 |
|
2 |
|
i |
|
N-1 |
Р |
|
|
|
|
|
|
|
|
|
|
|
|
1 |
2 |
j |
m |
|
|
1 |
m |
Вых
M
мультиплексор Рис. 2.7. Кодирующее устройство сверточного кода в общем виде
М по следовательно считывает за один такт сигналы с выходов всех сумматоров по модулю 2, формируя на выходе m символов V i . Таким образом, при скоро сти входной по следовательно сти В в х бит/ с скоро сть выходной по следовательности со ст авляет Вв ы х =mВв х бит/с.
Для представления связей между ячейками регистра сдвига и сумматорами, использует ся следую щий прием: каждый сумматор
описывает ся порождающим (образующим, формир ующим) полиномом [2]:
gj (D)=1+D+D2 +D3 +… +Dn |
(2. 14) |
Степени полинома соответ ствуют номерам ячеек регистра сдвига (слева направо), с которыми j -й сумматор имеет связь. Например, в радиоканалах подвижной связи стандарт а GSM (Глобальная система подвижной связи)
используются сверточные кодеры с N=5 и порождающими полиномами [2]:
g1 =1+D2 +D3 +D4 и g2 =1+D+D4 |
(2.15) |
Сверточный код может быть систематиче ским (разделимым) |
или |
не систематиче ским (неразделимым ). Для систематиче ского кода один из полиномов gj должен быть равен 1 (g j =1).
Тогда на выходе соответ ствующего сумматора мы имеем входн ую информационн ую последовательность , а кодовая последовательность на выходе кодера являет ся разделимой на информаци онные и (добавленные)
проверочные символы. При использовании в декодере алгоритма Витерби предпочтение отдается несистематиче ским кодам.
Каждый информационный символ находится в регистре сдвига в течение
N т актов и влияет на N*m передаваемых символов V i . Величина N
51
называет ся памятью сверточного кода. В общем случае число символов на выходе сверточного кодера, соответ ствующее передаче информационной последовательности длиной L символов со ст авляет [2]:
(L+N)*m |
(2.16) |
Обычно L>>N. Сверточный код характеризует ся скоро стью [2]: |
|
R=k/m |
( 2.17) |
где k – число входов сверточного кодера; |
|
m – число выходов, то е сть число сумматоров.
На практике чаще все го используют ся коды со скоро стью R=1/2.
Несмот ря на большую избыточно сть сверточные коды очень широко применяются в современных системах передачи данных, благодаря хорошим корректирующим свойствам.
Алгоритмы декодирования сверточных кодов
Классификация алгоритмов декодирования
При оптимальной обработке с целью выне сения решения принятую из канала последовательность символов необходимо сопо ст авить со всеми возможными передаваемыми последовательностями. Так как число возможных последовательно стей длины N двоичного кода равно 2 N , то при больших длинах последовательностей декодер ст ановится недоп устимо сложным (экспоненциальная сложно сть декодирования), а оптимальное декодирование – практиче ски трудно реализуемым. Однако, именно при больших N возможно значител ьное повышение надежно сти передачи, т ак как действие шума усредняет ся на длинной по следовательно сти. Поэтому важной является проблема снижения сложно сти алгоритмов декодирования сверточных кодов .
Изве стны две группы методов декодирования сверточных кодов:
1. Алгебраические методы декодирования
Основаны на использовании алгебраиче ских свойств кодовых последовательностей. В ряде случаев эти методы приводят к про стым реализациям кодека. Такие алгоритмы являют ся неоптимальными , т ак как используемые алгебраически е процедуры декодирования предназначены для исправления конкретных (и не всех ) конфигураций ошибок в канале.
Алгебраиче ские методы отожде ствляют с поэлементным приемом
52
последовательностей, который для кодов с избыточно стью, как изве стно,
дает худшие результ аты, чем «прием в целом ». Наиболее про стым из алгебраиче ских алгоритмов являет ся алгоритм порогового декодирования
сверточных кодов. Этот алгоритм далек от оптимального и поэтому редко использует ся, а использует ся, в первую очередь, в системах с высокой скоро стью передачи информации [3].
2. Вероятностные методы декодирования
Вероятностные методы декодирования значительно ближе к оптимальному «приему в целом », т ак как в этом случае декодер оперирует с величинами , пропорциональными апо стериорным вероятно стям, оценивает и сравнивает вероятности различных гипотез и на этой основе выно сит решения о передаваемых символах.
Алгебраиче ские алгоритмы оперируют с конечным алфавитом входных данных, для получения которых на выходе непрерывного канала необходимо выполнить квантование принимаемого сигнала с шумом . Проце ссы обработки сигналов в решающем устройстве на выходе демодулятора противоположных сигналов показаны на рисунке 2 [3].
Впро стейшем случае производят квантование каждого канального
символа в от счетный момент времени на два уровня (имен уемое, как
«же сткое решение » на выходе демодулятора). При же стком решении число уровней квантования L = 2. При этом же сткое решение предст авлено одним двоичным символом. Это показано на рисунке 2, б ).
При «мягком решении » рисунок 2, г) число уровней квантования L > 2.
При мягком решении выход квантователя более точно описывает величин у от счет а сигнала с помехой , что повышает помехоустойчиво сть декодирования.
Изве стны два о сновных вероятностных алгоритма декодирования сверточных кодов, а также их различные модификации
53
Отсчет
t
а)
Отсчет
в)
квантования |
S1 |
|
|
||
|
|
X1 |
Шкала |
|
X2 |
|
||
|
|
|
|
|
S2 |
|
|
|
б)
квантованияШкала |
S1 |
X1 |
|
||
|
|
|
|
S2 |
X8 |
|
|
|
|
|
г) |
Рисунок 2 .8 – Пояснение работы решающего устройства в демодуляторе а, в) – формы противоположных сигналов в момент от счет а на входе
решающего устройства демодулятора.
б) – шкала квантования и граф переходов при же стком решении .
г) – шкала квантования и граф переходов при мягком решении .
2.1 Алгоритм последовательного декодирования
Данный алгоритм обе спечивает произвольно малую вероятность ошибки при нен улевой скоро сти передачи сообщений по кан алу. При последовательном декодировании производит ся поиск пути на кодовой решетке, соответ ствующего переданной информационной последовательности .
По следовательное декодирование использует ся для декодирования длинных сверточных кодов [3].
Другой разновидн о стью вероятно стных алгоритмов являет ся алгоритм,
54
о снованный на принципе динамиче ского программирования, и изве стный как «Алгоритм Витерби ».
Принцип динамиче ского программирования был сформулирован в 1940 г.
Р. Беллманом. С тех пор он нашел широкое прилож ение в теории управления и теории цепей. В 1970 г. динамиче ское программирование, в форме алгоритма декодирования сверточных кодов ( алгоритма Витерби ), было применено А. Витерби к проблемам телекоммуникации [4].
2.2 Алгоритм Витерби находит широкое применение и реализует поиск максимально правдоподобного п ути на кодовой решетке с отбрасыванием части части наименее правдоподобных вариантов п утей на каждом шаге декодирования. Алгоритм Витерби характеризует ся постоянством вычислительной работы, однако сложно сть декодера Витерби растет, как при всех переборных алгоритмах, по экспоненциальному закон у от длины кодового ограничения сверточного кода . Поэтому алгоритм Витерби использует ся для декодирования коротких сверточных кодов [5].
Алгоритм Витерби для декодирования сверточных кодов
Рассмотрим алгоритм Витерби на примере кода со скоро стью Rкод = 1/n.
Пусть, начиная с момент а времени t = 0, на вход кодера |
подает ся |
информационная по следовательно сть длиной L символов: |
|
aL = (a0 , a1 , … , aL – 1 ) |
(2.18) |
Тогда на выходе кодера будет последовательность символов: |
|
b L = (b0 , b1 , ..., b L – 1 ) |
( 2.19) |
Со стояние кодера в момент t определяют как набор из w
информационных символов: |
|
wt = (at , at – 1 , ..., at – L + 1 ) |
( 2.20) |
Решетчат ая диаграмма кода однозначно связывает информационн ую последовательность aL , последовательно сть со стояний кодера wL и
последовательность символов на его выходе b L .
Каждой вет ви bt в канале соответ ствует сигнал, который может быть предст авлен набором координат [2]:
S |
t |
= (S (1) , S 2 |
, ..., S ( N ) ) |
(2.21) |
|
|
t |
t |
t |
|
|
где N – размерно сть про ст ранства сигналов.
55
Доп устим, что в канале действует аддитивная по меха. Тогда поступающая на вход декодера по следовательно сть принимаемого сигнала
будет равна [2]: |
|
|
|
||
|
|
|
XL = S L + n L |
(2.22) |
|
где S L = (S0 , S1 , ..., S L – 1 ); |
|
||||
n L = (n0 , n1 , …, n L – 1 ); |
|
|
|||
n |
= (n(1) , n(2 ) , ...,n( N ) ) |
– N-мерный вектор помехи. |
|
||
t |
t |
t |
t |
|
|
Декодирование состоит в п ро слеживании по кодовой решетке п ути с максимальной апо стериорной вероятно стью.
Декодированный п уть можно указать одним из спо собов:
–набором оценок кодовых ветвей S L = (S0 , S1 , ..., S L – 1 ), составляющих
путь;
–по следовательно стью оценок со стояний кодера W L = (w0 , w1 , …., wL – 1 );
–по следовательно стью оценок информационных символов на входе кодера AL = (a0 , a1 , …, aL – 1 ), которые совпадают с первыми символами
оценок со стояний S = (s0 , s1 , …,st - ν + 1 ).
По следовательно сть XL будет декодирована с минимальной вероятно стью ошибки , е сли из всех возможных путей выбрать оценку S L , для которой максимальна апо стериорная вероятность P(S L /XL ). Передачу всех вариантов
наборов a L |
счит ают равновероятной . В этом случае декодирование по |
|||
критерию |
максимума |
апо стериорной |
вероятности |
равно сильно |
декодированию по критерию максимума правдоподобия, когда выбирает ся оценка S L , обе спечивающая выполнение условия P(S L /XL ) = max. В канале без памяти условная вероятно сть P(S L /X L ) пропорциональна произведению условных плотно стей суммы сигнала и помехи [2]:
L 1 |
L 1 |
P(XL /S L ) = P( X t |
/ St ) P( X t(0) X t(1) X t( N ) / St(0) St(1) St( N ) ) (2.23) |
t 0 |
t 0 |
В гауссовском канале при действии белого шума с одно сторонней спектральной плотностью мощно сти N0 каждый сомножитель э того произведения имеет вид:
|
|
N |
|
|
p( X L / SL ) (1/ |
N0 |
) N exp{ [ ( X t(i) |
St(i) )2 ] / 2N0} |
(2.24) |
|
|
i 1 |
|
|
Для отыскания максимума прологарифмируем: |
|
|
||
|
|
|
|
56 |
|
L 1 |
|
|
|
|
|
|
|
ln P( X L / SL ) ln (1/ |
N0 )N |
|
|
|
|
|
||
|
t 0 |
|
|
|
|
|
|
|
|
N |
|
|
|
|
|
L 1 N |
|
exp{ [ ( X t(l ) St(i) )2 ] / 2N0} NL ln(1/ |
N0 |
) ( X t(i) St(i) )2 / 2N0 . |
||||||
|
t 1 |
|
|
|
|
|
t 0 i 1 |
|
(2.25) |
|
|
|
|
|
|
|
|
При |
декодировании |
выбирают |
по следовательно сть |
сигналов |
||||
S L = (S0 , S1 ,…, S L – 1 ) и однозначно связанн ую с ней по следов ательно сть |
||||||||
ветвей S L = (S0 , S1 , …, S L – 1 ), которая обе спечивает минимум суммы: |
|
|||||||
|
|
|
L 1 N |
|
|
|
|
|
|
МП = ∑∑( X ( i ) |
S |
t |
)2 = min |
(2.26) |
|||
|
|
|
t |
|
|
|
|
|
t =0 i=0
Выражение которая называет ся метрикой декодированного пути . Метрика пути содержит в каче стве слагаемых метрики ветвей [4]:
N |
|
(2.27) |
|
МВ = ∑( X ( i) |
S ( i ) )2 |
||
|
|||
t |
t |
|
i-1
Вгауссовском канале мет рика ветви пропорциональна квадрат у Евклидова расстояния между вектором принимаемой суммы сигнала и помехи Xt и вектором сигнала St , соответ ствующего ветви кода At . В
дискретном канале для оценки расстояний используют мет рику Хемминга .
Периодиче ская структура решетч атой диаграммы суще ственно упрощает сравнение и выбор путей в соответ ствии с правилами декодирования. Число состояний на решетке ограничено, и два наугад выбранных дост аточно длинных пути имеют, как правило, общие состояния. Отрезки п утей,
входящих в т акие состояния, необходимо сравнить и выбрать п уть с наименьшей метрикой. Такой п уть называет ся выжившим. В соответ ствии с алгоритмом Витерби такое сравнение и отбрасывание от резков п утей производит ся периодиче ски, на каждом шаге декодирования .
Рассмотрим декодирование кода (7;5), символы которого передают ся по
дискретному каналу (см. рисунок 2.7 ) [5] .
Вэтом случае мет рика ветви (МВ) равна расстоянию Хемминга межд у набором символов ( Х( 1 ) Х( 2 ) ) на входе декодера и набором символов (S ( 1 ) S( 2 ) ),
соответ ствующих д анной ветви на решетчатой диаграмме. Если
(Х( 1 ) Х( 2 ) )=(01), то значения МВ для кода (7;5) с решеткой , изображенной на рисунок 3, а) будут равны МВ(00) = 1, МВ(01) = 0, МВ(11) = 1 и МВ(10) = 2 .
57
58
Символы на входе
С о с т о я н и я
|
|
11 |
10 |
00 |
0 |
2 2 |
1 3 |
|
|
0 |
1 |
10 |
|
3 |
|
|
|
||
|
0 |
|
|
|
|
0 |
|
|
|
|
|
01 |
Метрики |
0 |
|
|
ветвей |
2 |
|
|
|
|
|
11 |
|
|
2 |
|
|
а) |
|
Метрики состояний
11 |
10 |
3 |
00 |
0 |
2 |
|
|
|
2 |
||
|
|
|
|
|
2 |
|
|
3 |
|
0 |
0 |
|
|
|
|
|
1 |
|
|
0 |
|
1 |
3 |
|
|
|
|
|
1 |
|
|
2 |
|
1 |
3 |
|
|
|
|
б)
11 10
Отброшенные пути
11 10 00
002
0
3
3
11 00 2
2
1
2
д)
Ошибка |
|
Информационныесимволы |
|
11 |
10 |
00 11 3 |
01 |
1 |
|
|
|
||||
|
2 |
|
Выжившиепути |
0 |
2 |
|
|
||||||||
11 |
3 |
|
|
|
|
|
|
|
1 |
|
метрикаНаименьшаяпути |
|
|||
|
0 |
|
|
|
|
|
|
|
|
1 |
|
||||
|
0 |
1 |
|
|
|
|
2 |
|
1 |
2 |
|
||||
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
0 |
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
1 |
1 |
|
|
0 |
|
|
|
|
1 |
|
1 |
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
2 |
0 |
|
|
|
|
|
1 |
|
|
|
|
|
|
1 |
|
2 |
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
1 |
1 |
|
|
|
|
|
|
|
|
L=2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
в) |
|
|
|
|
|
|
|
|
|
|
г) |
|
|
|
|
11 |
2 |
1 |
|
|
11 |
10 |
00 |
11 |
01 |
11 |
1 |
00 |
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
2 |
||||
|
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
|
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
2 |
2 |
|
|
|
|
|
|
|
|
2 |
|
0 |
3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
3 |
|
|
|
|
|
|
|
|
3 |
|
1 |
3 |
|
|
1 |
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
1 |
3 |
|
|
|
|
|
|
|
|
3 |
|
1 |
3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
11 |
10 |
00 11 01 11 00 |
1 |
00 |
|
1 |
е) |
|
|
|
|
||||
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
3 |
0 |
3 |
|
1 |
|
3 |
1 |
3 |
|
1 |
|
3 |
1 |
3 |
|
ж)
Рис. 2.7. Декодирование кода (7;5) |
59 |
|
Метрика п ути (МП) есть сум ма мет рик ветвей, образующих некоторый путь на решетчатой диаграмме. Путь конечной длины оканчивает ся в определенном со стоянии. Мет рика со стояния (МС ) равна метрике п ути,
который заканчивается в данном со стоянии.
Шаг декодирования состоит в обработке декод ером принимаемых из
канала данных в интервале между двумя со седними отсчет ами .
На рисунке 3 б ) ...ж) показано развитие проце сса декодирования символов сверточного кода со скоро стью Rкод = 1/2 и длиной кодирующего
регист ра K = 3. |
|
|
На вход декодера по ступают |
пары символов из |
канала: |
(…11,10,00,11,01...) (декодирование с же стким решением). Цифрами около ветвей обозначены метрики ветвей, цифры в кружках обозначают мет рики состояний.
В начальный момент времени полагаем, что декодер находится в
состоянии 00 и исходная метрика этого состояния МС (00) = 0 (рисунок 3 а)).
Если из канала по ступили символы 11, то мет рики ветвей 00 и 11,
выходящих из этого со стояния, будут МВ(00) = 2 и МВ(11) = 0. Это отмечено на первом шаге декодирования. Так как других ветвей , выходящ их
из со стояний 00 и 11, нет, то мет рики этих со стояний принимаются равными метриками входящих ветвей МС (00) = 2 и МС(10) = 2. Аналогичная картина имеет ме сто и на следующем шаге декодирования, когда из канала по ступает пара символов (10). Зде сь МВ(00) = 1, МВ(11) = 1, МВ(10) = 0 и МВ(01) = 2.
Метрики со стояний на этом шаге определяют ся теперь как суммы мет рик
входящих ветвей с метриками предыдущих состояний: МС(00) = 2+1 = 3;
МС(10) = 2+1 =3; МС(01) = 0+0 = 0 и МС(11) = 0+2 = 2.
На этом проце сс развития р ешетчатой диаграммы для данного кода заканчивает ся.
Алгоритм заключается в повторении одного о сновного шага . На каждой из последующих диаграмм рисунок 3 этот шаг изображен подробно. К
началу i-го шага в памяти декодера хранят ся мет рики со стояний,
вычислен ных на предыдущем эт апе:
МСi - 1 (00), МСi - 1 (10), МСi - 1 (01), МСi - 1
(2.28)
По принятым канальным символам производит ся вычисление метрик
60
