Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Цифроовое моделирование системы эффективного кодирования сообщений(объектно-ориентированный подход).doc
Скачиваний:
19
Добавлен:
15.06.2014
Размер:
1.27 Mб
Скачать

2.4.2 Описание классов

Название: Quantizer.

Описание: моделирует работу квантователя. Значение очередного уровня квантования вычисляется как сумма минимального значения функции, полушага квантования и произведения шага квантования на номер уровня. Верхний порог данного уровня определяется как сумма значений уровня квантования и полушага квантования (при равномерном квантовании путем соотнесения исходного сигнала с ближайшим значением уровня «нижний» порог данного уровня совпадает с "верхним" порогом ближайшего «снизу» уровня).

Название родительского класса: Plant.

Список реализованных интерфейсов: INuk, IBlockConnector.

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

Таблица методов

Название

Доступ

Входные данные

Описание

Тип

Выходные данные

Описание

Quantizer

public

config

Настройка квантователя

QuantizerConfig

-

Принимает настройку квантователя

getNuk

package

-

-

-

Уровень квантования

Возвращает уровень квантования

kvan

package

-

-

-

Уровень квантования

Осуществляет квантование непрерывных сообщений по уровню

Таблица полей

Название

Тип

Описание

Ykvn

float

Проквантованное значение функции

Ymin

float

Минимальное значение функции

Q

float

Полушаг квантования

Nuk

int

Номер уровня квантования

Ku

int

Количество уровней квантования

Название: QuantizerConfig.

Описание: содержит все необходимые параметры работы квантователя.

Название родительского класса: нет.

Список реализованных интерфейсов: нет.

Роль в цифровой модели: экземпляр класса генерируется настройщиком и передается квантователю.

Таблица методов

Название

Доступ

Входные данные

Описание

Тип

Выходные данные

Описание

getKU

package

-

-

-

Количество уровней квантования

Возвращает количество уровней квантования

getQ

package

-

-

-

Полушаг квантования

Возвращает полушаг квантования

getMinY

package

-

-

-

Минимальное значение функции

Возвращает минимальное значение функции

getMaxY

package

-

-

-

Максимальное значение функции

Возвращает максимальное значение функции

setKU

public

ku

-

int

-

Установка количества уровней квантования

setQ

public

q

Полушаг квантования

float

-

Установка полушага квантования

setMinY

public

ymin

Минимальное значение функции

float

-

Установка минимального значения функции

setMaxY

public

ymax

Максимальное значение функции

float

-

Установка максимального значения функции

Таблица полей

Название

Тип

Описание

Ymin

float

Минимальное значение функции

Q

float

Полушаг квантования

Ymax

int

Максимальное значение функции

Ku

int

Количество уровней квантования

Название: QuantizerTuner.

Описание: настройщик квантователя.

Название родительского класса: нет.

Список реализованных интерфейсов: ITuner.

Роль в цифровой модели: экземпляр класса создает конфигурацию работы квантователя на основе принятых значений.

Таблица методов

Название

Доступ

Входные данные

Описание

Тип

Выходные данные

Описание

QuantizerTuner

public

model

Модель сигнала

ModelSignal

-

Принимает модель сигнала для ее анализа

sagStatistic

public

v1

Вероятность правильной передачи сообщения

float

Конфигурация

квантователя

Расчёт полушага квантования и количество уровней квантования с помощью статистического метода.

m1

Математическое ожидание амплитуды помехи

float

s1

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

float

sagSimple

public

ku

Количество уровней квантования

int

Конфигурация

квантователя

Расчёт полушага квантования и количество уровней квантования

Таблица полей

Название

Тип

Описание

Model

ModelSignal

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

Название: ModelSignal.

Описание: модель сигнала, представленная кусочно-линейной функцией.

Название родительского класса: нет.

Список реализованных интерфейсов: нет.

Роль в цифровой модели: экземпляр класса является моделью сигнала, заданного массивами аргументов и соответствующих этим аргументам значений сигнала.

Таблица методов

Название

Доступ

Входные данные

Тип

Выходные данные

Описание

getY

package

i

int

Элемент из массива

Возвращает i-ое значение функции из массива

getMax

private

-

-

Максимальное значение элемента из массива

Возвращает максимальный элемент из массива значений

getMin

private

-

-

Минимальное значение элемента из массива

Возвращает минимальный элемент из массива значений

SetInflectionPoints

public

ax

float[]

-

Установка точек перегиба модели сигнала

ay

float[]

GetInflectionPoints

public

-

-

-

Выводит точки перегиба на экран

Таблица полей

Название

Тип

Описание

Ax

float[]

Значения аргумента функции в точках перегиба

Ay

float[]

Значения функции в точках перегиба

Ymin

float

Минимальное значение функции

Ymax

float

Максимальное значение функции

Название: SignalGenerator.

Описание: генератор сигнала. Процедура генерирует периодическую кусочно-линейную функцию Yo. Для этого по формуле y=k*x+b вычисляется значения линейных участков функции на интервале от Ax[1] до Ax[1]+T с шагом T/(N-1).Для определения коэффициентов k и b линейных участков используются координаты Na точек перегиба (в массиве Ax) и значения функции в этих точках (в массиве Ay).

Название родительского класса: PlantGeneratorConnector.

Список реализованных интерфейсов: IGeneratorConnector.

Роль в цифровой модели: экземпляр класса формирует кусочно-линейную функцию по принятой модели сигнала и передает очередное значение следующему подключённому блоку.

Таблица методов

Название

Доступ

Входные данные

