Thiết kế radar xung monostatic bằng công cụ Phased Array System Toolbox PAST của Matlab

Một phần của tài liệu Thiết kế radar xung monostatic bằng công cụ phased array system toolbox PAST của matlab (Trang 26 - 53)

Phased Array System Toolbox

PAST cung cấp các thuật toán và các công cụ cho việc thiết kế, mô phỏng và phân tích hệ thống xử lý tín hiệu dãy đã định pha. Toolbox bao gồm cấc thuật toán để tạo dạng sóng, beamforming, ước lượng hướng đến, phát hiện mục tiêu, và khả năng xử lý thích nghi theo không-thời gian

Với toolbox này, chúng ta có thể thiết kế hệ thống monostatic, bistatic, và multistatic với nhiều dạng khác nhau. Có thể mô hình ở dạng tĩnh hay động

Phased Array Design and Analysis

Waveform Design and Analysis

Transmitter and Receiver Modeling

Target and Environment Modeling

Spatial Signal Processing

Temporal Signal Processing

Space-Time Adaptive Processing

Thiết kế một monostatic pulse radar để ước tính vị trí mục tiêu trong khoảng xác định

Thiết kế hệ thống pulse radar là để phát hiện mục tiêu không dao động có:

Radar cross section 1m2

Khoảng cách từ radar đến mục tiêu 5000m.

Độ phân giải tầm xa là 50m.

Xác suất phát hiện 0.9.

Xác suất báo động sai nhỏ hơn 10-6

Thiết kế xung.

Bộ thu.

Bộ phát.

Vị trí, khoảng tần số làm việc của bộ raditor và bộ collector.

Thiết lập mục tiêu,môi trường truyền.

Ngưỡng phát hiện.

Bộ thay đổi độ lợi theo tầm xa.

Matched Filter.

pd = 0.9; % Probability of detection

pfa = 1e-6; % Probability of false alarm

max_range = 5000; % Maximum unambiguous range

range_res = 50; % Required range resolution

tgt_rcs = 1; % Required target radar cross section

Các thông số cần thiết kế

Dạng sóng : Xung chữ nhật

prop_speed = physconst('LightSpeed'); % Propagation speed pulse_bw = prop_speed/(2*range_res); % Pulse bandwidth pulse_width = 1/pulse_bw; % Pulse width

prf = prop_speed/(2*max_range); % Pulse repetition frequency fs = 2*pulse_bw; % Sampling rate

hwav = phased.RectangularWaveform(...'PulseWidth',1/pulse_bw,... 'PRF',prf,...'SampleRate',fs);

Đặc tính nhiễu ở bộ thu

Giả sử ở bộ thu chỉ có nhiễu nhiệt, băng thông nhiễu được thiết lập giống băng thông tín hiệu, bộ thu có độ lợi là 20dB và hệ số nhiễu 0dB. noise_bw = pulse_bw; hrx = phased.ReceiverPreamp(... 'Gain',20,... 'NoiseBandwidth',noise_bw,... 'NoiseFigure',0,... 'SampleRate',fs,... 'EnableInputPort',true); Thiết lập hệ thống radar

Bộ phát

Công suất đỉnh cần thiết có liên quan đến nhiều yếu tố bao gồm maximum unambiguous range, tỉ số tín hiệu trên nhiễu SNR cần ở bộ thu, và độ rộng xung của dạng sóng

 

snr_db = [-inf, 0, 3, 10, 13];

rocsnr(snr_db,'SignalType','NonfluctuatingNoncoherent');

Nếu chúng ta chọn để tích hợp 10 xung, đường cong có thể được vẽ ra như sau:

num_pulse_int = 10;

rocsnr([0 3 5],'SignalType','NonfluctuatingNoncoherent',... 'NumPulses',num_pulse_int);

Phương trình Albersheim:

Với , và  

snr_min = albersheim(pd, pfa, num_pulse_int)

Kết quả: snr_min = 4.9904

tx_gain = 20; fc = 10e9;

lambda = prop_speed/fc;

peak_power = radareqpow(lambda,max_range,snr_min,pulse_width,... 'RCS',tgt_rcs,'Gain',tx_gain)

Giả sử bộ phát có độ lợi là 20 dB, lập tần số hoạt động đến 10 GHz. Với SNR thu được có thể tính công suất phát đỉnh

Bộ phát

htx = phased.Transmitter(... 'Gain',tx_gain,...

'PeakPower',peak_power,... 'InUseOutputPort',true);

Bộ phát

Công suất nhiễu ở bộ thu được tính:

, trong đó τ là khoảng duration của xung, trong đó k là hằng số Boltzmann, T là nhiệt độ nhiễu.  

