Какой набор кодов используется для алгоритмов обнаружения и исправления ошибок и процедуры прямой коррекции ошибок?

TrellisWare F-LDPC FEC Прямая коррекция ошибок

TrellisWare – F-LDPC FEC – Прямое Исправление Ошибок

Транспортировка данных подвержена влиянию шумов и наводок, которые вносят искажения. Если вероятность повреждения данных мала, достаточно зарегистрировать сам факт искажения и повторить передачу поврежденного фрагмента.

Блочное кодирование работает с блоками (пакетами) бит или символов фиксированного размера. Метод свертки работает с потоками бит или символов произвольной протяженности. Коды свертки при желании могут быть преобразованы в блочные коды.

Существует большое число блочных кодов, одним из наиболее важных является алгоритм Рида-Соломона, который используется при работе с CD, DVD и жесткими дисками ЭВМ. Блочные коды и коды свертки могут использоваться и совместно.

Для FEC -кодирования иногда используется метод сверки, который впервые был применен в 1955 году. Главной особенностью этого метода является сильная зависимость кодирования от предыдущих информационных битов и высокие требования к объему памяти. FEC -код обычно просматривает при декодировании 2-8 бит десятки или даже сотни бит, полученных ранее.

В 1967 году Эндрю Витерби (Andrew Viterbi) разработал технику декодирования, которая стала стандартной для кодов свертки. Эта методика требовала меньше памяти. Метод свертки более эффективен, когда ошибки распределены случайным образом, а не группируются в кластеры. Работа же с кластерами ошибок более эффективна при использовании алгебраического кодирования.

Одной из широко применяемых разновидностей коррекции ошибок является турбо-кодирование, разработанное американской аэрокосмической корпорацией. В этой схеме комбинируется два или более относительно простых кодов свертки. В FEC, так же как и в других методах коррекции ошибок (коды Хэмминга, алгоритм Рида-Соломона и др. ), блоки данных из k бит снабжаются кодами четности, которые пересылаются вместе с данными и обеспечивают не только детектирование, но и исправление ошибок. Каждый дополнительный (избыточный) бит является сложной функцией многих исходных информационных бит. Исходная информация может содержаться в выходном передаваемом коде, тогда такой код называется систематическим, а может и не содержаться.

В результате через канал передается n -битовое кодовое слово ( n>k ). Конкретная реализация алгоритма FEC характеризуется комбинацией ( n, k ). Применение FEC в Интернете регламентируется документом RFC3452. Коды FEC могут исключить необходимость обратной связи при потере или искажении доставленных данных (запросы повторной передачи). Особенно привлекательна технология FEC при работе с мультикастинг-потоками, где ретрансмиссия не предусматривается (см. RFC-3453).

В 1974 году Йозеф Оденвальдер (Joseph odenwalder) объединил возможности алгебраического кодирования и метода свертки. Хорошего результата можно добиться, введя специальную операцию псевдослучайного перемешивания бит (interleaver).

В 1993 году группой Клода Берроу (Claude Berrou) был разработан турбо-код. В кодеке, реализующем этот алгоритм, содержатся кодировщики как минимум двух компонент (реализующие алгебраический метод или свертку). Кодирование осуществляется для блоков данных. Здесь также используется псевдослучайное перемешивание бит перед передачей. Это приводит к тому, что кластеры ошибок, внесенных при транспортировке, оказываются разнесенными случайным образом в пределах блока данных.

На
рис. 8 проводится сравнение вариантов BER (Bit Error Rate) при обычной транспортировке данных через канал и при передаче тех же данных с использованием коррекции ошибок FEC для разных значений отношения сигнал-шум ( S/N ). Из этих данных видно, что при отношении S/N= 8 дБ применение FEC позволяет понизить BER примерно в 100 раз. При этом достигается результат, близкий (в пределах одного децибела) к теоретическому пределу Шеннона.

За последние пять лет были разработаны программы, которые позволяют оптимизировать структуры турбо-кодов. Улучшение BER для турбокодов имеет асимптотический предел, и дальнейшее увеличение S/N уже не дает никакого выигрыша. Но схемы, позволяющие смягчить влияние этого насыщения, продолжают разрабатываться.

Какой набор кодов используется для алгоритмов обнаружения и исправления ошибок и процедуры прямой коррекции ошибок?

Турбо-кодек должен иметь столько же компонентных декодеров, сколько имеется кодировщиков на стороне передатчика. Декодеры соединяются последовательно.