Описание

Тип

Выходные данные

Описание

Signal

Generator

public

n

Число отсчётов

int

-

Рассчитывает длину участка между двумя соседними дискретными отсчётами

t

Период функции

int

model

Модель сигнала

Model

Signal

execute

public

-

-

-

-

Запуск генератора

gklf

private

-

-

-

-

Генерирует кусочно-линейную функцию

Таблица полей

Название

Тип

Описание

Dx

float

Интервал между соседними дискретными отсчётами аргумента

j

int

Номер очередной точки кусочно-линейной функции

T

int

Период входной функции

N

int

Количество дискретных отсчётов

Название: Gauss.

Описание: имитирует случайную "гауссову" помеху.

Название родительского класса: Noise.

Список реализованных интерфейсов: IInterference.

Роль в цифровой модели: экземпляр класса принимает математическое ожидание и среднеквадратическое отклонение для задания характера помехи в канале связи.

Таблица методов

Название

Доступ

Входные данные

Описание

Тип

Выходные данные

Описание

Gauss

public

m

Математическое ожидание появления помехи

float

-

Инициализирует основные параметры ошибки

s

Среднеквадратическое отклонение появления помехи

float

generate

public

-

-

-

-

Генерация псевдослучайных

чисел

Название: Memory.

Описание: блок памяти.

Название родительского класса: Plant.

Список реализованных интерфейсов: IBlockConnector, IMemory.

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

Таблица методов

Название

Доступ

Входные данные

Описание

Тип

Выходные данные

Описание

Memory

public

size

Объем памяти

int

-

Выделение памяти под значения сигнала

setStep

public

t

Период функции

float

-

Интервал времени между поступившими сигналами

setSize

public

size

Объем памяти

int

-

Задание объема памяти

Таблица полей

Название

Тип

Описание

Size

int

Объем памяти

Step

float

Интервал времени между двумя дискретными отсчётами

SumDx

float

Счетчик времени блока памяти

MasX

float[]

Массив временных интервалов

MasY

float[]

Массив значений сигнала

Название: ImageGraph.

Описание: осциллограф.

Название родительского класса: WorkWin , JFrame.

Список реализованных интерфейсов: нет.

Роль в цифровой модели: экземпляр класса принимает заполненные блоки памяти для прорисовки в декартовой системе координат сигнала.

Таблица методов

Название

Доступ

Входные данные

Описание

Тип

Выходные данные

Описание

ImageGraph

public

cg

Количество графиков

int

-

Задание количества графиков для прорисовки в одном окне

ShowNep

public

-

-

-

-

Прорисовка графика непрерывной функции

ShowDis

public

-

-

-

-

Прорисовка графика дискретной функции

ShowKvn

public

-

-

-

-

Прорисовка графика проквантованной функции

addMemory

public

mem

Блок памяти

Memory

-

Добавление очередного блока памяти в стек

addDinamicMemory

public

mem

Блок динамической памяти

Memory[]

-

Добавление блока «динамической» памяти

ShowDinamic

public

millis

Задержка прорисовки в миллисекундах

Int

-

Динамическая прорисовка преобразования сигнала

Таблица полей

Название

Тип

Описание

I

int

Счётчик объектов памяти

Cg

int

Количество графиков на осциллографе

Mem

Memory[]

Массив объектов памяти

Название: Plant.

Описание: устройство в цифровой модели способное передавать сообщение другому устройству этого класса.

Название родительского класса: нет.

Список реализованных интерфейсов: IBlockConnector.

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

Таблица методов

Название

Доступ

Входные данные

Описание

Тип

Выходные данные

Описание

setNext

public

block

Устройство, реализующее данный интерфейс

IBlockConnecto

-

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

getNext

public

-

-

-

Ссылка на подключённое устройство

Возвращает подключенное устройство после данного

setValueY

public

valuey

Значение сигнала в данный момент времени

float

-

Установка значения сигнала в дискретный момент времени

setValueYToNext

public

y

Значение сигнала в данный момент времени

float

-

Передача установленного значения следующему устройству

getValueY

public

-

-

-

Текущее значение сигнала

Возвращает значение сигнала в данный момент времени

Таблица полей

Название

Тип

Описание

Next

IBlockConnector

Устройство, реализующее данный интерфейс

ValueY

float

Значение сигнала в дискретный момент времени

Название: EnvironmentConfig.

Описание: содержит набор параметров, необходимых для правильной работы канала связи.

Название родительского класса: нет.

Список реализованных интерфейсов: нет.

Роль в цифровой модели: экземпляр класса, созданный на основе таких параметров как: уровень нуля, уровень единицы и порог квантования – является настройкой для канала связи.

Таблица методов

Название

Доступ

Входные

данные

Описание

Тип

Выходные данные

Описание

EnvironmentConfig

public

t0

Уровень «нуля»

float

-

Инициализация основных параметров

t1

Уровень «единицы»

float

pk

Порог квантования

float

getT0

package

-

-

Уровень нуля

Возвращает уровень нуля

getT1

package

-

-

-

Уровень единицы

Возвращает уровень «единицы»

getPk

package

-

-

-

Порог квантования

Возвращает порог квантования

setT0

public

t1

Уровень «нуля»

float

-

Установка уровня «нуля»

Таблица полей

Название

Тип

Описание

T0

float

Значение уровня нуля

T1

float

Значение уровня единицы

Pk

float

Порог квантования

Название: EnvironmentTuner.

Описание: настройщик канала связи. С его помощью можно настроить канал связи на определенный режим работы.

Название родительского класса: нет.

Список реализованных интерфейсов: нет.

Роль в цифровой модели: экземпляр класса принимает математическое ожидание, среднеквадратическое отклонение и вероятность правильной передачи сообщения, формируя объект настройку.

Таблица методов

Название

Доступ

Входные

данные

Описание

Тип

Выходные данные

Описание

EnvironmentTuner

public

v1

Вероятность искажения

float

-

Инициализация основных параметров

m1

Математическое ожидание появления помехи

float

s1

Среднеквадратическое отклонение появления помехи

float

getConfig

public

-

-

-

Настройка канала связи

Возвращает настройку канала связи

Таблица полей

Название

Тип

Описание

EnvConfig

EnvironmentConfig

Настройка канала связи

Название: PartitionInfo.

Описание: содержит информацию о длине выборки сообщений и длине блоков или L-грамм.

Название родительского класса: нет.

Список реализованных интерфейсов: нет.

Роль в цифровой модели: экземпляр класса экземпляр класса принимает число обрабатываемых сообщений и длину каждого сообщения, блока или L-граммы. Используется в качестве конфигурации для работы нескольких блоков.

Таблица методов

Название

Доступ

Входные

данные

Описание

Тип

Выходные данные

Описание

PartitionInfo

public

kbl

Число обрабатываемых сообщений

int

-

Инициализация основных параметров

l

Длина сообщения

int

getL

package

-

-

-

Длина сообщения, блока или L-граммы

Возвращает длину сообщения, блока или L-граммы

getKbl

package

-

-

-

Число обрабатываемых сообщений

Возвращает число обрабатываемых сообщений

Таблица полей

Название

Тип

Описание

Kbl

int

Число обрабатываемых сообщений

L

int

Длина сообщения, блока или L-граммы

Название: Segmentator.

Описание: сегментирует на блоки или L-граммы последовательность исследуемой выборки квантованных по времени и уровню сообщений.

Название родительского класса: PlantWithMemory.

Список реализованных интерфейсов: IBlockConnector.

Роль в цифровой модели: экземпляр класса принимает от квантователя последовательность уровней квантования и, по заданному режиму работы, выделяет из этой последовательности блоки или L-граммы.

Таблица методов

Название

Доступ

Входные

данные

Описание

Тип

Выходные данные

Описание

Segmentator

public

config

Конфигурация работы квантователя

QuantizerConfig

-

Инициализация основных параметров

partinfo

Информация о выборке сообщений

PartitionInfo

BlockMode

public

static

-

-

-

-

Установка режима работы на формирование блоков

Lgrammode

public

static

-

-

-

-

Установка режима работы на формирование L-грамм

getChain

public

-

-

LevelChain

Цепочка блоков или L-грамм

Возвращает цепочку блоков или L-грамм

setMemory

public

len

Размер буфера данных

int

-

Установка объема внутренней памяти

Таблица полей

Название

Тип

Описание

Config

QuantizerConfig

Конфигурация работы квантователя

PartInfo

PartitionInfo

Информация о выборке сообщений

Mode

CodeDecodeMode

Режим обработки текста или уровней квантования

Chain

LevelChain

Цепочка уровней квантования

Buf1

int[]

Предыдущая последовательность уровней

Buf2

Int[]

Текущая последовательность уровней

Название: Huffman.

Описание:построение кодовых слов эффективного кода по методу Хаффмана.

Название родительского класса: нет.

Список реализованных интерфейсов: нет.

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

Таблица методов

Название

Доступ

Входные

данные

Описание

Тип

Выходные данные

Описание

Huffman

public

config

Конфигурация работы

HuffmanConfig

-

Инициализация основных параметров

chain

Цепочка сообщений

MsgChain

Huffman

public

config

Конфигурация работы

HuffmanConfig

-

Инициализация основных параметров

chain

Цепочка сообщений

LevelChain

TextMode

public static

-

-

-

-

Режим обработки текста

FuncMode

public static

-

-

-

-

Режим обработки уровней квантования

prepareData

public

-

-

-

-

Построение кодовой таблицы

codeTable

public

-

-

HuffmansCode

Кодовые слова эффективного кода

Возвращает таблицу кодовых слов

Таблица полей

Название

Тип

Описание

Config

HuffmanConfig

Конфигурация для построителя эффективного кода по Хаффману

LpTable

LookupTable

Таблица соответствия между сообщениями и числами их вхождений

Chain

MsgChain

Цепочка сообщений, блоков или L-грамм

Code

HuffmansCode

Кодовые слова эффективного кода

Reader

DataReader

Обработка текста или уровней квантования

Название: ECoder.

Описание: кодирование сообщений, блоков или L-грамм эффективным кодом.

Название родительского класса: Device.

Список реализованных интерфейсов: IDeviceConnector.

Роль в цифровой модели: экземпляр класса принимает таблицу кодовых слов, для кодирования сообщений, блоков или L-грамм эффективными кодовыми словами.

Таблица методов

Название

Доступ

Входные

данные

Описание

Тип

Выходные данные

Описание

ECoder

public

codewrds

Кодовые слова эффективного кода

HuffmansCode

-

Инициализация данных

execute

public

-

-

-

-

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

Таблица полей

Название

Тип

Описание

Code

HuffmansCode

Кодовые слова эффективного кода

Название: EDecoder.

Описание: декодирование кодовых слов в сообщения, блоки или L-граммы.

Название родительского класса: Device.

Список реализованных интерфейсов: IDeviceConnector.

