2014-10-18 1 views
0

Я работаю в части канала кодирования. Мое главное кодирование с битовой информацией. Например, если входной бит равен x=[1 0 1] и G матрицаКак кодировать информацию о пакетах с помощью XOR в matlab

G = 

    1  0  0  1 
    0  0  1  0 
    1  1  0  1 

затем кодирующий символ будет y=mod(x*G,2)% mod to convert to binary bit

y = 

    0  1  0  0 

Это очень простая идея для бит, кодирующих обработку канального кодирования. Теперь я хочу сделать карту этой работы для кодирования пакетов. В некоторых документах упоминалось, что мы можем сделать это для кодирования пакетов, если мы рассмотрим, что каждый пакет равен n байтам. Например, у меня есть текстовый файл размером 3000 байт. Теперь я делю файл на 1000 пакетов. Следовательно, каждый пакет имеет размер 3 байта. Моя проблема в том, что я сделал с битовой кодировкой. Однако у меня нет никакой идеи работать с кодировкой пакетов. Пожалуйста, дайте мне знать, если вы работали с этой проблемой. Я слышал, что бит-кодирование имеет только два уровня 0 и 1, поэтому мы можем использовать GF = 2. Если мы работаем для уровня пакета, мы должны рассмотреть GF> 2. Я не уверен, что enter image description here Второй вопрос заключается в том, что, если размер пакета равен 50 байтам вместо 3 байтов?

+0

рисунка, который включен прохладно, но это просто описывает операцию XOR. Кстати, я думаю, вы пишете байты, где вы имеете в виду бит. – tashuhka

+0

Извините, это байт. Не могли бы вы предложить мне, как закодировать пакет, размер которого составляет 50 байт для каждого пакета. – user3051460

ответ

1

Во-первых, когда вы говорите о GF(p^m), вы имеете в виду поле Галуа, где p - простое число, которое указывает степень полинома. Следовательно, можно определить поле с элементами pm. В вашем случае, p=2 и m=3. Однажды у вас есть многочлен, вы можете применить его, используя две различные схемы кодирования:

  • Block coding. Вы можете разбить пакет на несколько блоков по 3 бита и закодировать каждый блок независимо. Используйте нулевое дополнение, если они не кратные.
  • Convolutional coding. Вы применяете полином как скользящий алгоритм.

Второй подход более прочный и имеет более низкие задержки.


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

Вы матрица G фактически определяя 4 полиномов для ввода X=[1 x x^2], а именно Y1=1+x^2, Y2=x^2 и Y3=x, Y4=1+x^2

+0

Thank tashuhka. Правильно, GF - это поле Галуа. Итак, если я работаю над битами, мне нужен только GF (2^1) (возможный случай только 0 или 1). Например, для расширения до уровня пакета каждый пакет включает в себя 3 байта как 101 или 100 ... у нас будет 8 возможных вариантов вывода от 000 до 111, правильно? Итак, GF должен быть GF (2^3), правильно? Поэтому я думаю, что p = 2 и m = 3 в вашем объяснении – user3051460

+0

Да, p = 2 и m = 3 – tashuhka

+0

Спасибо. Не могли бы вы увидеть мой второй вопрос, как насчет того, если размер пакета равен 50 байтам, а мы используем GF = 2^8? Некоторые биты верхнего порядка будут потеряны, правильно? Это справочный документ на стр. 18 http: // www.cse.dmu.ac.uk/~shakeel/files/Unequal%20error%20protection%20using%20Fountain%20codes%20with%20applications%20to%20video%20communication.pdf – user3051460