- •Содержание.
- •1. Введение.
- •1.1. Содержательная постановка задачи.
- •1.2. Терминологические соглашения.
- •2. Постановка задачи.
- •Общие сведения о моделировании систем.
- •2.2. Основание для разработки.
- •2.3. Назначение.
- •2.4. Требования к программному обеспечению.
- •2.5. Входные и выходные данные.
- •2.6. Условия эксплуатации.
- •3. Описание программного обеспечения.
- •3.1. Выбор языка программирования для реализации цифровой модели.
- •3.2. Функциональное назначение цифровой модели.
- •3.3. Описание идентификаторов процедур и функций, входящих в состав цифровой модели.
- •3.4. Описание идентификаторов переменных и массивов, используемых в цифровой модели.
- •3.5. Описание алгоритма цифровой модели.
- •3.6. Описание процедур и функций, реализующих цифровую модель.
- •3.6.1. Процедура расчета коэффициентов.
- •3.6.1.1. Функциональное назначение.
- •Integral ( X : real ).
- •3.6.1.2. Описание идентификаторов переменных и массивов.
- •3.6.1.2.1. Входные данные.
- •3.6.1.2.2. Вспомогательные переменные.
- •3.6.1.2.3. Выходные данные.
- •3.6.1.3. Описание логики.
- •3.6.2. Процедура формирования модели изображения очередного кадра.
- •3.6.2.1. Функциональное назначение.
- •3.6.2.2. Описание идентификаторов и назначения переменных и массивов.
- •3.6.2.2.1. Входные данные.
- •3.6.2.2.2. Вспомогательные переменные.
- •3.6.2.2.3. Выходные данные.
- •3.5.2.3. Описание логики.
- •3.6.3. Описание процедуры моделирования движения сложного фона.
- •3.6.3.1. Функциональное назначение.
- •Var ArgumentX, ArgumentY : real).
- •3.6.3.2. Описание идентификаторов и назначение переменных и массивов.
- •3.6.3.2.1. Входные данные.
- •3.6.3.2.2. Вспомогательные переменные.
- •3.6.3.2.3. Выходные данные.
- •3.6.3.3. Описание логики.
- •3.6.4. Описание функций яркости.
- •3.6.4.1. Функциональное назначение.
- •3.6.4.2. Описание идентификаторов и назначения переменных.
- •3.6.4.2.1. Входные данные.
- •3.6.4.2.2. Выходные данные.
- •3.6.4.3. Описание подпрограмм-функций. Функция яркости с поверхностью типа «плоскость».
- •Функция яркости с поверхностью типа «усеченная плоскость».
- •Функция яркости с поверхностью типа «дважды усеченная плоскость».
- •Функция яркости с поверхностью типа «эллипсоид вращения».
- •Функция яркости с поверхностью типа «эллиптический цилиндр».
- •Функция яркости с поверхностью типа «параболический цилиндр».
- •Функция яркости с поверхностью типа «однополостной гиперболоид».
- •Функция яркости с поверхностью типа «гиперболический параболоид».
- •Функция яркости с поверхностью типа «волнистая поверхность».
- •3.6.5. Процедура ввода параметров функций, участвующих в моделировании изображения.
- •3.6.5.1. Функциональное назначение.
- •3.6.5.2. Описание идентификаторов и назначения используемых переменных и массивов.
- •3.6.5.2.1. Вспомогательные переменные.
- •3.6.5.2.2. Выходные данные.
- •3.6.5.3. Описание логики.
- •3.6.6. Процедура формирования разностного изображения с помощью операции временного дифференцирования.
- •3.6.6.1. Функциональное назначение.
- •3.6.6.2. Описание идентификаторов переменных и массивов.
- •3.6.6.2.1. Входные данные.
- •3.6.6.2.2. Вспомогательные переменные.
- •3.6.6.2.3. Выходные данные.
- •3.6.6.3. Описание логики.
- •3.6.7. Процедура задания начальных значений.
- •3.6.7.1. Функциональное назначение.
- •3.6.7.2. Описание идентификаторов переменных и массивов.
- •3.6.7.2.1. Вспомогательные переменные.
- •3.6.7.2.2. Выходные данные.
- •3.6.7.3. Описание логики.
- •3.6.8. Процедура инициализации графического режима.
- •3.6.8.1. Функциональное назначение.
- •InitGraphMode.
- •3.6.8.2. Описание идентификаторов переменных и массивов.
- •3.6.8.2.1. Входные данные.
- •3.6.8.2.2. Вспомогательные переменные.
- •3.6.8.2.3. Выходные данные.
- •3.6.8.3. Описание логики.
- •3.6.9. Процедура распознавания.
- •3.6.9.1. Функциональное назначение.
- •3.6.9.2. Содержательная постановка задачи автоматического распознавания подвижных точечных объектов.
- •3.6.9.3. Описание алгоритмов распознавания подвижных точечных объектов.
- •3.6.9.3.1. Описание детерминированного алгоритма распознавания подвижных точечных объектов.
- •3.6.9.3.2. Описание вероятностного алгоритма распознавания подвижных точечных объектов.
- •3.6.9.3.3. Описание комбинированного алгоритма распознавания подвижных точечных объектов.
- •3.6.9.3.4. Описание вероятностного и комбинированного алгоритмов распознавания подвижных точечных объектов с усеченной выборкой.
- •3.6.9.4. Описание идентификаторов переменных и массивов.
- •3.6.9.4.1. Входные данные.
- •3.6.9.4.2. Вспомогательные переменные.
- •3.6.9.4.3. Выходные данные.
- •3.6.9.5. Описание логики.
- •3.6.10. Процедура определения массива направлений.
- •3.6.10.1. Функциональное назначение.
- •3.6.10.2. Выходные данные.
- •3.6.10.3. Описание логики.
3.6.2.2.3. Выходные данные.
ArrayBrightness [1..2, 1..LenthX, 1..LenthY] - массив сигналов рецепторов сетчатки, отображающий изображения предыдущего и текущего кадров (в зависимости от состояния ключа KeyArrayBrightness). «Массив яркостей».
MaxBrightness - если PrznMaxBrightness = true, то в данной переменной определяется максимальная яркость текущего кадра, при условии, что она выше максимальной яркости предыдущего кадра.
3.5.2.3. Описание логики.
Для формирования массива чисел (сигналов), отображающих изображение очередного кадра, в процедуре организовано обращение ко всем рецепторам сетчатки в 2-ух циклах: по I - îò 1 äî LenthX, è ïî J - от 1 до LenthY. При очередном проходе цикла в самом начале сигналу IntegralBrightness присваивается нулевое значение. Кроме того нулевые значения присваиваются так же номерам однотипных функций яркости q1, q2, ..., q9.
После этого для определения значений яркости в данной точке поля наблюдения всего множества используемых для моделирования изображения функций яркости, организован цикл по K от 1 до QuantFunction. В этом цикле перебираются все элементы массива ArrayFunction, задающие тип и уровень взаимного расположения функций яркости по приоритету. При этом больший порядковый номер элемента массива ArrayFunction (определяется параметром цикла K) задает больший приоритет данной функции относительно других функций, имеющих меньшие порядковые номера. Тип функции определяется значением элемента данного массива, который может находиться в пределах от 1 до 9 по количеству используемых функций яркости.
Для каждой функции яркости определяется значение FunctionBrightness исходя из координат точки по I è J. Для любого типа функции это значение определяется в три этапа:
увеличение на единицу номера использования данной функции яркости (q1, q2, ..., q9) в зависимости от значения ArrayFunction [K], что позволяет использовать в следующих проходах цикла по K однотипные функции с различными параметрами, путем считывания их из очередной строки массивов ArrayDataF1, ArrayDataF2, ..., ArrayDataF9;
на втором шаге, путем обращения к процедуре «Movement», которая организует сложное относительное движение этой функции яркости и поля наблюдения. В зависимости от конкретных параметров данной функции яркости, интервала времени между соседними кадрами и номера моделируемого кадра вычисляются значения ArgumentX и ArgumentY, представляющие собой координаты I è J в неподвижной системе отсчета данной функции яркости;
на третьем этапе в зависимости от параметров конкретной функции яркости и значений ArgumentX и ArgumentY непосредственно вычисляется значение яркости конкретной функции в данной точке поля наблюдения FunctionBrightness путем обращения к соответствующей подпрограмме - функции яркости («Function1», «Function2», ..., «Function9»).
Формирование интегрального значения яркости IntegralBrightness производится в зависимости от признаков PriznSumBrightness и PriznPrioritet. При любых комбинациях этих признаков возможны три способа формирования интегрального значения яркости IntegralBrightness:
при PriznSumBrightness = true (при этом PriznPrioritet может иметь любое значение) значение IntegralBrightness вычисляется как сумма значений участвующих в моделировании изображения функций яркости в данной точке сетчатки;
при PriznPrioritet = true (при этом PriznSumBrightness должен иметь значение false, иначе будет работать первый вариант формирования интегрального значения яркости) значение IntegralBrightness вычисляется по приоритету функции, то есть IntegralBrightness присваивается значение той функции яркости, которая имеет больший порядковый номер в массиве ArrayFunction (при условии, что значение яркости конкретной функции в данной точке сетчатки больше 0);
если оба признака имеют значение false, то IntegralBrightness принимает значение той функции яркости, значение которой на данном рецепторе поля наблюдения наибольшее.
Далее, если PriznPom = true, вычисляется случайное число, имитирующее помеху, и сигнал яркости рецептора в этом случае определяется как сумма IntegralBrightness и значения помехи. При этом псевдослучайные числа могут формироваться как по равномерному закону распределения (использованием функции Random), так и по нормальному закону распределения с заданными параметрами математического ожидания и среднеквадратического отклонения амплитуды помех (функция FunctionRandom).
После определения значения сигнала данного рецептора в зависимости от значения ключа KeyArrayBrightness, I è J оно записывается в соответствующую ячейку массива ArrayBrightness.
Очередной проход циклов по I è J заканчивается (если PriznMaxBrightness = true, то есть если явно не задан максимальный постоянный уровень яркости) сравнением текущего максимального уровня и значения сигнала данного рецептора сетчатки. Если сигнал больше, то он принимается в качестве максимального допустимого уровня сигнала и присваивается переменной MaxBrightness.