Какой набор кодов используется для алгоритмов обнаружения и исправления ошибок и процедуры прямой коррекции ошибок?

Следует помнить, что, как в случае FEC , так и в других известных методах коррекции ошибок ( BCH , Golay, Hamming и др. ) скорректированный код является верным лишь с определенной конечной вероятностью.

Какой набор кодов используется для алгоритмов обнаружения и исправления ошибок и процедуры прямой коррекции ошибок?

Какой набор кодов используется для алгоритмов обнаружения и исправления ошибок и процедуры прямой коррекции ошибок?

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

В связи с тем, что избыточные биты передаются совместно с исходными данными, для защиты которых они предназначены, существует компромисс между битовыми ошибками и скоростью передачи данных. Более надежные коды являются более сложными и содержат больше избыточных битов. Занимая больше места в канале передачи, такие коды снижают скорость передачи данных, несмотря на то, что они улучшают соотношение сигнал шум (SNR).

Ключевая величина, связанная с этим компромиссом – это предел Шеннона, также известная как пропускная способность канала. Названная в честь пионера теории информации Клода Шеннона, она является теоретической максимальной скоростью передачи информации для канала с базовым уровнем шума.

Блочные коды добавляют избыточные блоки битов фиксированного размера в конец исходного сообщения. Они обычно декодируются с помощью hard-decision алгоритмов, которые определяют соответствие битов на основе отношения сигнала к порогу «один или ноль».

Сверточные коды непрерывно добавляют избыточные биты и имеют произвольную длину. Они используют soft-decision алгоритмы с дополнительными битами, чтобы определить значение доверительного коэффициента для того же соотношения. Это позволяет значительно увеличить производительность исправления ошибок, но при этом сильно усложняет код.

Лучший метод исправления ошибок объединяет преимущества обоих подходов в схемах каскадного кодирования, в которых сверточный код выполняет первичную коррекцию, а блочный код исправляет оставшиеся ошибки. Такие схемы могут работать в пределах 1-1,5 дБ от предела Шеннона.

В приложениях волоконно-оптических сетей функция FEC используется для улучшения оптического SNR (OSNR) – одного из ключевых параметров, определяющего максимальную дальность передачи оптического сигнала до точки регенерации. FEC особенно важна для высокоскоростной передачи данных, где требуются усовершенствованные схемы модуляции для минимизации влияния дисперсии. Без включения FEC транспорт 100G был бы ограничен очень короткими расстояниями.

Первым стандартом оптической функции FEC, применяемой в сетях 2,5G и 10G, был блочный код Рида-Соломона (RS). Использование RS-FEC добавило менее 7% избыточной информации и дало улучшение OSNR около 6 дБ, что позволило увеличить дальность передачи информации в 4 раза. Обнаружив, что добавление модернизированной функции FEC — это экономически эффективный путь к улучшению передачи сигналов 10G, поставщики начали предлагать более сложные схемы, названные улучшенным FEC (EFEC). Это дало улучшение OSNR еще на 2 дБ без необходимости увеличения расходов.

Еще один ECC, который стоит упомянуть – это код с малой плотностью проверок на чётность (LDPC). Разработанный для улучшения производительности, LDPC является блочным кодом, содержащим несколько кодов с одной проверкой четности (SPC), которые декодируются параллельно с применением soft-decision алгоритмов. Другой вариант кода – турбокод – это блочный код, построенный из двух или более относительно простых чередующихся сверточных кодов, который создает более равномерное распределение ошибок. Турбокоды работают в пределах доли децибела от предела Шеннона.

Одним из более новых ECC является полярный код, который использует рекурсивную конкатенацию для преобразования физического канала в виртуальные внешние каналы. После достаточного числа рекурсий виртуальные каналы становятся поляризованными, демонстрируя высокую или низкую надежность. Биты данных могут быть распределены по наиболее надежным каналам. Теоретически, полярные коды могут достигать полной пропускной способности канала, но размер блока, необходимый для этого, представляет проблему практичности для реальных приложений.

Поскольку спрос на увеличение пропускной способности продолжает расти, схемы с применением soft-decision FEC (SD-FEC) становятся все более популярными. Несмотря на то, что для использования таких схем требуется около 20% избыточной информации – почти в три раза больше, чем в оригинальной схеме кодирования RS, преимущество, которое оно дает для высокоскоростных приложений, значительно. Например, FEC, улучшающий OSNR на 1-2 дБ в сетях 100G увеличивает дальность передачи на 20-40%.

