Симуляция поляриметрического радара возвращается для погодного наблюдения

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

Радарное определение

Известный погодный радар является Погодным Радаром Наблюдения, 1 988 Доплерами (WSR-88D), также известный как NEXRAD, который управляется Национальной метеорологической службой США, ФАА и DoD. Для получения дополнительной информации смотрите Радарный веб-сайт Центра Работы NEXRAD.

Спецификации радиолокационной системы спроектированы можно следующим образом.

max_range = 100e3;                      % Maximum unambiguous range (m)
range_res = 250;                        % Required range resolution (m)
pulnum = 32;                            % Number of pulses to process in an azimuth
fc = 2800e6;                            % Frequency (Hz)
prop_speed = physconst('LightSpeed');   % Propagation speed (m/s)
lambda = prop_speed/fc;                 % Wavelength (m)

Чтобы перевести эти требования в радарные параметры, мы следуем за процессом в примере, Проектируя Основной Моностатический Импульсный Радар. В этом примере, ради простоты, предварительно вычисленных радарных параметров загрузки.

load NEXRAD_Parameters.mat

Шаблон антенны

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

azang = [-180:0.5:180];
elang = [-90:0.5:90];
% We synthesize a pattern using isotropic antenna elements and tapering the
% amplitude distribution to make it follow NEXRAD specifications.
magpattern = load('NEXRAD_pattern.mat');
phasepattern = zeros(size(magpattern.pat));
% The polarimetric antenna is assumed to have ideally matched horizontal
% and vertical polarization pattern.
antenna = phased.CustomAntennaElement('AzimuthAngles',azang,...
    'ElevationAngles',elang,...
    'HorizontalMagnitudePattern',magpattern.pat,...
    'VerticalMagnitudePattern',magpattern.pat,...
    'HorizontalPhasePattern',phasepattern,...
    'VerticalPhasePattern',phasepattern,...
    'SpecifyPolarizationPattern',true);

clear magpattern
clear phasepattern

Постройте сокращение азимута шаблона антенны.

D = pattern(antenna,fc,azang,0);
P = polarpattern(azang,D,'TitleTop','Polar Pattern for Azimuth Cut (elevation angle = 0 degree)');
P.AntennaMetrics = 1;
removeAllCursors(P);

Сопоставьте массив с теплоотводом и коллектором.

radiator = phased.Radiator(...
    'Sensor',antenna,'Polarization','Dual',...
    'OperatingFrequency',fc);

collector = phased.Collector(...
    'Sensor',antenna,'Polarization','Dual',...
    'OperatingFrequency',fc);

Погодная цель

Обычно погодные радарные данные категоризированы на три уровня. Данные уровня-I являются необработанными временными рядами данные I/Q, как введено к сигнальному процессору в Радарном Блоке сбора данных. Данные уровня-II состоят из радара спектральные моменты (отражающая способность, имейте в виду радиальную скорость и ширину спектра), и поляриметрические моменты (дифференциальная отражающая способность, коэффициент корреляции и дифференциальная фаза) выход от сигнального процессора. Данные уровня-III являются выходными данными о продукте радарного генератора продукта, такого как классификация гидрометеоров, штормовая сумма осадков и вихревая вихревая подпись.

В этом примере данных Уровня-II из радара KTLX NEXRAD в 20:08:11 20-го мая 2013 используется UTC. Эти данные прибывают из интенсивного торнадо, который произошел в Муре, Оклахома и используется, чтобы сгенерировать среднее радарное сечение (RCS) эквивалентных центров рассеивания. Данные доступны через загрузку FTP. Это представляет сканирование объема, которое включает серию полных разверток антенны под предопределенными углами вертикального изменения, завершенными в установленный период времени. На имя KTLX20130520_200811_V06 файла данных KTLX относится к радарному названию сайта, 20130520_200811 относится к дате и времени, когда данные были собраны, и V06 относится к формату данных версии 6. В этой симуляции самое низкое сокращение вертикального изменения (0,5 степени) извлечено из данных сканирования объема как пример.

Считайте данные Уровня-II в рабочую область. Сохраните его в nexrad массиве структур, который содержит все радарные моменты, а также поле азимута, которое задает угол азимута для каждой радиальной точки данных в Декартовой системе координат. Для простоты, загрузка данные NEXRAD, которые были преобразованы от сжатого файла до MAT-файла.

load NEXRAD_data.mat;

Задайте сферу интересов (AOI) в терминах азимута и области значений в Декартовых координатах.