Роль в цифровой модели: экземпляр класса таблицу декодирования кодовых слов эффективного кода в сообщения, блоки или L-граммы.

Таблица методов

Название

Доступ

Входные

данные

Описание

Тип

Выходные данные

Описание

EDecoder

public

code

Таблица декодирования

HuffmansCode

-

Инициализация основных параметров

execute

public

-

-

-

-

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

Таблица полей

Название

Тип

Описание

Code

HuffmansCode

Кодовые слова эффективного кода

DecTable

HashMap

<Integer, String>

Ассоциативная таблица кодовых слов и их номеров

Название: PositionalCode.

Описание: кодировщик номеров сообщений в двоичный позиционный код.

Название родительского класса: нет.

Список реализованных интерфейсов: нет.

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

Таблица полей

Название

Тип

Описание

Config

PositionalCodeConfig

Конфигурация работы двоичного кодера

Code

PosBinCode

Таблица двоичных позиционных кодов

Chain

MsgChain

Цепочка сообщений, блоков или L-грамм

Reader

DataReader

Тип обрабатываемых данных

Таблица методов

Название

Доступ

Входные

данные

Описание

Тип

Выходные данные

Описание

PositionalCode

public

config

Конфигурация работы

PositionalCodeConfig

-

Инициализация основных параметров

chain

Цепочка сообщений

MsgChain

PositionalCode

public

config

Конфигурация работы

PositionalCodeConfig

-

Инициализация основных параметров

chain

Цепочка сообщений (уровней квантования)

LevelChain

TextMode

public static

-

-

-

-

Режим обработки текстовой информации

FunctionReader

public static

-

-

-

-

Режим обработки уровней квантования

Prepare

Date

public

-

-

-

Заполнение таблицы кодовыми словами

codeTable

public

-

-

-

Таблица кодовых слов

Возвращает таблицу двоичных позиционных кодовых слов

Название: PCoder.

Описание: кодирование сообщений, блоков или L-грамм двоичным позиционным кодом.

Название родительского класса: Device.

Список реализованных интерфейсов: IDeviceConnector.

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

Таблица полей

Название

Тип

Описание

Code

PosBinCode

Кодовые слова двоичного позиционного кода

Таблица методов

Название

Доступ

Входные

данные

Описание

Тип

Выходные данные

Описание

PCoder

public

code

Таблица кодовых слов

PosBinCode

-

Инициализация основных параметров

execute

public

-

-

-

-

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

Название: PDecoder.

Описание: декодирование кодовых слов позиционного кода в сообщения блоки или L-граммы.

Название родительского класса: Device.

Список реализованных интерфейсов: IDeviceConnector.

Роль в цифровой модели: экземпляр класса принимает таблицу кодовых слов для декодирования очередного кодового слова от предыдущего устройства в сообщение, блок или L-грамм.

Таблица методов

Название

Доступ

Входные

данные

Описание

Тип

Выходные данные

Описание

PDecoder

public

code

Таблица кодовых слов

PosBinCode

-

Инициализация основных параметров

execute

public

-

-

-

-

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

Таблица полей

Название

Тип

Описание

Code

PosBinCode

Кодовые слова двоичного позиционного кода

DecTable

HashMap

<Integer, String>

Ассоциативная таблица кодовых слов и их номеров

Название: ExtandibleMemory.

Описание: память для кодовых слов, сообщений, блоков или L-грамм.

Название родительского класса: Device.

Список реализованных интерфейсов: IDeviceConnector.

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

Таблица методов

Название

Доступ

Входные

данные

Описание

Тип

Выходные данные

Описание

ExtandibleMemory

public

-

-

-

-

Инициализация основных параметров

store

package

-

-

-

-

Сохранение принятого значения

execute

public

-

-

-

-

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

size

public

-

-

-

Объем занятой памяти

Возвращает число принятых сообщений

clear

public

-

-

-

-

Очистка памяти

getMsg

public

i

Индекс слова в мапяти

int

Сохраненное по данному индексу сообщение

Возвращает сообщение сохраненное в памяти

Таблица полей

Название

Тип

Описание

pMemory

Stack<String>

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

Название: DataLink.

Описание: канал передачи данных между устройствами. Способен моделировать искажение как одного случайного разряда, так и разрядов по всей длине кодового слова.

Название родительского класса: Device.

Список реализованных интерфейсов: IDeviceConnector.

Роль в цифровой модели: экземпляр класса принимает модель помехи, которая будет искажать передаваемые кодовые слова. Перед использованием необходимо задать режим работы канала связи.

Таблица методов

Название

Доступ

Входные

данные

Описание

Тип

Выходные данные

Описание

DataLink

public

noise

Помеха в канале связи

Noise

-

Инициализация основных параметров

config

Конфигурация работы канала связи

EnvironmentConfig

miltiImpact

public static

-

-

-

-

Режим воздействия помехи на все разряды кодового слова

monoImpact

public static

-

-

-

-

Режим воздействия помехи на один случайный разряд кодового слова

Таблица полей

Название

Тип

Описание

ImpactMode

boolean

Режим искажение разрядов

Config

EnvironmentConfig

Конфигурация работы канала связи

Noise

Noise

Характер помехи в канале связи

Название: ChainGenerator.

Описание: генератор сообщений, блоков или L-грамм.

Название родительского класса: MsgGenerator.

Список реализованных интерфейсов: IMsgGenerator.

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

Таблица методов

Название

Доступ

Входные

данные

Описание

Тип

Выходные данные

Описание

ChainGenerator

public

chain

Цепочка сообщений

MsgChain

-