Читайте также:  Код ошибки пежо 308 p0170

Другим важным фактором, стимулирующим использование FEC, является развитие программно-определяемых сетей SDN, которые создают компоненты, адаптируемые к параметрам физического канала, что позволяет более эффективно распределять ресурсы. Схемы FEC входят в число наиболее оптимизированных алгоритмов SDN. Например, настраиваемое ядро FEC может переключаться между 7% и 20% избыточной информации, которая связана с hard-decision и soft-decision алгоритмами соответственно.

Перевод блога Джерри Колачино – главного системного инженера Precision Optical Transceivers, Inc.

Одним из основных ограничений при проектировании протяженных оптических транспортных сетей является соотношение сигнал-шум (OSNR). WDM-сети должны функционировать в допустимых пределах OSNR, чтобы обеспечить корректную работу систем. Пороговое значение OSNR является одним из ключевых параметров, определяющих как далеко могут передаваться сигналы без необходимости в 3R-регенерации.

Для формирования каналов передачи данных со скоростью выше 10 Гбит используются сложные механизмы модуляции оптических сигналов для достижения аналогичной дальности передачи каналов связи 1-10 Гбит. Данные форматы модуляции необходимы для минимизации последствий таких оптических явлений, как хроматическая и поляризационная модовая дисперсии, а также для формирования оптического сигнала, соответствующего стандартам ITU 100/50-GHz, который используется в современных DWDM-системах. Недостатком высокоскоростных каналов передачи данных является тот факт, что они требуют существенно более высокого соотношения OSNR, чем обычные системы передачи (1-10 Гбит).

В системах 100 Гбит минимальное значение OSNR должно быть на 10 дБ выше, чем для сигналов в системах 10 Гбит. Без определенной коррекции или компенсации OSNR ограничивает 100G передачу данных до очень коротких расстояний, на данный момент максимальная дальность передачи составляет 40 км по стандартному одномодовому оптоволокну. Однако благодаря современным методам коррекции ошибок ( Forward Error Correction — FEC), особенно алгоритму Soft decision FEC, возможно расширение передачи высокоскоростных сигналов на протяженные расстояния.

Forward Error Correction (FEC) является техникой кодирования/декодирования сигнала с возможностью обнаружения ошибок и коррекцией информации методом упреждения. Таким образом, приемное оборудование может выявлять и исправлять ошибки, возникающие в канале передачи. FEC резко снижает количество битовых ошибок (BER), что позволяет увеличить расстояние передачи сигнала без регенерации. Существует несколько FEC-алгоритмов кодирования, которые различаются по сложности и производительности. Одним из наиболее распространенных кодов первого поколения FEC является код «Рида-Соломона» (255, 239). Данный код добавляет немного — 7% проверочных байтов и около 6 дБ дополнительного запаса OSNR, но для высокоскоростных оптических сетей увеличение на 6 дБ является улучшенным показателем производительности, увеличивая расстояние между регенераторами примерно в четыре раза. Некоторые производители предлагают в дополнение к коду «Рида-Соломона» более сложные схемы кодирования второго поколения FEC, например, превентивный параметр для оптических интерфейсов 10G и 40G. Данные алгоритмы, называемые «ультра» FEC или «усиленный» FEC (EFEC), также используют не более 7% объема передаваемого кадра, но в них заложены более сложные алгоритмы кодирования/декодирования, которые и обеспечивают бОльший выигрыш по OSNR — от 2 до 3 дБ, нежели код «Рида-Соломона».

Наряду с разработками первого поколения — «Рида-Соломона FEC» и второго поколения — «EFEC», которые позволили существенно улучшить производительность для 10G- и 40G-сигналов, было разработано более производительное FEC-решение третьего поколения, обеспечивающее увеличенную дальность и оптимальную производительность для высокоскоростных каналов передачи данных 100G.

