Снижение вероятности ложной тревоги в измерительном узле системы гидроакустического мониторинга
Автор: Стародубцев П.А., Сторожок Е.А., Алифанов Р.Н.
Журнал: Журнал Сибирского федерального университета. Серия: Техника и технологии @technologies-sfu
Статья в выпуске: 5 т.13, 2020 года.
Бесплатный доступ
Вероятность ложной тревоги в измерительном узле системы гидроакустического мониторинга может быть снижена, если проводить первичную идентификацию источника сигнала. Для этого необходимо предусмотреть наличие в составе узла базы данных шумовых портретов целей. Сигналы с выхода предварительного усилителя измерительного узла сравниваютссигналами, хранящимисявбазеданных, путемвычислениясреднеквадратического отклонения. Определяют сигнал с минимальным отклонением и соответствующий ему источник. Сравнение сигналов может быть произведено и вычислением корреляционной функции. В данной статье приведены результаты компьютерного моделирования блока первичной классификации измерительного узла в системе MATLAB&SIMULINK. Сравниваемые сигналы представлены в частотной области.
Измерительный узел, детерминированный сигнал, период нижней гармоники, вектор отсчетов сигнала, среднеквадратическое отклонение, аддитивная помеха
Короткий адрес: https://sciup.org/146281642
IDR: 146281642 | УДК: 004.7(075) | DOI: 10.17516/1999-494X-0246
Reduction of False Alarm Probability in the Measuring Node of the Hydroacoustic Monitoring System
The probability of a false alarm in the measuring unit of the hydroacoustic monitoring system can be reduced if the primary identification of the signal source is carried out. For this purpose, it is necessary to provide for the presence of noise portraits of targets in the database node. The signals from the pre-amplifier output of the measuring unit are compared with the signals stored in the database by calculating the standard deviation. The signal with the minimum deviation and its corresponding source are determined. Comparison of signals can be made by calculating the correlation function. This article presents the results of computer simulation of the primary classification unit of the measuring unit in the MATLAB&SIMULINK system. The compared signals are represented in the time domain.
Текст научной статьи Снижение вероятности ложной тревоги в измерительном узле системы гидроакустического мониторинга
Вероятность ложной тревоги в измерительном узле системы гидроакустического мониторинга может быть снижена, если проводить первичную идентификацию источника сигнала. В связи с этим необходимо предусмотреть наличие в составе узла базы данных шумовых портретов морских целей, что может обеспечить безопасность мореплавания судов в условиях ограниченной видимости.
Для этого сигналы с выхода предварительного усилителя измерительного узла сравнивают с сигналами, хранящимися в базе данных, путем вычисления среднеквадратического отклонения. Определяют сигнал с минимальным отклонением и соответствующий ему источник. Сравнение сигналов может быть произведено и вычислением корреляционной функции.
Основная часть
Определение спектров сигналов
В соответствии с табл. 1 формируем вектора отсчетов времени и детерминированных сигналов. Ниже приведен фрагмент программы, вычисляющий вектор отсчетов детерминирован-– 569 – ного сигнала Y0b. Максимальное значение отсчета времени равно периоду нижней гармоники из табл. 1. Частота нижней гармоники (сигнал № 3) равна 2 Гц, а период соответственно 0.5 с. Частота дискретизации равна 4000 Гц.
t = 0:1/4000:0.5; % Формируем вектор времени с шагом 1/4000 с
Y0b = 5*cos(2*pi*10*t).*cos(2*pi*38*t)*0.2.*cos(2*pi*59*t); % Вектор сигнала
К полученному сигналу аддитивно добавим шум с амплитудой 2.5.
noise = 0.5*rand(1,length(t))-0.25; % Создаем шум с амплитудой 2.5
Y0b = Y0b+noise; % К сигналу аддитивно добавляем шум
Определим спектр сигнала, используя функцию расчета прямого быстрого преобразования Фурье:
Y0b = fft(Y0b,4000); % Находим БПФ сигнала
Y0b = Y0b.*conj(Y0b)/4000; % Находим модуль БПФ f = (0:1999); % Формируем вектор частоты с шагом 1 Гц
Сравнение спектров сигналов в Simulink
Для того чтобы сопоставить каждое значение модуля БПФ сигнала соответствующему значению частоты, необходимо сохранить массив отсчетов в виде матрицы размеров 2 на N (где N - количество отсчетов сигнала). В первой строке данной матрицы должны находиться дискретные значения частоты, а во второй – отсчеты модуля БПФ сигнала. Эта операция позволит выполнить моделирование сигнала как функции частоты в Simulink.
Y0b = [f; Y0b]; % Находим матрицу,
% состоящую из значений частоты и отсчетов save 'Y0b' Y0b % сохраняем найденную матрицу в файле simulink % Запускаем Simulink
Аналогично получаем матрицы размеров 2 на N для всех сигналов из табл. 1. Весь массив матриц Yib является содержимым базы данных шумовых портретов целей. Затем получаем матрицы размеров 2 на N зашумленных сигналов из табл. 1 повторно и формируется массив Yj. Каждая матрица из массива Yj сравнивается в Simulink с каждой матрицей из массива Yib путем вычисления среднеквадратического отклонения (рис. 1).
Результат моделирования работы блока первичной классификации приведен в табл. 2. Курсивом выделены минимальные отклонения принятого сигнала от эталонного.
Анализ данных табл. 2 показывает, что из 10 опытов пять дали неверный результат, т. е. вероятность ошибки идентификации равна 50 %. Для снижения вероятности ошибки необходима фильтрация сигнала.
Фильтрация сигнала
Выполняем аппроксимацию фильтра, используя программу Sptool. На рис. 2 показано окно этой программы с результатом аппроксимации рекурсивного фильтра десятого порядка, частота дискретизации (Fs) равна 4000 Гц, частота среза Fstop - 200 Гц.
Таблица 1. Детерминированные сигналы
Table 1. Deterministic signals
|
№№ п/п |
Детерминированные сигналы |
|
00 |
5*cos(2*pi*10*t)*cos(2*pi*38*t)*0.2*cos(2*pi*59*t) |
|
11 |
sin(2*pi*5*t) |
|
22 |
cos(2*pi*3*t) |
|
33 |
sin(2*pi*2*t)* sin(2*pi*20*t) |
|
44 |
sin(2*pi*4*t)* sin(2*pi*40*t) |
|
55 |
cos(2*pi*6*t)* cos(2*pi*30*t) |
|
66 |
cos(2*pi*7*t)* cos(2*pi*28*t) |
|
77 |
sin(2*pi*5*t)* sin(2*pi*15*t)* sin(2*pi*30*t) |
|
88 |
sin(2*pi*4*t)* cos(2*pi*24*t)* sin(2*pi*40*t) |
|
99 |
cos(2*pi*3*t)*sin(2*pi*21*t)* sin(2*pi*63*t) |
YO.mal
From File
|
YOb.mat |
From File I
К Ts
Z-l
Discrete -Time Integrator
Display
Рис. 1. Сравнение матриц отсчетов зашумленных сигналов в Simulink
Fig. 1. Comparison of matrixes of samples of noisy signals in Simulink
Таблица 2. Результаты моделирования (шум с амплитудой 2.5). Сравнение спектров сигналов
Table 2. Simulation results (noise with an amplitude of 2.5). Comparison of signal spectra
|
Yib |
Yj |
|||||||||
|
Y0 |
Y1 |
Y2 |
Y3 |
Y4 |
Y5 |
Y6 |
Y7 |
Y8 |
Y9 |
|
|
Y0b |
-2.718 |
112.9 |
88.22 |
22.82 |
60.00 |
52.43 |
48.77 |
0.91 |
12.48 |
6.33 |
|
Y1b |
-6.4 |
-0.19 |
-29.52 |
-96.36 |
-56.45 |
-60.04 |
-61.35 |
-124.7 |
-109.4 |
-120.3 |
|
Y2b |
-84.72 |
36.55 |
8.23 |
-61.70 |
7.10 |
-42.38 |
-40.99 |
-81.69 |
-71.57 |
-102.1 |
|
Y3b |
-27.41 |
93.18 |
63.31 |
-31.37 |
42.28 |
28.76 |
19.57 |
-20.71 |
-13.42 |
-31.34 |
|
Y4b |
-57.67 |
64.82 |
32.28 |
-41.03 |
23.08 |
-7.65 |
-11.4 |
-60.52 |
4.92 |
-64.71 |
|
Y5b |
-56.31 |
54.39 |
43.80 |
-3.21 |
7.59 |
-5.41 |
-5.27 |
-53.51 |
-49.78 |
-57.78 |
|
Y6b |
-47.61 |
58.98 |
47.73 |
-21.54 |
12.90 |
3.74 |
0.93 |
-49.64 |
-40.27 |
-55.17 |
|
Y7b |
-7.761 |
117.8 |
82.95 |
12.36 |
60.42 |
44.10 |
44.11 |
-9.22 |
1.63 |
-14.88 |
|
Y8b |
-10.54 |
110.3 |
77.06 |
15.08 |
63.07 |
50.92 |
43.97 |
-6.41 |
-52.85 |
-15.88 |
|
Y9b |
5.44 |
116.8 |
105.57 |
27.33 |
65.33 |
54.65 |
56.09 |
6.78 |
16.05 |
-0.658 |
Для экспорта значений коэффициентов фильтра необходимо последовательно выбрать пункты меню (рис. 3):
Edit → Convert to Single Section, Targets → Generate C Header…
Рис. 2. Окно программы Sptool
Fig. 2. Sptool program window
Я Generate C Header
x
Vanat* name* n C header lie
Numerator ним
Denominator oen
Numerator length ml
Denomr-ator length dl
Data type to use in exsert
i) Export suggested
Double-precison ttoatmg-pont
[ owMel Oose Help
Рис. 3. Экспорт коэффициентов фильтра из программы Sptool
Fig. 3. Export filter coefficients from Sptool
Ниже приведены значения коэффициентов фильтра, экспортируемые из программы Sptool:
const int NL = 11;
const real64_T NUM[11] = {
0.0001230718046239,-0.0008771702296175, 0.002950005213996,-0.006248560520599, 0.009408767977326, -0.01071197455114, 0.009408767977326,-0.006248560520599, 0.002950005213996,-0.0008771702296175, 0.0001230718046239
};
const int DL = 11;
const real64_T DEN[11] = {
1, -8.567068149648, 33.11918306054, -76.07169564102, 114.952828427, -119.396787241, 86.31583589917, -42.88219550398, 14.01005883948, -2.71788355467, 0.2377241181237
};
Выполним фильтрацию сигналов в Simulink и сформируем массивы матриц размеров 2 на N Yibf и Yjf (рис. 4).
Ниже приведен исходный код программы цифрового фильтра на языке программирования С. Фильтр реализован на микроконтроллере dsPIC33FJ32MC204. Входные отсчеты x[0] предварительно сохраняются в буферном ЗУ АЦП в регистре ADC1BUF0.
/*Цифровой ФНЧ: рекурсивный, порядок 10, аппроксимация Чебышева II, частота дискретизации 4000 Гц, частота среза 200 Гц*/
//Подключение заголовочных файлов
#include
#include
#include
#include “signal.h”
#include
#include
//Настройка системы тактирования
_FOSCSEL(0x02);//Главный генератор без PLL
_FOSC(0xE2);//Режим HS int r;
Рис. 4. Фильтрация сигнала в Simulink
Fig. 4. Signal filtering in Simulink
//Массивы коэффициентов фильтра
#define NCoef 10
float y[0];
float ACoef[NCoef+1] = {
0.0001230718046239,
-0.0008771702296175,
0.002950005213996,
-0.006248560520599,
0.009408767977326,
-0.01071197455114,
0.009408767977326,
-0.006248560520599,
0.002950005213996,
-0.0008771702296175,
0.0001230718046239
};
float BCoef[NCoef+1] = {
1, -8.567068149648,
33.11918306054,
-76.07169564102,
114.952828427,
-119.396787241,
86.31583589917,
-42.88219550398,
14.01005883948,
-2.71788355467,
0.2377241181237
};
//Функция вычисления очередного выходного отсчета y[0] float iir(ADC1BUF0) { static float y[NCoef+1]; //Выходные отсчеты static float x[NCoef+1]; //Входные отсчеты int n;
//Сдвиг предыдущих входных и выходных отсчетов for(n = NCoef; n>0; n--) {
x[n] = x[n-1];
y[n] = y[n-1];
}
//Вычисление очередного выходного отсчета
x[0] = ADC1BUF0;
y[0] = ACoef[0] * x[0];
for(n = 1; n< = NCoef; n++)
y[0] + = ACoef[n] * x[n] – BCoef[n] * y[n];
PORTB = y[0];
return y[0];
}
//Функция задержки void delay() { int counter = 0;
for (counter = 0; counter<2; counter++) {
;
}
}
//Главная функция void main(void)
{
//Инициализация портов
TRISA = 0x0000;
PORTA = 0x0000;
LATA = 0x0000;
TRISB = 0x0000;
PORTB = 0x0000;
LATB = 0x0000;
TRISC = 0x0000;
PORTC = 0x0000;
LATC = 0x0000;
//Конфигурирование АЦП
TRISC = 0x0001; //RC0-цифровой вход
TRISB = 0x0000; //portB на выход
ADPCFG = 0xFFBF; //RC0(AN6)- аналоговый вход
AD1CON1 = 0x0000;
AD1CHS0 = 0x0006; //Подключение AN6 к УВХ
AD1CSSL = 0;
AD1CON1bits.SAMP = 0; //Начало преобразования while (!AD1CON1bits.DONE); //Преобразование завершено?
PORTB = iir(ADC1BUF0);
} //
}
Результаты повторного сравнения уже отфильтрованных сигналов представлены в табл. 3. Анализ табл. 3 показывает, что из 10 опытов уже только три дали неверный результат, то есть вероятность ошибки идентификации равна 30 %.
Таблица 3. Результаты моделирования (шум с амплитудой 2.5). Сравнение спектров отфильтрованных сигналов
Table 3. Simulation results (noise with an amplitude of 2.5). Comparison of the spectra of the filtered signals
|
Yibf |
Yjf |
|||||||||
|
Y0f |
Y1f |
Y2f |
Y3f |
Y4f |
Y5f |
Y6f |
Y7f |
Y8f |
Y9f |
|
|
Y0bf |
-2.718 |
112.9 |
88.22 |
22.82 |
60.00 |
52.43 |
48.77 |
-9.22 |
12.48 |
6.33 |
|
Y1bf |
-6.4 |
-0.19 |
-29.52 |
-96.36 |
-56.45 |
-60.04 |
-61.35 |
-124.7 |
-109.4 |
-120.3 |
|
Y2bf |
-84.72 |
36.55 |
8.23 |
-61.70 |
-23.08 |
-42.38 |
-40.99 |
-81.69 |
-71.57 |
-102.1 |
|
Y3bf |
-27.41 |
93.18 |
63.31 |
-31.37 |
42.28 |
28.76 |
19.57 |
-20.71 |
-13.42 |
-31.34 |
|
Y4bf |
-57.67 |
64.82 |
32.28 |
-41.03 |
7.10 |
-7.65 |
-11.4 |
-60.52 |
4.92 |
-64.71 |
|
Y5bf |
-56.31 |
54.39 |
43.80 |
-3.21 |
7.59 |
-5.41 |
-5.27 |
-53.51 |
-49.78 |
-57.78 |
|
Y6bf |
-47.61 |
58.98 |
47.73 |
-21.54 |
12.90 |
3.74 |
0.93 |
-49.64 |
-40.27 |
-55.17 |
|
Y7bf |
-7.761 |
117.8 |
82.95 |
12.36 |
60.42 |
44.10 |
44.11 |
0.91 |
1.63 |
-14.88 |
|
Y8bf |
-10.54 |
110.3 |
77.06 |
15.08 |
63.07 |
50.92 |
43.97 |
-6.41 |
-52.85 |
-15.88 |
|
Y9bf |
5.44 |
116.8 |
105.57 |
27.33 |
65.33 |
54.65 |
56.09 |
6.78 |
16.05 |
-0.658 |
Заключение
В случае высокого уровня помехи необходима предварительная фильтрация сигнала, которая существенно снижает вероятность ошибки классификации. В измерительном узле системы гидроакустического мониторинга задачи цифровой обработки сигнала (цифровая фильтрация и спектральный анализ) реализуются на микроконтроллере, а для хранения массива матриц Yibf используется микросхема FlashROM.
Список литературы Снижение вероятности ложной тревоги в измерительном узле системы гидроакустического мониторинга
- Сторожок Е.А. Подводная беспроводная локальная вычислительная сеть как элемент системы морского экологического мониторинга. Автоматизация, телемеханизация и связь в нефтяной промышленности, 2016, 8, 30-34
- Сергиенко А.Б. Цифровая обработка сигналов. СПб.: Питер, 2002, 606 с.
- Дьяконов В.П. MATLAB 6.0/6.1/6.5/6.5 + SP1 + Simulink 4/5. Обработка сигналов и изображений, М.: СОЛОН-Пресс, 2004, 592 с.