Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
_Методичка_ДЗ_01122016(1)(1).DOCX
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
1.72 Mб
Скачать

Предварительная обработка сигналов

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

1) Произвести компенсацию смещения квадратур

M 0= n1m ∑ ∑ ai , j (1)

i j

где M 0 - смещение действительной и мнимой части квадратур сигнала; m - длина шумовой выборки данных, которая должна быть взята в области (строки), где отсутствуют

цели и пассивные помехи от местных отражателей; n - число записанных каналов по

азимуту в исходном массиве данных (столбцы);

ai , j

- исходный массив квадратур

сигнала (строки — дальность (задержка сигнала по времени).

Шумовую выборку необходимо выбрать из числа последних каналов дальности в массиве исходных данных.

2) Оценить баланс мощностей реальной и мнимой частей квадратур сигнала

D = 1 ⋅∑ ∑( R e(aM ))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 — Результаты предварительной обработки сигнала