Открыть сервисСервис

ЛК — линейный код

ЛК (линейный код) — способ кодирования цифровых сигналов, при котором передаваемые данные преобразуются в последовательность импульсов, несущих информацию о значениях битов. Термин «ЛК» в русскоязычной технической литературе чаще всего обозначает линейный код (linear code) — метод представления цифровых сигналов, применяемый в системах передачи данных, телекоммуникации, компьютерных сетях и устройствах хранения информации. Линейные коды также являются важным разделом теории кодирования, где «ЛК» может означать линейный код в математическом смысле — подпространство векторного пространства над конечным полем.

Линейный код как метод кодирования сигналов

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

Ключевые свойства линейного кодирования:

  • Отсутствие постоянной составляющей — среднее значение сигнала стремится к нулю, что позволяет использовать трансформаторную связь и упрощает схемы приёмопередатчиков.
  • Самосинхронизация — в коде присутствует достаточно частотных переходов, позволяющих приёмнику восстановить тактовую частоту.
  • Высокая плотность переходов — устойчивость к искажениям и помехам.
  • Ограниченная полоса передаваемых частот — снижение межсимвольных интерференций.

Основные виды линейных кодов

КодЧисло уровнейПример применения
NRZ (Non-Return-to-Zero)2Внутренние шины компьютеров
RZ (Return-to-Zero)3Ранние системы передачи
Manchester2Ethernet (10BASE-T)
Differential Manchester2Token Ring, ARCnet
AMI (Alternate Mark Inversion)3Телефонные линии E1/T1
4B/5B—Fast Ethernet, FDDI
8B/10B—Gigabit Ethernet, SATA, PCIe
64B/66B—10 Gigabit Ethernet

Manchester-кодирование

Manchester-код — один из наиболее распространённых линейных кодов. В нём каждый бит передаётся как переход уровня: с высокого на низкий обозначает «1», с низкого на высокий — «0» (или наоборот, в зависимости от стандарта). Переход всегда происходит в середине битового интервала, что гарантирует самосинхронизацию. Недостаток — удвоение полосы по сравнению с NRZ, поэтому Manchester применяется в сетях с относительно невысокой скоростью (до 10 Мбит/с в классическом Ethernet).

Коды с блочным преобразованием

Для высокоскоростных интерфейсов применяются коды с блочным преобразованием — 4B/5B, 8B/10B, 64B/66B. При передаче группы битов (например, 8 бит) они заменяются более длинной комбинацией (10 бит), подобранной так, чтобы обеспечить достаточное число переходов и отсутствие длинных серий одинаковых символов. Код 8B/10B, предложенный Альбертом Уидмером и Джозефом Уидмером из IBM в 1983 году, стал стандартом для Gigabit Ethernet, Fibre Channel, SATA и PCI Express.

Линейный код в теории кодирования

В алгебраической теории кодирования линейный код — это подпространство векторного пространства $(\mathbb{F}_q)^n$ над конечным полем $\mathbb{F}_q$ размерности $k$. Такой код обозначается как $[n, k, d]$, где $n$ — длина кодового слова, $k$ — размерность (число информационных символов), $d$ — минимальное расстояние Хэмминга между кодовыми словами.

Линейные коды обладают важным свойством: сумма (по модулю $q$) двух кодовых слов также является кодовым словом. Это упрощает кодирование и декодирование — достаточно задать порождающую матрицу $G$ размера $k \times n$ или проверочную матрицу $H$ размера $(n-k) \times n$.

К важнейшим классам линейных кодов относятся:

  • Коды Хэмминга — исправляющие одиночные ошибки, построенные в 1950 году Ричардом Хэммингом.
  • Рид—Соломоновы коды — широкополосные коды, применяемые в CD, DVD, QR-кодах, космических миссиях.
  • Свёрточные коды — с кодированием с памятью, активно использовавшиеся в сотовых сетях.
  • Турбо-коды — предложены в 1993 году, обеспечившие приближение к пределу Шеннона.
  • LDPC-коды — разреженные проверочные коды, применяемые в DVB-S2, Wi-Fi (802.11n/ac/ax), 5G NR.

Применение

Линейное кодирование находит применение в самых разных областях:

  • Компьютерные сети — Ethernet, Wi-Fi, InfiniBand используют различные линейные коды для физического уровня.
  • Телекоммуникации — стандарты E1/T1 применяют код AMI и B8ZS.
  • Накопители данных — жёсткие диски и SSD используют коды Рид—Соломона и LDPC для коррекции ошибок при чтении.
  • Космические системы связи — турбо-коды и LDPC применяются в межпланетных миссиях и спутниковых системах (DVB-S2).
  • Штриховое кодирование — UPC, EAN, Code 128 основаны на принципах линейного кодирования с самосинхронизацией.

См. также

Источники

  1. Скляр Б. Цифровая связь. Теоретические основы и практическое применение. — М.: Вильямс, 2007.
  2. Прокис Дж. Цифровая связь. — М.: Вильямс, 2000.
  3. Хэмминг Р. Кодирование и теория информации. — М.: Мир, 1978.
  4. Lin S., Costello D. Error Control Coding: Fundamentals and Applications. — Prentice Hall, 2004.
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru