Для нахождения объема пакета в кадре определяют величину периодичности L в ЦП X = (x 1, x 2, …, xN), где x – значение бита, N – объем ЦП. Для этого вычисляют АКФ [5]
, (1)
где xh – значение h -го бита преобразованного ЦП; h – номер бита в ЦП; i = 0, 1, …, N – 1 – величина сдвига ЦП; b = h + i – номер бита с учетом сдвига ЦП. Преобразование исходного ЦП заключается в замене каждого бита со значением «0» на бит со значением «– 1». Это
позволяет получать значения АКФ [1]
(2)
Равенство в правой части (2) соответствует случаю, когда ЦП содержит одинаковые битовые последовательности на текущем шаге i сдвига, а равенство в левой части (2) – противоположные по значению последовательности.
В [5] предложено определять величину L как расстояние между соседними максимумами АКФ (1). При этом математическое обоснование не приведено. Поэтому предлагается следующий алгоритм определения величины L:
1. Вычисление глобального максимума АКФ.
2. Вычисление погрешности нахождения локальных максимумов АКФ.
3. Нахождение значений локальных максимумов АКФ.
4. Вычисление величины L.
5. Определение истинной величины L из полученных нескольких ее значений на основе уточненного математического описания метода суммирования.
Рассмотрим содержание данного алгоритма.
На этапе 1 задается значение первого локального максимума как Z XX m (i) при i = 7 и m = 1. После этого глобальный максимум АКФ вычисляется по следующей формуле:
(3)
где i = 8, 9, …, N – 1; m = 2, 3, …, M – 1 – текущие номера локальных максимумов АКФ; M – номер, соответствующий глобальному максимуму Z XX max(i). Каждое новое значение локального максимума Z XX m (i), его номер m и значение сдвига i ЦП запоминаются.
Если найденное значение Z XX max(i) получено для i max = N – 1, то за истинное значение глобального максимума АКФ принимается значение последнего локального максимума Z XX M – 1. Это связано с тем, что АКФ всегда имеет глобальный максимум при i = 0 и ее значения симметричны относительно N /2 [2].
На этапе 2 вычисляется погрешность Δ Z определения локальных максимумов АКФ:
, (4)
если Z XX max(i) получено для i = N – 1;
, (5)
если Z XX max(i) получено для i < N – 1.
На этапе 3 из значений { Z XX m (i)} выбираются те, которые соответствуют условию
, (6)
и далее составляется набор локальных максимумов АКФ.
На этапе 4 вычисляют значение периодичности
, (7)
т. е. как разность между значениями величины сдвига ЦП im + 1 и im, которые соответствуют соседним локальным максимумам АКФ, имеющим номера m + 1 и m.
Однако для различных пар значений m периодичность L может иметь разные величины. Поэтому необходимо ввести погрешность Δ i величины сдвига ЦП в формуле (1).
Исходя из известного требования к погрешности измерений (не более 30 %, если она не задана [5]), а также на основе проведенных экспериментальных исследований цифровых потоков передачи данных (ПД) была выбрана погрешность величиной 10 %:
(8)
В формуле (8) обозначение – математическая операция округления до наименьшего целого числа.
Полученные по (7) значения { Lj } (j = 1, 2, …, J) проверяют на соответствие условию
(9)
Значения Lj, для которых не выполняется условие (9), исключаются из набора { Lj }. Если условие (9) не выполняется для всех значений из набора { Lj }, то принимается решение, что ЦП не имеет периодичности.
При небольших выборках ЦП или наличии в нем битовых ошибок возникает неоднозначность в принятии решения об истинной величине L [5].
На этапе 5 уточняется значение L ЦП на основе метода суммирования [5]. Согласно приведенному в [5] вербальному описанию этого метода необходимо осуществить поиск комбинации бит постоянного вида в структуре ЦП на предполагаемом периоде. Поэтому предлагается вариант математического описания метода суммирования со следующими исходными данными:
значения { Lj } J, вычисленные на основе формул (1) – (7);
диапазон значений сдвига ЦП от до
с шагом 1 (номер j равен меньшему из двух номеров m, характеризующих локальные максимумы АКФ, по которым вычислено минимальное значение Lj).
На этапе 5.1 для каждого текущего значения Lj ЦП разбивается на фрагменты объемом Lj с последующим их построчным размещением друг под другом в виде матрицы
, (10)
где xng – биты ЦП; n = 1, 2, …, Lj; g = 1, 2, …, Kj;
– (11)
количество фрагментов объемом Lj в ЦП.
На этапе 5.2 для каждого столбца x n матрицы вычисляется и запоминается среднее арифметическое значение [3]
, (12)
где n = 1, 2, …, Lj.
В формуле (12) суммирование бит осуществляется по правилу
. (13)
На этапе 5.3 после вычисления по формуле (12) значений { F (x n)} подсчитывается в матрице (10) количество столбцов x n, для которых F (x n) = 1:
, (14)
а также количество столбцов x n, для которых F (x n) = 0:
. (15)
На этапе 5.4 вычисляется суммарное количество столбцов
(16)
и отношение
. (17)
Вычисленное значение H (Lj) для каждого Lj запоминается.
На этапе 5.5 выбирают значение Lj, соответствующее максимальной величине H (Lj), которое принимают за истинную периодичность ЦП.
Для поиска максимального значения H max(Lj) из набора { H (Lj)} J обозначим первую вычисленную по формуле (17) величину как He (Lj) при e = 1. Тогда
(18)
где j = 2, 3, …, J; e = 2, 3, …, E – 1 – текущие номера локальных максимумов отношения H (Lj); E – номер, соответствующий глобальному максимуму H max(Lj).