FEC-решение третьего поколения основано на еще более мощных алгоритмах кодирования/декодирования и итеративного кодирования. В hard decision FEC —блок декодирования определяет «твердое» решение на основе входящего сигнала и иницилизирует один бит информации как «1» или «0» путем сравнения с пороговым значением. Значения выше установленного порога определяются «1», а значения ниже определяются как «0». В декодере используются дополнительные биты для обеспечения более детальной и точной индикации входящего сигнала. Иными словами, декодер не только определяет на основе порогового значения — является ли входящий сигнал «1» или «0», но и обеспечивает фактор надежности «принятия решения». Коэффициент надежности определяется индикатором, показывающим насколько сигнал выше или ниже порогового значения. Использование коэффициента надежности или «вероятности» битов вместе с более сложными алгоритмами FEC-кодирования третьего поколения позволяет декодеру SD-FEC обеспечить дополнительное повышение OSNR на 1-2 дБ. В то время как увеличение OSNR на 1-2 дБ не звучит внушительно, оно может интерпретироваться как возможное увеличение расстояния на 20-40%, что является существенным показателем для 100G. Одним из недостатков soft decision FEC является тот факт, что для него требуется ~20 % объема передаваемого кадра, а это более чем в два раза больше, чем занимаемый объем FEC первого и второго поколения.

С увеличением скорости в канале передачи данных с 10G до 100G, требование к OSNR увеличилось на 10 дБ. Без определенного вида компенсации или коррекции протяженность трасс с канальной скоростью 100G будет весьма ограниченной и неэкономичной.

Алгоритмы FEC первого и второго поколения были использованы на 10G и 40G для снижения BER и увеличения расстояния. SD-FEC является алгоритмом кодирования третьего поколения, обеспечивая передачу данных для оптических сетей 100G на бо́льшие расстояния и с бо́льшим ретрансляционным участком.

