Согласованная фильтрация данных — КиберПедия 

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

Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...

Согласованная фильтрация данных

2017-11-22 343
Согласованная фильтрация данных 0.00 из 5.00 0 оценок
Заказать работу

 

После предварительной обработки сигнала следуют операции согласованной обработки сигнала, которая может быть выполнена:

 

1) При помощи операции свертки:

 

 

Оглавление

А.Н. Семёнов

 

Методические указания к домашнему заданию по курсу

«РАДИОЛОКАЦИОННЫЕ ИНФОРМАЦИОННЫЕ И ИЗМЕРИТЕЛЬНЫЕ КОМПЛЕКСЫ»


 

    t      
    h (τ)⋅ x (t −τ) d τ    
  y (t)=    
           
где y (t)- результат операции свертки, h (τ) - опорная функция (импульсная  
характеристика), которая является зеркальным отражением отраженного сигнала,  

 

x (t −τ) - отсчеты сворачиваемой последовательности (записи сигнала) — это выборка

 

данных по всем каналам дальности для одного углового направления, tNK - длина сворачиваемой последовательности (в цифровом виде это сумма длин сворачиваемого

 

массива с длиной опорной функции в отсчетах, взятых с частотой дискретизации), в


 

которой


 

τ N


 

 

- длина сворачиваемой последовательности,


 

τ K


 

 

- длина опорной функции

 


— это длительность опорных сигналов.

 

Опорная последовательность h (τ)


 

 

генерируется,


 

 

исходя


 

 

из


 

 

выбранной


 

 

модели

 


сигнала (ЛЧМ или СКИ) по следующим выражениям:

      h СКИ (τ)= A   ej 2π f пч τ         (5)  
              СКИ                
      h ЛЧМ (τ)= A   ej ⋅π f дев (τ)⋅τ         (6)  
            ЛЧМ                    
2) При помощи операции быстрой свертки:                    
      H (f)= FFT { w (t)⋅ h (t)}         (7)  
          X (f)= FFT { x (t)}         (8)  
      y (t)= iFFT {           (9)  
      H (f)⋅ X (f)}        
где y (t) - результат выполнения   быстрой свёртки,   FFT {...} - оператор прямого  
преобразования БПФ, iFFT {...}-   оператор обратного преобразования БПФ,   -  
  X  
оператор комплексного сопряжения,   X (f) - БПФ от сворачиваемой  
последовательности, H (f) - БПФ от опорной последовательности, w (t) - весовая  
                                       

 

функция. Для СКИ сигнала она равна «1» и её можно опустить, а для ЛЧМ сигнала она вычисляется следующим образом (окно Хэмминга):

 

w (t)=0,53836−0,46164⋅cos(2⋅π t) (10)

 

Для реализации согласованной фильтрации применим ООП подход и создадим класс ConvData (файл ConvData.m), описывающий блок выполнения свёртки по данным класса RawData. Запуск свёртки также будем осуществлять через скрипт (файл main.m)

 

Оглавление

А.Н. Семёнов

 

Методические указания к домашнему заданию по курсу

«РАДИОЛОКАЦИОННЫЕ ИНФОРМАЦИОННЫЕ И ИЗМЕРИТЕЛЬНЫЕ КОМПЛЕКСЫ»


 

Файл ConvData.m

 

classdef ConvData < handle

%ConvData осуществляет согласованную фильтрацию данных

 

properties

 

m_RawData %указатель на объект класса RawData

 

%определяем параметры опорного ски сигнала

ski_tau = 20e-9; %длительность импульса, сек

 

ski_amp = 1; %амплитуда опорного импульса, отс

 

%определяем параметры опорного лчм сигнала

lfm_tau = 5e-6; %длительность импульса, сек

 

lfm_df = 50e6; %девиация частоты сигнала, Гц

lfm_amp = 1; %амплитуда опорного импульса, отс

 

%определяем параметры дискретизации сигнала

 

f_samp = 400e6; %Гц

f_if = 0; %промежуточная частота сигнала после гетеродинирования


 

h_ski

 

h_lfm

convolved_data


 

 

%опорный ски сигнал

 

%опорный лчм сигнал

%выходной массив данных

 


%параметры отображения сигнала

 

med %медиана амплитуд данных на входе

end

 

methods

 

function obj = ConvData(hRawData) %конструктор объекта

obj.m_RawData = hRawData; %создаем связь с объектом класса RawData

 

%создаем опорные сигналы

time = 0:1/obj.f_samp:obj.ski_tau-1/obj.f_samp; %отсчеты времени на длине импульсов %опорный сигнал по формуле (5)

 

