Главная > Цифровая связь
НАПИШУ ВСЁ ЧТО ЗАДАЛИ
СЕКРЕТНЫЙ БОТ В ТЕЛЕГЕ
<< Предыдущий параграф Следующий параграф >>
Пред.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
След.
Макеты страниц

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

Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике

ДЛЯ СТУДЕНТОВ И ШКОЛЬНИКОВ ЕСТЬ
ZADANIA.TO

8.2.7. Другие алгоритмы декодирования свёрточных кодов

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

Еще до открытия оптимального алгоритма Витерби, были придуманы другие алгоритмы для декодирования свёрточных кодов. Самым ранним был алгоритм последовательного декодирования, впервые предложенный Возенкрафтом и впоследствии модифицированный Фано (1963).

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

Для большей конкретности рассмотрим канал без памяти.

Метрика для -го пути по дереву или решётке от первой ветви до -й ветви можно выразить так

,                                    (8.2.42)

где

.                        (8.2.43)

В (8.2.43)  - выходная последовательность демодулятора,  означает условную ФПВ  при условии кодового бита  (-й бит в -й ветви -гo пути), а  - положительная константа.  выбирается, как сказано выше, так, что неправильные пути будут иметь уменьшающиеся метрики, в то время как правильный путь в среднем увеличивает метрику. Заметим, что член  в знаменателе не зависит от кодовой последовательности и, следовательно, может быть включен в постоянную.

Метрика, определённая (8.2.43), в общем применима при декодировании как жёстких, так и мягких решений. Однако она может быть особенно упрощена, когда используется декодирование жёстких решений. В частном случае, если мы имеем ДСК с переходной вероятностью ошибки , метрика для каждого принятого символа, согласующаяся с формулой (8.2.43), определяется так

                     (8.2.44)

где  - выходы жёстких решений демодулятора;  -  -й кодовый символ в -й ветви -го пути дерева;  - скорость кода.

Заметим, что эти метрики требуют хотя бы приближённого знания вероятности ошибки .

Пример 8.2.6. Предположим, что для передачи информации по ДСК с вероятностью ошибки  используется двоичный свёрточный код со скоростью . Вычисление согласно (8.2.44) дает

                       (8.2.45)

Для упрощения расчётов метрики (8.2.45) можно нормировать. Они хорошо аппроксимируются так:

                     (8.2.46)

Поскольку скорость кода равна 1/3, то кодер имеет три выходных символа на каждый входной символ. Тогда метрики ветвей, согласующиеся с (8.2.46), равны

или, что эквивалентно,

,                      (8.2.47)

где  — хеммингово расстояние трёх принятых бит от трёх битов на ветви.

Таким образом, метрики  просто связаны с расстоянием Хемминга между принимаемыми символами и кодовыми символами -й ветви -го пути.

Первоначально декодер можно заставить выбирать правильную траекторию путём передачи известной цепочки данных. Тогда он продвигается вперед от узла к узлу, выбирая наиболее вероятную (с большей метрикой) ветвь в каждом узле и увеличивая порог так, что его изменение никогда не больше, чем некоторая заранее выбранная величина, скажем, . Теперь предположим, что аддитивный шум (при декодировании мягких решений) или ошибки демодуляции, возникающие из-за шума в канале (при декодировании жёстких решений) заставят декодер принять неверный путь, поскольку он кажется более правдоподобным, чем правильный путь. Это иллюстрирует рис. 8.2.17.

Рис. 8.2.17. Пример поиска пути при последовательном декодировании [Jordan (1966), © 1966 IЕЕЕ]

Поскольку метрики неверного пути в среднем уменьшаются, метрика упадет ниже текущего порога, скажем . Если это случится, декодер возвращается обратно и берёт альтернативный путь по дереву (решётке) с меньшей метрикой ветви, в попытке найти другой путь с большей метрикой, которая превосходит порог . Если приходит удача в альтернативном пути, это продолжается вдоль пути все время, и выбирается наиболее правдоподобная ветвь в каждом узле. С другой стороны, если не существует пути, который превышает порог , порог уменьшается на величину  и декодер возвращается к первоначальному пути. Если первоначальный путь не находится выше нового порога, декодер начинает обратный поиск других путей. Эта процедура повторяется с уменьшением порога на  при каждом повторении до тех пор, пока декодер не найдет путь, который остаётся выше установленного порога. Упрощённая структурная схема алгоритма Фано показана на рис. 8.2.18.

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

Алгоритм последовательного декодирования Фано успешно применяется в различных системах связи. Его качество по вероятности ошибки сравнимо с декодером Витерби. Однако по сравнению с декодером Витерби последовательное декодирование имеет значительно большую задержку декодирования. С другой стороны, последовательное декодирование требует меньше памяти, чем декодирование по Витерби, и, следовательно, оно является привлекательным для свёрточных кодов с большим кодовым ограничением.

Рис. 8.2.18. Упрощённая структура алгоритма Фано [Jordan (1966), © 1966 IЕЕЕ]

