Реферат: Избыточные коды

<img src="/cache/referats/3986/image002.gif" v:shapes="_x0000_s1053">

КафедраРадиотехнических Системреферат по избыточным кодам

Преподаватель: Смердова Н. Е.

Группа: РТ 9505

Студент: Матвеев А. Н.

Дата сдачи:Май 1999 года.

Москва, 1999 г.

Вступление.

          Известно, что каналы, по которымпередается информация, практически никогда не бывают идеальными (каналами безпомех). В них почти всегда присутствуют помехи. Отличие лишь в уровне помех иих спектральном составе. Помехи в каналах образуются по различным причинам, норезультат воздействия их на передаваемую информацию всегда один – информациятеряется (искажается).

          Для предотвращения потерь информации вканале были придуманы избыточные коды (коды с избыточностью). Преимуществоизбыточного кода в том, что при приеме его с искажением (количество искаженныхсимволов зависит от степени избыточности и структуры кода) информация можетбыть восстановлена на приемнике.

Существуют избыточные коды с обнаружением (они только обнаруживаютошибку) и коды с исправлением (эти коды обнаруживают место ошибки и исправляютее).

Для различных помех в канале существуют различные по своей структуре иизбыточности коды. Обычно избыточность кодов находится в пределах 10…60% иличуть больше. Избыточность 1/4  (25%)применяется при записи информации на лазерные диски и в системах цифровогоспутникового ТВ.

Классификация кодов.

Известно большое число помехоустойчивых кодов, которые классифицируютсяпо различным признакам. По­мехоустойчивые коды можно разделить на два большихкласса: блочные и непрерывные. При блочном кодировании последова­тельностьэлементарных сообщений источника разбивается на от­резки и каждому отрезкуставится в соответствие определенная последовательность (блок) кодовыхсимволов, называемая обыч­но кодовой комбинацией. Множество всех кодовыхкомбинаций, возможных при данном способе блочного кодирования, и есть блочныйкод.

Длина блока может быть как постоянной, так и переменной. Различаютравномерные и неравномерные блоч­ные коды. Помехоустойчивые коды являются, какправило, рав­номерными.

Блочные коды бывают разделимыми и неразделимыми. К разделимым относятсякоды, в которых символы по их назначению могут быть разделены на информационныесимволы, несущие ин­формацию о сообщениях и проверочные. Такие коды обознача­ютсякак (n, k), гдеn — длина кода, k — число информационных символов. Число комбинацийв коде не превышает 2^k. Кнераздели­мым относятся коды, символы которых нельзя разделить по их назначениюна информационные и проверочные.

Коды с постоянным весом характеризуются тем, что их кодо­вые комбинациисодержат одинаковое число единиц: Примером такого кода является код “3 из 7”, вкотором каждая кодовая комбинация содержит три единицы и четыре нуля(стандартных телеграфный код № 3).

<img src="/cache/referats/3986/image004.gif" v:shapes="_x0000_s1026">
Кодыс постоянным весом позволяют обнаружить все ошибки кратности q=1,...,nзаисключением случаев, когда число еди­ниц, перешедших в нули, равно числу нулей,перешедших в еди­ницы. В полностью асимметричных каналах, в ко­торых имеетместо только один вид ошибок (преобразование ну­лей в единицы или единиц внули), такой код дозволяет обнару­жить все ошибки. В симметричных каналахвероятность необна­руженной ошибки можно определить как вероятностьодновременного искажения одной единицы и одного нуля:

где Pошвероятность искажениясимвола.

Среди разделимых кодов различают линейные и нелинейные. К линейнымотносятся коды, в которых поразрядная сумма по модулю 2 любых двух кодовых словтакже является кодовым словом. Линейный код называется систематическим, еслипервые kсимволов его любой кодовой комбинации являютсяинформаци­онными, остальные (n — k)символов — проверочными.