Данная подсистема должна осуществлять внешнее кодирование (BCH), внутреннее кодирование (LDPC) и битовое перемежение. Входной поток должен состоять из BBFRAME кадров, а выходной — из FECFRAME кадров. Каждый BBFRAME кадр (Kbch бит) должен быть обработан подсистемой FEC кодирования для формирования FECFRAME кадра (Nldpc бит). Биты проверки на четность (BCHFEC) внешнего систематического BCH кода должны быть добавлены после BBFRAME кадра, а биты проверки на четность (LDPCFEC) внутреннего LDPC кодера должны быть добавлены после поля BCHFEC, как показано на рисунке 12. Рисунок 12 — Формат данных перед битовым перемежением (Nldpc = 64 800 бит для стандартного FECFRAME кадра, Nldpc = 16 200 бит для короткого FECFRAME кадра)В таблице 6(a) приведены параметры кодирования для стандартного FECFRAME кадра (Nldpc = 64 800 бит), а в таблице 6(b) — для короткого FECFRAME кадра (Nldpc = 16 200 бит). Таблица 6a. Параметры кодирования (для стандартного FECFRAME кадра = 64 800 бит). Таблица 6b. Параметры кодирования (для короткого FECFRAME кадра NldpcДанная скорость кодирования используется только для защиты сигнализации L1-pre, но не для защиты данных. Для Nldpc = 64 800, а также для Nldpc = 16 200 скорость LDPC кодирования задается отношением Kldpc/Nldpc. В таблице 6a скорости LDPC кодирования для Nldpc = 64 800 заданы значениями столбца «Скорость LDPC кодирования». В таблице 6b скорости LDPC кодирования для Nldpc = 16 200 заданы значениями столбца «Эффективная скорость LDPC кодирования», т. для Nldpc = 16 200 «идентификатор скорости LDPC кодирования» не эквивалентен скорости LDPC кодирования. Для использования совместно с T2-Lite задан немного другой набор скоростей кодирования — смотрите приложение I. 1 Внешнее кодирование (BCH)Исправляющее BCH кодирование (Nbch, Kbch) должно быть применено к каждому BBFRAME кадру для формирования пакета, защищенного от ошибок. Параметры BCH кодирования для Nbch = 64 800 приведены в таблице 6a, а для Nbch = 16 200 — в таблице 6b. Порождающий полином BCH кодера для исправления t ошибок получается перемножением первых t полиномов в таблице 7a для Nbch = 64 800 или в таблице 7b для Nbch = 16 200. = 16 200 бит). Таблица 7a. BCH полиномы (для стандартного FECFRAME кадра Nldpc= 64 800 бит). Таблица 7b. BCH полиномы (для короткого FECFRAME кадра Nldpc= 16 200 бит). 2 Внутреннее кодирование (LDPC)Параметры LDPC кодирования (Nldpc, Kldpc) приведены в таблице 6. 1 Внутреннее кодирование для стандартного FECFRAME кадраПосле обработки всех информационных битов окончательные биты четности получаются следующим образом:2 Внутреннее кодирование для короткого FECFRAME кадраKldpc битов, кодированных кодом BCH, для формирования Nldpc битов должны быть подвергнуты систематическому кодированию, описанному в разделе 6. 1 с заменой таблицы 8a на таблицу 8b, а таблиц приложения A на таблицы приложения B. Таблица 8b. Значения для коротких кадров. 3 Битовый перемежитель (для 16-QAM, 64-QAM и 256-QAM)Выходные данные Λ LDPC кодера должны быть подвергнуты битовому перемежению, которое состоит из перемежения битов четности с последующей процедурой перемежения с закручиванием столбцов. Выходные данные перемежителя битов четности обозначаются U, а выходные данные перемежителя с закручиванием столбцов — V. В перемежителе битов четности перемежение битов четности происходит согласно формулам:где Qldpc указана в таблицах 8a и 8b. Для T2-Lite, при модуляции QPSK только со скоростями кодирования 1/3 и 2/5 применяется только перемежение битов четности (смотрите приложение I). Конфигурация перемежения с закручиванием столбцов для каждого формата модуляции указана в таблице 9. Таблица 9. Структура битового перемежителя. В блоке перемежения с закручиванием столбцов биты данных ui из перемежителя битов четности поочередно постолбцово записываются в перемежитель с закручиванием столбцов и поочередно построчно считываются из него (MSB заголовка BBHEADER считывается первым) как показано на рисунке 13, где начальная позиция записи в каждом столбце сдвинута на tc в соответствии с таблицей 10. Данный перемежитель описывается следующим:Таким образом, для 64-QAM и Nldpc = 64 800 порядок выходных битов перемежителя с закручиванием столбцов будет выглядеть следующим образом:Рисунок 13 — Схема битового перемежения для стандартной длины FECFRAME кадра и 16-QAMТаблица 10. Параметр закручивания столбцов tcПеревод раздела 6. 1 «FEC encoding» стандарта ETSI EN 302 755 версии 1. Аппаратная коррекция ошибок (FEC) в сетях стандарта nanoNET (IEEE 802. 4a)В качестве примера можно привести повсеместно распространенные технологии Ethernet+TCP/IP. В случае беспроводных сетей разработчики наряду с теми или иными способами обнаружения ошибок дополнительно применяют средства их исправления. Общая идея как обнаружения, так и исправления ошибок основывается на использовании избыточных кодов. Простейший пример — это введение так называемого «бита четности» — такой прием позволяет обнаружить единичную ошибку. На передающей стороне значение бита четности определяется следующим правилом: при четном количестве единиц в блоке информации проверочный бит должен быть равен нулю, в противном случае — единице. Таким образом, общее количество единиц в блоке (включая избыточный бит) должно быть четным. Если на приемной стороне количество единиц оказалось нечетным, этот блок считается поврежденным. Добавление одного бита фактически увеличивает число возможных кодовых слов в два раза, но при этом только половина из них является допустимо, разрешенными, а другая половина в силу обозначенных правил невозможна, запрещена. Декодер, встретив какую-либо комбинацию битов, которая входит в число невозможных, делает вывод, что кодовое слово было передано с ошибкой. Более сложные схемы основаны на аналогичной идее, но подразумевают большее количество добавочных битов и более сложные правила формирования их комбинаций; при этом эти правила дают возможность на приемной стороне определить, какой именно бит (или биты) были повреждены. Поскольку применение рассматриваемых методов обнаружения и/или коррекции ошибок связано с передачей дополнительных проверочных битов, то совершенно ясно, что применение средств такого рода оправданно именно в ситуациях, когда велика вероятность сбоя при передаче — в противном случае введение дополнительных данных приведет лишь к уменьшению полезной пропускной способности канала передачи. Коррекция ошибок в nanoNET

Читайте также:  Код ошибки unexpected kernel mode trap как исправить ошибку

Какой набор кодов используется для алгоритмов обнаружения и исправления ошибок и процедуры прямой коррекции ошибок?