obj.h_ski = obj.ski_amp*exp(1j*2*pi*obj.f_if*time);

 

obj.h_ski = fliplr(obj.h_ski); %в согл. фильтре ИХ это зеркальное отражение сигнала во времени

 

time = 0:1/obj.f_samp:obj.lfm_tau-1/obj.f_samp; %отсчеты времени на длине импульсов %опорный сигнал по формуле (6)

obj.h_lfm = obj.lfm_amp*exp(1j*2*pi*(obj.f_if+obj.lfm_df/obj.lfm_tau*time).*time);

obj.h_lfm = fliplr(obj.h_lfm); %в согл. фильтре ИХ это зеркальное отражение сигнала во времени

 

%определяем параметры отображения

 

obj.med = median(abs(obj.m_RawData.raw(:)));

end

 

function convole_time(obj,type) %свертка во временной области

obj.convolved_data = []; %удаляем результаты прошлых вычислений

 

temp = obj.m_RawData.raw; %исходные данны для свертки

n = size(temp,2); %число сверток по дальности

 

if strcmp(type,'ski') %обрабатываем ски

m = length(obj.h_ski);

 

obj.convolved_data = zeros(m+size(temp,1)-1,n);

for ii = 1:n

 

obj.convolved_data(:,ii) = conv(temp(:,ii),obj.h_ski);

end

 

else %обрабатываем лчм

m = length(obj.h_lfm);

 

obj.convolved_data = zeros(m+size(temp,1)-1,n);

for ii = 1:n

 

obj.convolved_data(:,ii) = conv(temp(:,ii),obj.h_lfm);

end

 

end

obj.show;

 

end convole_fft(obj,type) %свертка в частотной области  
function  
obj.convolved_data = []; %удаляем результаты прошлых вычислений  
temp = obj.m_RawData.raw; %исходные данны для свертки  
n = size(temp,2); %число сверток по дальности  

if strcmp(type,'ski') %обрабатываем ски

 

m = length(obj.h_ski);

%создаем весовое окно по формуле (10)

 

wnd = hamming(m)';

%создаем опорный спектр сигнала (т.к. он повернут во

 

%времени, то комплесного сопряжения не нужно), длина

%спектра должна быть суммой размеров опорной выборки и

 

%спектра сигнала (формула 7)

H_ski = fft(wnd.*obj.h_ski,m+size(temp,1))';

 

%размножаем спектр по всем азимутальным каналам

H_ski = repmat(H_ski,1,n);

 

Оглавление

А.Н. Семёнов

 

Методические указания к домашнему заданию по курсу

«РАДИОЛОКАЦИОННЫЕ ИНФОРМАЦИОННЫЕ И ИЗМЕРИТЕЛЬНЫЕ КОМПЛЕКСЫ»


 

%вычисляем спектр сигнала в каждом угловом канале (ф.8)

 

H_RawData = fft(temp,m+size(temp,1),1);

%осуществляем свертку сигнала (ф.9)

 

obj.convolved_data = ifft(H_RawData.*H_ski);

else %обрабатываем лчм

 

m = length(obj.h_lfm);

%создаем весовое окно по формуле (10)

 

wnd = hamming(m)';

%создаем опорный спектр сигнала (т.к. он повернут во

 

%времени, то комплесного сопряжения не нужно), длина

%спектра должна быть суммой размеров опорной выборки и

 

%спектра сигнала ф.(7)

H_lfm = fft(wnd.*obj.h_lfm,m+size(temp,1))';

 

%размножаем спектр по всем азимутальным каналам

H_lfm = repmat(H_lfm,1,n);

 

%вычисляем спектр сигнала в каждом угловом канале ф.(8)

 

H_RawData = fft(temp,m+size(temp,1),1);

 

%осуществляем свертку сигнала ф.(9)

obj.convolved_data = ifft(H_RawData.*H_lfm);

 

end

obj.show;

 

end

function show(obj)

 

figure;

subplot(1,2,1);

 

imagesc(abs(obj.m_RawData.raw),[0 100*abs(obj.med)]);

subplot(1,2,2);

 

imagesc(abs(obj.convolved_data),[0 100*abs(obj.med)]);

end

 

end

 

end

Файл main.m


 

convdata = ConvData(rlsdata); convdata.convole_time('ski');


 

 

%создаем объект класса ConvData

%выполняем метод свертки во временной области

 


До свёртки   После свёртки  
   
       

 

Рисунок 4 - Результаты согласованной фильтрации данных

 

