Гельгор А.Л. Сотовые сети мобильной связи стандарта UMTS (2011) (1151872), страница 16
Текст из файла (страница 16)
Здесь Aiи Li — выбранные в данном транспортном канале размеры транспортного блока и блока проверочных символов соответственно.В случае пустого транспортного формата с отсутствующимитранспортными блоками (Ai = 0, Mi = 0) проверочная сумма не вычисляется. Если же пустой транспортный формат содержит нулевой размер транспортного блока (Ai = 0), но сами транспортные блоки подаются (Mi ≠ 0), то формируется проверочная сумма, в которой все битыустанавливаются в нулевое значение.Обозначим через bim1, bim2, …, bimB , где Bi = Ai + Li, биты трансiпортного потока с присоединенными проверочными битами, т.
е.aimk , k = 1, , Ai.bimk = pk=A+ll=L,,1,,ii im ( Li +1−( k − Ai ))Все транспортные блоки (с добавленными проверочными суммами), следующие во временном интервале TTI, последовательно сцеплены, и если общее число бит во всех транспортных блоках превосходит некоторое число Z — максимальный размер формируемого кодового блока, то производится сегментация кодового блока. При этомвсе кодовые блоки после сегментации должны быть одинакового размера.
Значение Z зависит от используемой схемы кодирования:Z = 504 для сверточного кода и Z = 5114 для турбокода (табл. 3.1).Количество бит в сцепленном потоке, образованном из Mi транспортных блоков i-го транспортного канала, равно Xi = Mi Bi; обозначим эти биты как xi1, xi2, …, xiBi . Тогда справедливы следующие соотношения:xik = bi1k , если k = 1, , Bi ;xik = bi ,2,( k − Bi ) , если k =Bi + 1, Bi + 2, , 2 Bi ;xik = bi ,3,( k −2 Bi ) , если k =2 Bi + 1, 2 Bi + 2, , 3Bi ;…120xik = bi ,M i ,( k −( M i −1) Bi ) , если k = ( M i − 1) Bi + 1, ( M i − 1) Bi + 2, , M i Bi .Обозначим через Ci число кодовых блоков в i-м транспортномканале, а через Ki — число бит в кодовом блоке после сегментации.Очевидно, что Ki = Xi / Ci, где квадратные скобки обозначают округление до целого в сторону плюс бесконечности.
Если число бит,подвергаемых сегментации, не кратно Ci, то к началу первого блокадобавляются “наполняющие” нулевые биты в количестве Yi, обеспечивающим выполнение условия кратности. Также дополнение нулевыми битами производится в том случае, когда используется турбокодирование и Xi < 40. Пусть oir1 , oir 2 , …, oirKi — биты r-го кодовогоблока после сегментации.
Тогда алгоритм сегментации выглядит следующим образом.% Вычисление количества бит в каждом кодовом блокеесли (Xi < 40) и используется турбокодирование тоKi = 40;иначеKi = Xi / Ci;все% Число бит заполненияYi = CiKi — Xi;% Вставка бит заполнениянц для k от 1 до Yioi1k = 0;кц% Формирование кодового блоканц для k от Yi + 1 до Kioi1k = xi ,( k −Yi ) ;кц% Сегментация кодового блокаr = 2;пока (r ≤ Ci)121нц для k от 1 до Kioi1k = xi ,( k −( r −1) Ki −Yi ) ;кцr = r+1;кц3.1.1. КАНАЛЬНОЕ КОДИРОВАНИЕСледующим, после сегментации кодовых блоков, этапом формирования канала CCTrC является канальное кодирование, при которомпоследовательности oir1 , oir 2 , …, oirKi бит после сегментации ставитсяв соответствие набор бит yir1 , yir 2 , …, yirY .
В зависимости от того, каiкие транспортные каналы в текущий момент времени объединяются вкомпозитном кодированном канале, используются разные схемы канального кодирования и, следовательно, различные размеры Y кодовых блоков (табл. 3.1).Таблица 3.1Схемы канального кодирования в композитном канале CCTrCТранспортный каналСхема кодированияРазмер коКодовая скорость дового блокаYBCHPCHRACHDCH, FACHСверточное кодированиеТурбокодирование1/22K + 161/3, 1/23K + 241/33K + 12Для объединения транспортных каналов BCH, PCH и RACH используются сверточные коды с длиной кодового ограничения 9 и кодовыми скоростями 1/3 и 1/2.
Кодер для того кода показан на рис. 3.2.122а) Скорость кодирования 1/2б) Скорость кодирования 1/3Рис. 3.2. Сверточные кодерысо скоростями кодирования 1/2 (а) и 1/3 (б)Биты кодированного блока снимаются последовательно с выходов кодера, например, при скорости кодирования 1/3 сначала с выхода 0, затем с выхода 1, с выхода 2, с выхода 0, с выхода 1 и т. д. Прискорости кодирования 1/2 биты сверточного кода снимаются с выходов кодера в следующем порядке: выход 0, выход 1, выход 0, выход 1,выход 0 и т.
д. Перед началом процедуры кодирования к блоку должны быть добавлены 8 нулевых бит, а во всех ячейках сдвигового регистра кодера должны быть записаны нули.В качестве кодера турбокода используется схема параллельносвязанных сверточных кодеров, состоящая из двух вспомогательныхкодеров и внутреннего перемежителя (рис. 3.3).Передаточная функция есть g ( D) G ( D) = 1, 1,g(D)0где полиномы g 0 ( D ) , g1 ( D ) имеют видg 0 ( D) =+1 D 2 + D3 ,g1 ( D) =1 + D + D 3 .123Рис.
3.3. Кодер турбокода, скорость кодирования 1/3В начале кодирования в ячейки вспомогательных кодеров должны быть записаны нули. В процессе кодирования биты турбокодаснимаются с выходов кодера в следующем порядке:x1 , z1 , z '1 , x2 , z2 , z '2 , ..., xK , z K , z 'K ,где x1 , x2 , ..., xK представляют собой биты, поступающие на вход кодера турбокода, z1 , z2 , ..., z K — биты с выхода первого вспомогательного кодера, z '1 , z '2 , ..., z 'K — биты с выхода второго вспомогательного кодера. Биты x1 , x2 , ..., xK будем называть систематическими, абиты, полученные с выходов вспомогательных кодеров — проверочными.После того как на вход турбокодера поступает последний информационный бит, т. е.
бит с номером K, к кодированному блоку добавляются оконечные биты. При этом сначала верхний переключательтурбокодера переключается в нижнее положение и, при тактировании124только первого вспомогательного кодера, снимаются первые шестьоконечных бит:xK +1 , z K +1 , xK +2 , z K +2 , xK +3 , z K +3 .Далее, нижний переключатель турбокодера переключается в нижнееположение и, тактируя только второй вспомогательный кодер, снимаются остальные шесть оконечных бит турбокода:x 'K +1 , z 'K +1 , x 'K +2 , z 'K +2 , x 'K +3 , z 'K +3 .В результате кодирования кодированный блок будет иметь размер3K + 12 бит.Далее опишем работу внутреннего перемежителя. Пусть на входперемежителя поступают информационные битыx1 , x2 , ..., xK ,где K — количество информационных бит, которое может приниматьзначения из интервала 40 ≤ K ≤ 5114 .
Введем также следующие обозначения в соответствии со спецификациями:R — количество строк в прямоугольной матрице;С — количество столбцов в прямоугольной матрице;p — первичный номер;v — первичный корень (элемент таблицы перемежения);s ( j ) j∈{0, 1, ..., p −2} — базовая последовательность перестановокэлементов внутри строки;T (i ) i∈{0, 1, ..., R −1} — таблица перестановок строк;Ui ( j)j∈{0, 1, ..., C −1}— таблица перестановок элементов внутри i-йстроки;i — номер строки;j — номер столбца;k — номер битовой последовательности.Первым этапом работы перемежителя является запись информационных бит x1 , x2 , ..., xK в прямоугольную матрицу. Размерностьэтой матрицы определяется по следующему правилу:1255, если (40 ≤ K ≤ 159);=R 10, если (160 ≤ K ≤ 200) или (481 ≤ K ≤ 530);20, иначе.Далее находим первичный номер p и количество столбцов прямоугольной матрицы:если (481 ≤ K ≤ 530) тоp = 53;С = p;иначенаходим минимальное p из табл.
3.2 такое, чтоK ≤ R × ( p + 1) ; p − 1, если K ≤ R × ( p − 1);=C p, если R × ( p − 1) < K ≤ R × p ; p + 1, если R × p < K ;всеТаблица 3.2Значения первичных номеров p и первичных корней vpvpvpvpvpv734751012157522331125321035163222721325921072167522961736121096173223331926721133179223972357171273181224172927351312191 19 2516313793137319352573372832139219724168931492199343397515162112Информационные биты x1 , x2 , ..., xK записываются в прямоугольную матрицу126 y1 y (C +1) y( R −1)C +1в следующем порядке:нц для k от 1 до Kyk = xk ;y2y(C + 2)y( R −1)C + 2...
yC ... y2C ... ... yR×C кцесли R × C > Kнц для k от K+1 до R × C% Добавляем в матрицу «биты заполнения»yk = 0 или 1 ;кцвсеПосле межстрочных перестановок и перестановок элементоввнутри строк, перед считыванием бит с выхода перемежителя, “битызаполнения” должны быть удалены из матрицы.После заполнения прямоугольной матрицы перемежитель выполняет перестановку строк, а также перестановку элементов внутристрок. Для этого из табл. 3.2. определяется корень v, соответствующий первичному номеру p.
Далее формируется базовая последовательность s(j):s (0) = 0 ;s ( j ) =(v × s ( j − 1)) mod p, j =1, 2,..., ( p − 2) .На следующем этапе необходимо сформировать последовательностьэлементов qi:q0 = 0;qi — минимальное целое число, такое что НОД(qi, p) = 1, qi > 6 иqi > qi –1, i = 1, 2, …, R – 1.Далее формируется последовательность элементов ri перестановкой элементов последовательности, полученной на предыдущем шаге:1270, 1, ..., R − 1 ,r=q=T (i )i, iгде таблица перестановок строк T (i ) зависит от количества информационных бит K. Данные таблицы приведены в табл. 3.3.Таблица 3.3Таблицы перестановок строкКоличеКоличество информациТаблица перестановок строкствоонных бит K<T(0), T(1), …, T(R – 1)>строк R(40 ≤ K ≤ 159)5<4, 3, 2, 1, 0>(160 ≤ K ≤ 200) или10<9, 8, 7, 6, 5, 4, 3, 2, 1, 0>(481 ≤ K ≤ 530)(2281 ≤ K ≤ 2480) или<19, 9, 14, 4, 0, 2, 5, 7, 12, 18, 16,20(3161 ≤ K ≤ 3210)13, 17, 15, 3, 1, 6, 11, 8, 10><19, 9, 14, 4, 0, 2, 5, 7, 12, 18, 10,Иначе208, 13, 17, 3, 1, 16, 6, 15, 11>Перемежение начинается с перестановки элементов внутри каждой строки прямоугольной матрицы согласно следующему алгоритму, где выражение A ↔ B обозначает операцию перестановки соответствующих операндов A и B:нц для i от 0 до R – 1если (C = p ) тонц для j от 0 до p – 2U i ( j ) =×s (( j ri ) mod( p − 1));кцU i ( p − 1) =0;всеесли (C= p + 1) тонц для j от 0 до p – 2U i ( j ) =×s (( j ri ) mod( p − 1));кц128U i ( p − 1) =0;U i ( p ) = p;если ( K= R × C ) тоU R −1 ( p ) ↔ U R −1 (0);всевсеесли (C= p − 1) тонц для j от 0 до p – 2U i ( j ) =×s (( j ri ) mod( p − 1));кцвсекцВ данном алгоритме последовательность Ui(j) для каждой изстрок несет в себе номера элементов i-й строки первоначальной матрицы в том порядке, в котором их следует брать для получения новойстроки, с переставленными элементами.После перестановки элементов внутри каждой строки следуетизменить порядок следования строк согласно таблице T(i), причем,данная таблица несет в себе номера строк матрицы, полученной напредыдущем шаге, в том порядке, в котором их следует брать для получения новой матрицы, с переставленными строками.В результате перестановок элементов внутри строк, а также самих строк, будет сформирована новая прямоугольная матрицаy '2...
y 'C y '1 y'y '(C + 2) ... y '2C (1)C+.... y '( R −1)C +1 y '( R −1)C + 2 ... y 'R×C Результатом работы перемежителя является последовательностьбит, считанная из данной матрицы в порядке сверху вниз, последовательно по всем столбцам, начиная с верхнего элемента первогостолбца и заканчивая нижним элементов последнего. Далее из резуль129тирующей битовой последовательности следует удалить “биты заполнения”, добавленные в матрицу на первом этапе перемежения,т.