Инициализация цепочки сообщений

ChainGenerator

public

chain

Цепочка уровней квантования

LevelChain

-

Инициализация цепочки уровней квантования

convLevelchain

public static

chain

Цепочка уровней квантования

LevelChain

Цепочка уровней квантования в строковом формате

Возвращает цепочку уровней квантования в строковом формате

generate

public

-

-

-

-

Генерация сообщений, блоков или L-грамм

Таблица полей

Название

Тип

Описание

Chain

MsgChain

Цепочка сообщений, блоков или L-грамм

Название:EStatViewer.

Описание: вывод статистических данных на консоль или в файл.

Название родительского класса: нет.

Список реализованных интерфейсов: нет.

Роль в цифровой модели: экземпляр класса принимает поток данных для вывода на консоль или в файл, с последующей установкой выводимых статистических данных.

Таблица методов

Название

Доступ

Входные

данные

Описание

Тип

Выходные данные

Описание

EStatViewer

public

stream

Поток данных на консоль или в файл

IPrintable

-

Инициализация потока данных

setData

public

Data

Показатели эффективности кода

CodeStat

-

Установка показателей эффективности кода

view

public

-

-

-

-

Вывод данных

Таблица полей

Название

Тип

Описание

Data

CodeStat

Показатели эффективности кода

Writer

IPrintable

Поток вывода данных

Название: TableViewer.

Описание: отображение кодирующих таблиц: таблицы соответствия между номерами сообщений, кодовыми словами, а так же частотой их вхождения.

Название родительского класса: нет.

Список реализованных интерфейсов: нет.

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

Таблица полей

Название

Тип

Описание

Reader

DataReader

Режим обработки текстовой или числовой информации

Mode

CodeDecodeMode

Режим кодирования декодирования

Writer

Writer

Поток данных в файл или на консоль

Таблица методов

Название

Доступ

Входные

данные

Описание

Тип

Выходные данные

Описание

Table

Viewer

public

stream

Поток данных в файл или на консоль

IPrintable

-

Инициализация потока данных

TextMode

public static

-

-

-

-

Режим обработки текста

FuncMode

public static

Режим обработки уровней квантования

BlockMode

public static

Режим обработки блоков

LgramMode

public static

Режим обработки L-грамм

view

public

huf

Таблица эффективных кодовых слов

Huffmans

Code

-

Отображение таблиц и статистических данных

pos

Таблица двоичных козиционных кодовых слов

PosBinCode

chain

Цепочка сообщений, блоков или L-грамм

IWord

Название: EffectiveCodeStatistics.

Описание:вычисление показателей эффективности кода: средней длины кодового слова, среднего числа двоичных символов на одно сообщение при кодировании блоками или L-граммами.

Название родительского класса: нет.

Список реализованных интерфейсов: нет.

Роль в цифровой модели: экземпляр класса на основе таблицы эффективных кодовых слов вычисляет показатели эффективности кода.

Таблица полей

Название

Тип

Описание

Code

HuffmansCode

Кодовые слова эффективного кода

PartInfo

PartitionInfo

Информация о выборке сообщений

Stat

CodeStat

Статистические показатели эффективного кода

Таблица методов

Название

Доступ

Входные

данные

Описание

Тип

Выходные данные

Описание

Effective

CodeStatistics

public

code

Таблица кодовых слов эффективного кода

Huffmans

Code

-

Инициализация основных параметров

partinfo

Информация о выборке сообщений

Partition

Info

averLen

Codewrd

public

ts

Длина всего сообщения

double

Среднее число двоичных символов на одно сообщение

Расчет средней длины кодового слова

averLen

BinChr

public

ts

Длина всего сообщения

double

Cедняя длина кодового слова

Расчет средней длины кодового слова

calcBinLen

public

-

-

-

Длина всего сообщения

Вычисление длины всего сообщения

calc

public

-

-

-

-

Расчет статистических показателей

getStat

public

-

-

-

Статистические показатели эффективного кода

Возвращает статистические показатели эффективно

го кода

Название: CodeStat.

Описание: статистические показатели эффективности кода.

Название родительского класса: нет.

Список реализованных интерфейсов: нет.

Роль в цифровой модели: экземпляр класса является контейнером для хранения статистических показателей эффективного кода.

Таблица методов

Название

Доступ

Входные

данные

Описание

Тип

Выходные данные

Описание

CodeStat

public

avg1

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

double

-

Инициализация основных параметров

avg2

Среднее число двоичных символов

на одно сообщение

double

getAvg

CodeW

public

-

-

-

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

Возвращает среднюю длину кодового слова

setAvg

CodeW

public

avgCodeW

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

double

-

Установка средней длины кодового слова

getAvgBin

Char

public

-

-

-

Среднее число двоичных символов на одно сообщение

Возвращает среднее число двоичных символов на одно сообщение

setAvgBin

Char

public

avgBinChar

Среднее число двоичных символов на одно сообщение

double

-

Установка среднего числа двоичных символов на одно сообщение

Таблица полей

Название

Тип

Описание

AvgCodeW

double

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

AvgBinChar

double

Среднее число двоичных символов на одно сообщение

Название: PassStatistics.

Описание: расчет статистических показателей эффективной передачи данных.

Название родительского класса: нет.

Список реализованных интерфейсов: нет.

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

Таблица методов

Название

Доступ

Входные

данные

Описание

Тип

Выходные данные

Описание

Pass

Statistics

public

chain

Цепочка сообщений

MsgChain

-

Инициализация основных параметров

mem

