КАТЕГОРИЯ:


Астрономия- (809) Биология- (7483) Биотехнологии- (1457) Военное дело- (14632) Высокие технологии- (1363) География- (913) Геология- (1438) Государство- (451) Демография- (1065) Дом- (47672) Журналистика и СМИ- (912) Изобретательство- (14524) Иностранные языки- (4268) Информатика- (17799) Искусство- (1338) История- (13644) Компьютеры- (11121) Косметика- (55) Кулинария- (373) Культура- (8427) Лингвистика- (374) Литература- (1642) Маркетинг- (23702) Математика- (16968) Машиностроение- (1700) Медицина- (12668) Менеджмент- (24684) Механика- (15423) Науковедение- (506) Образование- (11852) Охрана труда- (3308) Педагогика- (5571) Полиграфия- (1312) Политика- (7869) Право- (5454) Приборостроение- (1369) Программирование- (2801) Производство- (97182) Промышленность- (8706) Психология- (18388) Религия- (3217) Связь- (10668) Сельское хозяйство- (299) Социология- (6455) Спорт- (42831) Строительство- (4793) Торговля- (5050) Транспорт- (2929) Туризм- (1568) Физика- (3942) Философия- (17015) Финансы- (26596) Химия- (22929) Экология- (12095) Экономика- (9961) Электроника- (8441) Электротехника- (4623) Энергетика- (12629) Юриспруденция- (1492) Ядерная техника- (1748) Arhitektura- (3434) Astronomiya- (809) Biologiya- (7483) Biotehnologii- (1457) Военни бизнесмен (14632) Висока technologies- (1363) Geografiya- (913) Geologiya- (1438) на държавата (451) Demografiya- ( 1065) Къща- (47672) журналистика и смирен (912) Izobretatelstvo- (14524) външен >(4268) Informatika- (17799) Iskusstvo- (1338) историята е (13644) Компютри- (11,121) Kosmetika- (55) Kulinariya- (373) културата е (8427) Lingvistika- (374) Literatura- (1642) маркетинг-(23702) математиците на (16968) Механична инженерно (1700) медицина-(12668) Management- (24684) Mehanika- (15423) Naukovedenie- (506) образователна (11852) truda- сигурност (3308) Pedagogika- (5571) Poligrafiya- (1312) Politika- (7869) Лево- (5454) Priborostroenie- (1369) Programmirovanie- (2801) производствено (97 182 ) индустрия- (8706) Psihologiya- (18388) Religiya- (3217) Svyaz (10668) Agriculture- (299) Sotsiologiya- (6455) на (42831) спортист строително (4793) Torgovlya- (5050) транспорт ( 2929) Turizm- (1568) физик (3942) Filosofiya- (17015) Finansy- (26596) химия (22929) Ekologiya- (12095) Ekonomika- (9961) Electronics- (8441) Elektrotehnika- (4623) Мощност инженерно ( 12629) Yurisprudentsiya- (1492) ядрена technics- (1748)

Симулация на спираловидното кодове в Matlab среда




Convolutional кодиране - специален случай на грешка-коригиране на кодиране. За разлика от тях, енкодер на блок, а спираловидното енкодер не е устройство, което не разполага с памет. Въпреки че конволюционния кодер получава постоянен брой символи и съобщения произвежда фиксиран брой кодови символи, за да се изчисли това зависи не само от текущия комплект от входни символи, но и в някои от предишните входящите символи.

Отворете Грешка библиотека откриване и коригиране, като кликнете два пъти върху неговата символ в основната Communications Blockset. Отваряне на под-библиотека извивка като кликнете два пъти върху неговата символ в библиотека Грешка откриване и коригиране на.

Удобства намотка кодиране. Communications Blockset библиотека поддържа отворени или затворени двоични кодове, които могат да бъдат описани с решетъчна структура или определен брой генератори полиноми.

Той използва алгоритъм Viterbi да приложи твърда и мека декодиране.

Библиотеката включва декодер максимизира вероятността впоследствие, който може да се използва за декодиране на мека намотка кодове.

Параметри намотка кодиране. процес кодиране Конволюция използва блокове Convolutional енкодер, Viterbi декодер, и / или APP Decoder на Convolutional библиотека. Ако се изисква опцията маска в енкодер и декодер използва една и съща стойност на двата блока.

Блоковете в под-библиотеката Convolutional предполагат, че използвате една от две различни гледни точки на кодер намотка:

· Ако проектирате вашия енкодер с помощта на диаграма с регистри на смени и модул 2 суматора, можете да изчислите генериране полином код матрицата и след това да използвате poly2trellis функция (от кутията с инструменти Communications), за да се получи съответният решетка (пергола) параметър маска графиката автоматично.

· Ако проектирате вашия енкодер с помощта на решетка схема, може да се изгради една решетка (пергола) диаграма в MATLAB и да я използва като маска параметър.

