В этом примере показано, как имитировать поляриметрическую доплеровскую радиолокационную отдачу, отвечающую требованиям метеонаблюдений. Радар играет важную роль в наблюдении за погодой, обнаружении опасных явлений, классификации и количественной оценке осадков и прогнозировании. Кроме того, поляриметрический радар обеспечивает многопараметрические измерения с беспрецедентным качеством и информацией. В этом примере показано, как имитировать поляриметрический доплеровский радар, который сканирует область распределенных погодных целей. При моделировании получаются параметры РЛС в соответствии с хорошо известными спецификациями РЛС NEXRAD. После синтеза принятых импульсов осуществляют радиолокационную оценку спектрального момента и оценку поляриметрического момента. Оценки сравниваются с достоверностью данных NEXRAD, из которой получают статистику ошибок и оценивают качество данных.
Известным метеорадиолокатором является радар наблюдения за погодой 1988 года Доплер (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/Q в качестве входных данных для сигнального процессора в блоке сбора радиолокационных данных. Данные уровня II состоят из радиолокационных спектральных моментов (отражательная способность, средняя радиальная скорость и ширина спектра) и поляриметрических моментов (дифференциальная отражательная способность, коэффициент корреляции и дифференциальная фаза), выводимых из сигнального процессора. Данные уровня III - это выходные данные генератора радиолокационных продуктов, такие как классификация гидрометеоров, общее количество ливневых осадков и сигнатура торнадического вихря.
В этом примере используются данные уровня 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;
Отражательная способность
Отражательная способность,,
является нулевым моментом доплеровского спектра и связана с содержанием жидкой воды или скоростью осаждения в разрешающем объеме. Поскольку значения
, которые обычно встречаются при метеонаблюдениях, охватывают много порядков величин, радиолокационные метеорологи используют логарифмическую шкалу, заданную как
dBZ, где в
единицах мм ^ 6/м ^ 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] Довяк, Р. и Д. Зрнич. Доплеровские радиолокационные и метеонаблюдения, 2-й ред. Нью-Йорк: Дувр, 2006.
[2] Чжан, G. Weather Radar Polarimetry. Бока Ратон: CRC Press, 2016.
[3] Ли, З, С. Перера, Я. Чжан, Г. Чжан и Р. Довяк. Конференция IEEE по радарам 2018 (RadarConf18), Оклахома, ОК, 2018, стр. 1049-1054.