Блок памяти заполненный принятыми сообщениями

ExtandibleMemory

Pass

Statistics

public

chain

Цепочка сообщений

LevelChain

-

Инициализация основных параметров

mem

Блок памяти заполненный принятыми сообщениями

ExtandibleMemory

getStat

public

-

-

-

Статистические данные

Возвращает статистические данные об эффективности передачи данных

Таблица полей

Название

Тип

Описание

Stat

EStat

Статистические данные об эффективности передачи данных

Название: LevelConverter.

Описание: преобразователь уровней квантования в значения сигнала.

Название родительского класса: Device.

Список реализованных интерфейсов: IDeviceConnector.

Роль в цифровой модели: экземпляр класса принимает конфигурацию работы квантователя, чтобы на ее основе восстановить значение сигнала по данному уровню квантования.

Таблица методов

Название

Доступ

Входные

данные

Описание

Тип

Выходные данные

Описание

Level

Converter

public

config

Конфигурация работы квантователя

Quantizer

Config

-

Инициализация основных параметров

step

Шаг преобразователя (в зависимости от способа кодирования)

int

execute

public

-

-

-

-

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

Таблица полей

Название

Тип

Описание

Config

QuantizerConfig

Конфигурация работы квантователя

Step

int

Шаг преобразователя уровней квантования в значение сигнала

I

int

Счётчик поступивших сообщений

Название: CodeSaver.

Описание: сохраняет кодированный эффективным кодом текст в файл.

Название родительского класса: нет.

Список реализованных интерфейсов: нет.

Роль в цифровой модели: экземпляр класса принимает конфигурацию работы квантователя, чтобы на ее основе восстановить значение сигнала по данному уровню квантования.

Таблица методов

Название

Доступ

Входные

данные

Описание

Тип

Выходные данные

Описание

CodeSaver

public

filename

Имя файла

String

-

Инициализация основных параметров

BlockMode

public static

-

-

-

-

Режим обработки блоков

Lgram

Mode

public static

-

-

-

-

Режим обработки L-грамм

saveText

public

mem

Память

ExtandibleMemory

-

Сохранение текста в файл

saveCode

public

mem

Память

ExtandibleMemory

-

Сохранение кода в файл

Таблица полей

Название

Тип

Описание

Writer

PrintWriter

Поток вывода данных

Split

int

Длина L-грамма

BreakLine

int

Количество сообщений в строке

Название: ToFile.

Описание: сохранение данных в файл.

Название родительского класса: нет.

Список реализованных интерфейсов: IPrintable.

Роль в цифровой модели: экземпляр класса принимает имя файла и выводит заданные данные в файл.

Таблица методов

Название

Доступ

Входные

данные

Описание

Тип

Выходные данные

Описание

ToFile

public

filename

Имя файла

String

-

Инициализация имени файла

stream

public

-

-

-

Поток данных в файл

Возвращает поток данных в файл

setFileName

public

filename

Имя файла

String

-

Установка имени файла

Таблица полей

Название

Тип

Описание

FileName

String

Имя файла

Название: ToConsole.

Описание: вывод данных на консоль.

Название родительского класса: нет.

Список реализованных интерфейсов: IPrintable.

Роль в цифровой модели: экземпляр класса выводит заданные данные на консоль.

Таблица методов

Название

Доступ

Входные

данные

Описание

Тип

Выходные данные

Описание

ToConsole

public

-

-

-

-

-

stream

public

-

-

-

Поток данных на консоль

Возвращает поток данных на консоль

closeStream

Public

-

-

-

-

Вывод данных на консоль

Таблица полей

Название

Тип

Описание

Pw

PrintWriter

Поток данных

Название: BlockMode.

Описание: определяет режим кодирования и декодирования блоков.

Название родительского класса: CodeDecodeMode.

Список реализованных интерфейсов: нет.

Роль в цифровой модели: экземпляр класса осуществляет деление принятого файла на блоки заданной длины и создает из них цепочку боков, которая будет передана генератору блоков или L-грамм.

Таблица методов

Название

Доступ

Входные

данные

Описание

Тип

Выходные данные

Описание

BlockMode

public

-

-

-

-

-

setConfig

public

config

Конфигура

ция работы

Partition

Info

-

Установка конфигура

ции

execute

public

file

Файл с текстом

File

Цепочка блоков

Создание цепочки блоков символов из данных файла

Название: LgrammMode.

Описание: определяет режим кодирования и декодирования L-грамм.

Название родительского класса: CodeDecodeMode.

Список реализованных интерфейсов: нет.

Роль в цифровой модели: экземпляр класса осуществляет деление принятого файла на L-граммы заданной длины и создает из них цепочку боков, которая будет передана генератору блоков или L-грамм.

Таблица методов

Название

Доступ

Входные

данные

Описание

Тип

Выходные данные

Описание

Lgramm

Mode

public

-

-

-

-

-

setConfig

public

config

Конфигура

ция работы

Partition

Info

-

Установка конфигура

ции

execute

public

file

Файл с текстом

File

Цепочка L-грамм

Создание цепочки L-грамм символов из данных файла

Название: ChainSplitMode.

Описание: необходим для определения режима кодирования декодирования данных.

Название родительского класса: нет.

Список реализованных интерфейсов: нет.

Роль в цифровой модели: экземпляр класса возвращает необходимый режим работы устройства.

Таблица методов

Название

Доступ

Входные

данные

Описание

Тип

Выходные данные

Описание

Block

public static

-

-

-

Режим блоков

Режим кодирования и декодирования блоками

lGramm

