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

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

Определение радара

Известный метеорологический радар - Weather Surveillance Radar, 1988 Doppler (WSR-88D), также известный как NEXRAD, которым управляют Национальная метеорологическая служба США, FAA и 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 / необработанных временных рядов как входных данных для процессора сигналов в модуле Radar Сбор Данных. Данные уровня-II состоят из радиолокационных спектральных моментов (отражательная способность, средняя радиальная скорость и ширина спектра) и полярических моментов (дифференциальная отражательная способность, коэффициент корреляции и дифференциальная фаза), выхода от процессора сигнала. Данные уровня-III являются выходом данными о продукте радиолокационного генератора продукта, такими как классификация гидрометеоров, общее штормовое осаждение и торнадная вихревая сигнатура.

В этом примере используются данные Level-II с радара KTLX NEXRAD в 20:08:11 UTC 20 мая 2013 года. Эти данные получены из интенсивного торнадо, который произошел в Муре, Оклахома и используется для генерации среднего радиолокационного сечения (RCS) эквивалентных центров рассеяния. Данные доступны через FTP загрузки. Это представляет скан, которое включает в себя последовательность 360-градусных свипов антенны при заранее определенных углах возвышения, завершенных за заданный период времени. В названии файла данных 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. Оцените моделируемое качество данных с помощью статистики ошибок, изображения сектора, профиля области значений и графика поля точек. Статистика ошибок выражается как смещение и стандартное отклонение расчетных радиолокационных моментов по сравнению с данными NEXRAD Level-II (истинные поля).

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

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

Отражательная способность

Отражательная способность,, $Z$является нулевым моментом допплеровского спектра и связана с содержимым жидкой воды или скоростью осаждения в объеме разрешения. Поскольку значения$Z$ этого обычно встречаются в наблюдениях погоды, охватывающих многие порядки величин, радиолокационные метеорологи используют логарифмическую шкалу, заданную как$10log_{10} Z$ dBZ, где она$Z$ находится в модулях мм ^ 6/м ^ 3.

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

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

Радиальная скорость,, $V_{r}$является первым моментом нормированных к мощности спектров, который отражает движение воздуха к радару или от него.

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

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

Ширина спектра,, $\sigma_{v}$является квадратным корнем второго момента нормированного спектра. Ширина спектра является мерой дисперсии скорости, то есть сдвига или турбулентности в пределах объема разрешения.

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

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

Дифференциальная отражательная способность,, $Z_{DR}$оценивается из отношения оценок степени для сигналов горизонтальной и вертикальной поляризации. Дифференциальная отражательная способность полезна в классификации гидрометеоров.

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

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

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

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

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

Дифференциальная фаза,, $\phi_{DP}$является различием в фазовой задержке возвращаемого импульса от горизонтальной и вертикальной поляризации. Дифференциальная фаза предоставляет информацию о характере рассеивателей, которые отбираются.

[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] Довяк, Р и Д. Црник. Doppler Radar and Weather Observations, 2nd Ed. New York: Dover, 2006.

[2] Zhang, G. Weather Radar Polarimetry. Бока Ратон: CRC Press, 2016.

[3] Li, Z, S. Pera, Y. Zhang, G. Zhang, and R. Doviak. Моделирование систем во временной области и приложения для радиолокационных измерений погоды в многофункциональных массивах. 2018 IEEE Radar Conf18, Оклахома, OK, 2018, pp. 1049-1054.