az1 = 96;     % Starting azimuth angle (degree)
az2 = 105;    % Ending azimuth angle (degree)
rg1 = 22750;  % Starting range (m)
rg2 = 38750;  % Ending range (m)
% NEXRAD has a blind range of 2000m.
blind_rg = 2000;
% We define the number of azimuth angles that weather targets occupy in the
% two dimensional plane.
num_az = 40;
% We define the number of range bins that weather targets occupy in each
% azimuth radial of the two dimensional plane.
num_bin = 150;
% Select AOI data and store it in _nexrad_aoi_ structure array, which
% contains all the radar moments, as well as starting and ending azimuth
% and range indices. And the number of available weather targets in space
% is returned as Ns.
[nexrad_aoi,Ns] = helperSelectAOI(nexrad,az1,az2,rg1,rg2,blind_rg,range_res,num_az,num_bin);

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

% Preallocate target position, velocity, RCS, azimuth, elevation, and radar
% scattering matrices.
tgtpos = zeros(3, Ns);
tgtvel = zeros(3, Ns);
RCSH = zeros(1,Ns);
RCSV = zeros(1,Ns);
azpatangs = [-180 180];
elpatangs = [-90 90];
shhpat = zeros(2,2,Ns);
svvpat = zeros(2,2,Ns);
shvpat = zeros(2,2,Ns);
zz = 0;
% NEXRAD beamwidth is about 1 degree.
beamwidth = 1.0;
for ii = nexrad_aoi.rlow:nexrad_aoi.rup
    theta = nexrad.azimuth(ii);
    for jj = 1:num_bin
        if isnan(nexrad.ZH(ii,jj))==0
            zz = zz+1;
            rpos = (jj-1)*range_res + blind_rg;
            tpos = [rpos*cosd(theta);rpos*sind(theta);0];
            tgtpos(:,zz) = tpos;
            RCSH(zz) = helperdBZ2RCS(beamwidth,rpos,lambda,pulse_width,nexrad.ZH(ii,jj),prop_speed);
            shhpat(:,:,zz) = sqrt(RCSH(zz))*ones(2,2);
            RCSV(zz) = helperdBZ2RCS(beamwidth,rpos,lambda,pulse_width,nexrad.ZV(ii,jj),prop_speed);
            svvpat(:,:,zz) = sqrt(RCSV(zz))*ones(2,2);
        end
    end
end

tgtmotion = phased.Platform('InitialPosition',tgtpos,'Velocity',tgtvel);
target = phased.BackscatterRadarTarget('EnablePolarization',true,...
    'Model','Nonfluctuating','AzimuthAngles',azpatangs,...
    'ElevationAngles',elpatangs,'ShhPattern',shhpat,'ShvPattern',shvpat,...
    'SvvPattern',svvpat,'OperatingFrequency',fc);

Радарный синтез импульса

Сгенерируйте радарный куб данных с помощью заданных параметров радиолокационной системы. В каждом объеме разрешения включайте соответствующую корреляцию, чтобы гарантировать, что получившиеся данные I/Q представляют статистические свойства соответствующей погоды сигнала.

rxh_aoi = complex(zeros(nexrad_aoi.rgnum,nexrad_aoi.aznum));
rxv_aoi = complex(zeros(nexrad_aoi.rgnum,nexrad_aoi.aznum));
% The number of realization sequences
realiznum = 1000;
% The number of unusable range bins due to NEXRAD blind range
i0 = blind_rg/range_res;
% Rotate sensor platform to simulate NEXRAD scanning in azimuth
for kk = 1:nexrad_aoi.aznum

    axes = rotz(nexrad.azimuth(kk+nexrad_aoi.r1-1));
    % Update sensor and target positions
    [sensorpos,sensorvel] = sensormotion(1/prf);
    [tgtpos,tgtvel] = tgtmotion(1/prf);

    % Calculate the target angles as seen by the sensor
    [tgtrng,tgtang] = rangeangle(tgtpos,sensorpos,axes);

    % Form transmit beam for this scan angle and simulate propagation
    pulse = waveform();
    [txsig,txstatus] = transmitter(pulse);
    % Adopt simultaneous transmission and reception mode as NEXRAD
    txsig = radiator(txsig,txsig,tgtang,axes);
    txsig = channel(txsig,sensorpos,tgtpos,sensorvel,tgtvel);

    % Reflect pulse off of targets
    ang_az = tgtang(1:2:end);
    ang_az = ang_az+(-1).^(double(ang_az>0))*180;
    tgtsig = target(txsig,[ang_az;zeros(size(ang_az))],axes);

    % Collect the target returns received at the sensor
    [rxsig_h,rxsig_v] = collector(tgtsig,tgtang,axes);
    rxh = receiver(rxsig_h,~(txstatus>0));
    rxv = receiver(rxsig_v,~(txstatus>0));

    % Matched filtering
    [rxh, mfgainh] = matchedfilter(rxh);
    [rxv, mfgainv] = matchedfilter(rxv);
    rxh = [rxh(matchingdelay+1:end);zeros(matchingdelay,1)];
    rxv = [rxv(matchingdelay+1:end);zeros(matchingdelay,1)];

    % Decimation
    rxh = rxh(1:2:end);
    rxv = rxv(1:2:end);

    % Discard blind range data and select AOI data
    rxh_aoi(:,kk) = rxh(nexrad_aoi.b1+i0:nexrad_aoi.b2+i0);
    rxv_aoi(:,kk) = rxv(nexrad_aoi.b1+i0:nexrad_aoi.b2+i0);