Рис. Битовые преобразования в трансмиттере и ресивереПосле формирования кадра (составления заголовков и записи данных в трансивер) и получения команды начать передачу вычисляются контрольные суммы заголовков кадра CRC1 и поля данных CRC2. Затем (при включении соответствующей опции) поле данных и контрольная сумма CRC2 шифруются с помощью 128-битного ключа. После этого весь кадр подвергается так называемому скремблированию (перемешиванию битов) — это делается для минимизации вероятности появления длинных цепочек нулей и повышения надежности передачи. Далее битовая последовательность проходит через описанную ниже схему помехоустойчивого кодирования FEC и только потом преобразуется в чирп-сигналы (импульсы длительностью 1 мкс с наполнением возрастающей и (или) убывающей частотой). На приемной стороне процесс происходит в обратном порядке, то есть сначала из помехоустойчивого кода получаются информационные биты, возможно, с исправлением ошибок, затем производится процедура, обратная перемешиванию, расшифровка и проверка контрольных сумм. При этом контрольное суммирование и перемешивание являются обязательными стадиями (скремблирование рекомендовано к применению), в то время как шифрование и помехоустойчивое кодирование таковыми не являются (помечены на рис. 1 серым фоном). Отметим, что трансиверы nanoNET можно конфигурировать на прием или передачу как с использованием корректирующих кодов, так и без их использования. При этом в передаваемом кадре не содержится никаких сведений о том, подвергался ли он такому кодированию FEC или нет. Это означает, что для того чтобы передатчик и приемник, выражаясь образно, «разговаривали на одном языке», нужно, чтобы они были одинаковым образом сконфигурированы в плане использования или неиспользования FEC. Для кодирования FEC с возможностью исправления ошибок передачи трансиверы nanoNET используют классический код Хэмминга (7,4), то есть к каждой четверке информационных битов добавляется 3 проверочных, общая длина кодового слова равна 7. Из теории корректирующих кодов известно, что такой код имеет минимальное кодовое расстояние 3, и, следовательно, приемник способен либо исправить одиночную ошибку, либо обнаружить двойную. Особенностью реализации помехоустойчивого кодирования в передатчиках рассматриваемого стандарта является совместное кодирование двух соседних полубайтов за счет перемежения битов кодовых слов, полученных при кодировании этих двух полубайтов: сначала кодируется один полубайт, то есть из комбинации битов (b0, b1, b2, b3) получается кодовое слово:

Какой набор кодов используется для алгоритмов обнаружения и исправления ошибок и процедуры прямой коррекции ошибок?

(символами bi обозначены информационные биты, а символами Pk – проверочные биты), затем кодируется другой полубайт, получается кодовое слово:

Какой набор кодов используется для алгоритмов обнаружения и исправления ошибок и процедуры прямой коррекции ошибок?

далее эти два кодовых слова перемежаются следующим образом:

Какой набор кодов используется для алгоритмов обнаружения и исправления ошибок и процедуры прямой коррекции ошибок?

Это позволяет исправлять двойные ошибки в результирующем 14-разрядном кодовом слове даже в том случае, если эти ошибки произошли в соседних битах. Данное свойство особенно важно при использовании четверичной системы счисления, которая используется в nanoNET для кодирования одного символа данных двумя битами и позволяет передавать данные на скорости 2 Мбит/с. Регистры модулей nanoPAN, связанные с FECFEC, CRC2 type, Symbols and Modulation (адрес 0х39 — регистр, отвечающий за включение FEC, тип контрольной суммы CRC2, систему модуляции и длину символа):

Какой набор кодов используется для алгоритмов обнаружения и исправления ошибок и процедуры прямой коррекции ошибок?

TxRxMode — выбор режима (Auto или Transparent, по умолчанию TxRxMode=0=Auto). TxRxFwdEc — включение или выключение FEC, по умолчанию TxRxFwdEc=0, FEC отключен. TxRxCrcType — указание типа контрольной суммы данных. TxRxData Rate – выбор битовой скорости передачи (500 или 1000 Ksps, по умолчанию TxRxDataRate=0, 1000 Ksps). TxRxMod System — выбор способа модуляции (двоичная или четверичная, по умолчанию TxRxModSystem=0, двоичная). Receive FEC Single Bit Error Count (адреса 0х57 и 0х58 — регистры, в которых содержится число единичных ошибок, исправленных в предыдущем принятом кадре).

Какой набор кодов используется для алгоритмов обнаружения и исправления ошибок и процедуры прямой коррекции ошибок?

Какой набор кодов используется для алгоритмов обнаружения и исправления ошибок и процедуры прямой коррекции ошибок?

RxFec1BitErr — 15-разрядное число единичных ошибок, встретившихся в предыдущем принятом кадре. Этот регистр содержит корректную информацию только в случае, если бит TxRxFwdEc в регистре 0х39 выставлен в значение 1). Регулирование амплитуды выходного сигнала