<img src="/cache/referats/3986/image006.gif" v:shapes="_x0000_s1027">
Средилинейных систематических кодов наиболее простой код (n,n-k), содержащий один проверочный символ, ко­торыйравен сумме по модулю 2 всех информационных символов. Этот код, называемыйкодом с проверкой на четность, позволяет обнаружить все сочетания ошибокнечетной кратности. Вероятность необнаруженной ошибки в первом приближенииможно определить как вероятность искажения двух символов:

          Подклассом линейных кодовявляются циклические коды. Они характеризуются тем, что все наборы,образованные циклической перестановкой любой кодовой комбинации, являются такжекодо­выми комбинациями. Это свойство позволяет в значительной сте­пениупростить кодирующее и декодирующее устройства, особен­но при обнаруженииошибок и исправлении одиночной ошибки. Примерами циклических кодов являютсякоды Хэмминга, коды Боуза — Чоудхури — Хоквингема (БЧХ — коды) и др.

Примером нелинейного кода является код Бергера, укоторо­го проверочные символы представляют двоичную запись числа единиц впоследовательности информационных символов. Напри­мер, таким является код:00000; 00101; 01001; O111O; 10001; 10110; 11010; 11111. Коды Бергераприменяются в асиммет­ричных каналах. В симметричных каналах они обнаруживаютвсе одиночные ошибки и некоторую часть многократных.

Непрерывные коды характеризуются тем, чтооперации коди­рования и декодирования производятся над непрерывной последо­вательностьюсимволов без разбиения ее на блоки. Среди непре­рывных наиболее применимысверточные коды.

Как известно различают каналы с независимыми игруппирующимися ошибками. Соответственно помехоустойчивые коды можно разбить надва класса: исправляющие независимые ошибки и исправляющие пакеты ошибок. Далеебудут рассматриваться в основном коды, исправляющие независимые ошибки. Этообъясняется тем, что хотя для исправления пакетов ошибок раз­работано многоэффективных кодов, на практике целесообразнее использовать коды, исправляющиенезависимые ошибки вместе с устройством перемежения символов или декорреляцииошибок. При этом символы кодовой комбинации не передаются друг за другом,перемешиваются с символами других кодовых комбинаций. Ес­ли интервал междусимволами, принадлежащими одной кодовой комбинации, сделать больше чем “память”канала, то ошибки в пределах кодовой комбинации можно считать независимыми, чтои позволяет использовать коды, исправляющие независимые ошибки.

Блочные коды. Построение кодеков.

Линейные коды.

Из определения следует, что любой линейный код (п, k)мож­нополучить из k линейно независимыхкодовых комбинаций пу­тем их посимвольного суммирования по модулю 2 в различныхсочетаниях. Исходные линейно независимые кодовые комбина­ции называютсябазисными.

Представим базисные кодовые комбинации в виде матрицы размерностью nXk

(7.7)

<img src="/cache/referats/3986/image008.gif" v:shapes="_x0000_s1028">

Втеории кодирования она называется порождающей. Тогда про­цесс кодированиязаключается в выполнении операции: B=AG,

где А- вектор размерностью k, соответствующий сообщению, В- векторразмерностью п, соответствующийкодовой комби­нации.

<img src="/cache/referats/3986/image010.gif" v:shapes="_x0000_s1029">
Такимобразом, порождающая матрица (7.7) содержит всю не­обходимую для кодированияинформацию. Она должна хранить­ся в памяти кодирующего устройства. Длядвоичного кода объем памяти равен kXnдвоичных символов. Притабличном задании кода кодирующее устройство должно запоминать  <img src="/cache/referats/3986/image012.gif" v:shapes="_x0000_s1030">

двоичныхсимволов.

Две порождающие матрицы, которые отличаются друг отдру­га только порядком расположения столбцов, задают коды, ко­торые имеютодинаковые расстояния Хэмминга между соответствующими кодовыми комбинациями, аследовательно, одинако­вые корректирующие способности. Такие коды называютсяэкви­валентными.

<img src="/cache/referats/3986/image014.gif" v:shapes="_x0000_s1031">
В качестве базисных комбинаций часто выбирают кодовые комбинации, содержащие поодной единице среди информационных символов. При этом порождающую матрицуудается записать в канонической форме                     (7.8)

где I — единичная kXkподматрица, P-kX(n-k)- подматрицапроверочных символов, определяющая свойства кода. Матрица задаетсистематический код. Можно показать, что для лю­бого линейного кода существуетэквивалентный систематический код.