end

clear txsig
clear tgtsig

Погодная радарная оценка момента

Используя импульсную парную обработку, вычислите все радарные моменты от оценок корреляций, включая отражающую способность, имейте в виду радиальную скорость, ширину спектра, дифференциальную отражающую способность, коэффициент корреляции и дифференциальную фазу.

moment = helperWeatherMoment(rxh_aoi,rxv_aoi,nexrad_aoi,pulnum,realiznum,prt,lambda);

Результат симуляции

Сравните результат симуляции с основной истиной NEXRAD. Оцените симулированное качество данных с помощью ошибочной статистики, изображения сектора, профиля области значений и графика рассеивания. Ошибочные статистические данные выражаются как смещение и стандартное отклонение предполагаемых радарных моментов по сравнению с данными Уровня-II NEXRAD (поля истины).

Задайте азимут и область значений для графического вывода.

azimuth = nexrad.azimuth(nexrad_aoi.r1:nexrad_aoi.r2);
range = (nexrad_aoi.b1-1:nexrad_aoi.b2-1)*250 + 2000;

Отражающая способность

Отражающая способность, является нулевым моментом Доплеровского спектра и связана с жидким содержанием воды или уровнем осадков в объеме разрешения. Поскольку, со значениями которого обычно сталкиваются в погодных наблюдениях, охватывают много порядков величины, радарные метеорологи используют логарифмический масштаб, данный как dBZ, где находится в модулях mm^6/m^3.

[Z_bias,Z_std] = helperDataQuality(nexrad_aoi,moment,range,azimuth,'Z');

Радиальная скорость

Радиальная скорость, первый момент нормированных степенью спектров, который отражает воздушное движение к или далеко от радара.

[Vr_bias,Vr_std] = helperDataQuality(nexrad_aoi,moment,range,azimuth,'Vr');

Ширина спектра

Ширина спектра, квадратный корень второго момента нормированного спектра. Ширина спектра является мерой скоростной дисперсии, то есть, сдвига или турбулентности в объеме разрешения.

[sigmav_bias,sigmav_std] = helperDataQuality(nexrad_aoi,moment,range,azimuth,'sigmav');

Дифференциальная отражающая способность

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

[ZDR_bias,ZDR_std] = helperDataQuality(nexrad_aoi,moment,range,azimuth,'ZDR');

Коэффициент корреляции

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

[Rhohv_bias,Rhohv_std] = helperDataQuality(nexrad_aoi,moment,range,azimuth,'Rhohv');

Дифференциальная фаза

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

[Phidp_bias,Phidp_std] = helperDataQuality(nexrad_aoi,moment,range,azimuth,'Phidp');

Ошибочная статистика

Фигуры в предыдущем разделе обеспечивают визуальную качественную меру качества симуляции. Этот раздел примера показывает количественное сравнение оценок со спецификациями NEXRAD как ошибочная статистика.

MomentName = {'Z';'Vr';'sigmav';'ZDR';'Rhohv';'Phidp'};
STDEV = [round(Z_std,2);round(Vr_std,2);round(sigmav_std,2);round(ZDR_std,2);round(Rhohv_std,3);round(Phidp_std,2)];
Specs = [1;1;1;0.2;0.01;2];
Unit = {'dB';'m/s';'m/s';'dB';'';'degree'};
T = table(MomentName,STDEV,Specs,Unit);
disp(T);
    MomentName    STDEV    Specs       Unit   
    __________    _____    _____    __________

    {'Z'     }      0.5       1     {'dB'    }
    {'Vr'    }     0.01       1     {'m/s'   }
    {'sigmav'}     0.14       1     {'m/s'   }
    {'ZDR'   }     0.06     0.2     {'dB'    }
    {'Rhohv' }    0.006    0.01     {0x0 char}
    {'Phidp' }     0.16       2     {'degree'}

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

Сводные данные

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

Ссылки

[1] Doviak, R и Д. Црник. Доплеровский радиолокатор и погодные наблюдения, 2-й Эд. Нью-Йорк: Дувр, 2006.

[2] Чжан, G. Погодная радарная поляриметрия. Бока-Ратон: нажатие CRC, 2016.

[3] Литий, Z, С. Перера, И. Чжан, Г. Чжан и Р. Довиэк. "Системное Моделирование временного интервала и Приложения для Многофункциональных Радарных Погодных Измерений Массивов". 2 018 Радарных Конференций по IEEE (RadarConf18), Оклахома-Сити, OK, 2018, стр 1049-1054.