Доступные программные компоненты:

Программа для сбора данных с использованием АЦП L-Card E-502 «e502monitor»

Назначение. Сбор и сохранение данных в режиме реального времени при помощи АЦП L-Card E-502.

Техническое описание. Программа написана на языке программирования Си с использование библиотек, разработанных и распространяемых компанией L-Card – x502api и e502api, а также библиотеки libconfig. Приложение предназначено для запуска на компьютерах под управлением операционных систем на базе ядра Linux. Тестирование осуществлялось в операционной системе Ubuntu (версии 18.04 и 20.04).

Краткое описание принципа работы. Программа работает в режиме реального времени, поддерживает работу с АЦП L-Card E-502 через интерфейс USB. Позволяет различным образом конфигурировать параметры работы АЦП (частоту дискретизации, обрабатываемые каналы, диапазон измерений и т.д.).

Установка и запуск. Для установки в операционных система семейства Debian собран deb-пакет, установка которого осуществляется следующей командой: dpkg -i e502monitor_xxx_amd64.deb, где xxx – версия программы. Для дистрибутивов, не поддерживающих deb-пакеты, предусмотрена установка из исходных кодов при помощи системы сборки make.

Запуск программы осуществляется из терминала при помощи команды e502monitor.

Настройка программы производится при помощи конфигурационного файла e502monitor.cfg, расположенного в /home/user/.config/e502monitor/. Настраиваемые параметры: channel_count – количество используемых каналов; adc_freq – частота дискретизации АЦП; file_size – длительность выходных файлов; channel_numbers – номера используемых каналов; channel_modes – режимы измерения каналов; channel_ranges – диапазоны измерения каналов; bin_dir – абсолютный путь до директории, в которую будет проходить запись файлов; module_name – модель АЦП; place – место текущих измерений; channel_names – названия используемых каналов; count_of_day – количество, дней, которые будут сохраняться; channel_distribution – распределение обрабатываемых каналов по файлам.

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

 

Программа выделения импульсов “Sarasti

Назначение. Выделение информативных участков сигнала (импульсов).

Техническое описание. Программа написана на языке программирования Python 3 с использованием библиотек python3-numpypython3-soundfilepython3-scipy. Для обеспечения обработки в реальном времени при частоте дискретизации сигнала до 96 кГц необходим процессор, сопоставимый по производительности с Intel® Core™ i3 с тактовой частотой 1.5-2 ГГц, и свободный объем ОЗУ не менее 1.2 ГБайт. Приложение кроссплатформенное. Тестирование осуществлялось в операционной системе Ubuntu (версии 18.04 и 20.04).

Краткое описание принципа работы. Программа инвариантна к уровню шумов, так как работает в адаптивном к ним режиме. В ходе работы выделяются одиночные импульсы длительностью не менее 1 мс. В случае регистрации серии импульсов каждый из них выделяется отдельно. Для снижения влияния помех от электросети помимо выделения информативных участков сигнала при обработке применяется фильтр высоких частот с частотой среза 500 Гц.

Запуск. Осуществляется из терминала или командной строкиpythonsarasti.py <file>, где <file> входной файл.

Входные данные. Файлы в формате WAVE или FLAC, содержащие до восьми каналов.

Выходные данные. По результатам работы программы формируется файл, расположенный в той же директории, что и исходный, с тем же именем, но дополненный расширением «.txt». Формат результирующего файла является текстовыми и соответствует структуре файлов для меток программы Audacity®. Строки файла соответствуют отдельным импульсам и имеют следующую структуру: a.aaa <tabb.bbb <tabtitle, где a.aaa и b.bbb, соответственно, время начала и конца импульса в секундах, относительно начала файла, <tab> - знак табуляции, title - описание импульса. В качестве разделителя целой и дробной части секунд используется знак точка.

 

Программа частотно-временного анализа сигналов «AMP»

Назначение. Программа для разложения выделенных импульсов на базисные функции Берлаге и Гаусса методом адаптивного согласованного преследования.

Техническое описание. Программа написана на языках программирования С++ (непосредственно программа обработки) и Python 3 (скрипт, автоматизирующий обработку большого объема входных данных). Для обеспечения обработки в реальном времени используется параллельный алгоритм, который может выполняться на видеокарте (технологии CUDA и OpenCL). Приложение выполняется под управлением операционной системы на базе ядра Linux. Тестирование осуществлялось в операционной системе Ubuntu (версии 18.04 и 20.04).