<img src="/cache/referats/3986/image016.gif" v:shapes="_x0000_s1032">
Линейный(п, k) код может быть задан про­верочнойматрицей Н размерности (rХп). При этом комбинация В принадлежит коду только в том случае,если вектор В ортого­нален всем строкам матрицы Н, т. е. если выполняетсяравенство                   (7.9)

<img src="/cache/referats/3986/image018.gif" v:shapes="_x0000_s1035">
гдет—символ транспонирования матрицы. Так как это равенство справедливо для любойкодовой комбинации, то

<img src="/cache/referats/3986/image020.gif" v:shapes="_x0000_s1036">
Каноническаяформа матрицы Н имеет вид                                                       (7.10)

где P — подматрица, столбцами которой служат строки подмат­рицы Р (7.8), I-единичнаяrXrподматрица. Подставляя (7.10) в (7.9), можно получать п—k уравнений вида                                                                                                  (7.11)

<img src="/cache/referats/3986/image022.gif" v:shapes="_x0000_s1037">
которыеназываются уравнениями проверки. Из (7.11) следует, что проверочные символыкодовых комбинаций линейного кода образуются различными линейными комбинациямиинформаци­онных символов. Единицы в любой j-йстроке подматрицы Р, входящей в проверочную матрицу (7.10), указывают, какиеинформационные символы участвуют в формировании j-го провероч­ного символа.

Очевидно, что линейный (п, k)код можно построить, исполь­зуя уравнения проверки (7.11). При этом первые k символов ко­довой комбинацииинформационные, а остальные п-k симво­лов- проверочные, образуемые в соответствии с (7.11).

<img src="/cache/referats/3986/image024.gif" v:shapes="_x0000_s1049">


С помощью проверочной матрицы сравнительно легко можно построить код сзаданным кодовым расстоянием. Это построение основано на следующей теореме: кодовое расстояние линей­ного (п, k) кодаравно dтогдаи только тогда, когда любые d-1столбцов проверочной матрицы этого кода линейно независимы, но некоторые d столбцовпроверочной матрицы линейно зависимы.

Заметим, что строки проверочной матрицы линейно независи­мые. Поэтомупроверочную матрицу можно использовать в ка­честве порождающей для некоторогодругого линейного кода (п, п-k), называемого двойственным.

Кодирующее устройстводля линейного (п,k) кода (рис. напредыдущей стр.) состоит из k-разрядного сдвигающегорегистра и r=п-k бло­ков сумматоров по модулю2. Информационные символы одно­временно поступают на вход регистра и на выходкодирующего устройства через коммутатор К. С поступлением k-го информаци­онного символа на выходах блоков сумматоров всоответствии с уравнениями (7.11) формируются проверочные символы, которыезатем последовательно поступают на выход кодера. Процесс декодирования сводитсяк выполнению операции

<img src="/cache/referats/3986/image026.gif" v:shapes="_x0000_s1038">
,где S— вектор размерностью (п-k), называемый синдромом, В-вектор принятой кодовой комбинации.

<img src="/cache/referats/3986/image028.gif" v:shapes="_x0000_s1039">
Еслипринятая комбинация В совпадает содной из разрешенных В (это имеет место тогда, когда либо ошибки в принятыхсимволах отсутствуют, либо из-за действия помех одна разрешенная кодоваякомбинация переходит в другую), то

<img src="/cache/referats/3986/image030.gif" v:shapes="_x0000_s1042">
Впротивном случае S≠O, причем вид синдрома зависит только от вектораошибок е. Действительно,

где В-вектор, соответствующий передаваемой кодовой комби­нации. При S=0 декодер принимает решение об отсутствии оши­бок,а при S≠O — о наличии ошибок. По конкретному виду синдромаможно в пределах кор­ректирующей способности кода указать на ошибочные символыи их исправить.

Декодер линейного кода (рис. на следующей стр.) состоит из k — разрядного сдвигающего регистра, (п-k)блоков сумматоров по модулю 2, схе­мы сравнения, анализатора ошибок икорректора. Регистр слу­жит для запоминания информационных символов принятойкодо­вой последовательности, из которых в блоках сумматоров формируютсяпроверочные символы. Анализатор ошибок по конкретно­му виду синдрома,получаемого в результате сравнения формиру­емых на приемной стороне и принятыхпроверочных символов, оп­ределяет места ошибочных символов. Исправлениеинформацион­ных символов производится в корректоре. Заметим, что в общем случаепри декодировании линейного кода с исправлением ошибок в памяти декодера должнахраниться таблица соответствий между синдромами и векторами ошибок. С приходомкаждой кодовой комбина­ции декодер должен перебрать всю таблицу. При небольшихзна­чениях (п-k) эта операция невызывает затруднений. Однако для высокоэффективных кодов длиной п, равной нескольким десяткам, разность (п-k) принимает такие значения, чтоперебор таблицы оказывается практически невозможным. Например, для кода (63,51), имеющего кодовое расстояние d=5,таблица состоит из 2^12 = 4096 строк.

<img src="/cache/referats/3986/image032.gif" v:shapes="_x0000_s1050">


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

Циклические коды.

Циклические коды относятся к классу линейных системати­ческих. Поэтомудля их построения в принципе достаточно знать порождающую матрицу.

Можно указать другой способ построения циклических кодов, основанный напредставлении кодовых комбинаций многочлена­ми b(х)вида:

<img src="/cache/referats/3986/image034.gif" v:shapes="_x0000_s1054">
гдеbn-1bn-2...bo — кодовая комбинация. Над данными много­членамиможно производить все алгебраические действия с уче­том того, что сложениездесь осуществляется по модулю 2.

Каждый циклический код (n, k)характеризуется так назы­ваемым порождающим многочленом. Им может быть любоймно­гочлен р(х)степени n-k.Циклические коды характеризуются тем, что многочлены b(x)кодовых комбинаций делятсябез остатка на р(х).Поэтому процесс кодирования сводится к отысканию многочлена b(x)поизвестным многочленам a(х)а р(х),делящегося на р(х), где a(х)- многочлен степени k-1, соответствующий информацион­нойпоследовательности символов.

<img src="/cache/referats/3986/image036.gif" v:shapes="_x0000_s1055">
Очевидно,что в качестве многочлена b(x)можноиспользо­вать произведение a(х)р(х).Однако при этом информационные и проверочные символы оказываются перемешанными,что затруд­няет процесс декодирования. Поэтому на практике в основномприменяется следующий метод нахождения многочлена b(x).

<img src="/cache/referats/3986/image038.gif" v:shapes="_x0000_s1056">
Умножиммногочлен а(х) на            и полученное произведение разделим на р(х).Пусть                                                                                                                   (7.12)

где m(х) — частное, а с(х) — остаток. Так как операции сумми­рования и вычитания по модулю 2 совпадают, товыражение (7.12) перепишем в виде:                          (7.13)

<img src="/cache/referats/3986/image040.gif" v:shapes="_x0000_s1057">

<img src="/cache/referats/3986/image043.gif" v:shapes="_x0000_s1059"> <img src="/cache/referats/3986/image044.gif" v:shapes="_x0000_s1058">
Из(7.13) следует, что многочлен                                 делитсяна р(х)и,следовательно, является искомым.

Многочлен                             имеетследующую структуру: первые n-kчленов низшего порядка равны нулю, а коэффициенты осталь­ных совпадают ссоответствующими коэффициентами информа­ционного многочлена а(х). Многочленс(х)имеетстепень мень­ше n-k.Таким образом, в найденном многочлене b(x)коэффициенты при х в степени n-kи выше совпадают синформацион­ными символами, а коэффициенты при остальных членах, опре­деляемыхмногочленом с(х),совпадают с проверочными сим­волами. На основе приведенных схем умножения иделения многочле­нов и строятся кодирующие устройства для циклических кодов.

<img src="/cache/referats/3986/image046.gif" v:shapes="_x0000_s1063">

В качестве примера приведена схема кодера и декодера для кода (см. рис.) с порождающим многочленом:

<img src="/cache/referats/3986/image048.gif" v:shapes="_x0000_s1062">
Кодимеет кодовое расстояние d=3,чтопозволяет ему исправ­лять все однократные ошибки.

Принятая кодовая комбинация одновременно поступает в бу­ферный регистрсдвига, служащий для запоминания кодовой ком­бинации и для ее циклическогосдвига, и на устройство деления на многочлен р(х)для вычисления синдрома. Висходном состоянии ключ находится в положении 1. После семи тактов буферный ре­гистр оказывается загруженным, а врегистре устройства деления будет вычислен синдром. Если вес синдрома большеединицы, то декодер начинает производить циклические сдвиги комбинации вбуферном регистре при отсутствии новой комбинации на входе и одновременновычислять их синдромы s(x)ximodp(x)в устрой­стве деления. Еслина некотором 1-м шаге вес синдрома окажет­ся меньше 2, то ключ переходит в положение2, обратные связи в регистре деления разрываются. При последующих тактах ошиб­киисправляются путем подачи содержимого регистра деления на вход сумматора помодулю 2, включенного в буферный регистр. После семи тактов работы декодера вавтономном режиме ис­правленная комбинация в буферном регистре возвращается вис­ходное положение (информационные символы будут занимать старшие разряды).

Существуют и другие, более универсальные, алгоритмы деко­дирования.

К циклическим кодам относятся коды Хэмминга, которые яв­ляются примераминемногих известных совершенных кодов. Они имеют кодовое расстояние d=3 и исправляют все одиночные ошибки. Средициклических кодов широкое применение нашли коды Боуза- Чоудхури- Хоквингема(БЧХ). 

Сверточные коды

Методы описания сверточных кодов.

Кодер СК содержит регистр памяти для хранения опреде­ленного числаинформационных символов и преобразователь информационной последовательности вкодовую последовательность. Процесс кодирования производится непрерывно.Скорость кода R=k/n, где k — число информационных символов, одновременно поступающих на вход кодера, n — число соответствующих им символов на выходе кодера. Схема простого кодерапоказана на рис. 1.1а.

<img src="/cache/referats/3986/image050.gif" v:shapes="_x0000_s1065">


Информационные двоичные символы uпоступают на вход регистра с Кразрядами. На выходах сумматоров по модулю 2 образуются ко­довые символы a(1)и a(2).Входы сумматоров соединены с определенными разрядами регистра. За время одногоин­формационного символа на выходе обра­зуются два кодовых символа (R= 1/2). Возможно кодирование и сдругими скоростями. При скорости 2/3 на вход кодера одновременно поступает k=2информационных символа, навыходе при этом образуется n=3кодовых символа. Схема такого кодера показана на рис. 1.1,6.

Рассматриваемый код называется сверточным, постольку последователь­ностькодовых символов а может быть определена как свертка информационных символов uсимпульсным откликом кодера. На рис. 1.2 показано прохожде­ние единичнойпоследовательности u=100…черезкодер.

Символы a(1)и a(2)наего выходе образуют импульсный отк­лик h= 00111011 00… Таким образом, если на входекодера действует произвольная информационная последователь­ность и, топоследовательность на его выходе есть сумма по модулю 2 всех импульсныхоткликов, обусловленных действием смещенных во времени символов 1. Сверточныйкодер, как автомат с конечным числом состоя­ний, может быть описан диаг­раммойсостояний. Диаграмма представляет собой направлен­ный граф и описывает все воз­можныепереходы кодера из од­ного состояния в другое, а так­же содержит символывыходов кодера, которые сопровожда­ют эти переходы.

<img src="/cache/referats/3986/image052.gif" v:shapes="_x0000_s1066">


Первоначально кодер находится в состоянии 00, и поступление на его входинформационного символа u=0перевозят его также в состояние 00. При этом на выходе кодера будут символы a(1)a(2)=00.На диаграмме этот переход обозна­чается петлей 00, выходящей из состояния 00 ивновь возвращающейся в это состояние. Далее, при поступлении символа u=1кодер переходит в состояние10, при этом, на выходе будут символы a(1)a(2)=11. Этот переход из состояния00 в состояние 10 обозначается пунктирной линией. Далее воз­можно поступлениена вход кодера информационных симво­лов 0 либо 1. При этом кодер переходит всостояние 01 либо 11, а символы на выходе будут 10 либо 01 соответствен­но.Процесс построения диаграммы заканчивается когда бу­дут просмотрены всевозможные переходы из одного состоя­ния во все остальные.