public static

-

-

-

Режим L-грамм

Режим кодирования и декодирования L-граммами

Таблица полей

Название

Тип

Описание

Mode

CodeDecodeMode

Режим кодирования и декодирования

Название: DerivedDataBuilder.

Описание: считывание данных из файла с формированием упорядоченной последовательности данных: сообщений, блоков или L-грамм.

Название родительского класса: нет.

Список реализованных интерфейсов: нет.

Роль в цифровой модели: экземпляр класса возвращает цепочку сообщений, блоков или L-грамм.

Таблица полей

Название

Тип

Описание

Config

PartitionInfo

Информация о выборке сообщений

Таблица методов

Название

Доступ

Входные

данные

Описание

Тип

Выходные данные

Описание

DerivedDataBuilder

public

len

Информация о выборке сообщений

Partition

Info

-

Инициализация данных

form

public

file

Файл с данными

TextFile

Цепочка сообще

ний, блоков или L-грамм

Формирова

Ние цепочки сообщений, блоков или L-грамм

mode

Режим кодирования декодирования сообщений, блоков или L-грамм

CodeDecodeMode

Название: Device.

Описание: устройство только способное передавать сообщения.

Название родительского класса: нет.

Список реализованных интерфейсов: IDeviceConnector.

Роль в цифровой модели: устройство в системе, которое способно передавать сообщения, как в строковом, так и в числовом формате. Есть возможность передавать сообщения между устройствами, реализующими разные интерфейсы.

Таблица методов

Название

Доступ

Входные

данные

Описание

Тип

Выходные данные

Описание

setNext

public

device

Устройство, реализующее данный интерфейс

-

Подключение следующего устройства

getNext

public

-

-

-

IDevice

Connector

Возвращает подключённое устройство

setNextBlok

public

device

Устройство, реализующее данный интерфейс

IBlock

Connector

-

Подключение следующего устройства

getNextBlok

public

-

-

-

IBlock

Connector

Возвращает подключённое устройство

Таблица полей

Название

Тип

Описание

Next

IDeviceConnector

Любой объект реализующий данный интерфейс

NextBlok

IBlockConnector

Любой объект реализующий данный интерфейс

Msg

String

Сообщение, блок или L-грамма

Bit

float

Очередной бит или уровень значение сигнала

Название: DataReader.

Описание: обработка данных, представленных только числами или текстом.

Название родительского класса: нет.

Список реализованных интерфейсов: нет.

Роль в цифровой модели: класс отвечает за нахождение уникальных сообщений в цепочке сообщений, с подсчётом повторяющихся сообщений, и на основе полученных данных формирует таблицу соответствия между сообщениями и числом их вхождения.

Таблица методов

Название

Доступ

Входные

данные

Описание

Тип

Выходные данные

Описание

setChain

package

chain

Цепочка сообщений, блоков или L-грамм

MsgChain

-

Установка цепочки сообщений, блоков или L-грамм

scan

package

i

Индекс сообщения в цепочке сообщений

int

-

Выделение алфавита из цепочки сообщений и число повторов каждого сообщения

Lookup

Table

protected

-

-

-

Таблица соответствия сообщений и числа их вхождения

Возвращает таблицу соответствия сообщений и числа их вхождения

Таблица полей

Название

Тип

Описание

StatTable

LookupTable

Таблица соответствия между сообщениями и числом их вхождений

Chain

MsgChain

Цепочка сообщений, блоков или L-грамм

Buff

TextValueBuff

Буферные данные

Название: FunctionReader.

Описание: обработка данных, представленных числами.

Название родительского класса: DataReader.

Список реализованных интерфейсов: нет.

Роль в цифровой модели: экземпляр класса находит в цепочке сообщений повторяющуюся последовательность чисел, и заносит их в таблицу соответствия повторов этих последовательностей и номеров сообщений.

Таблица методов

Название

Доступ

Входные

данные

Описание

Тип

Выходные данные

Описание

Function

Reader

public

-

-

-

-

-

sort

package

i

Индекс сообщения в цепочке сообщений

int

-

Нахождение одинаковых последовательностей уровней квантования

Таблица полей

Название

Тип

Описание

Value

FuncBuff

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

Lchain

LevelChain

Массив уровней квантования

Название: TextReader.

Описание: обработка данных, представленных символами.

Название родительского класса: DataReader.

Список реализованных интерфейсов: нет.

Роль в цифровой модели: экземпляр класса находит в цепочке сообщений повторяющуюся последовательность символов, и заносит их в таблицу соответствия повторов этих последовательностей и номеров сообщений.

Таблица методов

Название

Доступ

Входные

данные

Описание

Тип

Выходные данные

Описание

Text

Reader

public

-

-

-

-

-

sort

package

i

Индекс сообщения в цепочке сообщений

int

-

Нахождение одинаковых последовательностей символов

Таблица полей

Название

Тип

Описание

Value

ValueBuff

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

Название: MsgChain.

Описание: цепочка сообщений, блоков или L-грамм в строковом формате.

Название родительского класса: нет.

Список реализованных интерфейсов: IWord.

Роль в цифровой модели: является источником данных для кодирования и декодирования сообщений, блоков или L-грамм.

Таблица методов

Название

Доступ

Входные

данные

Описание

Тип

Выходные данные

Описание

MsgChain

public

meslen

Длина исследуемой выборки сообщений

int

-

Инициализация длины выборки сообщений

getWord

public

i

Индекс сообщения в цепочке

int

Сообще

ние, блок или L-грамм

Возвращает