Краткое описание принципа работы. Для каждого выделенного импульса формируется комбинированный словарь, состоящий из модулированных функций Берлаге и Гаусса. Алгоритмом адаптивного согласованного преследования оцениваются коэффициенты аппроксимации импульсов по базисным функциям словаря. Построенные аппроксимации являются разреженными, т.е. содержат минимальное число ненулевых коэффициентов.

Запуск. Осуществляется из терминала или командной строки: ./mp <file_in> -O<file_out> -N<ref> -M<max_size> -C<max_count>, где <file_in> - имя входного файла, <file_out> - имя выходного файла, <ref> - количество итераций уточнения, <max_size> - максимальная длительность обрабатываемого импульса, <max_count> - максимальное количество обрабатываемых импульсов.

Для удобства обработки большого объема входных данных имеется скрипт libmp.py. Он используется следующим образом: сгенерировать конфигурационный файл: $ pythonlibmp.py mp-name; открыть файл mp-name.py, отредактировать настройки; запустить: $ ./mp-name.py.

Входные данные. Файлы в формате WAVE и соответствующие текстовые индексные файлы.

Выходные данные. По результатам работы программы формируется текстовый файл, с тем же именем, но дополненный расширением «.txt». Формат файла с результатами:

«FILENAME: полное имя обработанного файла

NUM_SUB: количество итераций уточнения

MAX_IMP_SIZEмаксимальная длительность обрабатываемого импульса

SAMPLE_RATE: частота дискретизации (в Гц)

SIGNAL_SIZE: длина сигнала (в отсчетах)

MAX_IMP_COUNTмаксимальное количество обрабатываемых импульсов

b l[f Tend Pmax Delta Type](C From To ImpFrom)…»

Для каждого импульса указываются: b — начало (номер отсчета), l — длина (в отсчетах). Для каждой функции, входящей в разложение импульса, в квадратных скобках указываются: f — частота модуляции (в Гц), Tend — длина (в % от длины импульса), Pmax — положение максимума огибающей (в % от длины функции, для функции Гаусса не указывается, поэтому равно 0), Delta — коэффициент, влияющий на крутизну огибающей, Type — тип функции (1 — Берлаге, 2 — Гаусса); в круглых скобках указываются: C — коэффициент разложения, From — номер отсчета сигнала, с которого начинается функция, To — номер отсчета сигнала, на котором заканчивается функция, ImpFrom — номер отсчета функции, начиная с которого она входит в разложение.

 

Программа структурно-лингвистической обработки и анализа сигналов «СЛОАС»

Назначение. Структурно-лингвистической обработки и анализа сигналов (СЛОАС).

Техническое описание. Программа написана на языке программирования JavaТребуемый объем ОЗУ не менее 6 Гбайт, тактовая частота процессора не менее 2.4 ГГц. Приложение кроссплатформенное. Тестирование осуществлялось в операционной системе Ubuntu (версии 18.04 и 20.04).

Краткое описание принципа работы. Программа реализует информационный подход к обработке и анализу импульсных сигналов. Выполняются описание и классификация выделенных из сигнала импульсов. Каждый класс кодируется символом, множество классов формирует алфавит сигнала. Для расчета информационных показателей программа реализует операции объединения, пересечения, разности алфавитов и методы энтропийного анализа.

Запуск. Программа запускается пакетным файлом в терминальном режиме под управлением интерпретатора Java.

Входные данные. Файлы в формате WAVE длительностью от 5 до 15 минут и соответствующие текстовые индексные файлы.

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

1) .abc - файл, содержащий алфавит в виде ранжированных по значениям порядка матриц-образов, для каждого символа заданы описывающая матрица-образ, порядок и частота; имя файла совпадает с именем входного файла, дополненного расширением abc;

2) .abc - файл, содержащий результаты объединения, пересечения или разности алфавитов; имя файла совпадает с именем входного файла, дополненного расширением abc;

3) .msg - файл, содержащий сообщение - результат кодирования сигнала символами выделенного алфавита; имя файла совпадает с именем входного файла, дополненного расширением msg;

4) .ent - файл, содержащий значения информационной энтропии последовательно отобранных алфавитов, файлы алфавитов (.abc) выбираются вручную; имя файла задается пользователем и дополняется расширением ent;

5) графическое представление алфавита, сообщения или рассчитанных значений энтропии; файл для визуализации (.abc, .msg, .ent) выбираются вручную.