Приколи з передаванням інформації

Сьо­го­дні я пока­жу дещо з того, чим займав­ся в інсти­ту­ті, і чого зно­ву тор­кнув­ся впро­довж остан­ньо­го тижня. Пода­на інфор­ма­ція поді­ле­на на дві части­ни, пер­ша при­зна­че­на для тих, хто поня­т­тя не має, про що вза­га­лі може йти мова, дру­га буде по суті.

У суча­сних систе­мах зв’язку вико­ри­сто­ву­ю­ться еле­ктро­ма­гні­тні хви­лі (сві­тло або радіо­хви­лі) для пере­да­ва­н­ня інфор­ма­ції. Саме по собі таке випро­мі­ню­ва­н­ня нафіг ніко­му не впа­ло, але якщо на ньо­го пев­ним чином повпли­ва­ти, то ситу­а­ція різ­ко змі­ню­є­ться. Вплив може бути різний. Напри­клад, можна вими­ка­ти або вми­ка­ти гене­ра­тор випро­мі­ню­ва­н­ня, при­пу­ска­ю­чи, що коли він уві­мкне­ний, пере­да­є­ться логі­чна оди­ни­чка, а коли вимкне­ний — нуль (не тре­ба ж поясню­ва­ти, що вся інфор­ма­ція в суча­сних мере­жах пере­да­є­ться в цифро­во­му вигля­ді?). Ана­ло­гі­чно можна змі­ню­ва­ти не тіль­ки наяв­ність сигна­лу, а і його інтен­сив­ність, частоту/фазу (я так напи­сав, бо це одне й те саме, насправ­ді), поля­ри­за­цію або кіль­ка цих пара­ме­трів одно­ча­сно. Зага­лом, такий про­цес впли­ва­н­ня на сигнал зале­жно від інфор­ма­ції, яку потрі­бно пере­да­ти, нази­ва­є­ться моду­ля­ці­єю.

Зафі­ксу­ва­ли. Ще раз: щоб пере­да­ти інфор­ма­цію на якусь від­стань за допо­мо­гою еле­ктро­ма­гні­тної хви­лі, потрі­бно на цю хви­лю впли­ну­ти так, щоб її пара­ме­три змі­ню­ва­ли­ся від­по­від­но до інфор­ма­ції, яку потрі­бно пере­да­ти. Іна­кше окрім мар­но­го нагрі­ва­н­ня дов­кі­л­ля тол­ку не буде.

Тепер зга­да­є­мо про те, у яко­му сере­до­ви­щі роз­по­всю­джу­ю­ться еле­ктро­ма­гні­тні хви­лі. У систе­мах зв’язку їх кіль­ка: напри­клад, опто­во­ло­кно і, напри­клад, віль­ний про­стір (в сми­слі, «пові­тря», але пові­тря тут ні до чого). Опто­во­ло­кно — це кру­то і при­коль­но, але в ньо­му не так шум­но, як у віль­но­му про­сто­рі. Поясню. Будь-що, що пра­цює за раху­нок еле­ктро­енер­гії (а таких при­ла­дів циві­лі­за­ція при­ду­ма­ла міль­йон: від трам­ва­їв до ноут­бу­ків), випро­мі­нює еле­ктро­ма­гні­тні хви­лі. Що від­бу­ва­є­ться, коли сти­ка­є­ться еле­ктро­ма­гні­тна хви­ля з кори­сною інфор­ма­ці­єю, яку нам тре­ба кон­че пере­да­ти, з еле­ктро­ма­гні­тною хви­лею від швид­кі­сно­го трам­вая №3? Та те ж саме, що від­бу­ва­є­ться, коли двоє роз­мов­ля­ють, а тре­тій про­сто кри­чить — гір­ше чути. Так і в систе­мах зв’язку: чим біль­ше сто­рон­ніх завад, тим гір­ше чути пере­да­вач; у тео­рії інфор­ма­ції кажуть, що кори­сна інфор­ма­ція втра­ча­є­ться.

Зафі­ксу­ва­ли і це? Повто­рю: радіо­е­фір шумить (шуми і зава­ди, між іншим, — це різні речі, але я не зби­ра­ю­ся тут цьо­го поясню­ва­ти, тому гово­ри­ти­му про­сто про шум), і за цим шумом, якщо він занад­то силь­ний, пога­но чути кори­сний сигнал.

А тепер давай­те зга­ду­ва­ти про моду­ля­цію. Там було щось про різний вплив на пара­ме­три еле­ктро­ма­гні­тної хви­лі. Постає пита­н­ня: чи одна­ко­во пога­но буде чути пере­да­вач, якщо він пере­дає сигнал, змі­не­ний за зако­ном А, і сигнал за зако­ном Б за одна­ко­вої інтен­сив­но­сті шумів? Інши­ми сло­ва­ми: чи кра­ще зро­зу­міє при­ймач те, що йому пере­да­ли, якщо під час моду­ля­ції змі­ню­ва­ли не один пара­метр сигна­лу, а інший, а може навіть кіль­ка одно­ча­сно?

Зві­сно, щоб оці­ни­ти (визна­чи­ти яко­мо­га точно) сту­пінь роз­бір­ли­во­сті кори­сно­го сигна­лу, вво­дять поня­т­тя яко­сті (на фізи­чно­му рів­ні), яке можна дово­лі точно обчи­сли­ти у вигля­ді деся­тко­во­го числа за допо­мо­гою про­стих (у випад­ку про­стої моду­ля­ції) або дуже скла­дних (у випад­ку, коли під час моду­ля­ції змі­ню­ють кіль­ка пара­ме­трів сигна­лу одно­ча­сно та ще й не різ­ко, а дрі­бни­ми ска­чка­ми між рів­ня­ми, яких може бути дофі­га) фор­мул. Як пра­ви­ло, таким пока­зни­ком яко­сті є ймо­вір­ність біто­вої помил­ки, тоб­то, число, яке пока­зує, з якою ймо­вір­ні­стю замість 1 при­йде 0. Або нав­па­ки.

Це була пер­ша части­на :). Тепер до спра­ви.

У диплом­ній робо­ті, з‑поміж іншо­го, я сти­кнув­ся з порів­ня­н­ням двох моду­ля­цій: КАМ-16 і ФМ-16. Для тих, хто не дуже в кур­сі, що це за коні, поясню.

КАМ-16 — це така моду­ля­ція, під час якої змі­ню­є­ться і інтен­сив­ність сигна­лу, і його фаза одно­ча­сно. «КАМ» роз­ши­фро­ву­є­ться як «ква­дра­тур­но-амплі­ту­дна моду­ля­ція», тоб­то сигнал гуляє у ква­дра­тур­ній пло­щи­ні, змі­ню­ю­чи свою амплі­ту­ду. Пам’ятаючи, що є дві ква­дра­ту­ри (гар­ним сло­вом «ква­дра­ту­ра» назва­на зви­чай­на сину­со­і­да з поча­тко­вою фазою 0° або 90°; чому саме сину­со­і­ди вико­ри­сто­ву­ю­ться для пере­да­ва­н­ня сигна­лів, можу роз­ка­за­ти окре­мо), I та Q, зга­дав­ши, що ква­дра­ту­ри пер­пен­ди­ку­ляр­ні між собою, і уявив­ши, що буде, якщо роз­мі­сти­ти неща­сні 16 точок з різною амплі­ту­дою і фазою на такій пло­щи­ні, то отри­ма­є­мо кла­си­чну кар­тин­ку з вікі­пе­дії:

641px-16QAM_Gray_Coded.svg

Ця кар­тин­ка має роман­ти­чну назву «сигналь­не сузір’я». Кожній точці від­по­від­ає 4 біти інфор­ма­ції, від­по­від­но, один сим­вол КАМ-16 несе в собі 4 біти, а тому це моду­ля­ція висо­ко­го поряд­ку. Є такі ж моду­ля­ції, але ще вищо­го поряд­ку: КАМ-32, КАМ-64, КАМ-256, навіть КАМ-1024.

Від­стань від поча­тку коор­ди­нат до яко­їсь точки (то, насправ­ді, точки, а не кру­ги, кру­га­ми вони нама­льо­ва­ні, щоб було видні­ше) і є амплі­ту­дою сигна­лу (насправ­ді, енер­гі­єю, але who cares). Ви помі­ти­ли, що на осях нема позна­чок? Насправ­ді, для зру­чно­сті, від­стань між штри­ха­ми беруть за оди­ни­цю, а для роз­ра­хун­ків усе нор­му­ють від­но­сно макси­маль­ної амплі­ту­ди, тоб­то, від­но­сно від­ста­ні від поча­тку коор­ди­нат до най­від­да­ле­ні­шої точки сузір’я так, щоб саме ця від­стань дорів­ню­ва­ла оди­ни­ці. Я це спе­ці­аль­но виді­лив, бо тут зари­та дуже вели­ка і дуже дохла соба­ка, про яку я ска­жу далі.

Окре­мо слід заува­жи­ти про те, яким точкам які біти від­по­від­а­ють. Поши­ре­но два типи нуме­ра­ції: ліній­ний (точки нуме­ру­ю­ться під­ряд: 0000, 0001, 0010 тощо) і хитрий, який заді­ює код Грея. Код Грея роз­ки­дає точки сузір’я так, щоб від­стань між сусі­дні­ми сим­во­ла­ми була міні­мум 1 біт, а між діа­го­наль­ни­ми — два. Код Грея при­коль­ний тим, що не вно­ся­чи надли­шко­вість в інфор­ма­цію, він покра­щує зава­до­стій­кість тіль­ки за раху­нок кон­фі­гу­ра­ції сигналь­но­го сузір’я, фор­му­ю­чи пов­но­цін­ну сигналь­но-кодо­ву кон­стру­кцію. Зада­ча пошу­ку опти­маль­ної кон­фі­гу­ра­ції для ква­дра­тних сузір’їв про­ста, а для неква­дра­тних (КАМ-32, напри­клад) — не дуже. Для ФМ‑n там вза­га­лі шука­ти нічо­го, пере­став­ляй собі біти ліній­но, і буде ОК.

ФМ-16 — це така моду­ля­ція, кожний сим­вол якої також несе 4 біти (тому їх також усьо­го 16), але на від­мі­ну від КАМ-16, усі амплі­ту­ди рів­ні (і дорів­ню­ють оди­ни­ці). Від­по­від­но, сигналь­не сузір’я ФМ-16 — це 16 точок по колу:

16PSK

Тепер роз­бе­ре­мо­ся з тим, як діють шуми на кори­сний сигнал. Для того, щоб сигнал зафі­ксу­вав­ся у пев­ній точці сигналь­но­го сузір’я, докла­да­ю­ться пев­ні зуси­л­ля, тоб­то, витра­ча­є­ться енер­гія пере­да­ва­ча. Така ж сама енер­гія витра­ча­є­ться і дже­ре­ла­ми завад, тіль­ки ця енер­гія витра­ча­є­ться на те, щоб виве­сти сигнал із визна­че­ної точки. Від­по­від­но, якщо побу­ду­ва­ти сигналь­не сузір’я того ж КАМ-16, але не тео­ре­ти­чне, а реаль­не, по факту при­йо­му, вийде ота­ка кар­тин­ка:

24367_1183140587

Бачи­те? Воно ніби та ж сама реші­тка, але сигна­ли роз­сі­я­ні туди-сюди, бо на них дія­ло щось неба­жа­не. І це ще неве­ли­кі з виду шуми, бо жоден сигнал не від­хи­лив­ся від поча­тко­во­го поло­же­н­ня настіль­ки, щоб при­ймач його сплу­тав із сусі­днім. А якщо від­хи­ли­ться? Тоді замість, напри­клад, «1011» при­ймач прийме «1111», і з’явиться один непра­виль­ний біт. Ката­стро­фі­чно­го в цьо­му нічо­го немає, це нор­маль­на робо­та будь-якої систе­ми пере­да­ва­н­ня інфор­ма­ції, але нас ціка­вить інший аспект пита­н­ня: чи так же лег­ко виве­сти сигнал зі сво­єї точки в сусі­дню в КАМ-16, як і в ФМ-16? Інши­ми сло­ва­ми: яка ймо­вір­ність біто­вої помил­ки за вка­за­ної поту­жно­сті шуму за вико­ри­ста­н­ня КАМ-16 і ФМ-16? Ще інши­ми сло­ва­ми: чи одна­ко­ву потен­цій­ну зава­до­стій­кість забез­пе­чу­ють КАМ-16 і ФМ-16?

Зві­сно, від­по­відь хова­є­ться в питан­ні: різну. Іна­кше б я цьо­го всьо­го не писав. Часто гово­рять, що КАМ-16 і при­ду­ма­ли для того, щоб пере­да­ва­ти стіль­ки ж, скіль­ки й за допо­мо­гою ФМ-16, але надій­ні­ше, бо змі­ню­є­ться ще один пара­метр сигна­лу — амплі­ту­да, і зав­дя­ки цій дода­тко­вій озна­ці роз­рі­зне­н­ня сусі­дніх сигна­лів між собою покра­щу­є­ться зава­до­стій­кість. Пла­та за таку надій­ність — неве­ли­ке ускла­дне­н­ня пере­да­ва­ча та при­йма­ча. Якби ж усе було так про­сто.

Щоб визна­чи­ти, хто пра­вий, а хто не дуже, не тре­ба буду­ва­ти пере­да­ва­чі та при­йма­чі, доста­тньо побу­ду­ва­ти неве­ли­ку імі­та­цій­ну модель­ку, і за допо­мо­гою неї визна­чи­ти ту саму ймо­вір­ність біто­вої помил­ки, про яку я вже казав вище, якщо вико­ри­сто­ву­ю­ться різні моду­ля­ції.

Таку модель­ку можна занє­фіг побу­ду­ва­ти в MATLAB'і, напри­клад, але ми ж не шука­є­мо лег­ких шля­хів (та і якість матла­бів­ських КАМ-моду­ля­то­рів я став­лю під сум­нів через зга­да­ну вище нор­ма­лі­за­цію, читай­те далі, вопсчєм), тому в дипло­мі я напи­сав з нуля пов­но­цін­ну модель на Java, а за остан­ній тиждень пере­пи­сав її на чисто­му C99, щоправ­да, без гра­фі­чно­го інтер­фей­су (кому він був потрі­бен, окрім мого нау­ко­во­го керів­ни­ка?).

А тепер про нор­ма­лі­за­цію. Якщо з ФМ-16 усе ясно (всі амплі­ту­ди рів­ні, всі оди­ни­чні, що тут нор­ма­лі­зу­ва­ти?), то з КАМ-16 усі, кому не лінь (гра­ж­да­нє Про­кіс, Скляр і вся­кі кори­феї зару­бі­жної telecommunication science), при­пу­ска­ю­ться гру­бєй­шої помил­ки, нор­ма­лі­зу­ю­чи не за макси­му­мом енер­гії, а за сере­днім зна­че­н­ням. Якщо при­пу­сти­ти, що сузір’я нор­ма­лі­зо­ва­не за сере­дньою енер­гі­єю, то вихо­дить, що край­ні точки з макси­маль­ною енер­гі­єю мають умов­ну амплі­ту­ду, біль­шу за 1. А тепер зга­да­є­мо тео­рію пере­да­ва­чів. Сигнал пере­да­є­ться на ліній­ній ділян­ці вольт-ампер­ної хара­кте­ри­сти­ки під­си­лю­ва­ча, і якщо вихо­дить за її межі, то спо­тво­рю­є­ться. Так от нор­ма­лі­за­ція за сере­дньою енер­гі­єю — це допу­ще­н­ня того, що сигнал час­тко­во (край­ні точки) пере­да­є­ться за межа­ми ліній­ної ділян­ки під­си­ле­н­ня, тоб­то, спо­тво­ре­ним, а в роз­ра­хун­ках це не вра­хо­ву­є­ться. Тому таким даним віри­ти не можна.

Буде­мо від­нов­лю­ва­ти спра­ве­дли­вість. Побу­до­ва­на модель дуже точно виві­ре­на з тео­рі­єю Фін­ка і Зюко (в сми­слі, екс­пе­ри­мен­таль­ні дані схо­дя­ться пов­ні­стю з резуль­та­та­ми, отри­ма­ни­ми з ана­лі­ти­чних вира­зів), тому нема нічо­го про­сті­ше, як вка­за­ти їй вхі­дні дані, нажа­ти Ентер, отри­ма­ти стов­пчик чисел, а потім зго­ду­ва­ти їх gnuplot'у. Далі наво­дя­ться гра­фі­ки для біто­вої помил­ки, але для сим­воль­ної їх хара­ктер збе­рі­га­є­ться.

Ітак, канал з ади­тив­ним білим гау­со­вим шумом, зава­до­стій­ке коду­ва­н­ня не засто­со­ву­є­ться:

image

АБГШ — це такий сфе­ри­чний канал у ваку­у­мі, де є тіль­ки шуми і пря­мий про­мінь пере­да­ва­н­ня. Він вико­ри­сто­ву­є­ться для хара­кте­ри­зу­ва­н­ня потен­цій­них зда­тно­стей, але до реаль­них умов мало засто­сов­ний. Зава­до­стій­ке коду­ва­н­ня вико­ри­сто­ву­є­ться для того, щоб змен­ши­ти кіль­кість поми­лок суто мате­ма­ти­чни­ми мето­да­ми, збіль­шу­ю­чи при цьо­му обсяг інфор­ма­ції, яка пере­да­є­ться (за все ж тре­ба пла­ти­ти). Я далі пока­жу гра­фік, для побу­до­ви яко­го в моде­лі вико­ри­сто­ву­вав­ся такий код, який може виправ­ля­ти 1 біт із 4 (але заува­жу, що коди — не пана­цея, бо іно­ді від них тіль­ки гір­ше; якщо ціка­во, можу роз­ка­за­ти, чому).

Так і що ж ми бачи­мо на цьо­му гра­фі­ку? А ми бачи­мо, що до спів­від­но­ше­н­ня сигнал-шум (насправ­ді, це не сигнал-шум, а енер­гія до спе­ктраль­ної щіль­но­сті поту­жно­сті, але, блін, again, who cares?) десь 12,2 дБ ФМ-16 забез­пе­чує кра­щу ймо­вір­ність біто­вої помил­ки. А як же вищі зна­че­н­ня, де КАМ-16 виграє? А вони нас не цікав­лять. Де ви бачи­ли радіо­ка­нал, у яко­му сигнал настіль­ки поту­жний, що пере­ва­жає над шумом у 20 (двад­цять!) разів?

Давай­те зро­би­мо те ж, але з пер­ла­му­тро­ви­ми пуго­ви­ця­мизава­до­стій­ким коду­ва­н­ням:

image

Кар­тін­ка та сама, тіль­ки пере­тин змі­стив­ся ще біль­ше впра­во. No comments.

Тепер звер­не­мо­ся від АБГШ до кана­лу із зав­ми­ра­н­ня­ми. Зві­сно, це також неі­де­аль­на модель (іде­аль­них моде­лей радіо­ка­на­лів нема), але вона ближ­че до реаль­но­сті, бо вра­хо­вує бага­то­про­ме­не­вість. До чого тут бага­то­про­ме­не­вість? А уявіть собі: ви в місті, вишка мобіль­но­го зв’язку сві­тить з 16-повер­хів­ки на вас, а ще на сусі­дній буди­нок із залі­зо­бе­то­ну, від яко­го хви­ля час­тко­во від­би­ва­є­ться і також дохо­дить до вас. Таким чином, ваша мобіл­ка при­ймає два (насправ­ді, біль­ше наба­га­то) сигна­ли, змі­ще­ні за фазою (в часі). Поня­тно, що така модель дає гір­шу ймо­вір­ність помил­ки? Поня­тно. Диви­мо­ся:

image

Ну афі­гєть. They are similar! Але після 20 дБ. А до того ФМ-16 має кра­щий пока­зник BER.

Давай­те те ж, але з коду­ва­н­ням:

image

Тепер кар­тін­ка вза­га­лі одно­зна­чна. І хоче­ться спи­та­ти тих інже­не­рів, які при­ду­ма­ли КАМ-16, про що ж вони дума­ли.

Зві­сно, постає два пита­н­ня: 1) як ці моду­ля­ції пово­дять себе в реаль­них кана­лах зв’язку, а не в моде­лях, бо потен­цій­на зава­до­стій­кість потен­цій­ною зава­до­стій­кі­стю, а реаль­ні кана­ли постій­но диха­ють, руха­ю­ться, вору­ша­ться і живуть?; 2) як пово­дить себе пара ФМ-32/КАМ-32?

На пер­ше пита­н­ня від­по­відь може дати тіль­ки реаль­не обла­дна­н­ня. На дру­ге пита­н­ня я міг би дати від­по­відь, але зна­йти (квазі)оптимальне сузір’я КАМ-32 поки не вда­ло­ся (алго­ри­тми є, роз­би­ра­ти­ся тре­ба). Тому, може, далі буде.

Сум­ні­ва­ю­ся, що є якісь запи­та­н­ня, але якщо є, я зав­жди гото­вий.

Мітки: , ,

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *

*

Цей сайт використовує Akismet для зменшення спаму. Дізнайтеся, як обробляються ваші дані коментарів.