雷达成像 Matlab 仿真 4 —— 距离分辨率分析

为了观察 带宽加窗 对距离分辨率的影响,下面使用可视化的方式对比在不同带宽、距离、加窗与不加窗条件下,两个不同距离的两个点目标的可分辨程度。

设置参数范围

  • 带宽 [30e6, 40e6, 60e6, 80e6]
  • 距离 [0 3 4 5 6 7 8 9]
clear; clc;
set(0,'defaultfigurecolor', 'w');

%% default parameters
T = 10e-6;          % pulse duration
Rmin = 10000;       % Rmin, Rmax: range bin
Rmax = 15000;       % maximum distance radar can detect
RCS = [1 1];        % radar cross section of ideal targets

%% optianl parameters: R & B
Bandwidths = [30e6, 40e6, 60e6, 80e6];      % optional bandwidth
targets_distances = [0 3 4 5 6 7 8 9];     % distance between two points

遍历计算不同条件下的回波的脉冲压缩输出曲线
分别遍历带宽和距离,计算加窗和不加窗的脉冲压缩输出,将不同情况的结果用子图的形式展示在一张图上:

figure(1)
for i = 1:size(Bandwidths, 2)
    B = Bandwidths(i);          % chirp frequency modulation bandwidth 

    C = 3e8;                    % speed of light
    K = B/T;                    % chirp slope
    Rwid = Rmax - Rmin;         % recieved window in meter
    Twid = 2 * Rwid / C;        % recieced window in second
    Fs = 5 * B;                 % sampling frequency
    Ts = 1 / Fs;                % sampling spacing
    Nwid = ceil(Twid / Ts);     % recieved window in sampling number
    
    for j = 1:size(targets_distances, 2)
        R1 = 12000;                         % position of ideal point target1
        R2 = 12000 + targets_distances(j);  % position of ideal point target2
        R = [R1, R2];

        subplot(size(Bandwidths, 2), size(targets_distances, 2), ...
            (i-1) * size(targets_distances, 2) + j)
        
        % transmit signal
        Nchirp = ceil(T / Ts);                  % pulse duration in number
        t0 = linspace(-T/2, T/2, Nchirp);       % discrete time of T
        St = exp(1i*pi*K*t0.^2);                % transmit signal
        
        % generate echo wave
        t = linspace(2*Rmin/C, 2*Rmax/C, Nwid);         % received window
                                                        % open window at 2Rmin/C
                                                        % close window at 2Rmax/C
        delay = 2*R/C;                                  % delay of point targets
        td = ones(2, 1)*t - delay'*ones(1, Nwid);       % time -tau of targets
        Srt = RCS*(exp(1i*pi*K*td.^2).*(abs(td)<T/2));  % echo from all targets
        
        %  Pulse compression radar using FFT and IFFT
        Nfft = 2^nextpow2(Nwid + Nwid-1);       % number needed to compute linear
                                                % convolve length = Nwid + Nwid-1
        
        % not windowed
        Sot = fftshift(ifft(fft(Srt, Nfft).*conj(fft(St, Nfft))));      
        % windowed
        St_w = St.*hann(Nchirp)';
        Sot_w = fftshift(ifft(fft(Srt, Nfft).*conj(fft(St_w, Nfft))));  
    
        % normalize Z
        N0 = round(Nfft/2 - Nchirp/2);          % valid series of fft in positive axis
        Z = abs(Sot(N0 : N0+Nwid-1));           % FFT series
        Z_max = max(Z);
        Z = Z / max(Z);
        Z = 20*log10(Z + 1e-6);
        
        % normalize Z_w
        Z_w = abs(Sot_w(N0 : N0+Nwid-1));       % FFT series
        Z_w = Z_w / max(Z_w);
        Z_w = 20*log10(Z_w + 1e-6);

        %  draw
        plot(t*C/2, Z, 'color', [0.7 0.6 0.3], 'LineWidth', 1.5); hold on;
        plot(t*C/2, Z_w, 'color', [0.5 0.7 0.9], 'LineWidth', 1.5);

        center = round((R(1) + R(2)) / 2);
        r1 = center - 20;
        r2 = center + 20;
        z1 = min(Z(r1-Rmin : r2-Rmin));
        axis([r1, r2, z1, 5])
        
        s = ['(', num2str((i-1)*length(targets_distances)+j), ') ', ...
            num2str(targets_distances(j)), ...
            ' m ', num2str(Bandwidths(i)/1e6), 'MHz'];
        xlabel(s, 'fontsize', 12, 'fontname', 'Times', 'FontWeight', 'bold')
        set(gca, 'xticklabel', [])
        set(gca, 'yticklabel', [])
    end
end

结果如下:
雷达成像 Matlab 仿真 4 —— 距离分辨率分析_第1张图片

分析:带宽越大,分辨率越高;加窗后旁瓣得到明显的抑制,但主瓣展宽

你可能感兴趣的:(雷达成像,matlab,matlab,开发语言)