Селекция движущихся целей

 

Операция СДЦ выполняется для всех каналов дальности, при этом возможна некогерентная (с потерей информации о скорости цели) и когерентная (с сохранением информации о скорости, т.е. доплеровских частот в обработанных данных).

 

 

Оглавление

А.Н. Семёнов

 

Методические указания к домашнему заданию по курсу

«РАДИОЛОКАЦИОННЫЕ ИНФОРМАЦИОННЫЕ И ИЗМЕРИТЕЛЬНЫЕ КОМПЛЕКСЫ»


 

Некогерентная СДЦ реализуется при помощи операции однократного

 

череспериодного вычитания (ЧПВ, ЧПК):  
uвых (t)=| uвх (t)|−| uвх (tT п)| (11)
Когерентная СДЦ реализуется при помощи цифровой фильтрации:  
U вых (f)= FFT { uвх (t)} (12)
Uвых (f)= Uвых (f)⋅ H (f) (13)
uвых (t)= iFFT { U вых (f)} (14)

 

где H (f)- АЧХ фильтра подавления, равная 0 в 0, ±1, ±2 доплеровских каналах при

 

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

 

Операции (13) - (14), как правило, используются только, для наглядного представления результатов обработки. На практике данные с выхода СДЦ, формула (12), сразу передаются на устройство пороговой обработки для обнаружения целей.

Для определения скорости целей с хорошим разрешением в когерентной СДЦ необходима длительная пачка отраженных импульсов. На практике длительность пачки импульсов в обзорной РЛС такова, что не представляется возможным выделение малоподвижных целей на фоне отражений от стационарных объектов. Для решения этой задачи применяют межобзорную обработку сигналов (МО).

 

Идея МО сигналов заключается в том, что малоподвижная цель изменяет свое положение в пространстве за продолжительный промежуток времени, сравнимый с периодом обзора РЛС. При этом области пространства, которые малоподвижная цель пересекает, меняют свои статистические параметры. Таким образом, для селекции малоподвижных целей необходимо cформировать карту статистических параметров в каждом элементе разрешения и сравнивать ее с текущими отражениям в заданном направлении:


uвых (t)=| uвх (t)|−| mвх (N)|


 

,


 

(15)

 


 

где


 

| uвх (t)|


 

 

- модуль амплитуд в текущем периоде зондирования в каждом элементе

 


 

разрешения,


 

| mвх (N)|


 

 

- карта математических ожиданий в каждом элементе разрешения,

 


 

полученная за N обзоров.

 

Качество подавления фильтров СДЦ можно характеризовать как отношение мощностей сигнала до и после обработки в выбранном канале дальности, в котором присутствует мощная стационарная цель.

 

 

Оглавление

А.Н. Семёнов

 

Методические указания к домашнему заданию по курсу

«РАДИОЛОКАЦИОННЫЕ ИНФОРМАЦИОННЫЕ И ИЗМЕРИТЕЛЬНЫЕ КОМПЛЕКСЫ»


 

P 0 (16)  
K п = Pсдц  

Для реализации процедуры СДЦ фильтрации и ее характеристики применим ООП подход. Создадим класс SDC (файл SDC.m), описывающий блок селекции движущихся целей. Запуск процедур СДЦ будем осуществлять через скрипт (файл main.m)

Файл SDC.m

 

classdef SDC < handle

%SDC осуществляет селекцию движущищхся целей

 

properties %указатель на объект класса ConvData  
m_ConvData  
%определяем параметры когерентной СДЦ  
n_chain = 8 %число отсчетов в пачке  
n_step = 4 %шаг смещения пачки  
wnd %весовое окно на пачку  
zCh = -2:2; %номера нулевых каналов СДЦ (содержат отражания от земли и стац. объектов)  
sdc_data %выходной массив данных  
sdc_ang %выходной массив кодов углов данных  
%параметры отображения сигнала  
med %медиана амплитуд данных на входе  
end    

 

methods

 

function obj = SDC(hConvData) %конструктор объекта

obj.m_ConvData = hConvData; %создаем связь с объектом класса ConvData

 

%создаем окно для наложения на пачку

 

obj.wnd = ones(1,obj.n_chain);

 

%определяем параметры отображения

obj.med = median(abs(obj.m_ConvData.convolved_data(:)));

 

end

function chpk1(obj) %однократное череспериодное вычитание

 

