<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Кодирование сигналов]]></title><description><![CDATA[<h2>Кодирование</h2>
<p dir="auto">Физический уровень (уровень 1) модели OSI отвечает за преобразование потока битов, полученного от канального уровня, в электрические, оптические или радиосигналы для передачи по физической среде [[4]]. Ключевыми задачами этого процесса являются обеспечение надежной синхронизации между передатчиком и приемником, минимизация постоянной составляющей (DC-компонента) сигнала и эффективное использование полосы пропускания. Для решения этих задач применяются различные методы кодирования, которые можно разделить на линейное кодирование, блочное кодирование и скрэмблирование.</p>
<p dir="auto">Синхронизация критически важна: без нее приемник не может точно определить границы каждого бита, что приводит к ошибкам. Простые коды, такие как NRZ, не обеспечивают гарантированных переходов сигнала, что делает их непригодными для большинства сетей. Более сложные методы, например, Манчестерское кодирование или комбинации вроде 4B/5B + MLT-3, решают эту проблему, внося избыточность или принудительно создавая переходы. Выбор конкретного метода — это всегда компромисс между скоростью передачи, надежностью, сложностью реализации и стоимостью оборудования.</p>
<h4>Сводная таблица методов кодирования</h4>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th style="text-align:left">Метод</th>
<th style="text-align:left">Тип</th>
<th style="text-align:center">Эффективность (бит/символ)</th>
<th style="text-align:center">Гарантия синхронизации</th>
<th style="text-align:center">DC-баланс</th>
<th style="text-align:left">Основное применение</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left"><strong>NRZ-L / NRZ-I</strong></td>
<td style="text-align:left">Линейное</td>
<td style="text-align:center">1.0</td>
<td style="text-align:center">Нет</td>
<td style="text-align:center">Плохой</td>
<td style="text-align:left">Внутри устройств, редко в сетях</td>
</tr>
<tr>
<td style="text-align:left"><strong>Manchester</strong></td>
<td style="text-align:left">Линейное (бифазное)</td>
<td style="text-align:center">0.5</td>
<td style="text-align:center">Да</td>
<td style="text-align:center">Хороший</td>
<td style="text-align:left">Ethernet 10BASE-T</td>
</tr>
<tr>
<td style="text-align:left"><strong>Differential Manchester</strong></td>
<td style="text-align:left">Линейное (бифазное)</td>
<td style="text-align:center">0.5</td>
<td style="text-align:center">Да</td>
<td style="text-align:center">Хороший</td>
<td style="text-align:left">Token Ring (IEEE 802.5)</td>
</tr>
<tr>
<td style="text-align:left"><strong>MLT-3</strong></td>
<td style="text-align:left">Линейное (многоуровневое)</td>
<td style="text-align:center">~1.0*</td>
<td style="text-align:center">Нет</td>
<td style="text-align:center">Хороший</td>
<td style="text-align:left">Fast Ethernet 100BASE-TX</td>
</tr>
<tr>
<td style="text-align:left"><strong>4B/5B</strong></td>
<td style="text-align:left">Блочное</td>
<td style="text-align:center">0.8</td>
<td style="text-align:center">Да</td>
<td style="text-align:center">Хороший</td>
<td style="text-align:left">Fast Ethernet, FDDI</td>
</tr>
<tr>
<td style="text-align:left"><strong>8B/10B</strong></td>
<td style="text-align:left">Блочное</td>
<td style="text-align:center">0.8</td>
<td style="text-align:center">Да</td>
<td style="text-align:center">Отличный</td>
<td style="text-align:left">Gigabit Ethernet, PCIe, SATA</td>
</tr>
<tr>
<td style="text-align:left"><strong>64B/66B</strong></td>
<td style="text-align:left">Блочное</td>
<td style="text-align:center">~0.97</td>
<td style="text-align:center">Да</td>
<td style="text-align:center">Отличный</td>
<td style="text-align:left">10G+ Ethernet, USB 3.1</td>
</tr>
<tr>
<td style="text-align:left"><strong>Скрэмблирование</strong></td>
<td style="text-align:left">Статистическое</td>
<td style="text-align:center">1.0</td>
<td style="text-align:center">Да</td>
<td style="text-align:center">Хороший</td>
<td style="text-align:left">HDMI, DisplayPort, DSL</td>
</tr>
</tbody>
</table>
<p dir="auto"><em>*MLT-3 требует блочного кодирования (например, 4B/5B) для обеспечения синхронизации.</em></p>
<hr />
<h3>Подробное описание методов кодирования</h3>
<h4>Линейное кодирование</h4>
<p dir="auto">Линейное кодирование напрямую преобразует каждый бит данных в соответствующий уровень напряжения или последовательность уровней. Это самый простой тип кодирования, но он часто требует дополнительных механизмов для решения проблем синхронизации и DC-компонента.</p>
<h6><strong>NRZ (Non-Return to Zero)</strong>:</h6>
<p dir="auto"><img src="/assets/uploads/files/ad/1e/83/1770916887863-4d8c665b-b593-4a37-a6ae-8c0bc81aa9f7-image.webp" alt="4d8c665b-b593-4a37-a6ae-8c0bc81aa9f7-image.png" class=" img-fluid img-markdown" /></p>
<ul>
<li><strong>Принцип</strong>: Бит ‘1’ представляется одним уровнем напряжения (например, +V), а бит ‘0’ — другим (например, -V для NRZ-L или 0V для Unipolar NRZ). Сигнал не возвращается к нулевому уровню в течение всего периода бита.</li>
<li><strong>Пример</strong>: Последовательность <code>1011</code> в NRZ-L будет выглядеть как <code>[+V, -V, +V, +V]</code>.</li>
<li><strong>Применение</strong>: В основном используется для внутренней передачи данных внутри микросхем или на очень коротких расстояниях, где проблемы синхронизации и DC-компонента не критичны. Не подходит для большинства сетевых протоколов.</li>
<li><strong>Подтипы</strong>:
<ul>
<li><strong>NRZ-L (Level)</strong>: Значение бита напрямую определяет уровень сигнала.</li>
<li><strong>NRZ-I (Inverted)</strong>: Значение бита определяет наличие перехода на границе бита (‘1’ = переход, ‘0’ = нет перехода).</li>
</ul>
</li>
</ul>
<h5><strong>Manchester</strong>:</h5>
<p dir="auto"><img src="/assets/uploads/files/5e/f9/e1/1770917425334-8faebe50-f363-4c41-bfa6-4a3cada0e226-image.webp" alt="8faebe50-f363-4c41-bfa6-4a3cada0e226-image.png" class=" img-fluid img-markdown" /></p>
<ul>
<li><strong>Принцип</strong>: Каждый бит содержит обязательный переход в середине своего временного интервала. Направление перехода кодирует значение бита: низкий-на-высокий для ‘0’, высокий-на-низкий для ‘1’ (или наоборот, в зависимости от стандарта).</li>
<li><strong>Пример</strong>: Последовательность <code>101</code> будет представлена как <code>[High-&gt;Low, Low-&gt;High, High-&gt;Low]</code> в середине каждого бита.</li>
<li><strong>Применение</strong>: Стандарт Ethernet 10BASE-T. Обеспечивает отличную синхронизацию и хороший DC-баланс, но требует вдвое большей полосы пропускания по сравнению с NRZ.</li>
<li><strong>Преимущества</strong>: Само-синхронизирующийся, отсутствие DC-компонента.</li>
<li><strong>Недостатки</strong>: Низкая спектральная эффективность.</li>
</ul>
<h5><strong>MLT-3 (Multi-Level Transmit - 3)</strong>:</h5>
<p dir="auto"><img src="/assets/uploads/files/e1/9a/29/1770917133899-2e231718-0687-475d-88f4-60f282614568-image.webp" alt="2e231718-0687-475d-88f4-60f282614568-image.png" class=" img-fluid img-markdown" /></p>
<ul>
<li><strong>Принцип</strong>: Использует три уровня напряжения: +1, 0, -1. При передаче ‘1’ сигнал циклически переключается между уровнями (+1 → 0 → -1 → 0 → +1…). При передаче ‘0’ уровень остается неизменным.</li>
<li><strong>Пример</strong>: Последовательность <code>1101</code> будет выглядеть как <code>[+1, 0, 0, -1]</code>.</li>
<li><strong>Применение</strong>: Всегда используется в паре с блочным кодированием 4B/5B в стандарте Fast Ethernet (100BASE-TX). Сам по себе не гарантирует синхронизацию при длинных последовательностях нулей.</li>
<li><strong>Преимущества</strong>: Высокая спектральная эффективность (почти как у NRZ).</li>
<li><strong>Недостатки</strong>: Требует блочного кодирования для надежной работы.</li>
</ul>
<h4>Блочное кодирование</h4>
<p dir="auto">Блочное кодирование преобразует группы из <code>k</code> бит данных в более длинные группы из <code>n</code> бит (<code>n &gt; k</code>), называемые кодовыми словами. Добавленная избыточность используется для контроля качества сигнала.</p>
<h5><strong>4B/5B</strong>:</h5>
<ul>
<li><strong>Принцип</strong>: Каждые 4 бита данных заменяются на 5-битное кодовое слово, выбранное из таблицы. Все кодовые слова содержат не более трех подряд идущих нулей, что гарантирует достаточное количество переходов для синхронизации.</li>
<li><strong>Пример</strong>: 4-битный блок <code>1111</code> кодируется как <code>11101</code>.</li>
<li><strong>Применение</strong>: Fast Ethernet (100BASE-TX, в паре с MLT-3), FDDI.</li>
<li><strong>Эффективность</strong>: 4/5 = 80%.</li>
<li><strong>Расшифровка</strong>: <strong>4B/5B</strong> — 4 Bits to 5 Bits.</li>
</ul>
<h5><strong>8B/10B</strong>:</h5>
<ul>
<li><strong>Принцип</strong>: Каждый байт (8 бит) данных разбивается на две части (3 старших и 5 младших бит) и кодируется в два 5-битных символа, которые затем объединяются в 10-битное слово. Код специально спроектирован для поддержания DC-баланса (разница между количеством ‘1’ и ‘0’ в кодовом слове не превышает 2) и ограничения длины последовательностей одинаковых битов.</li>
<li><strong>Пример</strong>: Байт <code>0x00</code> (00000000) кодируется как <code>1001110100</code>.</li>
<li><strong>Применение</strong>: Gigabit Ethernet, PCI Express (до версии 3.0), Serial ATA (SATA), Fibre Channel.</li>
<li><strong>Эффективность</strong>: 8/10 = 80%.</li>
<li><strong>Расшифровка</strong>: <strong>8B/10B</strong> — 8 Bits to 10 Bits.</li>
</ul>
<h5><strong>64B/66B</strong>:</h5>
<ul>
<li><strong>Принцип</strong>: 64-битные блоки данных преобразуются в 66-битные кодовые слова путем добавления 2-битного префикса. Префикс указывает, является ли блок данными или служебной информацией. Этот метод обеспечивает очень высокую эффективность и хорошее распределение переходов.</li>
<li><strong>Пример</strong>: 64-битный блок данных начинается с префикса <code>01</code>.</li>
<li><strong>Применение</strong>: 10 Gigabit Ethernet и выше, USB 3.1, PCI Express 3.0 и выше.</li>
<li><strong>Эффективность</strong>: 64/66 ≈ 97%.</li>
<li><strong>Расшифровка</strong>: <strong>64B/66B</strong> — 64 Bits to 66 Bits.</li>
</ul>
<h4>Скрэмблирование</h4>
<p dir="auto">Скрэмблирование — это метод, который модифицирует исходный поток данных, чтобы сделать его статистические свойства более “случайными”, не увеличивая его размер.</p>
<ul>
<li><strong>Принцип</strong>: Исходный поток данных подвергается побитовой операции XOR с псевдослучайной последовательностью (PRBS), генерируемой на передающей стороне. На приемной стороне та же PRBS применяется повторно для восстановления исходных данных.</li>
<li><strong>Пример</strong>: Если данные — <code>1010</code>, а PRBS — <code>1100</code>, то скрэмблированный поток будет <code>0110</code> (1⊕1=0, 0⊕1=1, 1⊕0=1, 0⊕0=0).</li>
<li><strong>Применение</strong>: HDMI, DisplayPort, многие стандарты xDSL, беспроводные технологии (LTE, Wi-Fi). Используется там, где критически важна высокая эффективность и низкий уровень электромагнитных помех (ЭМП).</li>
<li><strong>Преимущества</strong>: 100% эффективность, снижение ЭМП, предотвращение длинных последовательностей одинаковых битов.</li>
<li><strong>Недостатки</strong>: Требует сложной синхронизации генераторов PRBS на обоих концах линии.</li>
</ul>
]]></description><link>https://forum.exlends.ru/topic/512/kodirovanie-signalov</link><generator>RSS for Node</generator><lastBuildDate>Wed, 20 May 2026 07:27:23 GMT</lastBuildDate><atom:link href="https://forum.exlends.ru/topic/512.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 12 Feb 2026 17:10:20 GMT</pubDate><ttl>60</ttl></channel></rss>