С помощта на полином описанието в блока. За да използвате полином описанието на блоковете в Convolutional енкодер, Viterbi декодер, или APP Decoder poly2trellis използват функцията за обслужване на кутията с инструменти Communications. Тази функция приема полином описание и го преобразува в описание пергола. Например следната команда изчислява описанието асма на устройството за кодиране, което ограничава с дължина 5 и чиито генератор полиноми 35 и 31:

пергола = poly2trellis (5, [31, 35]);



Използвайте енкодер е един от най-комплексния кодиране на блока, просто поставете този начин poly2trellis заповядвам

poly2trellis (5, [31, 35]);

Trellis структура в параметрите.

Пример: Open-енкодер с код скорост 2/3. Този пример използва отвори комплексния енкодер със скорост 2/3, на снимката по-долу. Описание обяснява как да се определят параметрите на кодиране блокове отворена верига при скорост 2/3 енкодер. Този пример илюстрира също така използването на блок Error Rate Изчисляване на времето за възстановяване.

Определяне на кодиращи параметри. Блокове Convolutional Encoder и Viterbi декодер може да изпълни този код, ако техните параметри са настроени на съответните стойности.

Ограничаване дължина енкодер - вектор, на дължина 2, така че енкодера има два входа. Елементите на този вектор показват броя на битовете съхранява

Всяка промяна се регистрирате, включително настоящите входни бита. Преброяване на клетките на паметта във всяка от регистъра за смяна на графиката, и да го добавите към входа за ток води до ограничения за дължина, равна на [5 4].

Определяне генериране на код матрица като матрицата на размера номер 2 X 3 осмична, използвайте елемент в I - ия ред и J - тата колона, за да уточни как аз - ти вход засяга J - ти изход. Например, за да се изчисли елемент на втория ред и третата колона, имайте предвид, че лявата крайност и двете най-дясна позиция във втора смяна регистър диаграмите се отрази на размера, който формира третата изхода. Тази информация в двоичен код е 1011, което е еквивалентно на осмично номер 13. пълна код генератор матрица е [27 33 0; 0 5 13].

За да използвате дължината на принуда и параметрите на матрицата на генериране на код в блокове Convolutional енкодер и Viterbi декодер, прилага poly2trellis функционират за преобразуване на тези параметри за схемата на решетка.

енкодер симулация. Цифрата показва модел на енкодер.

За изработката на модела, се събират и изберете единици.

  1. Блок Бернули Binary Generator на Comm Източници библиотека.
    • Определете вероятността от нула, равен на 0,5;
    • Определете Първоначално семена, равна на положително число, за предпочитане randseed функция на изхода;
    • Определете Sample време, равен на 0,5;
    • Проверка на изходите на кадрите, базиран;
    • Комплект образци на кадър, равни на 2.
  2. Блок Convolutional Encoder
    • Разположен в държавните poly2trellis ([54], [23 35 0; 0 5 13]).

3. Блок Binary Symmetric канал от библиотеката на канали

· Инсталиране вероятност за грешка параметър е равен на 0,02;

· Определете Първоначално семена, равна на положително число, за предпочитане randseed функция на изхода;

· Махнете отметката вектор грешка изход.

4. Блок Viterbi декодер.

· Комплект Trellis структура в poly2trellis ([4 май], [23 35 0; 0 5 13]);

· Задаване на тип решение в състоянието на Решение Hard.

5. Блок Error Rate Изчисляване на библиотеката на Comm мивки.

· Определете Получаване закъснение, равно на 68;

· Задаване на извеждане на данни към Порт състояние;

· Проверете Stop симулация;

· Определените целеви брой грешки, до 100.

6. Блок Дисплей на библиотеката на Simulink Мивки

· Издърпайте края на база характер, за да се направи шоуто, достатъчно голям, за три записи.

Свържете блоковете, както е показано по-долу. От менюто Simulation, изберете конфигурационни параметри. В диалоговия прозорец, определен Stop време, равно на INF.

Пояснения за размера на матрицата се появяват на стволовете, само ако изберете опция подменю Signal Размери Port / сигнални дисплеи от модела на Format меню. В енкодер приема с размер вектор рамка 2 х 1 вектор и произвежда размер на рамката 1 х 3, като има предвид, декодера прави обратното. Параметър проби на параметър рамка в блока Бернули Binary Generator се предполага, че са 2, защото устройството е необходимо да се направи съобщение дължина думата на 2.

Получаване параметър забавяне Изчисляване блок Error Rate се приема за 68, което е дължината на вектора (2) на намалената стойност на дълбочина мнения Traceback (34) в блока Viterbi декодер. Ако се разгледа изпратените и получените сигнали като матрици в работното пространство на MATLAB, ще видите, че първите 34 реда на редуцираното съобщение състоят от нули, а следващите редове - на декриптира съобщението. Така полученият сигнал закъснение - дължината на векторни 34 2 или 68 проби.

Изпълнението на модела се произвежда продукция дисплей, който се състои от три числа: темпът на растеж на грешките, общият брой на грешки, а общият брой на грешки на сравнения, което прави единица Error начин за изчисление на по време на симулация. (Първите две цифри варират в зависимост от вашите начални стойности за семена в блокове Бернули Binary генератор и Binary Symmetric канал). Симулация спирка след 100 грешки се случи, защото броят на параметър Target на грешки е настроена на 100 в блок Error Rate изчисление. Темпът на нарастване на грешката трябва да бъде по-малко от 0,02, както е в вероятност за грешка Binary Symmetric Канал блок.

Извършване кодираща систематична обратна връзка. Този раздел обяснява как да използвате Convolutional Encoder блок за систематично кодиране с обратна връзка. Кодът е системно, ако действителните думи на съобщенията се появяват като част от кодовите думи. Диаграмата по-долу показва пример за систематична енкодер.

За да постигнем това енкодер, определена структура пергола в Convolutional Encoder блок в държавата да poly2trellis (5, [37 33], 37). Това съответства на:

· Дължина на ограничение 5;

· Генерира полином чифт [37 33];

· Обратна връзка полином: 37.

обратна връзка полином е представено с бинарния вектор [1 1 1 11], съответстващи на горния ред на двукомпонентни цифри. Тези данни подсказват връзка регистрира изхода на ехидна. Първоначалната стойност на 1 съответства на вход малко. The осмична представителство на двоичен номер 11111-37.

Да извършва систематичен кодиране, определени на първия генератор полином като обратна връзка полином в структурата на параметъра Trellis Блок Convolutional Encoder. В този пример, и двете имат полином осмична 37.

втори полинома на генератора е представена от двойно вектор [1 1 0 1 1], съответстващи на по-малък брой двоични цифри. The осмична номер, съответстващ на двоично число 11011 има 33.

Пример за мека декодиране. Симулация генерира случайно двоичен сигнал мнения, кодира съобщение в комплексния код, модулира кода с помощта на двоичен фазово изместване с, (BPSK), и добавя, бял шум на Гаус за модулиран сигнал за симулиране на шум канал. След това, симулация подготвя информацията за декодиране на блока. Накрая, симулация сравнява декодирана информация сигнал с оригиналното съобщение за изчисляване на растежа на грешката на скоростта. Край симулация настъпва след 100 бита за грешки, 7 бита, или 10 съобщения след първото пристигане.

Определяне на спираловиден код. Отворен цикъл конволюционния кодер в този пример е показано по-долу.

Дължина граници на енкодер - скаларна, тъй като енкодер има един вход. Стойността на дължината на ограничение - броят на битовете, съхранявани в регистъра на смени, включително настоящия вход. Има шест регистри на паметта, и входа за ток е едно малко. Така дължината на ограничение код - 7.

Генераторът на код е матрица с размери 1 х 2 матрица на осмични числа, защото енкодер има вход и два изхода. Първият елемент в матрицата показва стойността вход, засягащи Първият изход и втория елемент в матрицата показва стойността на входа за въздействие върху втория изход.

Например, първият изход енкодер в диаграма - сума по модул 2 на десните и левите четири елементи в масива на въвеждане стойности диаграма. Двоично число със седем цифри 1111001 отразява тази информация и е еквивалентна на осмична номер 171. Номерът на осмична 171, като по този начин се превръща в първия вход на код генератор матрица. Тук всеки тройни употреби най-лявата малко като най-важния бит. Вторият изход съответства на бинарен номер 1011011, който е еквивалентен на броя осмично 133. Генераторът на генератор код, [171,133].

Trellis структура параметър в блока Convolutional Encoder казва блока, който кодира, когато пристига данни. В този случай, poly2trellis функция в Communications Toolbox, преобразува ограничителна дължина и чифт осмична номера в диаграмата на пергола.

Докато данните за съобщения, включени в комплексния Encoder блок са скаларна битстрийм поток кодирани данни са бинарни вектори с дължина 2.

Карта на данните. Данните, който е изходното конволюционния кодер блок, състоящ се от комплексни числа, които са в границите между -1 и 1. да се възстанови оригиналния двоичен съобщението, приемащата страна на модел за декодиране на комплексния код. Viterbi декодер Block в този модел очаква своите входни данни са цели числа между 0 и 7. подсистема демодулатор обичайното в този модел, тя се превръща данните във формат, който Viterbi декодер блок може да тълкуваме правилно. По-специално, подсистема демодулатор:

· Преобразува данните в реално сигнал чрез премахване на неговата имагинерна част. Логично е да се предположи, че имагинерната част на получените данни не съдържа съществена информация, защото имагинерната част на предадените данни - има нула (без да обръща внимание на малките грешки закръгляне), и тъй като шума на канала не е много мощен.

· Нормализира данните, получени чрез разделяне на действителното му стандартно отклонение и след това се умножава по -1.

  • Quanta нормализира данни с помощта на три бита.

Комбинацията на тази карта и Viterbi декодер решения блок карти обръща модулация BPSK, за да блокира BPSK модулатор Baseband направено на предаване страна на модела.

Декодирането на спираловиден код. След получаване на данните правилно картографирани вектори с дължина 2 3-битови стойности на решения, Viterbi декодер блок да го декодира. Устройството използва мека декодиране алгоритъм 2 3 различни входове, защото типът опция решение - има Soft решение и параметър номер на безалкохолни бита на решения е 3.

Тълкуване на мека решение. Когато параметрите на тип решение е настроен на Soft решение, Блок Viterbi декодер изисква въвеждане на стойности между 0 и 2 б -1, където б - параметър Брой на безалкохолни бита на решения. Блок интерпретира 0 като най-важното решение, че кодовата дума бит е 0 и 2 б -1 тълкува като най-значимото решение, че кодовата дума бит е 1. Стойностите между тези крайности са по-малко надеждни решения. Таблицата по-долу изброява възможните интерпретации на осемте входни стойности за този пример.

стойност решения интерпретация
Най-уверени 0
Вторият най-уверени 0
Трето най-уверени 0
Най-малко уверен 0
Най-малко уверени 1
Трето най-уверени 1
Вторият най-уверени 1
Най-уверени 1

Traceback параметър дълбочина в блока Viterbi декодер е дължината на забавянето на декодиране. Типични стойности за дълбочина traceback - около пет или шест дължини ограниченията, които биха били 35 или 42 в този пример. Въпреки това, някои варианти на опциите на хардуер офертата на 48 и 96. Този пример взима 48, тъй като тя е по-близо до целите (35 и 42) от 96.

Забавянето на данните. Получавате незабавно параметър блок Error Rate Изчисляване е различна от нула, тъй като битовете на съобщението и съответния му възстановени бит разделени във времето ненулева сума на симулация време. Получавате параметър забавяне казва, че елементите на входните сигнали се сравняват блок, проверка за грешки.

В този случай, стойността Получаване закъснение - 49 проби, който е по-голям от един от дълбочината на стойност Traceback (48) в блока Viterbi декодер. Допълнително забавяне в една проба идва от първоначалното забавяне буфер блок. От буферния блок трябва да събере две скаларна броене преди изхода ще произвежда вектор, първата си значителна продукция се случва по време на 1 секунда, а не по време 0.

Сравнявайки резултатите от симулацията с теоретични резултати. Този раздел описва как да се сравни процентът на грешка малко в симулация с процент на грешки битов, което теоретично би се получила от unquantized декодиране. Методът включва няколко етапа в тези секции.

При изчисляването на теоретичните ограничения за битрейт грешка. За изчисляване на теоретичния границите за битрейт грешка P б намотка кодиране в този модел, можете да използвате тази оценка въз основа на unquantized решение декодиране:

При тази оценка, в г - размер на символа за грешки за погрешни разстояние събития г и е - свободно разстояние код. Стойността на P г - двойки вероятността от погрешно равно

където R - ниво код 1/2, и ERFC - допълнителна функция MATLAB грешка, определена в съответствие

Стойностите за коефициенти в Г и Е на е свободно разстояние в публикуваните статии като [4]. Безплатна разстояние за този код - F = 10.

Следните команди, изчислена стойност E б / N 0 в диапазона от 1 до 3.5 със стъпка от 0.5:

Множество симулации, за да събират BER. Вие може ефективно да се промени симулация параметри, когато използвате СИМ, за да тече симулации на командния ред MATLAB. Например, следния код изчислява процентът на битови грешки на растежа в отношенията на битова енергия шум в диапазона от 1 db до 4 db на стъпки от 0,5 db да. Той събира всички процентът на грешка малко в тези изстрелвания симулация в матрица функция BERVec. Той също така е изобразен на фигурата за процента на грешки малко, заедно с теоретичната граница, изчислена в предишния кодовия фрагмент.

Прогнозата за P б предполага, че декодерът използва unquantized данни, което означава, че безкрайно част на квантуване. За разлика от симулацията в този пример се използва (3-битов) квантуване на 8 нива. Поради това квантуване симулирани битрейт грешка не е толкова ниско, че на границата, когато SNR е висока.

График битрейт грешка в зависимост от съотношението сигнал към шум трябва да бъде. Местоположението на вашите действителни BER точки могат да се променят, защото симулацията използва случайни числа.