Читайте также: |
|
Рис. 7.9. Двоичный симметричный канал (канал с жесткой схемой принятия решений) |
Пусть U("° — это переданное по каналу BSC кодовое слово с вероятностью появления ошибочного символа р, Z — соответствующая последовательность, полученная декодером. Как отмечалось ранее, декодер, работающий по принципу максимального правдоподобия, выбирает кодовое слово U<m), имеющее максимальное правдоподобие Р(Z|U('”)) или его логарифм. Для BSC это эквивалентно выбору кодового слова U('”), находящегося на наименьшем расстоянии Хэмминга от Z [8]. Расстояние Хэмминга — это удобная метрика для описания расстояния или степени сходства между U(m) и Z. Из всех возможных переданных последовательностей U(m) декодер выбирает такую последовательность U(m,), для которой расстояние до Z минимально. Предположим, что каждая из последовательностей и<т) и Z имеет длину L бит и отличается на dm позиций (т.е. расстояние Хэмминга между и<т) и Z равно dm). Тогда, поскольку предполагалось, что канал не имеет памяти, вероятность того, что U(m) преобразовалось в Z, находящееся на расстоянии dm от и*"0, может быть записана в следующем виде:
P(Z\\Jim)) = pd"'(\-p)L~d'’'. (7.6)
Логарифмическая функция правдоподобия будет иметь следующий вид:
Ig P(Z|U(m)) = -dm + i-lgfl - P) • (7.7)
Если вычислить эту величину для каждой возможно переданной последовательности, последнее слагаемое в уравнении будет постоянным для всех случаев. Если предположить, что р < 0,5, уравнение (7.7) можно записать в следующей форме:
lgP(Z\\fm)) = -Adm-B. (7.8)
Здесь А и В — положительные константы. Следовательно, такой выбор кодового слова U<",), чтобы расстояние Хэмминга до полученной последовательности Z было минимальным, соответствует максимизации метрики правдоподобия или логарифма правдоподобия. Следовательно, в канале BSC метрика логарифма правдоподобия легко заменяется расстоянием Хэмминга, а декодер, работающий по принципу максимального правдоподобия, будет выбирать на древовидной или решетчатой диаграмме путь, соответствующий минимальному расстоянию Хэмминга между последовательностью и<т’) и полученной последовательностью Z.
7.3.2.2. Гауссов канал
Для гауссова канала каждый выходной символ демодулятора Zj„ как показано на рис. 7.1, принимает значения из непрерывного алфавита. Символ zJt нельзя пометить
для детектирования как правильное или неправильное решение. Передачу на декодер таких мягких решений можно рассматривать как поступление семейства условных вероятностей различных символов (см. раздел 6.3.1). Можно показать [8], что максимизация P(Z\Ulm>) эквивалентна максимизации скалярного произведения последовательности кодовых слов I/"0 (состоящей из двоичных символов, представленных как биполярные значения) и аналогового значения полученной последовательности Z. Таким образом, декодер выбирает кодовое слово если выражение
(7.9)
имеет максимальное значение. Это эквивалентно выбору кодового слова U(m,), находящегося на ближайшем евклидовом расстоянии от Z. Даже несмотря на то что каналы с жестким и мягким принятием решений требуют различных метрик, концепция выбора кодового слова Ц^, ближайшего к полученной последовательности Z, одинакова для обоих случаев. Чтобы в уравнении (7.9) точно выполнить максимизацию, декодер должен осуществлять арифметические операции с аналоговыми величинами. Это непрактично, поскольку обычно декодеры являются цифровыми. Таким образом, необходимо дискретизировать полученные символы zJt. Не напоминает ли вам уравнение (7.9) демодуляционную обработку, рассмотренную в главах 3 и 4? Уравнение (7.9) является дискретным вариантом корреляции входного полученного сигнала КО с опорным сигналом 5,(0, которая выражается уравнением (4.15). Квантованный гауссов канал, обычно называемый каналом с мягкой схемой решений, — это модель канала, в которой предполагается, что декодирование осуществляется на основе описанной ранее мягкой схемы принятия решения.
7.3.3. Алгоритм сверточного декодирования Витерби
В 1967 году Витерби разработал и проанализировал алгоритм [13], в котором, по сути, реализуется декодирование, основанное на принципе максимального правдоподобия; однако в нем уменьшается вычислительная нагрузка за счет использования особенностей структуры конкретной решетки кода. Преимущество декодирования Витерби, по сравнению с декодированием по методу “грубой силы”, заключается в том, что сложность декодера Витерби не является функцией количества символов в последовательности кодовых слов. Алгоритм включает в себя вычисление меры подобия (или расстояния), между сигналом, полученным в момент времени t„ и всеми путями решетки, входящими в каждое состояние в момент времени ti. В алгоритме Витерби не рассматриваются те пути решетки, которые, согласно принципу максимального правдоподобия, заведомо не могут быть оптимальными. Если в одно и то же состояние входят два пути, выбирается тот, который имеет лучшую метрику; такой путь называется выживающим. Отбор выживающих путей выполняется для каждого состояния. Таким образом, декодер углубляется в решетку, принимая решения путем исключения менее вероятных путей. Предварительный отказ от маловероятных путей упрощает процесс декодирования. В 1969 году Омура (Omura) [14] показал, что основу алгоритма Витерби составляет оценка максимума правдоподобия. Отметим, что задачу отбора оптимальных путей можно выразить как выбор кодового слова с максимальной метрикой правдоподобия или минимальной метрикой расстояния.
Для простоты предположим, что мы имеем дело с каналом BSC; в таком случае приемлемой мерой расстояния будет расстояние Хэмминга. Кодер для этого примера показан на рис. 7.3, а решетчатая диаграмма — на рис. 7.7. Для представления декодера, как показано на рис. 7.10, можно воспользоваться подобной решеткой. Мы начинаем в момент времени г, в состоянии 00 (вследствие очистки кодера между сообщениями декодер находится в начальном состоянии). Поскольку в этом примере возможны только два перехода, разрешающих другое состояние, для начала не нужно показывать все ветви. Полная решетчатая структура образуется после момента времени г3. Принцип работы происходящего после процедуры декодирования можно понять, изучив решетку кодера на рис. 7.7 и решетку декодера, показанную на рис. 7.10. Для решетки декодера каждую ветвь за каждый временной интервал удобно пометить расстоянием Хэмминга между полученным кодовым символом и кодовым словом, соответствующим той же ветви из решетки кодера. На рис. 7.10 показана последовательность сообщений т, соответствующая последовательности кодовых слов U, и искаженная шумом последовательность Z= 11 01 01 10 01.... Как показано на рис. 7.3, кодер характеризуется кодовыми словами, находящимися на ветвях решетки кодера и заведомо известными как кодеру, так и декодеру. Эти слова являются кодовыми символами, которые можно было бы ожидать на выходе кодера в результате каждого перехода между состояниями. Пометки на ветвях решетки декодера накапливаются декодером в процессе. Другими словами, когда получен кодовый символ, каждая ветвь решетки декодера помечается метрикой подобия (расстоянием Хэмминга) между полученным кодовым символом и каждым словом ветви за этот временной интервал. Из полученной последовательности Z, показанной на рис. 7.10, можно видеть, что кодовые символы, полученные в (следующий) момент времени гь — это 11. Чтобы пометить ветви декодера подходящей метрикой расстояния Хэмминга в (прошедший) момент времени tu рассмотрим решетку кодера на рис. 7.7. Видим, что переход между состояниями 00 -» 00 порождает на выходе ветви слово 00. Однако получено 11. Следовательно, на решетке декодера помечаем переход между состояниями 00 -» 00 расстоянием Хэмминга между ними, а именно 2. Глядя вновь на решетку кодера, видим, что переход между состояниями 00 -» 10 порождает на выходе кодовое слово 11, точно соответствующее полученному в момент г, кодовому символу. Следовательно, переход на решетке декодера между состояниями 00 -» 10 помечаем расстоянием Хэмминга 0. В итоге, метрика входящих в решетку декодера ветвей описывает разницу (расстояние) между тем, что было получено, и тем, что “могло бы быть” получено, имея кодовые слова, связанные с теми ветвями, с которых они были переданы. По сути, эти метрики описывают величину, подобную корреляциям между полученным кодовым словом и каждым из кандидатов на роль кодового слова. Таким же образом продолжаем помечать ветви решетки декодера по мере получения символов в каждый момент времени В алгоритме декодирования эти метрики расстояния Хэмминга используются для нахождения наиболее вероятного (с минимальным расстоянием) пути через решетку.
Смысл декодирования Витерби заключается в следующем. Если любые два пути сливаются в одном состоянии, то при поиске оптимального пути один из них всегда можно исключить. Например, на рис. 7.11 показано два пути, сливающихся в момент времени ts в состоянии 00.
"7 Q rtiArtii4\1пмг\Апi/о чопчии! лпоптлиилгл 1/лп14Пппои)/1а
Входная информационная последовательность | т: | |||||||
Переданные кодовые слова | U: | |||||||
Принятая последовательность | Z: | |||||||
Состояние а = | fi 00 «г- | f2 —*г- | f3 —«Г- | f4 1 | f5 1 f6 |
b= 10 • |
c = 01 • |
d = 11 • |
. /m Метрика V 2 ^ветви |
Рис. 7.10. Решетчатая диаграмма декодера (степень кодирования 1/2, К= 3) |
Давайте определим суммарную метрику пути по Хэммингу для данного пути в момент времени г, как сумму метрик расстояний Хэмминга ветвей, по которым проходит путь до момента t,. На рис. 7.11 верхний путь имеет метрику 4, нижний — метрику 1. Верхний путь нельзя выделить как оптимальный, поскольку нижний путь, входящий в то же состояние, имеет меньшую метрику. Это наблюдение поддерживается Марковской природой состояний кодера. Настоящее состояние завершает историю кодера в том смысле, что предыдущие состояния не могут повлиять на будущие состояния или будущие ветви на выходе.
и
ходное состояние решетки. (Это предположение не является необходимым, однако упрощает объяснения.) В момент времени t{ получены кодовые символы 11. Из состояния 00 можно перейти только в состояние 00 или 10, как показано на рис. 7.12, а. Переход между состояниями 00 -» 10 имеет метрику ветви 0; переход между состояниями 00 00 — метрику ветви 2. В момент времени t2 из каждого состояния также может выходить только две ветви, как показано на рис. 7.12, 6. Суммарная метрика этих ветвей обозначена как метрика состояний Г„, rfc, Гс и Td, соответствующих конечным состояниям. В момент времени г3 на рис. 7.12, в опять есть две ветви, выходящие из каждого состояния. В результате имеется два пути, входящих в каждое состояние, в момент времени г4. Один из путей, входящих в каждое состояние, может быть исключен, а точнее — это путь, имеющий большую суммарную метрику пути. Если бы метрики двух входящих путей имели одинаковое значение, то путь, который будет исключаться,,выбирался бы произвольно. Выживший путь в каждом состоянии показан на рис. 7.12, г. В этой точке процесса декодирования имеется только один выживший путь, который называется полной ветвью, между моментами времени tx и t2. Следовательно, декодер теперь может решить, что между моментами t\ и г2 произошел переход 00 -» 10. Поскольку переход вызывается единичным входным битом, на выходе декодера первым битом будет единица. Здесь легко можно проследить процесс декодирования выживших ветвей, поскольку ветви решетки показаны пунктирными линиями для входных нулей и сплошной линией для входных единиц. Заметим, что первый бит не декодируется, пока вычисление метрики пути не пройдет далее вглубь решетки. Для обычного декодера такая задержка декодирования может оказаться раз в пять больше длины кодового ограничения в битах.
На каждом следующем шаге процесса декодирования всегда будет два пути для каждого состояния; после сравнения метрик путей один из них будет исключен. Этот шаг в процессе декодирования показан на рис. 7.12, д. В момент t5 снова имеется по два входных пути для каждого состояния, и один путь из каждой пары подлежит исключению. Выжившие пути на момент ц показаны на рис. 7.12, е. Заметим, что в нашем примере мы еще не можем принять решения относительно второго входного информационного бита, поскольку еще остается два пути, исходящих в момент t2 из состояния в узле 10. В момент времени t6 на рис. 7.12, ж снова можем видеть структуру сливающихся путей, а на рис. 7.12, з — выжившие пути на момент г6. Здесь же, на рис. 7.12, з, на выходе декодера в качестве второго декодированного бита показана единица как итог единственного оставшегося пути между точками /2 и /3. Аналогичным образом декодер продолжает углубляться в решетку и принимать решения, касающиеся информационных битов, устраняя все пути, кроме одного.
Отсекание (сходящихся путей) в решетке гарантирует, что у нас никогда не будет путей больше, чем состояний. В этом примере можно проверить, что после каждого отсекания (рис. 7.12, б—д) остается только 4 пути. Сравните это с попыткой применить “грубую силу” (без привлечения алгоритма Витерби) при использовании для получения последовательности принципа максимального правдоподобия. В этом случае число возможных путей (соответствующее возможным вариантам последовательности) является степенной функцией длины последовательности. Для двоичной последовательности кодовых слов с длиной кодовых слов L имеется 21 возможные последовательности.
6)
Метрики
состояний
fi
а = 00 •.
fi а = 00 Ь = 10» с = 01 • d = 11 • |
Рис. 7.12. Выбор выживших путей: а) выжившие на момент /2; б) выжившие на момент 1Ъ; в) сравнение метрик в момент tA; г) выжившие на момент Г4; д) сравнение метрик в момент ts; е) выжившие на момент ts; ж) сравнение метрик в момент t6; з) выжившие на момент t6
В контексте решетчатой диаграммы, показанной на рис. 7.10, переходы за один промежуток времени можно сгруппировать в 2V'‘ непересекающиеся ячейки; каждая ячейка будет изображать четыре возможных перехода, причем v = К- 1 называется памятью кодера (encoder memory). Если К-Ъ, то v = 2, и, следовательно, мы имеем 2V~X - 2 ячейки. Эти ячейки показаны на рис. 7.13, где буквы а, Ь, с Hd обозначают состояния в момент t„ а а', Ь', с’ и с? — состояния в момент времени *,+Для каждого перехода изображена метрика ветви индексы которой означают переход из состояния х в состояние у. Эти ячейки и соответствующие логические элементы, которые корректируют метрики состояний {Гх}, где х означает конкретное расстояние состояния, представляют основные составляющие элементы декодера.
Ячейка 1 Ячейка 2 Рис. 7.13. Примеры ячеек декодера |
7.3.5.1. Процедура сложения, сравнения и выбора
Вернемся к примеру двух ячеек с К = 3. На рис. 7.14 показан логический блок, соответствующий ячейке 1. Логическая схема осуществляет специальную операцию, которая называется сложение, сравнение и выбор (add-compare-select — ACS). Метрика состояния Гя- вычисляется путем прибавления метрики предыдущего состояния а, Г,„ к метрике ветви 5„„- и метрики предыдущего состояния с, Г,., к метрике ветви 5,у,- Это даст в результате две метрики путей в качестве кандидатов для новой метрики состояния Г„-. Оба кандидата сравниваются в логическом блоке, показанном на рис. 7.14. Наиболее правдоподобная из двух метрик путей (с наименьшим расстоянием) запоминается как новая метрика состояния Г,,- для состояния а'. Также сохраняется новая история путей та. для состояния а, где та- — история пути информации для данного состояния, дополненная сведениями о выжившем пути.
На рис. 7.14 также показана логическая схема ACS для ячейки 1, которая дает новую метрику состояния Г*- и новую историю состояния ть<. Операция ACS аналогичным образом осуществляется и для путей в других ячейках. Выход декодера составляют последние биты на путях с наименьшими метриками состояний.
7.3.5.2. Вид процедуры сложения, сравнения и выбора на решетке
Рассмотрим тот же пример, которым мы воспользовались в разделе 7.3.4 для описания декодирования на основе алгоритма Витерби. Последовательность сообщений имела вид m = 1 1 0 1 1, последовательность кодовых слов — U = 11 01 01 00 01, а принятая последовательность — Z = 11 01 01 10 01.
7 3 СЬппмупмппикгя тапячы трптпчнпгп кГППИППИЯНИЯ
К следующему логическому элементу К следующему логическому элементу Рис. 7.14. Логический блок, предназначенный -для осуществления операции сложения, сравнения и выбора |
Решетчатая диаграмма декодирования, аналогичная показанной на рис. 7.10, изображена на рис. 7.15. Метрика ветви, которая описывает каждую ветвь, — это расстояние Хэмминга между принятым кодовым символом и соответствующим кодовым словом из решетки кодера. Еще на решетке (рис. 7.15) показаны значения каждого состояния х в каждый момент t2—t6, метрика состояния которых обозначена Тх. Операция ACS выполняется после появления двух переходов, входящих в состояние, т.е. для момента /4 и более поздних. Например, в момент времени /4 значение метрики состояния для состояния а вычисляется суммированием метрики состояния Г„ = 3 в момент?3 и метрики ветви 8^=1, что в итоге дает значение 4. В то же время к метрике состояния Гг = 2 в момент времени t3 прибавляется метрика ветви 8га- = 1, что дает значение 3. В ходе процедуры ACS происходит отбор наиболее правдоподобной метрики (с минимальным расстоянием), т.е. новой метрики состояния; поэтому для состояния а в момент г4 новой метрикой состояния будет Г„- = 3. Отобранный путь изображен жирной линией, а путь, который был отброшен, показан светлой линией. На рис. 7.15 на решетке слева направо показаны все метрики состояний. Убедимся, что в любой момент времени значение каждой метрики состояния получается суммированием метрики состояния, соединенного с предыдущим состоянием вдоль отобранного пути (жирная линия), и метрики ветви, соединяющей эти состояния. Через некоторое время на выход декодера будут поданы выжившие ветви, прослеженные до самых ранних битов. Чтобы показать это, посмотрим на рис. 7.15 в момент /6. Видим, что значение метрики состояния, соответствующей минимальному расстоянию, равно 1. Отобранный путь можно проследить из состояния d обратно, к моменту tu и убедиться, что декодированное сообщение совпадает с исходным. Напомним, что пунктирные и сплошные линии соответствуют двоичным единице и нулю.
7.3.6. Память путей и синхронизация
Требования к памяти декодера, работающего согласно алгоритму Витерби, растут с увеличением длины кодового ограничения как степенная функция. Для кода со степенью кодирования 1/я после каждого шага декодирования декодер держит в памяти набор из 2К~1 путей.
fi t2 t3 Ц ts te Puc. 7.15. Операция сложения, сравнения и выбора при декодировании по алгоритму Витерби |
]
С высокой степенью вероятности можно утверждать, что при значительном превышении существующей на данный момент глубины декодирования эти пути не будут взаимно непересекающимися [12]. Все 2ЛГ~1 пути ведут к полной ветви, которая в конце концов разветвляется на разные состояния. Поэтому, если декодер сохраняет историю 2К~1 путей, самые первые биты на всех путях будут одинаковы. Следовательно, простой декодер имеет фиксированный объем истории путей и выдает самые ранние биты произвольного пути каждый раз, когда продвигается на один уровень вглубь решетки. Требуемый объем сохраняемых путей будет равен следующему [12]:
и = hlK~(7.10)
Здесь h — длина истории пути информационного бита на состояние. При уточнении, которое проводится для минимизации h, вместо самых ранних битов произвольных путей на выходе декодера используются самые ранние биты наиболее вероятных путей. Было показано [12], что значения h, равного 4 или 5 длинам кодового ограничения, достаточно, чтобы характеристики декодера были близки к оптимальным. Необходимый объем памяти и является основным ограничением при разработке декодеров, работающих согласно алгоритму Витерби. В серийно выпускаемых декодерах длина кодового ограничения равна величине порядка К = 10. Попытка повысить эффективность кодирования за счет увеличения длины кодового ограничения вызывает экспоненциальный рост требований к памяти (и сложности), как это следует из уравнения (7.10).
Синхронизация кодовых слов ветвей — это процесс определения начала слова ветви в принятой последовательности. Такую синхронизацию можно осуществить, не прибавляя новую информацию к потоку передаваемых символов, поскольку можно видеть, что, пока принятые данные не синхронизированы, у них непомерно высокая частота появления ошибок. Следовательно, синхронизацию можно осуществить просто: нужно проводить сопутствующее наблюдение за уровнем частоты появления ошибок, т.е. нас должна интересовать частота, при которой увеличиваются метрики состояний, или частота, при которой сливаются выжившие пути на решетке. Параметр, за которым следят, сравнивается с пороговым значением, после чего соответствующим образом осуществляется синхронизация.
7.4. Свойства сверточных кодов
7.4.1. Пространственные характеристики сверточных кодов
Рассмотрим пространственные характеристики сверточных кодов в контексте простого кодера (рис. 7.3) и его решетчатой диаграммы (рис. 7.7). Мы хотим узнать расстояния между всеми возможными парами последовательностей кодовых слов. Как и в случае блочных кодов (см. раздел 6.5.2), нас интересует минимальное расстояние между всеми такими парами последовательностей кодовых слов в коде, поскольку минимальное расстояние связано с возможностями коррекции ошибок кода. Поскольку сверточный код является групповым или линейным [6], можно без потери общности просто найти минимальное расстояние между последовательностью кодовых слов и нулевой последовательностью. Другими словами, для линейного кода данное контрольное сообщение окажется точно таким же “хорошим”, как и любое другое. Так почему бы не взять то сообщение, которое легко проследить, а именно нулевую последовательность? Допустим, что на вход передана нулевая последовательность; следовательно, нас интересует такой путь, который начинается и заканчивается в состоянии 00 и не возвращается к состоянию 00 нигде внутри пути. Всякий раз, когда расстояние любых других путей, которые сливаются с состоянием а = 00 в момент t„ окажется меньше расстояния нулевого пути, вплоть до момента г„ будет появляться ошибка, вызывая в процессе декодирования отбрасывание нулевого пути. Иными словами, при нулевой передаче ошибка возникает всегда, когда не выживает нулевой путь. Следовательно, ошибка, о которой идет речь, связана с выживающим путем, который расходится, а затем снова сливается с нулевым путем. Может возникнуть вопрос, зачем нужно, чтобы пути сливались? Не будет ли для обнаружения ошибки достаточно лишь того, чтобы пути расходились? В принципе, достаточно, но если ошибка характеризуется только расхождением, то декодер, начиная с этой точки, будет выдавать вместо оставшегося сообщения сплошной “мусор”. Мы хотим выразить возможности декодера через число обычно появляющихся ошибок, т.е. хотим узнать “самый легкий” для декодера способ сделать ошибку. Минимальное расстояние для такой ошибки можно найти, полностью изучив все пути из состояния 00 в состояние 00. Итак, давайте сначала заново начертим решетчатую диаграмму, как показано на рис. 7.16, и обозначим каждую ветвь не символом кодового слова, а ее расстоянием Хэмминга от нулевого кодового слова. Расстояние Хэмминга между двумя последовательностями разной длины можно получить путем их сравнивания, т.е. прибавив к началу более короткой последовательности нужное количество нулей. Рассмотрим все пути, которые расходятся из нулевого пути и затем в какой-то момент снова сливаются в произвольном узле. Из диаграммы на рис. 7.16 можно получить расстояние этих путей до нулевого пути. Итак, на расстоянии 5 от нулевого пути имеется один путь; этот путь отходит от нулевого в момент t\ и сливается с ним в момент г4. Точно так же имеется два пути с расстоянием 6, один отходит в момент tx и сливается в момент г5, а другой отходит в момент t\ и сливается в момент t6 и т.д. Также можно видеть (по пунктирным и сплошным линиям на диаграмме), что входными битами для расстояния 5 будут 10 0; от нулевой входной последовательности эта последовательность отличается только одним битом. Точно так же входные биты для путей с расстоянием 6 будут 1 1 0 0 и 1010 0; каждая из этих последовательностей отличается от нулевого пути в двух местах. Минимальная длина пути из числа расходящихся, а затем сливающихся путей называется
Гпоdо 7 k'olio п1_игчо лмпгчоэимо’ иягтк 9
минимальным просветом (minimum free distance), или просто просветом (free distance). Его можно видеть на рис. 7.16, где он показан жирной линией. Для оценки возможностей кода коррекции ошибок, мы повторно приведем уравнение (6.44) с заменой минимального расстояния на просвет d/.
df-1
ЗдесьUJ означает наибольшее целое, не большее х. Положив df = 5, можно видеть, что код, описываемый кодером на рис. 7.3, может исправить две любые ошибки канала (см. раздел 7.4.1.1).
Рис. 7.16. Решетчатая диаграмма с обозначенными расстояниями от нулевого пути |
Решетчатая диаграмма представляет собой “правила игры”. Она является как бы символическим описанием всех возможных переходов и соответствующих начальных и конечных состояний, ассоциируемых с конкретным конечным автоматом. Эта диаграмма позволяет взглянуть глубже на выгоды (эффективность кодирования), которые дает применение кодирования с коррекцией ошибок. Взглянем на рис. 7.16 и на возможные ошибочные расхождения и слияния путей. Из рисунка видно, что декодер не может сделать ошибку произвольным образом. Ошибочный путь должен следовать одному из возможных переходов. Решетка позволяет нам определить все такие доступные пути. Получив по этому пути кодированные данные, мы можем наложить ограничения на переданный сигнал. Если декодер знает об этих ограничениях, то это позволяет ему более просто (используя меньшее £,/Л/0) удовлетворять требованиям надежной безошибочной работы.
Хотя на рис. 7.16 представлен способ прямого вычисления просвета, для него можно получить более строгое аналитическое выражение, воспользовавшись для этого диаграммой состояний, изображенной на рис. 7.5. Для начала обозначим ветви диаграммы состояний как D°= 1, D1 или D2, как это показано на рис. 7.17, где показатель D означает расстояние Хэмминга между кодовым словом этой ветви и нулевой ветвью. Петлю в узле а можно убрать, поскольку она не дает никакого вклада в пространственные характеристики последовательности кодовых слов относительно нулевой последовательности. Более того, узел а можно разбить на два узла (обозначим их а и е), один из них представляет вход, а другой — выход диаграммы состояний. Все
7 4 ОВПИГТРЯ ГиРПТЛиииу ь'гтгю
пути, начинающиеся из состояния а = 00 и заканчивающиеся в е = 00, можно проследить на модифицированной диаграмме состояний, показанной на рис. 7.17. Передаточную функцию пути abc е (который начинается и заканчивается в состоянии 00) можно рассчитать через неопределенный “заполнитель” D как ifDD2 = D5. Степень D — общее число единиц на пути, а значит, расстояние Хэмминга до нулевого пути. Точно так же пути abdc в и abcbce имеют передаточную функцию D6 и, соответственно, расстояние Хэмминга, равное 6, до нулевого пути. Теперь уравнения состояния можем записать следующим образом:
Дата добавления: 2015-10-28; просмотров: 60 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Основы теории принятая статистических решений 1051 35 страница | | | Основы теории принятая статистических решений 1051 37 страница |