Читайте также:  Диспетчер печати неоднократно аварийно завершает работу при использовании процедуры удаленно и [решено] на серверах

Какой набор кодов используется для алгоритмов обнаружения и исправления ошибок и процедуры прямой коррекции ошибок?

Рис. Зависимость мощности выходного сигнала от значения, записанного в регистр RfTxOutputPowerТаким образом, трансиверы поддерживают 19 градаций мощности сигнала, которые соответствуют значениям (0, 1, 2, 3, 4, 5, 21, 22, 23, 39, 40, 41, 57, 58, 59, 60, 61, 62, 63) в регистре RfTxOutputPower. Порядок проведения экспериментовВ начале цикла измерений узел-мастер в течение 10 секунд посылал узлу-слейву кадры длиной 128 байт на максимальной выходной мощности. В журнал работы заносилось как значение общего количества отосланных кадров, так и количество кадров, на которые удаленный узел прислал подтверждение о приеме. Каждый кадр передавался не более чем c тремя ретрансмиссиями, которые автоматически осуществлялись в случае неуспешного приема. После 10-секундного периода узел-мастер последовательно посылал узлу-слейву кадры, постепенно уменьшая амплитуду сигнала со значения 63 до 0, и фиксировал количество ретрансмиссий. Если счетчик попыток передачи пакета для текущей мощности сигнала равнялся трем, это означало, что пакет так и не был доставлен адресату (узлу-слейву). Пакеты подтверждения о приеме посылались всегда на максимальной мощности (63). Типичная запись в журнале эксперимента выглядела следующим образом. FEC off и FEC on — выключение и включение режима коррекции ошибок соответственно. SENT=3973 — количество отправленных за 10 секунд кадров по 128 байтов (на максимальной мощности сигнала). OK=3973 — количество переданных пакетов, на которые было получено подтверждение о приеме. RTC: 000004395914 — временная метка регистрации данных (аппаратная поддержка в трансиверах Nanonet). Строчка, обозначенная синим цветом на рис. 3, содержит набор цифр, каждая из которых обозначает уровень мощности отправленного информационного кадра. Всего 19 градаций — от 18 (написана только восьмерка, а единица для компактности в записи в журнале опущена) до 0.

Какой набор кодов используется для алгоритмов обнаружения и исправления ошибок и процедуры прямой коррекции ошибок?

Рис. Пример записей в журнале о двух последовательных измеренияхСледующие три (для увеличения достоверности) строки соответствуют сериям отправки кадров с уменьшающейся силой сигнала. Каждый символ в этих строчках обозначает количество ретрансмиссий, которое потребовалось для подтвержденной передачи. Если их не было, то есть кадр был передан с первой попытки, вставлялся пробел. Например, в первой серии кадры с уровнем мощности 18, 17, 16 и т. до 9 отсылались с первой попытки. А вот при уровне сигнала в 9 условных единиц потребовалась одна дополнительная ретрансмиссия; далее на восьмом уровне мощности две ретрансмиссии, а затем вообще не было зарегистрировано безошибочных передач. Другими словами, пока сигнал узла-мастера был достаточно сильным (соответствующие значения регистра RfTxOutputPower лежали в диапазоне от 63 до 39), узел-слейв подтверждал прием каждого пакета. Как только уровень мощности стал равным 9, начали появляться проблемы с приемом. А для уровней сигнала от 7 до 0 вообще не было зарегистрировано ни одной успешной передачи. То есть чем хуже были условия приема-передачи, тем ближе к началу третьей строки возникали цифры 1, 2 и 3. Пользуясь таким журналом, можно ввести некий новый параметр, характеризующий необходимую (минимальную) амплитуду выходного сигнала, достаточную для успешной передачи в конкретных условиях. Его можно назвать пороговой мощностью между безошибочным и ошибочным приемом. Для приведенного выше примера (первая серия) таким порогом было 9. Чем ниже порог, тем более стабильная была передача при неизменной мощности радиосигнала. Таким образом, качество радиосвязи в проведенных экспериментах контролировалось двумя параметрами: процентом безошибочных передач для кадров, отосланных на максимальной мощности, и усредненной по трем значениям пороговой мощностью успешной передачи. Результаты экспериментов

Какой набор кодов используется для алгоритмов обнаружения и исправления ошибок и процедуры прямой коррекции ошибок?

