精华内容
下载资源
问答
  • 基于线性调频(LFM)脉冲压缩雷达原理及雷达动目标显示(MTI)的数学模型,通过与传统二脉冲对消和三脉冲对消的方法相对比,采用四脉冲对消和参差脉冲重复频率处理盲速的方法进行动目标检测。仿真实验证明,在动目标...
  • 雷达实时仿真中的动目标检测技术研究
  • 针对MIMO 雷达动目标显示( MTI) 特性, 给出了MTI 滤波器的三种设计及其结构, 并导出了其相应的改善因子表达式。 最后给出了仿真结果, 即递归滤波器具有较好的灵活性和改善因子, 同时合理进行收发布阵, 能够提高...
  • 雷达原理之动目标检测及测速技术

    千次阅读 2020-05-20 21:45:01
    雷达原理笔记之动目标检测及测速技术 ——南京理工大学许志勇老师的《雷达原理课程》浅析 文章目录雷达原理笔记之动目标检测及测速技术1.杂波对消处理1.1任务1.2一次杂波对消器:1.3二次杂波对消器2多普勒滤波器组...

    雷达原理笔记之动目标检测及测速技术

    ——南京理工大学许志勇老师的《雷达原理课程》浅析


    动目标检测技术主要包括MTI杂波对消处理以及MTD窄带多普勒滤波组滤波处理。本文主要介绍这两个方面的实现原理及过程。

    1.杂波对消处理

    雷达检测目标常常是在强杂波背景中进行,信杂比非常小。这对目标探测很不利。考虑到杂波频谱通常比较稳定,大多在零多普勒附近,由此引出消除固定、低速杂波的滤波器——杂波对消器。

    1.1任务

    • 抑制固定杂波以及低速杂波,进而提取运动目标信息。

    1.2一次杂波对消器:

    y[n]=x[n]αx[n1] y[n]=x[n]-\alpha x[n-1]

    滤波器频率特性:
    H(z)=1αz1 H(z)=1-\alpha z^{-1}
    其中α\alpha通常取接近1但小于1的常数。目的是保证尽可能多地滤除杂波的同时,处在零多普勒点的运动目标不被抑制完全。对比见下图:
    在这里插入图片描述

    1.3二次杂波对消器

    y[n]=x[n]αx[n1]+x[n2] y[n]=x[n]-\alpha x[n-1]+x[n-2]

    滤波器频率特性:
    H(z)=1αz1+z2 H(z)=1-\alpha z^{-1}+z^{-2}
    其中α\alpha通常取接近2但小于2的常数。目的同样是在保证尽可能多地滤除杂波的同时,处在零多普勒点的运动目标不被抑制完全。对比见下图:

    在这里插入图片描述

    二次杂波对消器是工程中应用最多的杂波处理滤波器。对于低速的杂波消除,频响特性可以向右平移一定的区间,平移的量是杂波运动速度对应的多普勒频移。因此对于低速运动杂波对消的滤波特性为:
    H(z)=1αejβz1+ej2βz2 H(z)=1-\alpha e^{j\beta}z^{-1}+e^{j2\beta}z^{-2}
    其中β\beta为杂波速度对应的多普勒频移

    在这里插入图片描述

    利用二次杂波对消器处理杂波时,选取相参积累脉冲个数为K=2N+2K=2^N+2

    2多普勒滤波器组处理

    一般,将MTI处理后输出的信号进行MTD处理,即窄带滤波处理,得到运动目标的速度信息。

    2.1窄带多普勒滤波器组实现

    利用有N个输出的横向滤波器,经过各脉冲的加权求和实现。

    在这里插入图片描述

    每根延时线延迟时间T=1/PRFT=1/PRF。每个窄带滤波器输出的频率响应为:
    Hk(f)=ej2πfti=1Nej2π(i1)[fTk/N] H_k(f)=e^{-j2\pi ft}\sum_{i=1}^{N}e^{-j2\pi (i-1)[fT-k/N]}
    频响幅度为:
    Hk(f)=sin[πN(fTk/N)]sin[π(fTk/N)] |H_k(f)|=\frac{sin[\pi N(fT-k/N)]}{sin[\pi (fT-k/N)]}
    在这里插入图片描述

    上图所示的多普勒滤波器组,对应的发射信号脉冲重复频率为10kHz。其覆盖整个多普勒频谱周期[5000Hz,5000Hz][-5000Hz,5000Hz]。这个周期称作是多普勒滤波器组的主周期。此滤波器组长度N=8。每个窄带滤波器中心频率满足:
    f=5000k/N(Hz)(N=8,k=4,3,4) f=5000k/N(Hz)\quad (N=8,k=-4,-3,…4)
    若某运动目标的频谱出现在其中一个滤波器中,则该滤波器的中心频率对应的频率即为运动目标fdf_d的估值。

    当然,N取值越大对应的滤波器组间隔越小,运动目标的fdf_d的估值越接近真实值。

    利用多普勒滤波器组实现相参积累,可以将白噪声背景中信号的信噪比提高N倍。

    3.附录

    3.1一次相消器图片matlab代码

    clc
    close all
    clearvars
    a=0.8;
    T=1e-4;%发射信号周期
    f=-1/T:10:1/T;%频率轴
    w=2*pi*f;%角频率
    z=exp(1j*w*T);%映射到z轴
    H=1-a*z.^(-1);%滤波器传输函数表达式(针对静止杂波)
    figure
    subplot(1,2,1)
    plot(f,(abs(H)),'r-','LineWidth',2);
    title('\alpha=0.8')
    xlabel('f/Hz')
    ylabel('|H(f)|')
    subplot(1,2,2)
    a=1;
    H=1-a*z.^(-1);%滤波器传输函数表达式(针对运动杂波)
    plot(f,(abs(H)),'r-','LineWidth',2);
    title('\alpha=1')
    xlabel('f/Hz')
    ylabel('|H(f)|')
    suptitle('一次相消器幅度-频率响应曲线')
    

    3.2二次相消器图片matlab代码

    clc
    close all
    clearvars
    a=1.8;
    T=1e-4;%发射信号周期
    f=-1/T:10:1/T;%频率轴
    w=2*pi*f;%角频率
    z=exp(1j*w*T);%映射到z轴
    H=1-a*z.^(-1)+z.^(-2);%滤波器传输函数表达式(针对静止杂波)
    figure
    subplot(1,2,1)
    plot(f,(abs(H)),'b-','LineWidth',2);
    title('\alpha=1.8')
    xlabel('f/Hz')
    ylabel('|H(f)|')
    subplot(1,2,2)
    a=2;
    H=1-a*z.^(-1)+z.^(-2);%滤波器传输函数表达式(针对运动杂波)
    plot(f,(abs(H)),'b-','LineWidth',2);
    title('\alpha=2')
    xlabel('f/Hz')
    ylabel('|H(f)|')
    suptitle('二次相消器幅度-频率响应曲线')
    

    3.3二次相消器图片(静止、运动杂波)matlab代码

    clc
    close all
    clearvars
    k=1.7;
    T=1e-4;%发射信号周期
    f=-1/T:10:1/T;%频率轴
    w=2*pi*f;%角频率
    z=exp(1j*w*T);%映射到z轴
    H=1-k*z.^(-1)+z.^(-2);%滤波器传输函数表达式(针对静止杂波)
    figure
    subplot(1,2,1)
    plot(f,(abs(H)),'c-','LineWidth',2);
    title('针对静止杂波')
    xlabel('f/Hz')
    ylabel('|H(f)|')
    subplot(1,2,2)
    b=0.2*1/T;%平移量0.2倍的频谱周期
    z1=exp(-1j*b)*z;%加上平移
    H=1-k*z1.^(-1)+z1.^(-2);%滤波器传输函数表达式(针对运动杂波)
    plot(f,(abs(H)),'c-','LineWidth',2);
    title('针对运动杂波')
    xlabel('f/Hz')
    ylabel('|H(f)|')
    suptitle('二次相消器幅度-频率响应曲线')
    

    3.4多普勒滤波器组频响matlab代码

    clc
    close all
    clearvars
    N=8;
    T=1e-4;%发射信号周期
    f=-0.5/T:10:0.5/T;%频率轴
    for k=0:N-1
    H=(sin(pi*N*(f*T-k/N)))./(sin(pi*(f*T-k/N)));%滤波器传输函数表达式(针对静止杂波)
    plot(f,abs(H),'g-','LineWidth',2);
    hold on
    end
    title('窄带多普勒滤波器组')
    xlabel('f/Hz')
    ylabel('|H(f)|')
    
    展开全文
  • 高分辨稀疏表示及其在雷达动目标检测中的应用
  • 多特征辅助的SAR-GMTI雷达扩展动目标检测方法
  • 一个用于雷达动目标检测和动目标显示的MATLAB代码程序,可以仿真实现动目标检测和动目标显示并进行效果对比。
  • 长时间相参积累技术是提高雷达对微弱运动目标探测能力的重要手段之一,本文在分析动目标回波信号距离和多普勒徙动的基础上,提出基于Radon-分数阶傅里叶变换(RFRFT)的长时间相参积累方法.该方法根据预先设定的运动参数...
  • 设计实验并提出了一种动目标三维轨迹检测的方法,利用自适应阈值法对激光雷达实验图像进行了处理,得到了目标成像点轨迹分布;对比了距离像的理论和实验数据,结果表明理论模型检测的目标轨迹结果与实验结果误差控制...
  • 目前关于分置天线MIMO雷达目标检测的研究多是假定杂波是服从高斯分布的,实际中非高斯杂波往往更能精确描述现代雷达环境下杂波的统计。考虑几种在高斯杂波模型假设下设计的检测器,构造了服从Log-Nomal分布的非高斯...
  • MTI雷达,是动目标检测雷达。该类型雷达能够抑制杂波保留目标信号。对MTI雷达进行了仿真,并利用参差重频消除盲速影响,讨论了MTI雷达参差比取不同的值对盲速的影响。
  • MTD(moving targets detection)雷达系统中区分运动目标和杂波在于它们...动目标检测(MTD)不仅能滤除杂波,而且还可以将不同运动速度的目标区分开来,从而大大改善了在杂波背景下检测运动目标的能力。 后续补充 ...

    MTI 是一种频域滤波器(radar主席的ppt 中说到) ,它是对多组脉冲回波的同一个距离单元加权求和,得到一个结果;也就是多个输入一个输出;相当于一个高通滤波器,用来抑制固定目标和慢速杂波。就一次对消MTI 滤波器来说,就是将第一个发射脉冲的回波与第二个发射脉冲的回波相减,除去固定目标和慢速杂波,而保留了运动目标的信息,通过视频显示器可以看到幅度上下振动的波形,这也是为什么叫动目标显示;

    MTD (moving targets detection)是带通滤波器组,也就是多个输入多个输出,可以用FIR 组实现,但是一般用FFT 实现,即对不同脉冲组回波信号的相同距离单元做FFT 处理,N 个输入得到N 个输出,CACFAR 既是对这N 个输出进行检测和判断目标!若存在目标,这N 个输出中比出现一个峰值最大的数,则这个可能就是目标的位置信息,根据位置信息,即可以得到运动目标的多普勒值。MTD雷达系统中区分运动目标和杂波在于它们速度上的差别。由于速度不同而引起回波信号的多普勒频率不相等,所以可以通过多普勒频率的不同将杂波和运动目标区分开来。动目标检测(MTD)不仅能滤除杂波,而且还可以将不同运动速度的目标区分开来,从而大大改善了在杂波背景下检测运动目标的能力。

    MATLAB仿真:

    1,雷达信号做脉冲压缩

    % ===================================================================================%
    %                                    雷达参数                                       %
    % ===================================================================================%
    C=3.0e8;  %光速(m/s)
    RF=3.140e9/2;  %雷达射频 1.57GHz
    Lambda=C/RF;%雷达工作波长
    PulseNumber=16;   %回波脉冲数
    BandWidth=2.0e6;  %发射信号带宽 带宽B=1/τ,τ是脉冲宽度 
    TimeWidth=42.0e-6; %发射信号时宽
    PRT=240e-6;   % 雷达发射脉冲重复周期(s),240us对应1/2*240*300=36000米最大无模糊距离
    PRF=1/PRT;
    Fs=2.0e6;  %采样频率
    NoisePower=-12;%(dB);%噪声功率(目标为0dB)
    % ---------------------------------------------------------------%
    SampleNumber=fix(Fs*PRT);%计算一个脉冲周期的采样点数480;
    TotalNumber=SampleNumber*PulseNumber;%总的采样点数480*16=;
    BlindNumber=fix(Fs*TimeWidth);%计算一个脉冲周期的盲区-遮挡样点数;
    %===================================================================================%
    %                                    目标参数                                       %
    %===================================================================================%
     TargetNumber=4;%目标个数
    SigPower(1:TargetNumber)=[1 1 1 0.25];%目标功率,无量纲
    TargetDistance(1:TargetNumber)=[3000 8025 15800 8025];%目标距离,单位m   距离参数为[3000 8025 9000+(Y*10+Z)*200 8025]
     DelayNumber(1:TargetNumber)=fix(Fs*2*TargetDistance(1:TargetNumber)/C);% 把目标距离换算成采样点(距离门) fix函数向0靠拢取整
    TargetVelocity(1:TargetNumber)=[50 0 204 100];%目标径向速度 单位m/s   速度参数为[50 0 (Y*10+X+Z)*6 100]
    TargetFd(1:TargetNumber)=2*TargetVelocity(1:TargetNumber)/Lambda; %计算目标多卜勒频移2v/λ
     
    %====================================================================================%
    %                                   产生线性调频信号                                  %
    %====================================================================================%
     number=fix(Fs*TimeWidth);%回波的采样点数=脉压系数长度=暂态点数目+1
    if rem(number,2)~=0  %rem求余
       number=number+1;
    end   %把number变为偶数
     
    for i=-fix(number/2):fix(number/2)-1
       Chirp(i+fix(number/2)+1)=exp(j*(pi*(BandWidth/TimeWidth)*(i/Fs)^2));%exp(j*fi)*,产生复数矩阵Chirp
    end
    coeff=conj(fliplr(Chirp));%把Chirp矩阵翻转并把复数共轭,产生脉压系数
    figure(1);%脉压系数的实部
    plot(real(Chirp));axis([0 90 -1.5 1.5]);title('脉压系数实部');

    2,生成目标信号回波

    %-------------------------产生目标回波串-----------------------------------------------------------------------------------------%
    %-------------------------产生前3个目标的回波串-------%
    SignalAll=zeros(1,TotalNumber);%所有脉冲的信号,先填0
    for k=1:TargetNumber-1 % 依次产生各个目标
       SignalTemp=zeros(1,SampleNumber);% 一个PRT
       SignalTemp(DelayNumber(k)+1:DelayNumber(k)+number)=sqrt(SigPower(k))*Chirp;%一个脉冲的1个目标(未加多普勒速度)(DelayNumber(k)+1):(DelayNumber(k)+number)
       Signal=zeros(1,TotalNumber);
       for i=1:PulseNumber % 16个回波脉冲
          Signal((i-1)*SampleNumber+1:i*SampleNumber)=SignalTemp; %每个目标把16个SignalTemp排在一起
       end
       FreqMove=exp(j*2*pi*TargetFd(k)*(0:TotalNumber-1)/Fs);%目标的多普勒速度*时间=目标的多普勒相移
       Signal=Signal.*FreqMove;%加上多普勒速度后的16个脉冲1个目标
       SignalAll=SignalAll+Signal;%加上多普勒速度后的16个脉冲4个目标
    end
    % %-------------------------产生第4个目标的回波串-------%
       fi=pi/3;
       SignalTemp=zeros(1,SampleNumber);% 一个脉冲
       SignalTemp(DelayNumber(4)+1:DelayNumber(4)+number)=sqrt(SigPower(4))*exp(j*fi)*Chirp;%一个脉冲的1个目标(未加多普勒速度)
       Signal=zeros(1,TotalNumber);
       for i=1:PulseNumber
          Signal((i-1)*SampleNumber+1:i*SampleNumber)=SignalTemp;
       end
       FreqMove=exp(j*2*pi*TargetFd(4)*(0:TotalNumber-1)/Fs);%目标的多普勒速度*时间=目标的多普勒相移
       Signal=Signal.*FreqMove;
       SignalAll=SignalAll+Signal;
     
    figure(2);
    subplot(2,1,1);plot(real(SignalAll),'r-');title('目标信号的实部');grid on;zoom on;
    subplot(2,1,2);plot(imag(SignalAll));title('目标信号的虚部');grid on;zoom on;

    3,产生系统噪声信号

    %====================================================================================%
    %                                   产生系统噪声信号                                  %
    %====================================================================================%
    SystemNoise=normrnd(0,10^(NoisePower/10),1,TotalNumber)+j*normrnd(0,10^(NoisePower/10),1,TotalNumber);
    %均值为0,标准差为10^(NoisePower/10)的噪声
    %====================================================================================%
    %                                   总的回波信号                                     %
    %====================================================================================%
    Echo=SignalAll+SystemNoise;% +SeaClutter+TerraClutter,加噪声之后的回波
    for i=1:PulseNumber   %在接收机闭锁期,接收的回波为0
          Echo((i-1)*SampleNumber+1:(i-1)*SampleNumber+number)=0; %发射时接收为0
    end
    figure(3);%加噪声之后的总回波信号
    subplot(2,1,1);plot(real(Echo),'r-');title('总回波信号的实部,闭锁期为0');
    subplot(2,1,2);plot(imag(Echo));title('总回波信号的虚部,闭锁期为0');

    4,时域脉冲压缩和频域脉冲压缩

    %================================时域脉压=================================%
    pc_time0=conv(Echo,coeff);%pc_time0为Echo和coeff的卷积
    pc_time1=pc_time0(number:TotalNumber+number-1);%去掉暂态点 number-1个
    figure(4);%时域脉压结果的幅度
    subplot(2,1,1);plot(abs(pc_time0),'r-');title('时域脉压结果的幅度,有暂态点');%pc_time0的模的曲线
    subplot(2,1,2);plot(abs(pc_time1));title('时域脉压结果的幅度,无暂态点');%pc_time1的模的曲线
    % ================================频域脉压=================================%
    Echo_fft=fft(Echo,8192);%理应进行TotalNumber+number-1点FFT,但为了提高运算速度,进行了8192点的FFT
    coeff_fft=fft(coeff,8192);
    pc_fft=Echo_fft.*coeff_fft;
    pc_freq0=ifft(pc_fft);
    figure(5);

    按照脉冲号、距离门号重排数据

    pc_freq1=pc_freq0(number:TotalNumber+number-1);%去掉暂态点 number-1个,后填充点若干(8192-number+1-TotalNumber)
    % ================按照脉冲号、距离门号重排数据=================================%
    for i=1:PulseNumber
          pc(i,1:SampleNumber)=pc_freq1((i-1)*SampleNumber+1:i*SampleNumber);%每个PRT为一行,每行480个采样点的数据
    end
    figure(6);
    plot(abs(pc(1,:)));title('频域脉压结果的幅度,没有暂态点');

    5,MTI和MTD

    % ================MTI(动目标显示),对消静止目标和低速目标---可抑制杂波=================================%
    for i=1:PulseNumber-1  %滑动对消,少了一个脉冲
       mti(i,:)=pc(i+1,:)-pc(i,:);
    end
    figure(7);
    mesh(abs(mti));title('MTI  result');
     
    % ================MTD(动目标检测),区分不同速度的目标,有测速作用=================================%
    mtd=zeros(PulseNumber,SampleNumber);
    for i=1:SampleNumber
       buff(1:PulseNumber)=pc(1:PulseNumber,i);
       buff_fft=fft(buff);
       mtd(1:PulseNumber,i)=buff_fft(1:PulseNumber);
    end
      figure(8);mesh(abs(mtd));title('MTD  result');

    6,虚实矩阵转换
    coeff_fft_c=zeros(1,2*8192);
    for i=1:8192
        coeff_fft_c(2*i-1)=real(coeff_fft(i));
        coeff_fft_c(2*i)=imag(coeff_fft(i));
    end
    echo_c=zeros(1,2*TotalNumber);
    for i=1:TotalNumber
        echo_c(2*i-1)=real(Echo(i));
        echo_c(2*i)=imag(Echo(i));
    end

    function y=maiya(PulseNumber,range,Fs,TargetVelocity,SNR)
    
    C=3e8;
    Tr=800e-6;%单脉冲最大可测距离0.5*Tr*C=120000m
    Tp=160e-6;
    fr=1/Tr;
    lamda=0.03;
    B=1e6;
    %% 产生线性调频信号 
    number=fix(Fs*Tp);%单脉冲发射信号内采样点数
    SampleNumber=fix(Fs*Tr);%一个脉冲采样点数,800;则每个采样间距代表120000/799m
    TotalNumber=SampleNumber*PulseNumber;
    for i=-fix(number/2):fix(number/2)-1
        Chirp(i+fix(number/2)+1)=exp(j*(pi*(B/Tp)*(i/(Fs))^2)); 
    end  
    figure
    plot(real(Chirp));
    title('线性调频信号')
    coeff=conj(fliplr(Chirp));%匹配滤波函数h
    figure
    plot(real(coeff))
    title('匹配滤波函数h')
    
    
    W = linspace(-pi,pi,4096);    
    [h1,w0] = freqz(coeff,1,W);  
    figure
    plot(w0/pi,20*log10(abs(h1/max(h1)))); 
    title('匹配滤波函数H频率响应')
    %-------
    %% 产生目标回波
    TargetDistance(1:2)=range;
    DelayNumber(1:2)=fix(Fs*2*TargetDistance(1:2)/C);
    
    TargetFd(1:2)=2*TargetVelocity(1:2)/lamda; %计算目标多卜勒
    
    SignalAll=zeros(1,TotalNumber);%所有脉冲的信号,先填0
    for k=1:2% 依次产生各个目标1 2 
        SignalTemp=zeros(1,SampleNumber);% 一个脉冲
       
        SignalTemp(DelayNumber(k)+1:DelayNumber(k)+number)=(10^(SNR(k)/10))*Chirp;  %一个脉冲的1个目标(未加多普勒速度)
        Signal=zeros(1,TotalNumber);
        for i=1:PulseNumber
            Signal((i-1)*SampleNumber+1:i*SampleNumber)=SignalTemp;
        end
        FreqMove=exp(j*2*pi*TargetFd(k)*(0:TotalNumber-1)/Fs);%目标的多普勒速度*时间=目标的多普勒相移
        Signal=Signal.*FreqMove;
        SignalAll=SignalAll+Signal;
    end
    figure
    subplot(2,1,1);plot(real(SignalAll),'r-');title('目标信号的实部');grid on;zoom on;
    subplot(2,1,2);plot(imag(SignalAll));title('目标信号的虚部');
    grid on;zoom on;
    %% 产生噪声
    SystemNoise=normrnd(0,10^(-12/10),1,TotalNumber)+j*normrnd(0,10^(-12/10),1,TotalNumber);
    %% 回波+噪声
    Echo=SignalAll+SystemNoise;   % +SeaClutter+TerraClutter;
    for i=1:PulseNumber   %在接收机闭锁期,接收的回波为0
        Echo((i-1)*SampleNumber+1:(i-1)*SampleNumber+number)=0;
    end
    figure
    plot(real(Echo));title('总回波信号的实部,闭锁期为0');
    %subplot(2,1,2);plot(imag(Echo));title('总回波信号的虚部,闭锁期为0');
    
    %% 回波积累
    Echoplus=zeros(1,SampleNumber);
    for i=1:PulseNumber
       Echoplus1(1:SampleNumber)=Echo((i-1)*SampleNumber+1:i*SampleNumber);
       Echoplus=Echoplus+Echoplus1(1:SampleNumber);
    end
    Echoplus=Echoplus/PulseNumber;
    figure
    plot(real(Echoplus));title('回波脉冲积累信号的实部,闭锁期为0');
    
    
    %% 时域脉压
    pc_time0=conv(Echo,coeff);
    %figure
    %plot(abs(pc_time0));title('时域脉压结果的幅度,有暂态点');
    %% 频域脉压
    Echo_fft=fft(Echo,TotalNumber+number-1);%进行TotalNumber+number-1点FFT
    coeff_fft=fft(coeff,TotalNumber+number-1);
    pc_fft=Echo_fft.*coeff_fft;
    pc_freq0=ifft(pc_fft);
    pc_freq_abs=abs(pc_freq0);
    figure
    plot(pc_freq_abs);title('(不加窗)频域脉压结果的幅度(有暂态点)');
    
    %%  数据重排到距离门
    pc_freq1=pc_freq0(number:TotalNumber+number-1);
    for i=1:PulseNumber
       pc(i,1:SampleNumber)=pc_freq1((i-1)*SampleNumber+1:i*SampleNumber);
    end
    
    
    figure
    
    %subplot(2,1,1)
    %plot((0:SampleNumber-1)*(120000/(SampleNumber-1)), abs(pc(5,:)) );
    % title('不加窗脉压结果');xlabel('距离'),ylabel('脉压输出');
     
    plot((0:SampleNumber-1)*(120000/(SampleNumber-1)), 20*log10(abs(pc(1,:))) );
    xlabel('距离'),ylabel('脉压输出/db');
    axis([-inf,inf, -10,50]);
    title('不加窗脉压结果')
    %% 加窗处理 
    win=chebwin(number,35)';
    h_w=coeff.*win;
    hfft_w=fft(h_w,TotalNumber+number-1);
    y=abs(ifft(Echo_fft.*hfft_w));
    %figure
    %plot(y);title('(加窗)频域脉压结果的幅度(有暂态点)');
    
    pcW_freq1=y(number:TotalNumber+number-1);  %重排数据
    for i=1:PulseNumber
       pcW(i,1:SampleNumber)=pcW_freq1((i-1)*SampleNumber+1:i*SampleNumber);
    end
    
    figure
    %subplot(2,1,1)
    %plot((0:SampleNumber-1)*(120000/(SampleNumber-1)), abs(pcW(1,:)) );
     %title('加窗脉压结果');xlabel('距离'),ylabel('脉压输出');
     
    
    plot((0:SampleNumber-1)*(120000/(SampleNumber-1)), 20*log10(abs(pcW(1,:))) );
    xlabel('距离'),ylabel('脉压输出/db');
    axis([-inf,inf, -10,50]);
    title('加窗脉压结果')
    
    
    %% 相干积累
    Echoplus_fft=fft(Echoplus,SampleNumber+number-1);%理应进行TotalNumber+number-1点FFT,但为了提高运算速度,进行了8192点的FFT
    coeffplus_fft=fft(coeff,SampleNumber+number-1);
    pcplus_fft=Echoplus_fft.*coeffplus_fft;
    pcplus_freq=abs(ifft(pcplus_fft));
    %figure
    %plot(pcplus_freq);title('(不加窗)积累后频域脉压结果的幅度,有暂态点');
    
    pcplus_freq1=pcplus_freq(number:SampleNumber+number-1);
    figure
    subplot(2,1,1)
    plot((0:SampleNumber-1)*(120000/(SampleNumber-1)), abs(pcplus_freq1) );
     title('不加窗积累后脉压结果');xlabel('距离'),ylabel('脉压输出');
    subplot(2,1,2)
    
    plot((0:SampleNumber-1)*(120000/(SampleNumber-1)), (20*log10((pcplus_freq1))));
     title('不加窗积累后脉压结果');xlabel('距离'),ylabel('脉压输出/DB');
     axis([-inf,inf, -20,50]);
    
    %% mti对消
    for i=1:PulseNumber-1  %滑动对消,少了一个脉冲 2脉冲
        mti(i,:)=pc(i+1,:)-pc(i,:);
    end
    mti_abs=abs(mti);
    figure
    mesh(20*log10(mti_abs));title('MTI  result');
    xlabel('距离单元');
       ylabel('多普勒通道');
       zlabel('幅度值');
    axis([-inf,inf,-inf,inf, 0,100]);
    
    %% MTD
    
    mtd=zeros(PulseNumber,SampleNumber);
    mtd_abs=zeros(PulseNumber,SampleNumber);
    for i=1:SampleNumber
        buff(1:PulseNumber)=pc(1:PulseNumber,i);
        buff_fft=fftshift(fft(buff)); %用fftshift将零频搬移到中间 这样可以方便观察速度正负
        mtd(1:PulseNumber,i)=buff_fft(1:PulseNumber)';
    end
    mtd_abs=abs(mtd);
    x=0:1:SampleNumber-1;
    y=-PulseNumber/2:1:PulseNumber/2-1;     %通道这样设后读出的通道数乘单位值则是速度值。
    figure
    mesh(x,y,20*log10(mtd_abs));title('MTD  result');
    xlabel('距离单元');
       ylabel('多普勒通道');
       zlabel('幅度值');
    axis([-inf,inf,-inf,inf, 0,100]);
    
    %% cfar
    
    
    cfar=zeros(PulseNumber,SampleNumber);
     T=sqrt(2*(10^(-12/10))^2*log(1/(1e-6)));
     for i=1:PulseNumber 
        for k=1:2
             left=0;
             right=Mean(mtd_abs(i,:),k+2,k+17);
             maxV=max(left,right);
            if(mtd_abs(i,k)>=T*maxV)
                 cfar(i,k)=mtd_abs(i,k);
            else
                 cfar(i,k)=0;
            end       
        end
        
        
        for k=3:17
            left=Mean(mtd_abs(i,:),1,k-2);
            right=Mean(mtd_abs(i,:),k+2,k+17);
            maxV=max(left,right);
            if(mtd_abs(i,k)>=T*maxV)
                cfar(i,k)=mtd_abs(i,k);
            else
                cfar(i,k)=0;
            end
        end
         for k=18:SampleNumber-18
            left=Mean(mtd_abs(i,:),k-17,k-2);
            right=Mean(mtd_abs(i,:),k+2,k+17);
            maxV=max(left,right);
            if(mtd_abs(i,k)>=T*maxV)
                cfar(i,k)=mtd_abs(i,k);
           else
                cfar(i,k)=0;
            end
         end
        for k=SampleNumber-17:SampleNumber-2
            left=Mean(mtd_abs(i,:),k-17,k-2);
            right=Mean(mtd_abs(i,:),k+2,SampleNumber);
            maxV=max(left,right);
            if(mtd_abs(i,k)>=T*maxV)
                cfar(i,k)=mtd_abs(i,k);
            else
                cfar(i,k)=0;
            end
        end
        for k=SampleNumber-1:SampleNumber
             left=Mean(mtd_abs(i,:),k-17,k-2);
             right=0;
             maxV=max(left,right);
             if(mtd_abs(i,k)>=T*maxV)
                 cfar(i,k)=mtd_abs(i,k);
             else
                 cfar(i,k)=0;
             end 
        end
     end
       figure
       
       IQ_acc=mean(abs(mti));
       mesh(x,y,20*log10(cfar));title(' CFAR  result');
       xlabel('距离单元');
       ylabel('多普勒通道');
       zlabel('幅度值');
     axis([-inf,inf,-inf,inf, 0,100]);
    figure
     plot(x,20*log10(cfar(:,:)),x,20*log10(abs(IQ_acc)));
     title(' CFAR  result');
     xlabel('距离单元');
       ylabel('幅度');
    axis([-inf,inf, -20,100]);

     

    展开全文
  • 雷达动目标短时稀疏分数阶傅里叶变换域检测方法
  • 动目标检测技术

    2015-06-14 23:12:24
    基于机载GMTI雷达的地面动目标跟踪,对从事机载雷达数据处理的同仁应该会有一些帮助。
  • 引用回帖:------PSO start6.219116,3.410710,-4.782166,1.1328983.181979,1.134846,-3.718395,1.2279412.302928,-0.910530,-2.792701,1.2584134.141745,1.269771,-0.407340,1.4097824.141745,1.269771,-0.407340,1....

    引用回帖:

    ------PSO start

    6.219116,3.410710,-4.782166,1.132898

    3.181979,1.134846,-3.718395,1.227941

    2.302928,-0.910530,-2.792701,1.258413

    4.141745,1.269771,-0.407340,1.409782

    4.141745,1.269771,-0.407340,1.409782

    2.782469,0.226964,-0.933429,1.415868

    2.782469,0.226964,-0.933429,1.415868

    2.782469,0.226964,-0.933429,1.415868

    2.782469,0.226964,-0.933429,1.415868

    2.782469,0.226964,-0.933429,1.415868

    3.591808,0.754384,-0.656160,1.481511

    3.591808,0.754384,-0.656160,1.481511

    3.473467,0.846358,-0.247672,1.483317

    3.810920,0.631524,-0.892638,1.489102

    3.857352,0.603985,-0.596614,1.490289

    3.857352,0.603985,-0.596614,1.490289

    3.862678,0.614558,-0.632967,1.493891

    3.862678,0.614558,-0.632967,1.493891

    3.862678,0.614558,-0.632967,1.493891

    3.862678,0.614558,-0.632967,1.493891

    total interations:20

    tx:3.862678  ty:0.614558  ang:-0.632967 mi:1.493891

    ------PSO end

    ------Powell start

    7.719056,  0.614558,  -0.632967,  1.298058

    7.719056,  1.904456,  -0.632967,  1.466426

    16.537888

    7.719056,  1.904456,  -0.681950,  1.463247

    8.229286,  2.035531,  -0.686927,  1.481208

    8.229286,  1.980443,  -0.686927,  1.482608

    0.015995

    8.223876,  1.978633,  -0.686858,  1.482462

    8.057189,  1.978633,  -0.686858,  1.482155

    8.057189,  1.967980,  -0.686858,  1.481889

    0.027765

    8.057581,  1.968111,  -0.686863,  1.481945

    8.060448,  1.968111,  -0.686863,  1.481762

    8.060448,  1.967566,  -0.686863,  1.481860

    0.000009

    8.060564,  1.967605,  -0.686865,  1.481848

    8.056211,  1.967605,  -0.686865,  1.481832

    8.056211,  1.980282,  -0.686865,  1.482319

    0.000180

    8.056211,  1.980282,  -0.687108,  1.482356

    ------Powell end

    tx:8.0562  ty:1.9803  ang:-0.69 mi:1.482356

    time:5.523760

    ------PSO start

    -4.218613,-1.831505,-2.592978,1.198497

    -3.096033,0.220999,-1.548051,1.355306

    -3.096033,0.220999,-1.548051,1.355306

    -3.788383,0.085873,-1.170346,1.356069

    -2.132791,0.115566,-1.059226,1.400370

    -2.536139,-0.302278,-0.703993,1.402590

    -3.122589,0.042784,-0.841495,1.411028

    -2.294945,0.111933,-0.833426,1.440319

    -2.601845,0.432572,-0.042504,1.558405

    -2.601845,0.432572,-0.042504,1.558405

    -2.601845,0.432572,-0.042504,1.558405

    -2.601845,0.432572,-0.042504,1.558405

    -2.623005,0.577600,0.167668,1.558405

    -2.623005,0.577600,0.167668,1.558405

    total interations:14

    tx:-2.623005  ty:0.577600  ang:0.167668 mi:1.558405

    ------PSO end

    ------Powell start

    -5.479949,  0.577600,  0.167668,  1.500895

    -5.479949,  1.084894,  0.167668,  1.552012

    8.420517

    -5.479949,  1.084894,  0.135345,  1.551926

    -4.800852,  1.084894,  0.135345,  1.625440

    -4.800852,  1.146578,  0.135345,  1.639162

    0.464979

    -4.800852,  1.146578,  0.134208,  1.638934

    -4.657180,  1.145903,  0.134221,  1.638934

    -4.657180,  1.144253,  0.134221,  1.638942

    0.018618

    -4.671874,  1.142918,  0.134245,  1.639685

    -4.679493,  1.142918,  0.134245,  1.639685

    -4.679493,  1.144981,  0.134245,  1.638942

    0.000028

    -4.676647,  1.145240,  0.134241,  1.639855

    -4.670146,  1.145240,  0.134241,  1.639855

    -4.670146,  1.145272,  0.134241,  1.639788

    0.000042

    -4.670146,  1.145272,  0.134258,  1.639799

    ------Powell end

    tx:-4.6701  ty:1.1453  ang:0.13 mi:1.639799

    time:10.290607

    展开全文
  • 上一篇文章《动手学无人驾驶(3):基于激光雷达3D多目标追踪》介绍了3D多目标追踪,多目标追踪里使用的传感器数据为激光雷达检测到的数据,本文介绍如何基于激光雷达点云数据进行目标检测。 ...

    上一篇文章《动手学无人驾驶(3):基于激光雷达3D多目标追踪》介绍了3D多目标追踪,多目标追踪里使用的传感器数据为激光雷达Lidar检测到的数据,本文就介绍如何基于激光雷达点云数据进行3D目标检测。

    论文地址:《PointRCNN: 3D Object Proposal Generation and Detection from Point Cloud》

    Github项目地址:https://github.com/sshaoshuai/PointRCNN

    KITTI数据集百度云下载地址:https://pan.baidu.com/s/1qDzslt5mwI_JkEbumGJSUA 提取码: ct4q


    在介绍论文前,大家可以先看看论文作者此前分享的3D目标检测报告,报告里对论文有详细介绍B站地址为https://www.bilibili.com/video/av89811975?zw

    基于点云场景的三维物体检测算法及应用

    目录

    1.KITTI数据集

    2.PointRCNN

    3.目标检测结果

    参考资料


    1.KITTI数据集

    KITTI目标检测数据集(http://www.cvlibs.net/datasets/kitti/eval_object.php?obj_benchmark=3d)中共包含7481张训练图片和7518张测试图片,以及与之相对应的点云数据,label文件以及calib文件。这里以训练集编号为000008的场景为例介绍KITTI数据集中calib和label文件所含信息。

                                                                       (training/image_2/000008.png)

    Calib文件:在KITTI数据采集过程中使用到了摄像头和激光雷达,采集到的数据坐标分别为摄像头坐标和激光雷达坐标下的测量值,这时就需要calib文件将摄像头与激光雷达进行标定,calib文件通过txt格式来保存。

    velodyne:velodyne中存储着激光雷达点云采集到数据,数据以2进制格式存储(.bin)点云数据存储格式为(N,4)。N为激光线束反射点个数,4代表着:(x,y,z,r),分别返回在3个坐标轴上的位置和反射率

    label文件:label文件为标注数据,以txt格式保存,000008.txt中标注的object内容如下:

    Car 0.88 3 -0.69 0.00 192.37 402.31 374.00 1.60 1.57 3.23 -2.70 1.74 3.68 -1.29

    Car 0.00 1 2.04 334.85 178.94 624.50 372.04 1.57 1.50 3.68 -1.17 1.65 7.86 1.90

    Car 0.34 3 -1.84 937.29 197.39 1241.00 374.00 1.39 1.44 3.08 3.81 1.64 6.15 -1.31

    Car 0.00 1 -1.33 597.59 176.18 720.90 261.14 1.47 1.60 3.66 1.07 1.55 14.44 -1.25

    Car 0.00 0 1.74 741.18 168.83 792.25 208.43 1.70 1.63 4.08 7.24 1.55 33.20 1.95

    Car 0.00 0 -1.65 884.52 178.31 956.41 240.18 1.59 1.59 2.47 8.48 1.75 19 -1.25

    DontCare -1 -1 -10 800.38 163.67 825.45 184.07 -1 -1 -1 -1000 -1000 -1000 -10

    DontCare -1 -1 -10 859.58 172.34 886.26 194.51 -1 -1 -1 -1000 -1000 -1000 -10

    DontCare -1 -1 -10 801.81 163.96 825.20 183.59 -1 -1 -1 -1000 -1000 -1000 -10

    DontCare -1 -1 -10 826.87 162.28 845.84 178.86 -1 -1 -1 -1000 -1000 -1000 -10

    关于label文件的理解可以参考下面的代码:

    class Object3d(object):
        ''' 3d object label '''
        def __init__(self, label_file_line):
            data = label_file_line.split(' ')
            data[1:] = [float(x) for x in data[1:]]
    
            # extract label, truncation, occlusion
            self.type = data[0] # 'Car', 'Pedestrian', ...
            self.truncation = data[1] # truncated pixel ratio [0..1]
            self.occlusion = int(data[2]) # 0=visible, 1=partly occluded, 2=fully occluded, 3=unknown
            self.alpha = data[3] # object observation angle [-pi..pi]
    
            # extract 2d bounding box in 0-based coordinates
            self.xmin = data[4] # left
            self.ymin = data[5] # top
            self.xmax = data[6] # right
            self.ymax = data[7] # bottom
            self.box2d = np.array([self.xmin,self.ymin,self.xmax,self.ymax])
            
            # extract 3d bounding box information
            self.h = data[8] # box height
            self.w = data[9] # box width
            self.l = data[10] # box length (in meters)
            self.t = (data[11],data[12],data[13]) # location (x,y,z) in camera coord.
            self.ry = data[14] # yaw angle (around Y-axis in camera coordinates) [-pi..pi]
    
        def print_object(self):
            print('Type, truncation, occlusion, alpha: %s, %d, %d, %f' % \
                (self.type, self.truncation, self.occlusion, self.alpha))
            print('2d bbox (x0,y0,x1,y1): %f, %f, %f, %f' % \
                (self.xmin, self.ymin, self.xmax, self.ymax))
            print('3d bbox h,w,l: %f, %f, %f' % \
                (self.h, self.w, self.l))
            print('3d bbox location, ry: (%f, %f, %f), %f' % \
                (self.t[0],self.t[1],self.t[2],self.ry))

    2.PointRCNN

    3D目标检测模型PointRCNN借鉴了PointNet++和RCNN的思想,提出了自底向上的生成和调整候选检测区域的算法,网络结构如下图所示:

    PointRCNN的网络结构分为两个阶段:第一阶段自底向上生成3D候选预测框;第二阶段在规范坐标中对候选预测框进行搜索和微调,得到更为精确的预测框作为检测结果。

    第一阶段:对3D点云数据进行语义分割和前背景划分,生成候选预测框,有如下三个关键步骤:

    • 点云特征提取:通过PointNet++对点云数据进行编码和解码,提取点云特征向量。

    • 前景点分割:根据提取的点云特征向量,使用focal loss区分前景点和背景点。focal loss能有效地平衡前景点和背景点比例失衡问题,从而得到更为准确的分类效果。

    • 生成候选框:采用候选框箱模型(bin)的方法,将前背景点分割信息生成预测候选框。

    举例来说,将候选框定义为参数(x,y,z,h,w,l,θ)表征的空间中的箱体,其中(x,y,z)为箱体中心坐标,( h,w,l)为箱体在中心坐标方向上的大小,θ为鸟瞰视角上(y方向从上往下看)箱体在x-z平面的角度。

    bin的执行方式为:先根据前景点的分割信息粗分其所属的箱体;再在箱体内部对其做回归,得到箱体参数作为预测框;最后对预测框做NMS(Non-Max Suppress,非极大值抑制),得到最终预测候选框。

    第二阶段:在规范坐标中微调候选预测框,获得最终的检测结果,有如下四个关键部分:

    • 区域池化:对候选框内每个点的特征进行池化。

    • 坐标转化:为了更好地获取局部信息,需要将多个候选区域中的前景点坐标(同一个坐标系)转化为局域坐标系中的规范坐标(以预测框为中心点的多个坐标系),如下图所示:

    • 特征编码:将规范坐标时丢失的深度信息、规范后的坐标信息、前后背景语义信息等经过多层感知机提取特征,作为每个点的编码特征。

    • 微调预测框:经过上一步编码后的特征,经PointNet++网络进行特征提取,最后回归得到局部坐标系下的3D预测框。

    PointRCNN网络代码如下:

    class PointRCNN(nn.Module):
        def __init__(self, num_classes, use_xyz=True, mode='TRAIN'):
            super().__init__()
    
            assert cfg.RPN.ENABLED or cfg.RCNN.ENABLED
    
            if cfg.RPN.ENABLED:
                self.rpn = RPN(use_xyz=use_xyz, mode=mode)
    
            if cfg.RCNN.ENABLED:
                rcnn_input_channels = 128  # channels of rpn features
                if cfg.RCNN.BACKBONE == 'pointnet':
                    self.rcnn_net = RCNNNet(num_classes=num_classes, input_channels=rcnn_input_channels, use_xyz=use_xyz)
                elif cfg.RCNN.BACKBONE == 'pointsift':
                    pass 
                else:
                    raise NotImplementedError
    
        def forward(self, input_data):
            if cfg.RPN.ENABLED:
                output = {}
                # rpn inference
                with torch.set_grad_enabled((not cfg.RPN.FIXED) and self.training):
                    if cfg.RPN.FIXED:
                        self.rpn.eval()
                    rpn_output = self.rpn(input_data)
                    output.update(rpn_output)
    
                # rcnn inference
                if cfg.RCNN.ENABLED:
                    with torch.no_grad():
                        rpn_cls, rpn_reg = rpn_output['rpn_cls'], rpn_output['rpn_reg']
                        backbone_xyz, backbone_features = rpn_output['backbone_xyz'], rpn_output['backbone_features']
    
                        rpn_scores_raw = rpn_cls[:, :, 0]
                        rpn_scores_norm = torch.sigmoid(rpn_scores_raw)
                        seg_mask = (rpn_scores_norm > cfg.RPN.SCORE_THRESH).float()
                        pts_depth = torch.norm(backbone_xyz, p=2, dim=2)
    
                        # proposal layer
                        rois, roi_scores_raw = self.rpn.proposal_layer(rpn_scores_raw, rpn_reg, backbone_xyz)  # (B, M, 7)
    
                        output['rois'] = rois
                        output['roi_scores_raw'] = roi_scores_raw
                        output['seg_result'] = seg_mask
    
                    rcnn_input_info = {'rpn_xyz': backbone_xyz,
                                       'rpn_features': backbone_features.permute((0, 2, 1)),
                                       'seg_mask': seg_mask,
                                       'roi_boxes3d': rois,
                                       'pts_depth': pts_depth}
                    if self.training:
                        rcnn_input_info['gt_boxes3d'] = input_data['gt_boxes3d']
    
                    rcnn_output = self.rcnn_net(rcnn_input_info)
                    output.update(rcnn_output)
    
            elif cfg.RCNN.ENABLED:
                output = self.rcnn_net(input_data)
            else:
                raise NotImplementedError
    
            return output

    3.目标检测结果

    介绍完KITTI数据集和PointRCNN模型后,现在用作者预训练好的模型进行目标预测。

    1)首先是准备数据,从百度网盘里下载KITTI数据后按如下方式排放数据:

    PointRCNN
    ├── data
    │   ├── KITTI
    │   │   ├── ImageSets
    │   │   ├── object
    │   │   │   ├──training
    │   │   │      ├──calib & velodyne & label_2 & image_2 
    │   │   │   ├──testing
    │   │   │      ├──calib & velodyne & image_2
    ├── lib
    ├── pointnet2_lib
    ├── tools

    2)将预训练好的模型放入/tools文件夹下,执行如下命令,此时会对验证集进行预测:

    python eval_rcnn.py --cfg_file cfgs/default.yaml --ckpt PointRCNN.pth --batch_size 1 --eval_mode rcnn --set RPN.LOC_XZ_FINE False

    预测结果如下,这里预测的平均准确率略小于原作者预测的。

    # 原作者预测结果
    Car AP@0.70, 0.70, 0.70:
    bbox AP:96.91, 89.53, 88.74
    bev  AP:90.21, 87.89, 85.51
    3d   AP:89.19, 78.85, 77.91
    aos  AP:96.90, 89.41, 88.54
    # 使用预训练模型输出的结果
    Car AP@0.70, 0.70, 0.70:
    bbox AP:90.3697, 78.9661, 76.0439         
    bev  AP:88.8698, 75.5572, 69.7311
    3d   AP:83.3413, 66.9504, 60.1443
    aos  AP:90.30, 78.51, 75.45

    参考资料

    飞桨火力全开,重磅上线3D模型:PointNet++、PointRCNN!

    PointRCNN地址:https://github.com/sshaoshuai/PointRCNN

    论文:《PointRCNN: 3D Object Proposal Generation and Detection from Point Cloud》

     

    展开全文
  • 这些论文深入研究并改进动目标尤其是慢速运动目标的检测...试图寻求一些新的动目标检测和成像方法,创新性地解决动目标检测和成像中的 关键问题,使之更加先进、高效和实用。是合成孔径雷达(SAR)运动目标检测经典论文。
  • 雷达原理-运动目标检测与测速

    千次阅读 多人点赞 2020-07-10 18:12:24
    文章目录多普勒效应及其应用动目标显示雷达盲速、盲相的影响及其解决途径回波和杂波的频谱及动目标显示滤波器动目标检测(MTD) 多普勒效应及其应用 多普勒效应 连续波雷达 连续波雷达收发天线不共用 脉冲雷达...
  • 已有研究表明,这两点区别于传统SAR模式的优势,使得单通道系统也可以具备较强的动目标检测能力。即,无需增加雷达系统的复杂度,就可以实现在轨星载SAR系统目标检测能力的扩展和提升。这也使得多角度SAR目标研究...
  • 为在线性调频体质雷达中解决高速目标检测问题,此处分析了距离迁移动和多普勒迁移动对累积增益的影响,并根据不同输入信号信噪比提出相应的迁移动补偿方法。对于距离迁移动的补偿,在高信噪比情况下,提出结合二维...
  • 动目标指示(MTI)与动目标检测(MTD)

    千次阅读 2020-12-22 15:43:31
    动目标指示(MTI)与动目标检测(MTD) 2018-12-10 07:00 多普勒雷达是指利用多普勒效应,测量目标相对于雷达的径向速度分量,或对具有特定径向速度的目标进行提取的雷达。如果雷达发射的是脉冲信号,则称为脉冲多普勒...
  • 雷达探测环境复杂、探测对象特征多样,回波具有低可观测性,雷达探测性能难以满足实际需求,面临着复杂环境下微弱目标检测难题。本文论述了低可观测动目标的内涵、特征、雷达探测面临的挑战以及精细化处理的关键技术...
  • 式中, ω0为发射角频率, φ为初相;...如果目标固定不, 则距离R为常数。回波与发射信号之间有固定相位差ω0tr=2πf0·2R/c = (2π/λ) 2R, 它是电磁波往返于雷达目标之间所产生的相位滞后。当目标...
  • 该算法应用于近程毫米波雷达探测环境下,根据被测目标的实际运动情况建立了匀加速运动、匀速转弯运动及匀速运动模型,在动态规划算法基础上考虑了多种运动模型以及模型之间的转换和预测,避免了因模型不匹配导致的...

空空如也

空空如也

1 2 3 4 5 ... 11
收藏数 201
精华内容 80
关键字:

动目标检测雷达