obj.sdc_data = []; %удаляем результаты прошлых вычислений  
temp = obj.m_ConvData.convolved_data; %исходные данны для сдц  
n = size(temp,2); %число периодов излучения сигнала  
obj.sdc_data = abs(temp(:,2:n)) - abs(temp(:,1:n-1));  
obj.sdc_ang = 2:n;        
obj.show;        
end     фильтрацию  
function sdc_fft(obj) %когерентнаф сдц через цифровую  
obj.sdc_data = []; %удаляем результаты прошлых вычислений  

temp = obj.m_ConvData.convolved_data; %исходные данны для свертки

n = size(temp,2); %число периодов по дальности

 

n = fix(n/obj.n_step)*obj.n_step; %общее число обрабатываемых каналов

temp(:,(n+1):end) = []; %удаляем на обрабатываемые данные

 

obj.sdc_data = zeros(size(temp,1),obj.n_chain,n/obj.n_step-1); for ii = 1:n/obj.n_step-1

temp2 = fft(temp(:,(ii-1)*obj.n_step+(1:obj.n_chain)),[],2); %формула (12)

obj.sdc_data(:,:,ii) = fftshift(temp2,2);

 

end

obj.sdc_ang = 1:obj.n_step:n-obj.n_step;

 

obj.show;

 

end

function show(obj)

 

figure;

subplot(1,2,1);

 

imagesc(abs(obj.m_ConvData.convolved_data),[0 10*abs(obj.med)]); xlabel('Угол, отс');

ylabel('Дальность, отс');

subplot(1,2,2);

 

%проверка типа СДЦ

sz = size(obj.sdc_data);

 

if length(sz)>2

%когерентная сдц

 

viewdata = obj.sdc_data;

viewdata(:,obj.n_chain/2+obj.zCh,:) = 0; %формула (13)

 

 

Оглавление

А.Н. Семёнов

 

Методические указания к домашнему заданию по курсу

«РАДИОЛОКАЦИОННЫЕ ИНФОРМАЦИОННЫЕ И ИЗМЕРИТЕЛЬНЫЕ КОМПЛЕКСЫ»


 

viewdata = ifft(ifftshift(viewdata,2),[],2); %формула (14)

 

viewdata = viewdata(:,obj.n_chain/2,:);

viewdata = permute(viewdata,[1,3,2]);

 

imagesc(abs(viewdata),[0 10*abs(obj.med)]);

else

 

%некогерентая сдц

imagesc(abs(obj.sdc_data),[0 10*abs(obj.med)]);

 

end

xlabel('Угол, отс');

 

ylabel('Дальность, отс');

end

 

function Kp = calc_kp(obj,r,a)

%оценка коэффициента подавления в выбранной точке

 

%проверка типа СДЦ

sz = size(obj.sdc_data);

 

if length(sz)>2

viewdata = obj.sdc_data;

 

viewdata(:,obj.n_chain/2+obj.zCh,:) = 0; %формула (13) viewdata = ifft(ifftshift(viewdata,2),[],2); %формула (14) viewdata = viewdata(:,obj.n_chain/2,:);

viewdata = permute(viewdata,[1,3,2]);

 

amp_sdc = interp1(obj.sdc_ang,viewdata(r,:),a);

Kp = 20*log10(abs(amp_sdc)/abs(obj.m_ConvData.convolved_data(r,a)));

 

else

Kp = 20*log10(abs(obj.sdc_data(r,a))/abs(obj.m_ConvData.convolved_data(r,a)));

 

end

end

 

function map = form_map_data(obj)

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

 

map = obj.sdc_data;

idx = ones(1,obj.n_chain);

 

idx(obj.n_chain/2+obj.zCh) = 0;

map(:,boolean(idx),:) = 0; %формула (13)

 

map = ifft(ifftshift(map,2),[],2); %формула (14)

map = map(:,obj.n_chain/2,:);

 

map = permute(map,[1,3,2]);

end

 

end

 

end

 

Файл main.m

 

sdcdata = SDC(convdata); %создаем объект класса SDC
sdcdata.chpk1; %выполняем операцию СДЦ
   
   


 

Оглавление

А.Н. Семёнов

 

Методические указания к домашнему заданию по курсу

«РАДИОЛОКАЦИОННЫЕ ИНФОРМАЦИОННЫЕ И ИЗМЕРИТЕЛЬНЫЕ КОМПЛЕКСЫ»


 

До СДЦ (ЧПК-1) После СДЦ (ЧПК-1)
   

 

Рисунок 4 - Результаты селекции движущихся целей

 


Поделиться с друзьями:

Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...

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

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

Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьше­ния длины пробега и улучшения маневрирования ВС при...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.184 с.