- •Постановка задачи
- •Разбор решения задачи Оценка тактико-технических параметров
- •Предварительная обработка сигналов
- •Согласованная фильтрация данных
- •Автокомпенсация активных помех
- •Кластеризация отметок Измерение параметров цели
- •Требования к выполнению домашнего задания
- •Литература
- •Варианты заданий
Предварительная обработка сигналов
Для устранения систематических ошибок при осуществлении операций согласованной фильтрации и последующего обнаружения сигнала необходимо проверить и подготовить исходные данные. Такая подготовка состоит из 3-х этапов:
1) Произвести компенсацию смещения квадратур
M 0= n1m ∑ ∑ ai , j (1)
⋅ i j
где M 0 - смещение действительной и мнимой части квадратур сигнала; m - длина шумовой выборки данных, которая должна быть взята в области (строки), где отсутствуют
цели и пассивные помехи от местных отражателей; n - число записанных каналов по
азимуту в исходном массиве данных (столбцы);
ai , j
- исходный массив квадратур
сигнала (строки — дальность (задержка сигнала по времени).
Шумовую выборку необходимо выбрать из числа последних каналов дальности в массиве исходных данных.
2) Оценить баланс мощностей реальной и мнимой частей квадратур сигнала
D = 1 ⋅∑ ∑( R e(a −M ))2 (2)
R e n⋅(m−1) i j i , j 0
Оглавление
А.Н. Семёнов
Методические указания к домашнему заданию по курсу
«РАДИОЛОКАЦИОННЫЕ ИНФОРМАЦИОННЫЕ И ИЗМЕРИТЕЛЬНЫЕ КОМПЛЕКСЫ»
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
|
|
|
|
|
|||||||||||||
|
D |
I m |
= |
1 |
|
⋅ |
|
|
( I m(a |
i , j |
−M |
0 |
))2 |
(3) |
|
|
|
|
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||
|
|
|
|
|
∑∑ |
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||
|
|
|
|
n⋅(m−1) i |
|
j |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
где |
DR e , DI m |
- оценка дисперсий действительной и мнимой составляющих квадратур |
|
||||||||||||||||||||||||||||||||||
сигнала. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
|
|
3) Компенсация смещения и разбаланса мощности квадратур |
|
||||||||||||||||||||||||||||||||||
|
U |
k ,l |
= |
1 |
⋅R e(a |
k ,l |
−M |
0 |
)+ j⋅ |
|
1 |
|
|
I m(a |
k ,l |
−M |
0 |
) |
(4) |
|
|||||||||||||||||
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||
|
|
|
√DRe |
|
|
|
|
√DI m |
|
|
|
|
|
||||||||||||||||||||||||
где |
U k ,l |
- скомпенсированные квадратуры сигнала, |
ak ,l - исходный полный массив |
|
|||||||||||||||||||||||||||||||||
квадратур сигнала (строки — дальность (задержка сигнала по времени).
Прежде, чем проводить рафинирование, необходимо убедиться, что оно будет проводится для данных с одним коэффициентом усиления в приемнике. Построим сечение матрицы данных по дальности для одного угла.
%проводим медианную фильтрацию данных в логарифмическом масштабе, чтобы %легче было продетектировать границу зон аттенюации (усиления) cutrange = medfilt1(20*log10(abs(single(data.skiraw(:,1)))),50); plot(cutrange);
xlabel('Каналы дальности, отс');
ylabel('Амплитуда, отс');
Рисунок 2 — Сигнал в азимутальном канале (развертка по дальности)
Из рисунка видно, что в данных можно выделить 3 зоны с разными коэффициентами усиления. Определяем по рисунку границы этих зон для последующего рафинирования.
Оглавление
А.Н. Семёнов
Методические указания к домашнему заданию по курсу
«РАДИОЛОКАЦИОННЫЕ ИНФОРМАЦИОННЫЕ И ИЗМЕРИТЕЛЬНЫЕ КОМПЛЕКСЫ»
7
Для решения этой задачи применим объектно-ориентированный подход (ООП). Для этого создадим класс (файл RawData.m), описывающий входные данные для последующей обработки и выполняющий автоматически заданные операции. Экземпляр класса будем создавать в скрипте (файл main.m), который необходимо запускать для загрузки данных.
Файл RawData.m
classdef RawData < handle %наследник глобального класса hanlde в матлабе %RawData описывает загрузка данных РЛС и их "рафинирование"
-
properties
%имя файла
fname
fpath
%путь к файлу
raw
%массив амплитуд в координатах дальность-угол
angles
%массив кодов углов в отсчетах
%медиана абсолютных амплитуд в файле flag_raf%флаг рафинирования
mean_raw = zeros(1,3); %мат ожидание шумов
disp_re = zeros(1,3); %дисперсия вещественной части шумов disp_im = zeros(1,3); %дисперсия мнимой части шумов
%выделяем зоны для обработки
zone1 = [1:1000];
zone2 = [1001:2000];
zone3 = [2001:16000];
end
methods
function obj = RawData(fpath,fn) %конструктор класса
if nargin < 1
obj.open;
else
obj.open(fpath,fn);
end
%отображение данных для того, чтоб убедиться, что в области %больших дальностей присутствуют только шумы
obj.show;
end
function open(obj,fpath,fn) %открытие файла для обработки
if nargin < 1
%выбор файла для обработки
[obj.fname, obj.fpath] = uigetfile('*.mat');
else
obj.fpath = fpath;
obj.fname = fn;
end
%приведение типов к float
temp = (load([obj.fpath obj.fname],'skiraw'));
obj.raw = single(temp.skiraw);
temp = (load([obj.fpath obj.fname],'skiangles'));
obj.angles = single(temp.skiangles);
%вычисление медианы для отображения данных
obj.m = median(abs(obj.raw(:)));
%сброс флага рафинирования
obj.flag_raf = 0; %обработка не проводилась
end
function show(obj) %отображение данных
figure;
imagesc(abs(obj.raw),[0 2*obj.m]);
end
function rafinate(obj,m)
%выборка данных: все каналы дальности и m последних каналов
%дальности
%% зона 1
temp = obj.raw(obj.zone1(end)-m:obj.zone1(end),:); %выборка только шумовых отсчетов (исключаем все нешумовые) temp = temp(temp(:) < median(temp(:)));
temp = temp(:);
%вычисление мат. ожидания по формуле (1)
obj.mean_raw(1) = mean(temp);
%вычисление дисперсий по формуле (2)-(3)
obj.disp_re(1) = var(real(temp)); %дисперсия вещественной части шумов obj.disp_im(1) = var(imag(temp)); %дисперсия мнимой части шумов %компенсация квадратур по фомруле (4)
obj.raw(obj.zone1,:) = 1/sqrt(obj.disp_re(1))*(real(obj.raw(obj.zone1,:))-real(obj.mean_raw(1)))
+...
1j/sqrt(obj.disp_im(1))*(imag(obj.raw(obj.zone1,:))-imag(obj.mean_raw(1))); %% зона 2
Оглавление
А.Н. Семёнов
Методические указания к домашнему заданию по курсу
«РАДИОЛОКАЦИОННЫЕ ИНФОРМАЦИОННЫЕ И ИЗМЕРИТЕЛЬНЫЕ КОМПЛЕКСЫ»
8
temp = obj.raw(obj.zone2(end)-m:obj.zone2(end),:); %выборка только шумовых отсчетов (исключаем все нешумовые) temp = temp(temp(:) < median(temp(:)));
temp = temp(:);
%вычисление мат. ожидания по формуле (1)
obj.mean_raw(2) = mean(temp(:));
%вычисление дисперсий по формуле (2)-(3)
obj.disp_re(2) = var(real(temp(:))); %дисперсия вещественной части шумов obj.disp_im(2) = var(imag(temp(:))); %дисперсия мнимой части шумов %компенсация квадратур по фомруле (4)
obj.raw(obj.zone2,:) = 1/sqrt(obj.disp_re(2))*(real(obj.raw(obj.zone2,:))-real(obj.mean_raw(2)))
+...
1j/sqrt(obj.disp_im(2))*(imag(obj.raw(obj.zone2,:))-imag(obj.mean_raw(2))); %% зона 3
temp = obj.raw(obj.zone3(end)-m:obj.zone3(end),:); %выборка только шумовых отсчетов (исключаем все нешумовые) temp = temp(temp(:) < median(temp(:)));
temp = temp(:);
%вычисление мат. ожидания по формуле (1)
obj.mean_raw(3) = mean(temp(:));
%вычисление дисперсий по формуле (2)-(3)
obj.disp_re(3) = var(real(temp(:))); %дисперсия вещественной части шумов obj.disp_im(3) = var(imag(temp(:))); %дисперсия мнимой части шумов %компенсация квадратур по фомруле (4)
obj.raw(obj.zone3,:) = 1/sqrt(obj.disp_re(3))*(real(obj.raw(obj.zone3,:))-real(obj.mean_raw(3)))
+...
1j/sqrt(obj.disp_im(3))*(imag(obj.raw(obj.zone3,:))-imag(obj.mean_raw(3))); %рафинирование выполнено
obj.flag_raf = 1;
end
end
end
Файл main.m
rlsdata = RawData; rlsdata.rafinate(20); rlsdata.show;
%создаем объект класса RawData
%выполняем метод класса для рафинирования
До рафинирования |
После рафинирования |
|
|
Рисунок 3 — Результаты предварительной обработки сигнала