Решетчатая диаграмма является разверткой диаграммы состояний во времени.На решетке состояния показаны узлами, а пе­реходы соединяющими их линиями.После каждого пере­хода из одного состояния в другое происходит смещение наодин шаг вправо. Решетчатая диаграмма дает наглядное представление всехразрешенных путей, по которым может продвигаться кодер при кодировании. Каждойинформацион­ной последовательности на входе кодера соответствует един­ственныйпуть по решетке. Построение решетки производится на основе диаграммы состояний.Исходное состояние S(1)S(2)=0. С поступлением очередногосимвола u=0либо 1 воз­можны переходы в состояния 00 либо10, обозначаемые вет­вями 00 и 11. Процесс следует продолжить, причем через тришага очередной фрагмент, решетки будет повторяться. Пунктиром показан путь11100001..., соответствующий по­ступлению на вход кодера информационнойпоследовательности 1011...

<img src="/cache/referats/3986/image054.gif" v:shapes="_x0000_s1045">
Дляописания кодера последовательности символов на его входе и выходе представляютс использованием оператора  задержки:

Здесьиндексы в скобках обозначают: i — номер входа коде­ра, 1≤ j≤ n, j — номер выхода кодера, 1≤i≤ k.Индексы без скобок (0, 1, 2, ...) обозначают дискретные моменты времени.

<img src="/cache/referats/3986/image056.gif" v:shapes="_x0000_s1046">
Процесскодирования может быть представлен как умножение многочлена входнойинформационной последователь­ности u(D)на порождающие многочленыкода G(j)(D),кото­рые описывают связи ячеек регистра кодера с его выходами   (1.1):

                                                                                                                  

<img src="/cache/referats/3986/image058.gif" v:shapes="_x0000_s1047">
Порождающий многочлен представим в виде ряда                                           (1.2):

СКможно также задавать порождающей матрицей                                          (1.3):

<img src="/cache/referats/3986/image060.gif" v:shapes="_x0000_s1048">
      Порождающая матрица состоит из сдвиговбазисной по­рождающей матрицы (верхняя строка матрицы О), которая, в свею очередь,состоит из элементар­ных матриц Gi, 0≤i≤k-1, содержащих kстроки nстолб­цов. Элементами этих матриц двоичных кодовявляются сим­волы 0 и 1.

Какпри использовании блоковых кодов, процесс кодирования может быть  представлен в матричной форме:         A=UG                                                        (1.4)

, где U — полубесконечная матрицавходных информационных символов, А-полубесконечная матрица символов на выходе кодера.

Декодирование сверточных кодов.

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

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

Пороговое декодирование.

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

<img src="/cache/referats/3986/image062.gif" v:shapes="_x0000_s1051">
Рассмотримсистематический код со скоростью 1/2 и мно­гочленами:

Схема кодека на рисунке. Моделью двоичного канала являются сумматоры по

модулю2, на входы которых, кроме кодовых последовательностей а(1)и а(2), поступают ошибки е(1)и е(2). Декодер содержит аналог кодера,в котором принятым символам  формируетсякопия проверочной последовательности. В формирователе синдрома (сумматоре помоду­лю 2) образуется последовательность синдромов, которая поступает на входсиндромного регистра. Наборам ошибок соответствуют определенные конфигурациисиндромов последовательности S. Если количество ненулевыхсиндромов превышает определенный порог, на выходе порогового элементапоявляется символ коррекции, который в корректоре исполь­зуется для исправленияошибки в информационном символе.

<img src="/cache/referats/3986/image064.gif" v:shapes="_x0000_s1052">

<span Times New Roman",«serif»; mso-fareast-font-family:«Times New Roman»;mso-ansi-language:RU;mso-fareast-language: RU;mso-bidi-language:AR-SA;layout-grid-mode:line">

Список использованной литературы:

1.<span Times New Roman"">    

Радиотехнические системы передачи информации, подред. В. В. Калмыкова

2.<span Times New Roman"">    

Сверточныекоды в системах передачи информации, учебное пособие
еще рефераты
Еще работы по радиоэлектронике