Исследования вычислительной сложности и требований к памяти для последовательного декодирования вызывают интерес, и они все еще продолжаются. Для анализа этих вопросов и других характеристик алгоритмов Фано интересующемуся читателю рекомендуются книги Галлагера (1986), Возенкрафта и Джекобса (1965), Сэвейдж (1966) и Форни (1974). Другой тип алгоритма последовательного декодирования, названный стек-алгоритмом, был предложен независимо Зигангировым (1966) и Елинеком (1969). В противовес алгоритму Витерби, который сохраняет траектории  путей и соответствующих метрик, стек-алгоритм последовательного декодирования работает с несколькими путями и их соответствующими метриками. В стек-алгоритме более вероятные пути упорядочиваются согласно их метрик, причём в верхней части (в голове стека) располагается путь, имеющий наибольшую метрику. На каждом шаге алгоритма только путь в голове стека проверяется по разветвлению. Это приносит  продолжений и их соответствующих метрик. Эти  продолжения вместе с другими путями затем упорядочиваются согласно величинам их метрик, и все пути с метриками, которые располагаются ниже некоторой выбранной величины от метрики главного пути, отбрасываются. Затем процесс продолжения путей с наибольшими метриками повторяется. Рис. 8.2.19 иллюстрирует несколько первых шагов стек-алгоритма.

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

Стек с накопленными метриками путей

Шаг

Шаг

Шаг

Шаг

Шаг

Шаг

-1

-2

-2

-2

-2

-3

-2

-2

-3

-3

-3

-3

 

-3

-3

-3

-3

-3

 

 

-4

-3

-4

-4

 

 

 

-5

-5

-4

 

 

 

 

-8

-5

 

 

 

 

 

-8

Рис. 8.2.19. Пример работы стек-алгоритма для декодирования свёрточного кода со скоростью 1/3

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

Третья альтернатива оптимального декодера Витерби – это метод, названный декодированием с обратной связью (Хеллер 1975), который был разработан для декодирования в ДСК (декодирование жёстких решений). При декодировании с обратной связью декодер делает жёсткое решение об информационном символе на -м шаге, основываясь на метриках, вычисленных от -го до -го шага, где  - выбранное целое число. Таким образом, решение об информационном символе в пользу 0 или 1 зависит от того, каково минимальное расстояние по Хеммингу для пути, который начинается на -м шаге и кончается на -м шаге и сколько содержится «0» или «1» в ветви, исходящих от шага . Решение выносится один раз об информационном символе на  шаге, и только часть дерева, которая связана с этим символом, сохраняется (половина путей, исходящих из узла ), а остальные пути исключаются. Так осуществляется обратная связь в декодере. Следующий шаг заключается в расширении части дерева, которая вышла до шага  и рассмотрении путей от шага -го до -гo для принятия решения о символе на шаге . Так процедура повторяется на каждом шаге. Параметр  - это просто число шагов по дереву, которое декодер учитывает при вынесении жёсткого решения. Поскольку большая величина  ведет к большой величине памяти, желательно  выбрать как можно меньше. С другой стороны,  должно быть достаточно большим, чтобы избежать существенного ухудшения качества. Чтобы сбалансировать эти два противоречивых требования,  обычно выбирается в области , где  - кодовое ограничение. Заметим, что эта задержка при декодировании значительно меньше, чем задержка при использовании алгоритма Витерби, которая обычно около .

Пример 8.2.7. Рассмотрим использование декодера с обратной связью для свёрточного кода со скоростью 1/3, показанного на рис. 8.2.2. Рис. 8.2.20 иллюстрирует древовидную диаграмму и операции декодера с обратной связью при . Это значит, что при декодировании символа ветви , декодер рассматривает пути на ветвях  и . Начиная с первой ветви, декодер рассчитывает восемь метрик (расстояние Хемминга) и решает, что символ в первой ветви является 0, если путь с минимальным расстоянием находится в верхней части дерева и, что символ 1, если путь с минимальным расстоянием находится в нижней части дерева. В этом примере принимаемая последовательность для первых трёх ветвей полагается такой 101 111 110, поэтому путь с минимальным расстоянием находится в верхней части дерева, следовательно, первый выход символа декодера 0.

Следующие шаги сводятся к расширению верхней части дерева (той части дерева, которая выжила) на одну ветвь и к вычислению восьми метрик в ветвях 2, 3 и 4. Для предположения входной последовательности 111 110 011 путь с минимальным расстоянием находится в нижней части секции дерева, вычислившей после первого шага. Итак, второй выходной символ декодера 1. Третий шаг заключается в расширении этой нижней части дерева и повторении процедуры, описанной для двух первых шагов.

Рис. 8.2.20. Пример декодирования с обратной связью для свёрточного кода со скоростью 1/3

Вместо вычисления метрик описанным выше способом, декодер с обратной связью в ДСК можно эффективно реализовать путём вычисления синдрома по принимаемой последовательности и используя табличный метод коррекции ошибок. Этот метод похож на тот, который был описан выше для декодирования блоковых кодов. Для некоторых свёрточных кодов декодер с обратной связью упрощается к виду, называемому логический декодер по большинству или пороговый декодер (Месси 1963; Хеллер 1975).

 

1
Оглавление
email@scask.ru