Сообщение, блок или L-грамм

Таблица полей

Название

Тип

Описание

Wc

String[]

Массив сообщений, блоков или L-грамм

Название: LevelChain.

Описание: цепочка сообщений, блоков или L-грамм в числовом формате.

Название родительского класса: нет.

Список реализованных интерфейсов: IWord.

Роль в цифровой модели: является источником данных для кодирования и декодирования сообщений, блоков или L-грамм.

Таблица методов

Название

Доступ

Входные

данные

Описание

Тип

Выходные данные

Описание

Level

Chain

public

partinfo

Информация о выборке сообщений

Partition

Info

-

Инициализация данных

getWord

public

i

Индекс сообщения в цепочке

int

Сообщение, блок или L-грамм

Возвращает

сообщение, блок или L-грамм

getLength

public

-

-

-

Длина цепочки уровней квантования

Возвращает длину цепочки уровней квантования

Таблица полей

Название

Тип

Описание

Chain

int[][]

Цепочка уровней квантования

PartInfo

PartitionInfo

Информация о выборке сообщений

Название: LookupTable.

Описание: таблица соответствия между сообщениями и числом вхождений.

Название родительского класса: нет.

Список реализованных интерфейсов: нет.

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

Таблица методов

Название

Доступ

Входные

данные

Описание

Тип

Выходные данные

Описание

Lookup

Table

public

kbl

Длина выборки сообщений

int

-

Инициализация данных

getEqual

Table

public

-

-

-

Таблица соответствия

Возвращает таблицу соответствия сообщений к числам их вхождений

getBlock

Nums

public

-

-

-

Последовательность номеров сообщений (числовой эквивалент цепочки сообщений)

Возвращает последовательность номеров сообщений

getDifMes

public

-

-

-

Число различных сообщений

Возвращает число различных сообщений

Таблица полей

Название

Тип

Описание

EqualTable

int[][]

Таблица соответствия номеров сообщений с числом их вхождений

BlockNums

int[]

Массив номеров сообщений

DifMes

int

Число различных сообщений

NumberMsg

HashMap

<Integer, String>

Таблица соответствия сообщений с их уникальными номерами

Название: TreeOfStates.

Описание: дерево сообщений в методе построения оптимального кода Хаффмана.

Название родительского класса: нет.

Список реализованных интерфейсов: нет.

Роль в цифровой модели: необходим для кодирования сообщений кодовыми словами эффективного кода. По данному дереву сообщений будет определяться как часто встречается данное слово и каким количеством знаков его нужно закодировать.

Таблица методов

Название

Доступ

Входные

данные

Описание

Тип

Выходные данные

Описание

TreeOf

States

public

partition

Info

Информация о выборке сообщений

Partition

Info

-

Инициализация данных

build

public

table

Таблица соответствия сообщений с числом их вхождений

LookupTable

-

Построение дерева сообщений

getTree

public

-

-

-

Дерево сообщений

Возвращает дерево сообщений

Таблица полей

Название

Тип

Описание

Tree

int[][]

Дерево сообщений

Название: LookupTableBuilder.

Описание: формирователь таблицы соответствия между различными сообщениями и числом их вхождений.

Название родительского класса: нет.

Список реализованных интерфейсов: нет.

Роль в цифровой модели: формирует таблицу соответствия сообщений с числом их вхождений в зависимости от способа кодирования и декодирования сообщений.

Таблица полей

Название

Тип

Описание

Config

PartitionInfo

Информация о выборке сообщений

Reader

DataReader

Режим обработки данных

Таблица методов

Название

Доступ

Входные

данные

Описание

Тип

Выходные данные

Описание

Lookup

Table

Builder

public

config

Информация о выборке сообщений

Partition

Info

-

Инициализация данных

reader

Режим обработки данных

Data

Reader

make

public

chain

Цепочка сообщений, блоков или L-грамм

MsgChain

LookupTable

Создание таблицы соответствия сообщений с числом их вхождений

Название: PosBinCode.

Описание: таблица двоичных позиционных кодов.

Название родительского класса: нет.

Список реализованных интерфейсов: нет.

Роль в цифровой модели: необходима для кодирования – декодирования данных при их передачи между устройствами.

Таблица методов

Название

Доступ

Входные

данные

Описание

Тип

Выходные данные

Описание

PosBin

Code

public

config

Конфигурация работы

PositionalCodeConfig

-

Инициализация конфигурации работы

getWord

public

i

Индекс кодового слова в таблице

int

Кодовое слово

Возвращает кодовое слово по данному индексу

Таблица полей

Название

Тип

Описание

Code

String[]

Массив позиционных кодов

Config

PositionalCodeConfig

Конфигурация работы

LpTable

LookupTable

Таблица соответствия сообщений

Название: HuffmansCode.

Описание: таблица кодовых слов эффективного кода.

Название родительского класса: нет.

Список реализованных интерфейсов: нет.

Роль в цифровой модели: необходима для кодирования – декодирования данных при их передачи между устройствами.

Таблица методов

Название

Доступ

Входные

данные

Описание

Тип

Выходные данные

Описание

HuffmansCode

public

config

Конфигурация работы

HuffmanConfig

-

Инициализа

ция конфигура

ции

getWord

public

i

Индекс кодового слова в таблице

int

Кодовое слово

Возвращает кодовое слово по данному индексу

Таблица полей

Название

Тип

Описание

Code

String[]

Массив кодовых слов эффективного кода

Config

HuffmanConfig

Конфигурация работы

LpTable

LookupTable

Таблица соответствия сообщений