Главная страница
Навигация по странице:

  • Исходные коды программ, использованные при аппаратной реализации кодека РС

  • Описание изобретения «Мягкий декодер последовательного турбокода»

  • Блок Блок приема приоритетов 7 11 Блок Блок стираний синдромов 8

  • Сверточные коды. 4 Дисер с 15 СК и Мягкое дек с 55. Программноаппаратная реализация оптимального алгоритма декодирования каскадных кодов на базе кодов рида соломона в адаптивных системах обмена данными


    Скачать 5.5 Mb.
    НазваниеПрограммноаппаратная реализация оптимального алгоритма декодирования каскадных кодов на базе кодов рида соломона в адаптивных системах обмена данными
    АнкорСверточные коды
    Дата09.03.2020
    Размер5.5 Mb.
    Формат файлаdocx
    Имя файла4 Дисер с 15 СК и Мягкое дек с 55.docx
    ТипДиссертация
    #111324
    страница21 из 21
    1   ...   13   14   15   16   17   18   19   20   21

    ПРИЛОЖЕНИЕ А


    Исходные коды моделей, использованных в работе
    В данном приложении приведены исходные коды программ, описывающих работу использованных в работе моделей при аппаратной реализации кодека РС. Представленные модели разработаны в среде MATLAB. Полные тексты программ содержатся на прилагаемом CD-диске в папке \\Source\MODELS.


    ПРИЛОЖЕНИЕ Б


    Исходные коды программ, использованные при аппаратной реализации кодека РС
    В данном приложении приведены исходные коды программ, используемых при аппаратной реализации кодека РС. Представленные программы разработаны в среде Quartus II и написаны на языке описания аппаратных схем System Verilog. Полные тексты программ содержатся на прилагаемом CD-диске в папке

    \\Source\CODEC.

    ПРИЛОЖЕНИЕ В


    Описание изобретения «Мягкий декодер последовательного турбокода»
    Изобретение относится к технике связи и может использоваться при проектировании новых и модернизации существующих систем передачи дискретной информации.

    Известны устройства восстановления стираний и исправления ошибок, использующие мягкие решения символов для повышения достоверности приема информации.

    В патентах № 2256294 и № 2344556 описаны методы итеративных преобразований индексов мягких решений кодовых комбинаций двоичных блоковых кодов, которые обеспечивают исправление одиночных ошибок за счет последовательного повышения индексов мягких решений в системе проверочных соотношений кодов. Недостатком метода является его ограниченная возможность по исправлению нескольких ошибок.

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

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

    На фигуре 1 приведена схема предложенного мягкого декодера последовательного турбокода, содержащая блок приема 1, блок индексов 2, блок статистических решений 3, блок итераций 4, блока внутреннего кода 5, блок приоритетов 6, блок стираний 7, блок локаторов стираний 8, блок производной 9, буфер внешнего кода 10, блок синдромов 11, блок произведений 12, блок исправления стираний 13 и выходной блок 14. Выход блока приема 1 через блок индексов 2 подключен к блоку статистических решений 3, первый выход которого подключен к одному входу блока итераций 4, а второй выход блока статистических решений 3 подключен ко второму входу блока приоритетов 6, при этом выход блока итераций 4 подключен к входу блока внутреннего кода 5, первый выход которого подключен к буферу внешнего кода 10, а второй и третий выходы блока внутреннего кода 5 соответственно подключены к другому входу блока итераций 4 и к первому входу блока приоритетов 6, а выход этого блока 6 подключен к входу блока стираний 7, один выход которого подключен ко второму входу блока синдромов 11, другой выход блока стираний 7 подключен к блоку локаторов стираний 8, а третий выход блока стираний 7 подключен к третьему входу выходного блока 14, при этом первый вход блока синдромов 11 подключен к одному выходу буфера внешнего кода 10, другой выход которого подключен к первому входу выходного блока 14, при этом выход блока синдромов 11 подключен к первому входу блока произведений 12, а его второй вход подключен ко второму выходу блока локаторов стираний 8, первый выход которого через блок производной 9 подключен ко второму входу блока исправления стираний 13, тогда как его первый вход подключен к выходу блока

    произведений 12, а выход блока исправления стираний 13 подключен ко второму входу выходного блока 14, выход которого является общим выходом декодера.

    3 4

    Блок Блок

    статистических итераций

    решений

    2 5 10

    Блок Блок Буфер

    индексов внутреннего внешнего

    кода кода

    Вход 1 6

    Блок Блок

    приема приоритетов


    7 11

    Блок Блок

    стираний синдромов


    8 12

    Блок Блок

    локаторов произведений стираний


    9 13

    Блок Блок

    производной исправления

    стираний


    14

    Выходной блок
    Выход


    Фигура 1 – Схема мягкого декодера последовательного турбокода


    Работу декодера рассмотрим на примере использования в качестве внутреннего кода – кода с проверкой четности, а в качестве внешнего кода – код РС (7, 3, 5), построенного над полем GF(23).

    Пусть порождающий полином кода РС g( x )определен как
    g( x ) ( x )( x 2 )( x 3 )( x 4 ).

    Используя таблицу сложения элементов в поле

    GF23 , получают значение

    g( x ) в явном виде: g( x ) x4 x33x20x3. Пусть с выхода источника




    информации на вход кодера поступили символы вида

    Vinf

    264 . Для


    кодирования вектора

    Vinf

    кодом РС повышают его степень на величину

    xnk ,


    получая

    Vinf ( x ) x42 x56 x64 . Обычно эта процедура выполняется на


    передаче с использованием сдвигового регистра с обратным связями,

    соответствующими значению g(x), при этом на выходе кодера внешнего кода


    образуется вектор с q-ми символами Vkc

    вида:

    Vkc ( x )q 2x4x25x35x42x56x64
    .


    Или в двоичном представлении:

    Vkc ( x )2 (100 ) x(110 ) x2(111) x3(111) x4(100 ) x5(101) x6(110 )
    и после применения внутреннего кодера с проверкой четности в канал связи будет направлен вектор:

    Vtk (1001)(1100 )(1111)(1111)(1001)(1010 )(1100 )

    при этом передатчик логические единицы передает с энергией Е, а логические нули с энергией .

    После прохождения канала связи блок приема 1 мягкого декодера последовательного турбокода принимает двоичные символы, которые в зависимости от уровня помех в канале связи оказываются в большей или меньшей степени искаженными. Работа блока приема 1 организуется по принципу стирающего канала связи с симметричным интервалом стирания ρ, где 0 ≤ ρ < 1 и представляет долю расстояния в системе условных плотностей вероятностей в

    гауссовском канале связи между математическими ожиданиями  и ,

    соответствующих приему информационных нулей и единиц. В целях повышения достоверности МРС параметр ρ выбирают достаточно большим, например, ρ = 0,9. Зафиксированный в блоке приема 1 сигнал z и соответствующее ему

    жесткое решение 0 или 1 передаются в блок индексов 2.

    Блок индексов 2 предназначен для формирования целочисленных МРС. Если

    0,9

    z 3

    (здесь σ – среднее квадратическое отклонение), то к жесткому


    решению добавляется МРС максимального значения, принятого в данном

    приемнике, например,

    max

    7 . Для всех других значений

    0  z  0,9

    целочисленные показатели МРС получают по правилу:

    max

    • z

    i  


    E


      ,

    где, символ

    означает округление значения i

    до целочисленной величины в

    сторону уменьшения (расчет на наихудший случай). При известных ,

    max и Е

    значения

    iz

    представляют легко вычисляемую линейную зависимость. На


    выходе блока индексов жесткие решения заменяются на значения «минус» для нулей и значения «плюс» для единиц. Таким образом, на выходе этого блока

    может появиться кортеж данных вида …  5 ;

     6 ;

     7 ;

    • 7 ;... Эти данные

    поступают на вход блока статистических решений 3.

    Блок статистических решений 3 осуществляет оценку параметров q -х комбинаций внутреннего кода, используя данные из блока индексов 2. Пусть

    выбраны

    max  7 ,

    E  2 и

      0,9 . Тогда

    i 5,5 z . Для получения статистической

    оценки на длине кодового вектора внутреннего кода определяется среднее

    значение кортежа МРС

    M

    и оценивается разброс показателей МРС в виде


    1 n 1
    n


    i1

    M i

    2 , где n длина кодового вектора внутреннего кода.

    Указанные параметры из блока статистических решений 3 через второй выход этого блока поступают на второй вход блока приоритетов 6. При этом жесткие решения комбинации внутреннего кода вместе с их МРС через первый выход блока статистических решений 3 поступают на один вход блока итераций 4.

    Блок итераций 4, получив кодовый вектор внутреннего кода, направляет его на вход блока внутреннего кода 5, где осуществляется декодирование вектора по заданным для этого кода проверочным соотношениям. Если проверочные

    соотношения выполняются, то вырабатывается сигнал pc, который через третий выход этого блока поступает на первый вход блока приоритетов 6. Если

    проверочные соотношения не выполняются, то вырабатывается сигнал ( pc) и
    осуществляется попытка восстановления кодового вектора за счет итеративных преобразований. Для этого данные о векторе через второй выход блока внутреннего кода 5 направляются на другой вход блока итераций 4.

    Блок итераций 4 обрабатывает подобные данные по правилу:
    ,


    L(ki

    ) L(p) 11m signL(ki

    ) signL(p) minL(ki

    ) , L( p)


    здесь функция

    sign( )

    возвращает знак своего аргумента;

    L( ki)

    • МРС,

    участвующего в формировании проверочного бита;

    L( p)

    • мягкое решение


    проверочного символа; m – число исключенных из анализа положительных МРС, входящих в корректируемый вектор. После выполнения итеративных преобразований кодовый вектор возвращается в блок внутреннего кода 5.

    Блок приоритетов 6 работает согласно целевой функции, имеющей вид:

    QW ; M( );( ) signW ; M( );( ),

    W  pc

    max

    min

    где W – знак выполнения проверочных соотношений.

    В соответствие с

    Q

    блок приоритетов 6 на первом шаге обработки

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

    степень разброса зафиксированных приемником решений. Максимальное

    значение

    M

    соответствует высокой достоверности принятых символов, но

    может быть получено множество одинаковых значений

    M

    при различной


    совокупности оценок, поэтому необходимо дополнительно оценивать параметр

    . Если возникает ситуация неопределенности, когда

    Mi

    Mj

    при

    i j , то приоритетной для последующей обработки данных является комбинация,

    у которой i  j.

    Пример расчета приоритета для первого символа кодовой комбинации кода РС приведен в таблице.

    Символы Vtk

    с проверкой четности

    Представление символов с влиянием помех

    z

    i i


    W

    M ()

    G()


    Приоритет


    2  1001

    +1,41-0,20

    -1,41+0,80

    -1,41-0,54

    +1,41+0,42

    +1,21

    -0,61

    -1,95

    +1,83

    6,7=6

    3,3=3

    2,0=7

    1,8=7


    +


    5,75


    3,58


    Высокий

    Выполнение расчета функции

    Q для второго символа 4

    кода РС




    Символы Vtk

    с проверкой четности

    Представление символов с влиянием помех

    z

    i i


    W

    M ()

    G()


    Приоритет


    4  1100

    +1,41-0,48

    +1,41+0,16

    -1,41+1,75

    -1,41-0,49

    +0,93

    +1,57

    +0,34

    -1,90

    5,1=5

    1,6=7

    1,9=2

    1,9=7





    5,50


    3,66


    Низкий

    Комбинация внутреннего кода в виде последовательности 5 7 2 7

    направляется в блок итераций 4, где выполняются следующие действия: из

    комбинации удаляется символ

    • 7 , который считается принятым надежно. В этом

    случае значение шагам итераций:

    m 1. Оставшиеся символы  5

    3  7

    преобразуются по

    Шаг 1.

    [+2

    +0] + (–7) = –2,

    поскольку

    2<7;




    [+5

    +0] + (–7) = –5,

    поскольку

    5<7.

    Шаг 2.

    [+2

    –5] + (–7) = +3,

    поскольку

    3<7;




    [+5

    –2] + (–7) = –3,

    поскольку

    3<7.

    Шаг 3.

    [+2

    –3] + (–7) = +1,

    поскольку

    1<7;




    [+5

    +3] + (–7) = –7,

    поскольку

    8>7.


    После шага 3 итеративных преобразований возможна коррекция символов исходной последовательности: (+5 +1=+6); (+3–7=–4); –7. После восстановления

    вычеркнутого символа будет получено +6 +7 –4 –7. Следовательно

    первоначально принятый символ кода РС 5

    преобразуется в символ

    4 .

    Полученное значение второго символа используется как индикатор правильности восстановления кодового вектора кода РС. Для выполнения последующей

    процедуры декодирования комбинации кода РС в целом целесообразно приоритет восстановленной комбинации с «низкого» поменять на «сомнительный».

    Расчет значений Q других значений кодового вектора кода РС


    Символы Vtk

    с проверкой четности

    Представление символов с влиянием помех

    z

    i i


    W

    M ()

    G()


    Приоритет


    5  1111

    +1,41-2,92

    +1,41+1,72

    +1,41-0,90

    +1,41-0,24

    -1,51

    +3,31

    +0,51

    +1,17

    1,5=7

    3,3=7

    2,8=2

    6,4=6


    -


    5,50


    5,67


    Низкий


    5  1111

    +1,41+0,34

    +1,41-0,88

    +1,41-1,07

    +1,41+0,47

    +1,75

    +0,53

    +0,34

    +1,88

    1,7=7

    2,9=2

    1,9=1

    1,9=7


    +


    4,25


    10,25


    Сомнительный


    2  1001

    +1,41+1,46

    -1,41-0,67

    -1,41+0,61

    +1,41+1,15

    +2,87

    -2,08

    -0,80

    +2,56

    2,9=7

    2,1=7

    2,0=4

    2,6=7


    +


    6,25


    2,25


    Высокий


    6  1010

    +1,41-0,19

    -1,41-0,90

    +1,41-0,70

    -1,41-0,36

    +1,22

    -2,31

    +0,71

    -1,77

    6,7=6

    2,3=7

    3,9=3

    1,8=7


    +


    5,75


    3,58


    Высокий


    4  1100

    +1,41+0,05

    +1,41+0,56

    -1,41+1,28

    -1,41-1,18

    +1,46

    +1,97

    -0,13

    -2,59

    1,4=7

    2,0=7

    0,7=0

    2,6=7


    +


    3,58


    12,25


    Сомнительный

    Данные из блока внутреннего кода 5 в виде символов кода РС накапливаются в буфере внешнего кода 10, а из блока приоритетов 6 поступают в блок стираний 7.

    Блок стираний 7 формирует данные, выделяя в отдельные группы символы кода РС с «высоким» и «низким» приоритетом. Символы с «сомнительным» приоритетом могут дополнять группу символов с «низким» приоритетом в зависимости от исправляющей способности кода. Определив число S

    ненадежных символов кода РС, блок 7 стирает их при условии, что

    S dmin 1.

    При

    dmin  5

    декодер кода РС способен восстановить четыре стирания. Кодовый


    вектор кода РС принимает вид синдромов 11.

    2 S1S2 S326 S4

    и это значение передается в блок

    Блок синдромов 11 учитывает значения стираний в сочетании с их

    позициями. Работа блока представляется таблицей.

    Расстановка символов кодового кода РС вектора по позициям

    Номер позиции

    0

    1

    2

    3

    4

    5

    6

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

    2

    S1

    S2

    S3

    2

    6

    S4

    На основании этих данных в блоке 11 рассчитываются синдромы для позиций 1; 2; 3; 6. Следует иметь в виду, что независимо от номера стертой позиции значения синдромов стертых позиций (при наличии четырех стираний)

    вычисляются всегда для j 0; j 1; j 2; j 3.


    Множитель

    0 1 1

    S j0 20 24 65 2 6 4 5 ;


    Множитель 11  2

    S j1 20 28 610 2 3 2 3 ;


    Множитель

    2 1 3

    S j2 20 212 615 2 0 0 2 ;


    Множитель 3+1=4

    S j3 20 216 620 2 4 5 6 .


    Итогом работы блока 11 является полином синдромов

    S( x ) 5 x3 x22 x36 .

    Одновременно с этим по известным стертым позициям, полученных из блока стираний 7, в блоке локаторов стираний 8 определяется полином локаторов стираний

    L(x)  (1 x)(1 x2 )(1 x3 )(1 x6 )  (1 x2 xx23 )(1 x6 x3 x29 ) 

     (1 x4 x23 )(1 x4 x22 )  1 x2 (2 3 )  x3(6 0 )  x45

     1 x26 x32 x45 .

    Или в окончательном виде

    L( x ) 1 x26 x32 x45 . Данные из блока


    синдромов 11 и блока локаторов стираний 8 объединяются в блоке произведений

    12. При выполнении этой процедуры все значения x со степенями равными и

    старше величины

    n k

    в расчет не принимаются. Таким образом в блоке 12

    образуется последовательность вида:

    S( x )L( x ) (x3x22x36 )(1  x26x32x45 )

      5x3x22x36x24x32x305x3x21.

    Одновременно с работой блока 12 для реализации алгоритма Форни (решение ключевого уравнения Форни) по данным из блока локаторов стираний 8

    в блоке производной 9 определяется производная от значений L( x ). Будет
    получен полином вида L( x )  0  2x6  3x22  4x35 x22 .
    Данные из блока произведений 12 и блока производной 9 объединяются в блоке исправления стираний 13, в котором выполняются действия для каждой стертой позиции с учетом их номера:

    5 3  1



    Y1

    2

    2


    2

    5 2 6

    0

    4

    1

      4 .

    5 3  1



    Y2

    2 4

    2


    4

    5 1 4

    5

    3

    5

      5 .

    5 3  1



    Y3

    3 6

    2


    6

    5 0 2

    3

    3

    5

      5.

    5 3  1



    Y6

    6

    2


    12

    12

    5 4 3

    4

    1

    4

      4 .

    В выходном блоке 14 вторая позиция кода РС, полученная с использованием алгоритма Форни сравнивается с позицией, полученной за счет итеративных преобразований и сохранившей свое новое значение в буфере внешнего кода 10.

    Они совпадают:

    Y1 4 , что указывает на правильность выполненных действий

    по восстановлению стираний.

    Алгоритм работы предложенного декодера исключает применение процедуры целенаправленного подбора полинома локаторов стираний, носит детерминированный характер, исключает поиск обратных матриц и может быть реализован на основе современной базы микропроцессоров.

    Акты внедрения
    8




    9



    10
    1   ...   13   14   15   16   17   18   19   20   21


    написать администратору сайта