Завадостійке кодування здійснюється за рахунок введення до складу переданого сигналу досить великого обсягу надлишкової (контрольної) інформації. В англійській термінології таке кодування носить найменування Forward Error Correcting coding (FEC coding), тобто кодування в попереджувальних корекцією помилок, або кодування з корекцією помилок на проході. У стільникового зв'язку завадостійке кодування реалізується у вигляді трьох процедур - блочного кодування, сверточного кодування і перемежения. Крім того, кодер каналу виконує ще ряд функцій: додає керуючу інформацію, яка, в свою чергу, також піддається помехоустойчивому кодування; упаковує підготовлену до передачі інформацію і стискає її в часі; здійснює шифрування переданої інформації, якщо таке передбачено режимом роботи апаратури. Послідовність виконання цих завдань показана на блок-схемі рис. 10.
При блоковому кодуванні вхідні інформація поділяється на блоки, що містять по k символів кожен, які за певним законом перетворюються кодером в n-символьні блоки, причому n> k (рис. 10). Відношення R = k / n носить найменування швидкості кодування і є мірою надмірності, що вноситься кодером. При раціонально побудованому кодере менша швидкість кодування, тобто велика надмірність, відповідає більш високій завадостійкості.
Підвищенню завадостійкості сприяє також збільшення довжини блоку. Блоковий кодер з параметрами n, k позначається (n, k). Якщо символи вхідний і вихідний послідовностей є двійковими, тобто складаються з одного біта кожен, то кодер називається двійковим; саме виконавчі кодери використовуються в стільникового зв'язку. Схема, представлена на рис. 11, відповідає бінарного блочному кодеру (5, 4).
Малюнок 10 - Канальне кодування
Малюнок 11 - блочне кодування
Кожен біт блоку вихідної інформації є сумою по модулю 2 декількох біт (від одного до k) вхідного блоку, для чого використовується n суматорів за модулем 2. Один з сумматоров на схемі рис. 11 (другий праворуч) є виродженим - на його вхід надходить лише один доданок.
При сверточное кодуванні (рис. 12) До послідовних символів вхідний інформаційної послідовності, по k біт в кожному символі, беруть участь в утворенні n-бітових символів вихідний послідовності, n> k, причому на кожен символ вхідної послідовності доводиться по одному символу вихідний.
Малюнок 12 - Схема сверточного кодування (4, 2, 5) (n = 4, k = 2; R = k / n = 1/2). а) - побайтовой контроль парності дозволяє виявити поодинокі помилки в байтах; б) - додавання ще 8-го біта контролю дозволяє виправити одиночну помилку в восьми байтах
Кожен біт вихідної послідовності виходить як результат підсумовування по модулю 2 декількох біт (від двох до Kk біт) До вхідних символів, для чого використовуються п суматори за модулем 2. сверточное кодер з параметрами n, k, К позначається (n, k, K) . Відношення R = k / n, як і в блочному кодере, називається швидкістю кодування.
Параметр До називається довжиною обмеження (constraint length); він визначає довжину зсувного регістру (в символах), вміст якого бере участь у формуванні одного вихідного символу. Після того, як черговий вихідний символ сформований, вхідна послідовність зсувається на один символ вправо (рис. 11). В результаті символ 1 виходить за межі регістра, символи 2 ... 5 переміщаються вправо, кожен на місце сусіднього, а на місце, що звільнилося записується черговий символ вхідної послідовності, і по новому вмісту регістра формується наступний вихідний символ. Назва згортальної коди зобов'язана тому, що він може розглядатися як згортка імпульсної характеристики кодера і вхідний інформаційної послідовності. Якщо k = 1, тобто символи вхідної послідовності однобітові, сверточних кодер називається двійковим. Сверточних кодер, схема якого наведена на рис. 11, не є двійковим, оскільки для нього k = 2.
Перемеженіє є така зміна порядку проходження символів інформаційної послідовності, тобто таку перестановку, символів, при якій стояли поруч символи виявляються розділеними декількома іншими символами. Така процедура робиться з метою перетворення групових помилок (пакетів помилок) в поодинокі помилки, з якими легше боротися за допомогою блочного і сверточного кодування. Використання перемежения - одна з характерних особливостей стільникового зв'язку, що це є наслідком неминучих глибоких завмирань сигналу в умовах багатопроменевого поширення, яке практично завжди має місце, особливо в умовах щільної міської забудови. При цьому група наступних один за іншим символів, що потрапляють на інтервал завмирання (провалу) сигналу, з великою ймовірністю виявляється помилковою. Якщо ж перед видачею інформаційної послідовності в радіоканал вона піддається процедурі перемежения, а на приймальному кінці відновлюється колишній порядок проходження символів, то пакети помилок з великою ймовірністю розсипаються на поодинокі помилки, ймовірність виправлення яких значно вище.
Відомо кілька різних схем перемежения і їх модифікацій - діагональна, блокова, свёрточная і інші.
У канальному кодування так само здійснюється і скремблирование. Скремблирование - різновид кодування інформації для передачі по каналах зв'язку, що поліпшує спектральні і статистичні характеристики сигналу. Скремблирование є приведення інформації до виду, за різними характеристиками схожим на випадкові дані. Скремблирование вирівнює спектр сигналу, частоти появи різних символів і їх ланцюжків.
У стандарті GSM підвищення ефективності канального кодування і перемежения при малій швидкості переміщення рухливих станцій досягається повільним переключенням робочих частот сеансу зв'язку (зі швидкістю 217 стрибків в секунду). Головне призначення повільних стрибків - забезпечення частотного рознесення в радіоканалах, що функціонують в умовах багатопроменевого поширення радіохвиль. Принцип формування повільних стрибків по частоті полягає в тому, що повідомлення в кожному наступному кадрі передається (приймається) на новій фіксованій частоті. Параметри послідовності перемикань частот (частотно-тимчасова матриця і початкова частота) призначаються для кожної мобільної станції в процесі встановлення каналу зв'язку. Цей метод дещо модифікований використовується і в широкосмугових системах зв'язку.