Phát và thu tín hiệu Thiết lập anten hant = phased.IsotropicAntennaElement(... 'FrequencyRange',[5e9 15e9]); hantplatform = phased.Platform(... 'InitialPosition',[0; 0; 0],... 'Velocity',[0; 0; 0]); hradiator = phased.Radiator(... 'Sensor',hant,... 'OperatingFrequency',fc); hcollector = phased.Collector(... 'Sensor',hant,... 'OperatingFrequency',fc);

Mô phỏng hệ thống

Mục tiêu

htarget{1} = phased.RadarTarget(... 'MeanRCS',1.6,... 'OperatingFrequency',fc); htargetplatform{1} = phased.Platform(...'InitialPosition',[2000.66; 0; 0]);

htarget{2} = phased.RadarTarget(...'MeanRCS',2.2,...'OperatingFrequency',fc); htargetplatform{2} = phased.Platform(...'InitialPosition',[3532.63; 0; 0]);

htarget{3} = phased.RadarTarget(...'MeanRCS',1.05,...'OperatingFrequency',fc); htargetplatform{3} = phased.Platform(...'InitialPosition',[3845.04; 0; 0]);

Môi trường truyền htargetchannel{1} = phased.FreeSpace(... 'SampleRate',fs,... 'TwoWayPropagation',true,... 'OperatingFrequency',fc); htargetchannel{2} = phased.FreeSpace(... 'SampleRate',fs,... 'TwoWayPropagation',true,... 'OperatingFrequency',fc); htargetchannel{3} = phased.FreeSpace(... 'SampleRate',fs,... 'TwoWayPropagation',true,... 'OperatingFrequency',fc);

Sự tổng hợp tín hiệu

fast_time_grid = unigrid(0,1/fs,1/prf,'[)'); slow_time_grid = (0:num_pulse_int-1)/prf hrx.SeedSource = 'Property';

hrx.Seed = 2007;

rx_pulses = zeros(numel(fast_time_grid),num_pulse_int); % pre-allocate : tạo ma trận zero prt/Ts cột, num_pulse_int hàng

for m = 1:num_pulse_int

ant_pos = step(hantplatform,1/prf); % Update antenna position x = step(hwav); % Generate pulse

[s, tx_status] = step(htx,x); % Transmit pulse for n = 3:-1:1 % For each target tgt_pos(:,n) = step(...

htargetplatform{n},1/prf); % Update target position

[tgt_rng(n), tgt_ang(:,n)] = rangeangle(...

tgt_pos(:,n), ant_pos); % Calculate range/angle

tsig(:,n) = step(hradiator,... % Radiate toward target s,tgt_ang(:,n));

tsig(:,n) = step(htargetchannel{n},...

tsig(:,n),ant_pos,tgt_pos(:,n)); % Propagate pulse rsig(:,n) = step(htarget{n},tsig(:,n)); % Reflect off target end

rsig = step(hcollector,rsig,tgt_ang); % Collect all echoes rx_pulses(:,m) = step(hrx,... % Receive signal and form rsig,~(tx_status>0)); % data matrix

Ngưỡng phát hiện

Trong đó σ là phương sai của nhiễu Gauss, trắng. N là số xung kết hợp sử dụng.

là hàm gamma  

npower = noisepow(noise_bw,hrx.NoiseFigure,hrx.ReferenceTemperature); threshold = npower * db2pow(npwgnthresh(pfa,num_pulse_int,'noncoherent'));

Kết quả

num_pulse_plot = 2;

rangedemoplotpulse(rx_pulses,threshold,...

Match Filter

matchingcoeff = getMatchedFilter(hwav); hmf = phased.MatchedFilter(...

'Coefficients',matchingcoeff,... 'GainOutputPort',true);

[rx_pulses, mfgain] = step(hmf,rx_pulses);

matchingdelay = size(matchingcoeff,1)-1;

rx_pulses = buffer(rx_pulses(matchingdelay+1:end),size(rx_pulses,1));

threshold = threshold * db2pow(mfgain);

Độ lợi thay đổi theo thời gian range_gates = prop_speed*fast_time_grid/2; htvg = phased.TimeVaryingGain(... 'RangeLoss',2*fspl(range_gates,lambda),... 'ReferenceLoss',2*fspl(max_range,lambda)); rx_pulses = step(htvg,rx_pulses);

Sự mất mát trong không gian tự do có thể tính theo công thức sau:  

rangedemoplotpulse(rx_pulses,threshold,...

Noncoherent Integration

rx_pulses = pulsint(rx_pulses,'noncoherent');

[~,range_detect] = findpeaks(rx_pulses,'MinPeakHeight',sqrt(threshold));

true_range = round(tgt_rng)

range_estimates = round(range_gates(range_detect))

Ước lượng vị trí mục tiêu

true_range = 2001 3533 3845

range_estimates = 2025 3550 3850

Một phần của tài liệu Thiết kế radar xung monostatic bằng công cụ phased array system toolbox PAST của matlab (Trang 26 - 53)

Tải bản đầy đủ (PPTX)

(53 trang)