Рис. Процент безошибочных передач кадров длиной 128 байтов в зависимости от порогового уровня выходного сигнала на передающей стороне и включения или выключения коррекции ошибок FECПри построении сетей датчиков и других распределенных систем одним из актуальных вопросов оказывается управление энергопотреблением. Главным инструментом в этом случае является варьирование мощности выходного сигнала (чем больше его амплитуда и потребляемый ток, тем больше зона уверенного приема). Кроме этого, намеренное уменьшение мощности иногда используется для снижения вероятности возникновения коллизий и сетевых проблем типа «скрытый узел». Для организации надежной радиосвязи по возможности без ретрансмиссий необходимо обеспечить уровень потерь не выше 5–10%. Тогда для осуществления передачи потребуется максимум одна ретрансмиссия. Поэтому можно утверждать, что после тестирования канала радиосвязи и оценки пороговой мощности независимо от того, включена коррекция FEC или нет, если трансиверы связываются между собой в условиях с пороговыми уровнями сигнала не выше 10 в условных единицах, это почти гарантирует малоошибочную передачу. В случаях осуществления связи с уровнями сигнала 15–17 процент успешных передач резко падает, а при уровне 18 связь крайне нестабильная (рис. Использование тестирования линий таким способом может помочь при проектировании маршрутов в сложных радиосетях типа mesh (ячеистая).

Какой набор кодов используется для алгоритмов обнаружения и исправления ошибок и процедуры прямой коррекции ошибок?

Рис. Количество безошибочных передач кадров за 10 секунд (левая ось) и соответствующий ему пороговый уровень выходного сигнала на передающей стороне (правая ось) при включенной и выключенной коррекции ошибок FEC для 64 точек измеренийПосле набора данных они были отсортированы по убыванию значений количества безошибочно переданных кадров для режима с выключенной коррекцией ошибок FEC (монотонно убывающая кривая из сплошных квадратов на рис. 5, левая ось). Ей соответствует почти монотонно возрастающая линия с полыми квадратами. При пороговых уровнях мощности до 10 (правая ось для полых квадратов), уровень безошибочных передач достаточно высок, а уже после 13-й точки по горизонтальной оси начинает снижаться. Подобная картина наблюдается и для кривых с ромбами (включенный FEC). До 33-й точки количество успешных передач максимально, тогда как с увеличением пороговой мощности выше 10 процент потерь также увеличивается. Разница в максимальных значениях количества отосланных кадров за 10 секунд для включенного и выключенного режима коррекции ошибок составляет примерно 40%, что объясняется увеличением времени передачи из-за введенных в поток дополнительных битов, обеспечивающих избыточность. Другими словами, при включении опции FEC скорость передачи падает примерно в 1,4 раза, что, однако, резко повышает надежность связи и, соответственно, увеличивает зону уверенного приема. При сравнении значений двух кривых с полыми квадратами и ромбами можно отметить, что при одних и тех же условиях (для одной точки на графике) кривая с квадратами находится выше, в среднем, примерно на 4 деления по правой шкале. Это говорит о том, что благодаря коррекции ошибок можно из более слабого физического входного сигнала «добыть» информационную составляющую без использования дополнительных аппаратных усилителей и средств радиочастотной фильтрации.

Какой набор кодов используется для алгоритмов обнаружения и исправления ошибок и процедуры прямой коррекции ошибок?

Рис. Зависимость минимального уровня мощности (в соответствии со значением регистра RfTxOutputPower)ЗаключениеКак уже было показано, введение аппаратной коррекции ошибок практически всегда позволяет достичь более устойчивой связи. «Платой» за это является уменьшение пропускной способности радиоканала. В заключение необходимо отметить, что включение опции FEС не избавляет от ошибок, оно лишь помогает некоторые из них исправить. Даже если FEC-декодер вследствие случайности помех не определит наличие ошибки (например, строенная, счетверенная), то это почти наверняка будет определено на приемной стороне при CRC-декодировании. Авторы благодарят Д. Екимова (Петрозаводский государственный университет) за высказанные критические замечания. Данное исследование проведено в рамках проекта «Научно-образовательный центр по фундаментальным проблемам приложений физики низкотемпературной плазмы» (RUX0-013-PZ-06), поддерживаемого Министерством образования и науки РФ, Американским фондом гражданских исследований и развития (CRDF) и Правительством Республики Карелия, а также частично финансировалось Техническим Научно-исследовательским Центром Финляндии (VTT) в рамках договорных работ.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *