精华内容
下载资源
问答
  • Matlab雷达回波信号消噪的仿真和实现-程序.pdf 基于mallat算法的滤波器设计及用于信号消噪实现 给出了算法、小波变换、滤波器的解析构造等原理及最后的程序 希望对大家有所帮助。
  • Matlab雷达回波信号消噪的仿真和实现-2.pdf 基于mallat算法的滤波器设计及用于信号消噪实现 给出了算法、小波变换、滤波器的解析构造等原理及最后的程序 希望对大家有所帮助。
  • Matlab雷达回波信号消噪的仿真和实现-3.pdf 基于mallat算法的滤波器设计及用于信号消噪实现 给出了算法、小波变换、滤波器的解析构造等原理及最后的程序 希望对大家有所帮助。
  • Matlab雷达回波信号消噪的仿真和实现-1.pdf 基于mallat算法的滤波器设计及用于信号消噪实现 给出了算法、小波变换、滤波器的解析构造等原理及最后的程序 希望对大家有所帮助。
  • 雷达回波仿真 matlab源程序,这是与雷达目标回波+杂波+噪声仿真的mat文件,希望大家能用得着! 雷达回波仿真 matlab源程序,这是与雷达目标回波+杂波+噪声仿真的mat文件,希望大家能用得着!
  • 脉冲多普勒雷达的matlab仿真,包裹下变频、脉冲压缩、MTI和MTD。多普勒脉冲雷达回波仿真。产生回波,对回波进行距离压缩,进行两脉冲对消,观察运动、盲速与静止目标的对消情况。
  • matlab雷达目标回波仿真

    万次阅读 多人点赞 2018-09-10 17:32:10
    % 目标回波信号 Frame = 300; %至少要大于目标的帧数 TargetNumber = 3; %回波目标个数 TargerFrameOrignalMatrix = [Frame Frame Frame]; %如果目标出现帧数帧数超出,则目标被删除 TargerRangeOrignalMatrix = [25...
    close all;clearvars;clc;
    dbstop if error;
    fid = fopen('tempiqa1.dat' , 'w+');
    %% 模拟目标运动轨迹以及天线的基本参数
    Pt = 10e-3;                                                           %发送信号功率w
    Gt = 10;                                                                %天线增益 db
    RCS =1.5;                                                              %取汽车的典型值,反射物的横截面积 平方米
    ADCsamplef1 = 2e6;                                             %ADC采样率,主要是由于其中存在等待,为了保证时长的准确,此处chirp时长为8us ; 其中3us采样,5us等待
    Framet = 50e-3;                                                    %扫频间隔为50ms
    c = 3E8;
    lambda = 3E8/77E9;
    Aeff = lambda/2 * 0.04;                                         %接受天线的有效面积m^2
    numRxAnnate = 4;                                                 %接收天线个数
    d = lambda/2;
    DistanceOfEachAnnate = [0 d 2*d 3*d]; %接收天线间距,以第一幅接收天线为0,以后每一段为两幅接收天线之间的间距;
    
    % sction1 距离精度高,速度精度低段
    SampleRsec1 = 16;
    SampleVsec1 = 1024;
    Bandsec1 = 20E6;
    T1 = 1/ADCsamplef1*(SampleRsec1);
    U1 = Bandsec1/T1;
    DR1 = c/ 2 / Bandsec1;
    DV1 = lambda/ 2 / T1 / SampleVsec1;
    t1 = [0:SampleRsec1-1]/ADCsamplef1;
    F1  = zeros(SampleVsec1,SampleRsec1);
    
    % sction2 距离精度高,速度精度低段
    ADCsamplef2 = 5.4e6;      %ADC采样率,主要是由于其中存在等待,为了保证时长的准确,此处chirp时长为47us ; 其中42us采样,5us等待
    SampleRsec2 = 256;
    SampleVsec2 = 128;
    Bandsec2 = 800e6;
    T2 = 1/ADCsamplef2*(SampleRsec2);
    U2 = Bandsec2/T2;
    DR2 = c/ 2 / Bandsec2;
    DV2 = lambda/ 2 / T2 / SampleVsec2;
    t2 = [0:SampleRsec2-1]/ADCsamplef2;
    F2  = zeros(SampleVsec2,SampleRsec2);
    
    
    % 目标回波信号
    Frame = 300;                                                                             %至少要大于目标的帧数
    TargetNumber = 3;                                                                    %回波目标个数
    TargerFrameOrignalMatrix             = [Frame Frame Frame];        %如果目标出现帧数帧数超出,则目标被删除
    TargerRangeOrignalMatrix             = [25 5 13];                           %m 距离
    TargerVolectyOrignalMatrix           = [10  12 18];                        %m/s 速度为正表示远离 , 速度为负表示靠近
    TargerAccelerationOrignalMatrix    = [0 1 5];                               %m/s ^2
    TargerRoadOrignalMatrix                = [2 0 0];                              %默认设定目标为直线运动,此处给出目标的车道位置,目标的角度信息由距离关系自动计算。其中0表示中间车道,左边为负右边为正
    Mode = 0;
    
    %%  信号模拟
    %目标信号建模
    Fk = [1 Framet;0 1];
    Bk = [(Framet^2)/2  Framet]';
    % 峰值点结构体定义
    peakout.point_r = 0;peakout.point_v = 0;peakout.I1 = 0;peakout.Q1 = 0;
    peakout.I2 = 0;peakout.Q2 = 0;peakout.I3 = 0;peakout.Q3 = 0;peakout.I4 = 0;peakout.Q4 = 0;
    peaknum = 3072;
    
    for i = 1 : TargetNumber        %目标个数循环
        
        Targetdeta = zeros(2 ,Frame );
        Targetdeta(:,1) = [TargerRangeOrignalMatrix(i) TargerVolectyOrignalMatrix(i)]';
        
        for j = 2 : TargerFrameOrignalMatrix(i)     %目标帧数循环
                
                Targetdeta(1:2,j) = Fk*Targetdeta(1:2,j-1) + Bk.*TargerAccelerationOrignalMatrix(i);
                Targetdeta(3,j) = asind(3.6*TargerRoadOrignalMatrix(i) / Targetdeta(1 , j));
                
                if (Targetdeta(1 , j) < 0)
                    Targetdeta(1 , j) = 0;
                    Targetdeta(2 , j) = 0;
                end
        end  
        
        Target(i).target =  Targetdeta();
        
        
        Target(i).Pr =  Pt*Gt./(4*pi.*Target(i).target(1,:).^2) .* RCS .* (1/4/pi./Target(i).target(1,:).^2.*Aeff);
        Target(i).sn = 1.3806505e-24 * 800e6 *  (32+(9/5)*25);
        
    end
    
    figure;
    for i = 1 : TargetNumber
        plot(Target(i).target(1,:).*sind(Target(i).target(3,:)) , Target(i).target(1,:) ,   '*');
        hold on;
    end
    
    % 模拟回波时域信号
    h1 = figure;
    h2 = figure;
    h3 = figure;
    
    for cnt = 1 : Frame
           
         set(0,'CurrentFigure' , h3);
         for i = 1 : TargetNumber
             
             plot(cnt , Target(i).target(1,cnt) , 'o');
             hold on;       
             xlabel('帧数');
             ylabel('距离');
         end
        
       if(mod(cnt,2) == 0)
           
           Mode = 1;    %表示srsect1段 16*1024 20Mhz
           %  初始化天线存储内存
           for annatacnt = 1 : numRxAnnate
                srsec1(annatacnt).RX = zeros( SampleVsec1 , SampleRsec1);
           end
           
            for k = 1 :TargetNumber         
                
                for anrxcnt = 1 : numRxAnnate
           
                        dphi(anrxcnt) = 2*pi*DistanceOfEachAnnate(anrxcnt)*sind(Target(k).target(3,cnt)) / lambda;  
                end          
                
                %sec1 段回波数据模拟
                for i=1:SampleVsec1
                    for j=1:SampleRsec1
                        R = Target(k).target(1,cnt) +Target(k).target(2,cnt)*(i-1)*T1 + Target(k).target(2,cnt)*t1(j);
                        f = 2*R/lambda + 2*U1*R*t1(j)/c;
                        w = 2*pi*f;
                        F1(i,j) = w + (rand(1)-0.5)/0.1/180*pi;
                    end
                end
    
                for i=1:SampleVsec1
                    for j=1:SampleRsec1
                         w = F1(i,j);
                         
                         for anncnt = 1 : numRxAnnate
                             
                              srsec1(anncnt).RX(i,j) =  srsec1(anncnt).RX(i,j) +sqrt( Target(k).Pr(cnt))* exp(sqrt(-1)*(w + dphi(anncnt))) + (rand(1) - 0.5)* sqrt( Target(k).sn);% *  %dphi(anncnt)
                         end
                        
                    end
                end
            end
            srsecrx1 = srsec1(1).RX';
            srsecrx2 = srsec1(2).RX';
            srsecrx3 = srsec1(3).RX';
            srsecrx4 = srsec1(4).RX';
            
            black_manR = blackman(SampleRsec1);
            black_manV = blackman(SampleVsec1)';
            SR1 = srsecrx1.*repmat(black_manR,1,SampleVsec1);
            SR1 = SR1.*repmat(black_manV,SampleRsec1,1);
            fft_data1_1d = fft(SR1,SampleRsec1);
            fft_data1_1d = fft_data1_1d';
            fft_data1_2d = fft(fft_data1_1d,SampleVsec1);
            abs_data1 = abs(fft_data1_2d);
            
            %
            SR2 = srsecrx2.*repmat(black_manR,1,SampleVsec1);
            SR2 = SR2.*repmat(black_manV,SampleRsec1,1);
            fft_data2_1d = fft(SR2,SampleRsec2);
            fft_data2_1d = fft_data2_1d';
            fft_data2_2d = fft(fft_data2_1d,SampleVsec1);
            abs_data2 = abs(fft_data2_2d);
            
            %
            SR3 = srsecrx3.*repmat(black_manR,1,SampleVsec1);
            SR3 = SR3.*repmat(black_manV,SampleRsec1,1);
            fft_data3_1d = fft(SR3,SampleRsec1);
            fft_data3_1d = fft_data3_1d';
            fft_data3_2d = fft(fft_data3_1d,SampleVsec1);
            abs_data3 = abs(fft_data3_2d);
            %
            
            SR4 = srsecrx4.*repmat(black_manR,1,SampleVsec1);
            SR4 = SR4.*repmat(black_manV,SampleRsec1,1);
            fft_data4_1d = fft(SR4,SampleRsec1);
            fft_data4_1d = fft_data4_1d';
            fft_data4_2d = fft(fft_data4_1d,SampleVsec1);
            abs_data4 = abs(fft_data4_2d);
            
             set(0,'CurrentFigure' , h1);
            mesh(abs_data1);
            title( strcat('一维20Mhz 16点 ; dr = ' , num2str(DR1) ,'m ; 二维1024点; dv = ' , num2str(DV1) , 'm/s'));
            xlabel('距离维');
            ylabel('速度维');
       else
               
               Mode = 2;    %表示srsect1段 256*128 800Mhz 
                %  初始化天线存储内存
                for annatacnt = 1 : numRxAnnate
                    
                    srsec2(annatacnt).RX = zeros( SampleVsec2 , SampleRsec2);
                end
           
                 %sec2 段回波数据模拟
                 for k = 1 :TargetNumber   
                         
                        for anrxcnt = 1 : numRxAnnate
    
                                dphi(anrxcnt) = 2*pi*DistanceOfEachAnnate(anrxcnt)*sind(Target(k).target(3,cnt)) / lambda;   
                        end
                     
                        %sec2 段回波数据模拟
                        for i=1:SampleVsec2
                            for j=1:SampleRsec2
                                R = Target(k).target(1,cnt) +Target(k).target(2,cnt)*(i-1)*T2 + Target(k).target(2,cnt)*t2(j);
                                f = 2*R/lambda + 2*U2*R*t2(j)/c;
                                w = 2*pi*f;
                                F2(i,j) = w + (rand(1)-0.5)/0.1/180*pi;
                            end
                        end
    
                        for i=1:SampleVsec2
                            for j=1:SampleRsec2
                                w = F2(i,j);
                                
                                 for anncnt = 1 : numRxAnnate
                                     
                                        srsec2(anncnt).RX(i,j) = srsec2(anncnt).RX(i,j) + sqrt( Target(k).Pr(cnt)) * exp(sqrt(-1)*(w + dphi(anncnt)))+ (rand(1) - 0.5)* sqrt( Target(k).sn);
                                 end                                               
                            end
                        end             
                 end
                 
            srsecrx1 = srsec2(1).RX';
            srsecrx2 = srsec2(2).RX';
            srsecrx3 = srsec2(3).RX';
            srsecrx4 = srsec2(4).RX';
            
            black_manR = blackman(SampleRsec2);
            black_manV = blackman(SampleVsec2)';
            SR1 = srsecrx1.*repmat(black_manR,1,SampleVsec2);
            SR1 = SR1.*repmat(black_manV,SampleRsec2,1);
            fft_data1_1d = fft(SR1,SampleRsec2);
            fft_data1_1d = fft_data1_1d';
            fft_data1_2d = fft(fft_data1_1d,SampleVsec2);
            abs_data1 = abs(fft_data1_2d);
            
            %
            SR2 = srsecrx2.*repmat(black_manR,1,SampleVsec2);
            SR2 = SR2.*repmat(black_manV,SampleRsec2,1);
            fft_data2_1d = fft(SR2,SampleRsec2);
            fft_data2_1d = fft_data2_1d';
            fft_data2_2d = fft(fft_data2_1d,SampleVsec2);
            abs_data2 = abs(fft_data2_2d);
            
            %
            SR3 = srsecrx3.*repmat(black_manR,1,SampleVsec2);
            SR3 = SR3.*repmat(black_manV,SampleRsec2,1);
            fft_data3_1d = fft(SR3,SampleRsec2);
            fft_data3_1d = fft_data3_1d';
            fft_data3_2d = fft(fft_data3_1d,SampleVsec2);
            abs_data3 = abs(fft_data3_2d);
            %
            
            SR4 = srsecrx4.*repmat(black_manR,1,SampleVsec2);
            SR4 = SR4.*repmat(black_manV,SampleRsec2,1);
            fft_data4_1d = fft(SR4,SampleRsec2);
            fft_data4_1d = fft_data4_1d';
            fft_data4_2d = fft(fft_data4_1d,SampleVsec2);
            abs_data4 = abs(fft_data4_2d);
            
            set(0,'CurrentFigure' , h2);
            mesh(abs_data1);
            title( strcat('一维800Mhz 256点 ; dr = ' , num2str(DR2) ,'m ; 二维128点; dv =  ' , num2str(DV2) , 'm/s'));
            xlabel('距离维');
            ylabel('速度维');
       end
       
       %%  找峰值点,并把峰值点传出来
       avemeans = mean(abs_data1)*1.5;
       avemeans = repmat(avemeans , size(abs_data1 , 1) , 1);
       peak_matrix = imregionalmax(abs_data1);
       peak_matrix = peak_matrix .* abs_data1;
       peak_matrix(peak_matrix < avemeans) = 0;
       peak_matrix = peak_matrix * 1e6;
       g_menxian = avemeans(1,:)*1e6;
       [point_r point_v]= find(peak_matrix > 0);
       
       len = length(point_r);
       if len > 3072
           len = 3072;
       end
       
       for peakcnt = 1 : 3072
           peakout(peakcnt).point_r = 0; peakout(peakcnt).point_v=0;
           peakout(peakcnt).I1 = 0;peakout(peakcnt).Q1 = 0;
           peakout(peakcnt).I2 = 0; peakout(peakcnt).Q2 = 0;
           peakout(peakcnt).I3 = 0; peakout(peakcnt).Q3 = 0;
           peakout(peakcnt).I4 = 0; peakout(peakcnt).Q4 = 0;
       end
       %peak_matrix为峰值点位置 ; g_menxian为门限值,之后组帧数据传输出去
       for peakcnt = 1 : length(point_r)
           
           peakout(peakcnt).point_r = point_r(peakcnt);
           peakout(peakcnt).point_v = point_v(peakcnt);
           peakout(peakcnt).I1 = real(fft_data1_2d( point_r(peakcnt) , point_v(peakcnt))) *  1e6;
           peakout(peakcnt).Q1 = imag(fft_data1_2d( point_r(peakcnt) , point_v(peakcnt))) *  1e6;
           peakout(peakcnt).I2 = real(fft_data2_2d( point_r(peakcnt) , point_v(peakcnt))) *  1e6;
           peakout(peakcnt).Q2 = imag(fft_data2_2d( point_r(peakcnt) , point_v(peakcnt))) *  1e6;
           peakout(peakcnt).I3 = real(fft_data3_2d( point_r(peakcnt) , point_v(peakcnt))) *  1e6;
           peakout(peakcnt).Q3 = imag(fft_data3_2d( point_r(peakcnt) , point_v(peakcnt))) *  1e6;
           peakout(peakcnt).I4 = real(fft_data4_2d( point_r(peakcnt) , point_v(peakcnt))) *  1e6;
           peakout(peakcnt).Q4 = imag(fft_data4_2d( point_r(peakcnt) , point_v(peakcnt))) *  1e6;
       end
       
       for peakcnt = 1 : 3072
           
           fwrite(fid, peakout(peakcnt).point_r , 'uint16');
           fwrite(fid, peakout(peakcnt).point_v , 'uint16');
           fwrite(fid, int16(peakout(peakcnt).I1) , 'int16');
           fwrite(fid, int16(peakout(peakcnt).Q1) , 'int16');
           fwrite(fid, int16(peakout(peakcnt).I2) , 'int16');
           fwrite(fid, int16(peakout(peakcnt).Q2) , 'int16');
           fwrite(fid, int16(peakout(peakcnt).I3) , 'int16');
           fwrite(fid, int16(peakout(peakcnt).Q3) , 'int16'); 
           fwrite(fid, int16(peakout(peakcnt).I4) , 'int16');
           fwrite(fid, int16(peakout(peakcnt).Q4) , 'int16');     
           
       end
       
       pause(0.01);
    end
    
    fclose(fid);
    
    
    
    

     

    展开全文
  • 利用LabVIEW与Matlab进行混合编程,一方面可应用Lab ...另一方面可利用Matlab能够进行复杂数值计算的优势大大增强Lab VIEW功效[8],从而可以更好地控制仪器、实现雷达回波起伏特性模拟,以便进行后续的自动测试工作。
  • 雷达回波的ISLR计算

    2018-05-11 19:11:31
    计算合成孔径雷达回波的ISLR的matlab函数,直接调用就行
  • 雷达回波的PLSR计算

    2018-05-11 19:13:13
    计算合成孔径雷达回波的PLSR的matlab函数,直接调用就行
  • MATLAB数字信号处理(2)LFM脉冲雷达回波处理仿真

    万次阅读 多人点赞 2019-03-13 15:41:24
    将上学期的“气象雷达原理与系统”课程报告放到blog上。 摘要 线性调频(LFM)信号是应用...本设计实现了对线性调频(LFM)脉冲压缩雷达的工作原理仿真,在MATLAB 平台中模拟一个叠加的线性调频回波信号,对该...

    将上学期的“气象雷达原理与系统”课程报告放到blog上。


    摘要

    线性调频(LFM)信号是应用广泛的一种波形,主要优点是脉冲压缩的形状和信噪比对多普勒频移不敏感,即在目标速度未知的情况下,用匹配滤波器仍可以实现回波信号的脉冲压缩,这将大大有利于雷达对目标的探测和信号处理效率的提高。本设计实现了对线性调频(LFM)脉冲压缩雷达的工作原理仿真,在MATLAB 平台中模拟一个叠加的线性调频回波信号,对该信号分别进行采样解调、滤波抽取、脉冲压缩,提取出其中包含的测量物体的距离信息,实验效果良好。


    Abstract

    The linear frequency modulation (LFM) signal is a widely used waveform. The main advantage is that the shape and signal-to-noise ratio of pulse compression are not sensitive to Doppler shift. That is, if the target speed is unknown, the matched filter is still used. Pulse compression of the echo signal can be achieved, which will greatly benefit the radar’s detection of the target and the improvement of signal processing efficiency. This design realizes the simulation of the working principle of linear frequency modulation (LFM) pulse compression radar. In the MATLAB platform, a superimposed chirp echo signal is simulated, and the signal is sampled, demodulated, filtered and compressed, and the distance information of the measured object is extracted. The experimental results are good.


    1、引言

    1.1 作用距离和距离分辨力

    作用距离和距离分辨力是雷达最重要的两个技术指标。作用距离取决于发射信号的能量,发射信号的能量又与发射脉冲的功率和发射时间(即脉冲宽度)成正比。前者受发射管峰值功率和传输线功率损耗等的限制,成本高且调节范围有限。因此,在发射机峰值功率受限的情况下,只能通过增加脉冲宽度的方法来增加信号能量以增大雷达的作用距离。

    雷达的距离分辨力取决于发射信号带宽,带宽越大,距离分辨力越好。传统脉冲雷达发射的是单频信号,脉冲宽度越窄,信号带宽就越宽,距离分辨率就越好。然而发射窄脉冲必然导致平均功率下降,进而减小雷达的作用距离。因此,传统的脉冲雷达中,增大作用距离和提高雷达的分辨力之间存在矛盾。

    为了兼顾雷达的作用距离和距离分辨力,发射信号应同时具备大时宽和大带宽的特点,为此,研究人员利用复杂波形来替代传统的单频脉冲信号。在发射端调制信号的频率或相位以增大信号的带宽,并发射大时宽的信号以保证作用距离。在接收端通过匹配滤波器,将接收到的宽脉冲信号进行脉冲压缩得到窄脉冲信号,提高距离分辨率,从而兼顾了作用距离和距离分辨力。这是雷达隐蔽、抗干扰、区分多目标的重要手段。研究最早且应用最广泛的复杂波形便是线性调频信号。

    1.2 线性调频信号

    雷达波形设计中,采用线性调频信号的优势在于信号产生方便,同时当目标回波存在多普勒频移时脉压结果变化较小,缺点是经过脉压处理后副瓣较高,固定为13.6dB,虽然可以通过加窗的方法对其进行抑制,但同时对信号的其他特性也会带来损失,另外在时宽带宽积小于20时,主瓣副瓣比会变小,导致性能恶化。

    线性调频信号的产生方法在早期雷达中使用的是通过全通移相网络、压控振荡器或色散延迟线的方法,后来采用声表面波器件通过模拟手段形成。而新一代雷达一般则使用DDS技术直接合成。脉冲压缩处理方法在现代雷达中一般采用数字方式进行。有两类方式,一类是在频域上进行处理,将零中频回波信号进行快速傅里叶变换然后与发射信号的频谱相乘,然后再进行逆傅里叶变换得出结果;另一类是时域处理法,将零中频信号与回波信号进行卷积直接得出结果。

    早期,由于FPGA硬件水平较低,无法进行大量的乘法并行运算,所以主要使用DSP以第一类方法为主。目前随着FPGA的设计制造工艺水平逐步提高,使用FPGA来实现各种雷达信号处理算法乃至整个雷达信号处理系统成为了一种数字信号处理的发展趋势。
    本文设计实现了对线性调频(LFM)脉冲压缩雷达的工作原理仿真,在MATLAB 平台中模拟一个叠加的线性调频回波信号,对该信号分别进行采样解调、滤波抽取、脉冲压缩,提取出其中包含的测量物体的距离信息。


    2、原理分析

    2.1 LFM 脉冲雷达原理分析

    雷达是利用无线电波来检测目标并测定目标的有无、目标斜距、目标角位置、目标相对速度等的装置。雷达发射机的任务是产生符合要求的雷达波形,然后经馈线和收发开关由发射天线辐射出去,遇到目标后,电磁波一部分反射,经接收天线和收发开关由接收机接收,对雷达回波信号做适当的处理就可以获知目标的相关信息。

    假设目标与雷达的相对距离为 R,雷达发射信号s(t) ,传播速度为光速C ,则经过时间R/C后电磁波到达目标,照射到目标上的电磁波可写成:s(t-R/C)。电磁波与目标相互作用,一部分电磁波被目标散射,被反射的电磁波为σ·s(t-R/C),其中σ为目标的雷达散射截面(RCS)。再经过时间R/C后,被雷达接收天线接收的信号为σ·s(t-2 R/C)。
    在这里插入图片描述

    图 2.1 雷达等效于 LTI 系统

    如果将雷达天线和目标看作一个系统,便得到如图 2.1 的等效,而且这是一个 LTI(线性时不变)系统。

    等效 LTI 系统的冲激响应可写成:

    █(h(t)=∑_(i=1)^M▒σ_i  δ(t-τ_i )#(2.1) )
    M 表示目标的个数,σ_i是目标散射特性,τ_i是光速在雷达与目标之间往返一次的时间:
    在这里插入图片描述
    式中, Ri 为第 i 个目标与雷达的相对距离。雷达发射信号 s(t) 经过该 LTI 系统,得输出信号(即雷达的回波信号)sr (t) :
    在这里插入图片描述
    从雷达回波信号sr (t)提取出表征目标特性的τ_i(表征相对距离)的常用方法如图2.2所示。
    在这里插入图片描述

    图 2.2 雷达回波信号处理

    以上便是线性调频(LFM)脉冲压缩雷达的工作原理。

    2.2数字下变频原理分析

    本设计中可以选用降低采样率来实现数字下变频的目的,原理如图2.3所示。
    在这里插入图片描述

    图 2.3 降低采样率实现数字下变频

    如果原信号采样率为f,则经过n点重采样处理后,采样频率变为f/n。

    2.3脉冲压缩原理分析

    脉冲压缩相当于让 sr(t) 通过雷达发射信号s(t)的匹配滤波器。s(t)的匹配滤波器hr (t)为:
    在这里插入图片描述
    于是进行滤波处理有:
    在这里插入图片描述
    对上式进行傅立叶变换:
    在这里插入图片描述
    如果选取合适的s(t),使它的幅频特性|S(jω)|为常数,那么2.6式可写为:
    在这里插入图片描述
    其傅立叶反变换为:
    在这里插入图片描述
    so (t)中包含目标的特征信息τi和σi。从so(t)中可以得到目标的个数M和每个目标相对雷达的距离:
    在这里插入图片描述
    实现脉冲压缩的方式有两种,一种是直接在时域卷积(滤波)法,另一种是在频域中进行处理,如图 2.4 所示。
    在这里插入图片描述

    图 2.4 频域脉冲压缩处理

    3、详细设计

    3.1 线性调频信号回波产生模块

    表3.1 关键系统参数
    参数 含义
    f 调频信号基础频率 10MHz
    fs 采样频率 100MHz
    ts 采样周期 1/fs
    B 调频范围 10MHz
    T 脉冲宽度 10μs
    c 信号传播速度 3×108m/s
    PRT 脉冲周期 500μs

    本系统中使用到的关键系统参数如表3.1所示。基于上述参数,本系统中使用的线性调频信号为:
    在这里插入图片描述
    本系统假设该线性调频信号检测到三个目标,距离分别为 10km,30km和31km。本模块使用到的主要信号如表3.2所示。

    表 3.2 回波信号生成模块信号
    信号 含义
    y 基础线性调频信号
    y1 10km 处的回波信号
    y2 30km 处的回波信号
    y3 31km 处的回波信号
    xt 叠加后的回波信号

    线性调频信号回波产生模块的程序设计流程图如图3.1所示。
    在这里插入图片描述

    图3.1 LFM信号回波产生模块程序流程图

    程序设计时先计算出三个距离所对应的传播时间,然后根据时间计算出其对应的序列长度,建立三个子信号分别作为三个距离上的回波信号。之后再设计一个 10μs 的 LFM 信号。每一个回波信号由传播时间、10μs的LFM信号、补零三部分组成,总时长为 PRT。最后将三个回波信号叠加起来。

    3.2 回波信号采样解调模块

    该模块使用一个基础频率的信号进行解调:
    在这里插入图片描述
    本模块使用到的主要信号如表3.3所示。

    表3.3 回波信号采样解调模块信号
    信号 含义
    xt LFM 叠加的回波信号
    yf 相干载波信号
    xrt 解调后的信号

    相干解调的过程只需要让 xt 和 yf 相乘即可,相乘结果即为解调出来的雷达信号。

    3.3 滤波抽取模块

    解调后的信号xrt中包含有两信号相乘的和频信号和差频信号,本模块滤除掉和频信号分量,之后对滤波后的信号重采样,以降低采样率达到数字下变频的目的。本模块使用到的主要信号如表 3.4 所示。

    表3.4 滤波抽取模块信号
    信号 含义
    xrt 解调后的信号
    firxrt 滤波后的信号
    xrtdown 数字下变频处理后的信号

    滤波抽取模块的程序设计流程图如图3.2所示。
    在这里插入图片描述

    图 3.2 滤波抽取模块程序流程图

    由于回波信号为10-20MHz,与10MHz的相干信号相乘,结果频谱应该包含 0-10MHz和20-30MHz两个频段,因此使用fdatool设计一个低通滤波器滤除掉20~30MHz的信号。滤波器通带频率15MHz,阻带频率18MHz,通带衰减1dB,阻带衰减1dB,将系数导出到工作空间供滤波处理调用。

    对滤波后的信号使用downsample函数进行4位的抽取,则抽取后的信号采样频率变为100Mhz/4=25MHz。

    3.4 脉冲压缩模块

    表3.5 脉冲压缩模块信号
    信号 含义
    xrtdown 数字下变频处理后的信号
    hdt 匹配滤波信号
    out 脉冲压缩处理后的信号

    脉冲压缩模块让下变频后的回波信号通过发射信号的匹配滤波器,提取出每个目标回波的距离信息。脉冲压缩有时域法和频域法两种。本模块使用到的主要信号如表3.5所示。匹配滤波信号hdt如公式3.3所示。
    在这里插入图片描述
    匹配滤波信号中的f0为0Hz。时域法进行脉冲压缩使用hdt与xrtdown直接进行卷积即可。频域法进行脉冲压缩按照图2.4中的原理框图处理。


    4、仿真分析

    4.1 回波产生模块仿真分析

    绘制出雷达回波信号的时域图与频域图,结果如图4.1所示。
    在这里插入图片描述

    图 4.1 雷达回波信号时域与频域

    时域中可以看到在10km、30km、31km处看到三个脉冲波形,其中在30km和 31km的交界处发生了信号叠加。频域中信号的频率范围在10MHz至20MHz间线性分布,符合预期设定。

    4.2 采样解调模块仿真分析

    在这里插入图片描述

    图 4.2 解调后信号时域图和频域图

    绘制出解调,即相乘后的信号时域和频域图,如图4.2所示。时域中可以仍然保留了10km、30km、31km处的三个脉冲波形信息。由于回波信号为10~20MHz,与10MHz的相干信号相乘,结果频谱应该包含0-10MHz和20-30MHz两个频段,因此该模块设计符合预期设定。

    4.3 滤波抽取模块仿真分析

    绘制对解调信号滤波后的信号频域如图4.3所示。
    在这里插入图片描述

    图 4.3 解调信号滤波后频域图

    经过低通滤波后,解调信号中的 20~30MHz 频段被滤除,只留下 0~10MHz频段信号。对该信号抽取后绘制频域如图4.4所示。
    在这里插入图片描述

    图4.4 抽取后信号频域图

    抽取后信号仍保留了0~10MHz的信号信息,但采样频率由100MHz降至25MHz,图4.3中最大频率为100MHz/2=50MHz,图4.4中最大频率为25MHz/2=12.5MHz,表明该模块设计符合预期设定。

    4.4 脉冲压缩模块仿真分析

    脉冲压缩处理后绘制信号的时域图如图4.5所示。
    在这里插入图片描述

    图 4.5 脉冲压缩后信号时域图

    原来每个距离的回波信号脉宽为10μs,经过脉冲压缩后,每个脉冲变为10μs/100=0.1μs。从图4.5中可以清楚的看到在10km、30km、31km处各有一个很窄的脉冲。脉冲压缩处理的能力也决定了雷达信号处理系统的距离分辨力大小, 压缩后脉冲越窄,距离分辨力越大。


    5、结束语

    本设计实现了对线性调频( LFM)脉冲压缩雷达的工作原理仿真,在MATLAB 平台中模拟一个叠加的线性调频回波信号,对该信号分别进行采样解调、滤波抽取、脉冲压缩,提取出其中包含的测量物体的距离信息,实验效果良好。

    脉冲压缩的原理就是使用一个发射信号与接收回波进行相关,可以将较宽的回波信号“压缩”成很窄的信号。压缩后的脉冲宽度决定了可以分辨的最小距离。例如两个目标的回波信号重叠在一起,在回波信号中无法直接分辨出两个目标的位置,未进行脉冲压缩的雷达距离分辨力 ΔR=(cτ)/2=c/(2B)。这种体制的雷达要提高距离分辨率必须减小脉冲宽度,脉宽减少会降低平均发射功率,使用线性调频信号进行脉冲压缩可以实现提高距离分辨率而保持平均发射功率。脉冲压缩后的距离分辨力 ΔR=(cτ’)/2<<(cτ)/2。


    MATLAB代码如下(fir.mat放不上来,按照文中参数使用FDATOOL工具设计导出即可):

    % written by 刘奇
    
    clc;
    clear;
    close all;
    
    f = 10000000;         %10MHz
    fs = 100e6;
    ts = 1 / fs;
    B = 10^7;
    T = 10^(-5);
    u = B / T;
    c = 3e8;
    PRT = 500e-6;
    
    
    r1 = 10000;   tao1 = 2*r1/c;  n1 = round(tao1 / ts);
    r2 = 30000;  tao2 = 2*r2/c;  n2 = round(tao2 / ts);
    r3 = 31000;  tao3 = 2*r3/c;  n3 = round(tao3 / ts);
    NN = PRT / ts;
    
    t1 = 0 : ts : T-ts;
    y = sin(2*pi*(f*t1+0.5*u*t1.^2));
    N = length(y);
    
    
    y1 = [zeros(1, n1), y, zeros(1, NN-n1-N)];
    y2 = [zeros(1, n2), y, zeros(1, NN-n2-N)];
    y3 = [zeros(1, n3), y, zeros(1, NN-n3-N)];
    xt = y1+y2+y3;
    figure;
    subplot(2, 1, 1);
    plot((0:length(xt)-1)*ts*c/2/1000, xt);
    xlabel('距离/km');
    xtfft = abs(fft(xt, 50000));
    subplot(2, 1, 2);
    fx=(0:length(xt)/2-1)*fs/length(xt);
    plot(fx/1e6, xtfft(1:length(xt)/2));
    xlabel('频率/MHz');
    
    % 对回波信号采样
    fs1 = 100e6;
    ts1 = 1/fs1;
    t2 = 0 : ts1 : (length(xt)-1)*ts1;
    xrt = xt .* sin(2*pi*f*t2);
    
    fx1=(0:length(xt)/2-1)*fs1/length(xt);
    figure;
    subplot(2, 1, 1);
    plot((0:length(xt)-1)*ts*c/2/1000, xrt);
    xlabel('距离/km');
    xrtfft = abs(fft(xrt, 50000));
    subplot(2, 1, 2);
    fx1=(0:length(xrt)/2-1)*fs1/length(xrt);
    plot(fx1/1e6, xrtfft(1:length(xrt)/2));
    xlabel('频率/MHz');
    
    load fir.mat
    firxrt = filter(Num, 1,  xrt);
    firfft = abs(fft(firxrt, 50000));
    figure;
    plot(fx1/1e6, firfft(1:length(firxrt)/2));
    xlabel('频率/MHz');
    xrtdown = downsample(firxrt, 4);
     value0=abs(fft(xrtdown));%FFT分析
    figure;
    fx1=(0:length(xrtdown)/2-1)*(fs1/4)/length(xrtdown);
    %plot((fx1(1:length(value0)))/1e6, value0);
    plot( fx1/1e6, value0(1:length(fx1)));
    xlabel('频率/MHz');
    
    T = 10^(-5);
    u = B / T;
    c = 3e8;
    fs = 25e6;
    ts = 1 / fs;
    t1 = 0 : ts : T-ts;
    hdt = sin(2*pi*(0*t1+0.5*u*t1.^2));
    figure;
    plot(hdt);
    
    replica = xrtdown;
    y = fliplr(hdt);
    % out = conv(replica, y);
    replica1= [replica,zeros(1,16384-length(replica))];
    y1 = [hdt,zeros(1,16384-length(hdt))];
    
    rfft = fft(replica1);
    yfft = fft(y1);
    out = abs(ifft((rfft.*conj(yfft))));
    figure;
    t = (0:length(xrtdown)-1)*ts*c/2/1000;
    plot(t, out(1:length(t)));
    xlabel('距离/km');
    
    展开全文
  • matlab程序:调频脉冲波雷达回波信号(可检测到速度信息),能仿真
  • 雷达回波加天线方向图模拟程序,matlab仿真,有图有代码 经编写并调试后上传,可以正常应用。CSDN把下载所需积分调的太高(30),我来调少些。
  • LFM脉冲雷达回波处理仿真

    千次阅读 2020-09-20 23:02:02
    LFM脉冲雷达回波处理仿真 版权协议,转载请附上原文出处链接和本声明。本文链接:http://blog.csdn.net/FPGADesigner/article/details/88534024 摘要 线性调频(LFM)信号是应用广泛的一种波形,主要优点是脉冲压缩...

    LFM脉冲雷达回波处理仿真

    版权协议,转载请附上原文出处链接和本声明。本文链接:http://blog.csdn.net/FPGADesigner/article/details/88534024
    摘要

    线性调频(LFM)信号是应用广泛的一种波形,主要优点是脉冲压缩的形状和信噪比对多普勒频移不敏感,即在目标速度未知的情况下,用匹配滤波器仍可以实现回波信号的脉冲压缩,这将大大有利于雷达对目标的探测和信号处理效率的提高。本设计实现了对线性调频(LFM)脉冲压缩雷达的工作原理仿真,在MATLAB 平台中模拟一个叠加的线性调频回波信号,对该信号分别进行采样解调、滤波抽取、脉冲压缩,提取出其中包含的测量物体的距离信息,实验效果良好。


    Abstract

    The linear frequency modulation (LFM) signal is a widely used waveform. The main advantage is that the shape and signal-to-noise ratio of pulse compression are not sensitive to Doppler shift. That is, if the target speed is unknown, the matched filter is still used. Pulse compression of the echo signal can be achieved, which will greatly benefit the radar’s detection of the target and the improvement of signal processing efficiency. This design realizes the simulation of the working principle of linear frequency modulation (LFM) pulse compression radar. In the MATLAB platform, a superimposed chirp echo signal is simulated, and the signal is sampled, demodulated, filtered and compressed, and the distance information of the measured object is extracted. The experimental results are good.


    1、引言

    1.1 作用距离和距离分辨力

    作用距离和距离分辨力是雷达最重要的两个技术指标。作用距离取决于发射信号的能量,发射信号的能量又与发射脉冲的功率和发射时间(即脉冲宽度)成正比。前者受发射管峰值功率和传输线功率损耗等的限制,成本高且调节范围有限。因此,在发射机峰值功率受限的情况下,只能通过增加脉冲宽度的方法来增加信号能量以增大雷达的作用距离。

    雷达的距离分辨力取决于发射信号带宽,带宽越大,距离分辨力越好。传统脉冲雷达发射的是单频信号,脉冲宽度越窄,信号带宽就越宽,距离分辨率就越好。然而发射窄脉冲必然导致平均功率下降,进而减小雷达的作用距离。因此,传统的脉冲雷达中,增大作用距离和提高雷达的分辨力之间存在矛盾。

    为了兼顾雷达的作用距离和距离分辨力,发射信号应同时具备大时宽和大带宽的特点,为此,研究人员利用复杂波形来替代传统的单频脉冲信号。在发射端调制信号的频率或相位以增大信号的带宽,并发射大时宽的信号以保证作用距离。在接收端通过匹配滤波器,将接收到的宽脉冲信号进行脉冲压缩得到窄脉冲信号,提高距离分辨率,从而兼顾了作用距离和距离分辨力。这是雷达隐蔽、抗干扰、区分多目标的重要手段。研究最早且应用最广泛的复杂波形便是线性调频信号。

    1.2 线性调频信号

    雷达波形设计中,采用线性调频信号的优势在于信号产生方便,同时当目标回波存在多普勒频移时脉压结果变化较小,缺点是经过脉压处理后副瓣较高,固定为13.6dB,虽然可以通过加窗的方法对其进行抑制,但同时对信号的其他特性也会带来损失,另外在时宽带宽积小于20时,主瓣副瓣比会变小,导致性能恶化。

    线性调频信号的产生方法在早期雷达中使用的是通过全通移相网络、压控振荡器或色散延迟线的方法,后来采用声表面波器件通过模拟手段形成。而新一代雷达一般则使用DDS技术直接合成。脉冲压缩处理方法在现代雷达中一般采用数字方式进行。有两类方式,一类是在频域上进行处理,将零中频回波信号进行快速傅里叶变换然后与发射信号的频谱相乘,然后再进行逆傅里叶变换得出结果;另一类是时域处理法,将零中频信号与回波信号进行卷积直接得出结果。

    早期,由于FPGA硬件水平较低,无法进行大量的乘法并行运算,所以主要使用DSP以第一类方法为主。目前随着FPGA的设计制造工艺水平逐步提高,使用FPGA来实现各种雷达信号处理算法乃至整个雷达信号处理系统成为了一种数字信号处理的发展趋势。
    本文设计实现了对线性调频(LFM)脉冲压缩雷达的工作原理仿真,在MATLAB 平台中模拟一个叠加的线性调频回波信号,对该信号分别进行采样解调、滤波抽取、脉冲压缩,提取出其中包含的测量物体的距离信息。


    2、原理分析

    2.1 LFM 脉冲雷达原理分析

    雷达是利用无线电波来检测目标并测定目标的有无、目标斜距、目标角位置、目标相对速度等的装置。雷达发射机的任务是产生符合要求的雷达波形,然后经馈线和收发开关由发射天线辐射出去,遇到目标后,电磁波一部分反射,经接收天线和收发开关由接收机接收,对雷达回波信号做适当的处理就可以获知目标的相关信息。

    假设目标与雷达的相对距离为 R,雷达发射信号s(t) ,传播速度为光速C ,则经过时间R/C后电磁波到达目标,照射到目标上的电磁波可写成:s(t-R/C)。电磁波与目标相互作用,一部分电磁波被目标散射,被反射的电磁波为σ·s(t-R/C),其中σ为目标的雷达散射截面(RCS)。再经过时间R/C后,被雷达接收天线接收的信号为σ·s(t-2 R/C)。
    在这里插入图片描述

    图 2.1 雷达等效于 LTI 系统

    如果将雷达天线和目标看作一个系统,便得到如图 2.1 的等效,而且这是一个 LTI(线性时不变)系统。

    等效 LTI 系统的冲激响应可写成:

    █(h(t)=∑_(i=1)^M▒σ_i  δ(t-τ_i )#(2.1) )
    M 表示目标的个数,σ_i是目标散射特性,τ_i是光速在雷达与目标之间往返一次的时间:
    在这里插入图片描述
    式中, Ri 为第 i 个目标与雷达的相对距离。雷达发射信号 s(t) 经过该 LTI 系统,得输出信号(即雷达的回波信号)sr (t) :
    在这里插入图片描述
    从雷达回波信号sr (t)提取出表征目标特性的τ_i(表征相对距离)的常用方法如图2.2所示。
    在这里插入图片描述

    图 2.2 雷达回波信号处理

    以上便是线性调频(LFM)脉冲压缩雷达的工作原理。

    2.2数字下变频原理分析

    本设计中可以选用降低采样率来实现数字下变频的目的,原理如图2.3所示。
    在这里插入图片描述

    图 2.3 降低采样率实现数字下变频

    如果原信号采样率为f,则经过n点重采样处理后,采样频率变为f/n。

    2.3脉冲压缩原理分析

    脉冲压缩相当于让 sr(t) 通过雷达发射信号s(t)的匹配滤波器。s(t)的匹配滤波器hr (t)为:
    在这里插入图片描述
    于是进行滤波处理有:
    在这里插入图片描述
    对上式进行傅立叶变换:
    在这里插入图片描述
    如果选取合适的s(t),使它的幅频特性|S(jω)|为常数,那么2.6式可写为:
    在这里插入图片描述
    其傅立叶反变换为:
    在这里插入图片描述
    so (t)中包含目标的特征信息τi和σi。从so(t)中可以得到目标的个数M和每个目标相对雷达的距离:
    在这里插入图片描述
    实现脉冲压缩的方式有两种,一种是直接在时域卷积(滤波)法,另一种是在频域中进行处理,如图 2.4 所示。
    在这里插入图片描述

    图 2.4 频域脉冲压缩处理

    3、详细设计

    3.1 线性调频信号回波产生模块

    表3.1 关键系统参数
    参数含义
    f调频信号基础频率 10MHz
    fs采样频率 100MHz
    ts采样周期 1/fs
    B调频范围 10MHz
    T脉冲宽度 10μs
    c信号传播速度 3×108m/s
    PRT脉冲周期 500μs

    本系统中使用到的关键系统参数如表3.1所示。基于上述参数,本系统中使用的线性调频信号为:
    在这里插入图片描述
    本系统假设该线性调频信号检测到三个目标,距离分别为 10km,30km和31km。本模块使用到的主要信号如表3.2所示。

    表 3.2 回波信号生成模块信号
    信号含义
    y基础线性调频信号
    y110km 处的回波信号
    y230km 处的回波信号
    y331km 处的回波信号
    xt叠加后的回波信号

    线性调频信号回波产生模块的程序设计流程图如图3.1所示。
    在这里插入图片描述

    图3.1 LFM信号回波产生模块程序流程图

    程序设计时先计算出三个距离所对应的传播时间,然后根据时间计算出其对应的序列长度,建立三个子信号分别作为三个距离上的回波信号。之后再设计一个 10μs 的 LFM 信号。每一个回波信号由传播时间、10μs的LFM信号、补零三部分组成,总时长为 PRT。最后将三个回波信号叠加起来。

    3.2 回波信号采样解调模块

    该模块使用一个基础频率的信号进行解调:
    在这里插入图片描述
    本模块使用到的主要信号如表3.3所示。

    表3.3 回波信号采样解调模块信号
    信号含义
    xtLFM 叠加的回波信号
    yf相干载波信号
    xrt解调后的信号

    相干解调的过程只需要让 xt 和 yf 相乘即可,相乘结果即为解调出来的雷达信号。

    3.3 滤波抽取模块

    解调后的信号xrt中包含有两信号相乘的和频信号和差频信号,本模块滤除掉和频信号分量,之后对滤波后的信号重采样,以降低采样率达到数字下变频的目的。本模块使用到的主要信号如表 3.4 所示。

    表3.4 滤波抽取模块信号
    信号含义
    xrt解调后的信号
    firxrt滤波后的信号
    xrtdown数字下变频处理后的信号

    滤波抽取模块的程序设计流程图如图3.2所示。
    在这里插入图片描述

    图 3.2 滤波抽取模块程序流程图

    由于回波信号为10-20MHz,与10MHz的相干信号相乘,结果频谱应该包含 0-10MHz和20-30MHz两个频段,因此使用fdatool设计一个低通滤波器滤除掉20~30MHz的信号。滤波器通带频率15MHz,阻带频率18MHz,通带衰减1dB,阻带衰减1dB,将系数导出到工作空间供滤波处理调用。

    对滤波后的信号使用downsample函数进行4位的抽取,则抽取后的信号采样频率变为100Mhz/4=25MHz。

    3.4 脉冲压缩模块

    表3.5 脉冲压缩模块信号
    信号含义
    xrtdown数字下变频处理后的信号
    hdt匹配滤波信号
    out脉冲压缩处理后的信号

    脉冲压缩模块让下变频后的回波信号通过发射信号的匹配滤波器,提取出每个目标回波的距离信息。脉冲压缩有时域法和频域法两种。本模块使用到的主要信号如表3.5所示。匹配滤波信号hdt如公式3.3所示。
    在这里插入图片描述
    匹配滤波信号中的f0为0Hz。时域法进行脉冲压缩使用hdt与xrtdown直接进行卷积即可。频域法进行脉冲压缩按照图2.4中的原理框图处理。


    4、仿真分析

    4.1 回波产生模块仿真分析

    绘制出雷达回波信号的时域图与频域图,结果如图4.1所示。
    在这里插入图片描述

    图 4.1 雷达回波信号时域与频域

    时域中可以看到在10km、30km、31km处看到三个脉冲波形,其中在30km和 31km的交界处发生了信号叠加。频域中信号的频率范围在10MHz至20MHz间线性分布,符合预期设定。

    4.2 采样解调模块仿真分析

    在这里插入图片描述

    图 4.2 解调后信号时域图和频域图

    绘制出解调,即相乘后的信号时域和频域图,如图4.2所示。时域中可以仍然保留了10km、30km、31km处的三个脉冲波形信息。由于回波信号为10~20MHz,与10MHz的相干信号相乘,结果频谱应该包含0-10MHz和20-30MHz两个频段,因此该模块设计符合预期设定。

    4.3 滤波抽取模块仿真分析

    绘制对解调信号滤波后的信号频域如图4.3所示。
    在这里插入图片描述

    图 4.3 解调信号滤波后频域图

    经过低通滤波后,解调信号中的 20~30MHz 频段被滤除,只留下 0~10MHz频段信号。对该信号抽取后绘制频域如图4.4所示。
    在这里插入图片描述

    图4.4 抽取后信号频域图

    抽取后信号仍保留了0~10MHz的信号信息,但采样频率由100MHz降至25MHz,图4.3中最大频率为100MHz/2=50MHz,图4.4中最大频率为25MHz/2=12.5MHz,表明该模块设计符合预期设定。

    4.4 脉冲压缩模块仿真分析

    脉冲压缩处理后绘制信号的时域图如图4.5所示。
    在这里插入图片描述

    图 4.5 脉冲压缩后信号时域图

    原来每个距离的回波信号脉宽为10μs,经过脉冲压缩后,每个脉冲变为10μs/100=0.1μs。从图4.5中可以清楚的看到在10km、30km、31km处各有一个很窄的脉冲。脉冲压缩处理的能力也决定了雷达信号处理系统的距离分辨力大小, 压缩后脉冲越窄,距离分辨力越大。


    5、结束语

    本设计实现了对线性调频( LFM)脉冲压缩雷达的工作原理仿真,在MATLAB 平台中模拟一个叠加的线性调频回波信号,对该信号分别进行采样解调、滤波抽取、脉冲压缩,提取出其中包含的测量物体的距离信息,实验效果良好。

    脉冲压缩的原理就是使用一个发射信号与接收回波进行相关,可以将较宽的回波信号“压缩”成很窄的信号。压缩后的脉冲宽度决定了可以分辨的最小距离。例如两个目标的回波信号重叠在一起,在回波信号中无法直接分辨出两个目标的位置,未进行脉冲压缩的雷达距离分辨力 ΔR=(cτ)/2=c/(2B)。这种体制的雷达要提高距离分辨率必须减小脉冲宽度,脉宽减少会降低平均发射功率,使用线性调频信号进行脉冲压缩可以实现提高距离分辨率而保持平均发射功率。脉冲压缩后的距离分辨力 ΔR=(cτ’)/2<<(cτ)/2。


    MATLAB代码如下(fir.mat放不上来,按照文中参数使用FDATOOL工具设计导出即可): clc; clear; close all;

    f = 10000000; %10MHz
    fs = 100e6;
    ts = 1 / fs;
    B = 10^7;
    T = 10^(-5);
    u = B / T;
    c = 3e8;
    PRT = 500e-6;

    r1 = 10000; tao1 = 2r1/c; n1 = round(tao1 / ts);
    r2 = 30000; tao2 = 2
    r2/c; n2 = round(tao2 / ts);
    r3 = 31000; tao3 = 2*r3/c; n3 = round(tao3 / ts);
    NN = PRT / ts;

    t1 = 0 : ts : T-ts;
    y = sin(2pi(ft1+0.5u*t1.^2));
    N = length(y);

    y1 = [zeros(1, n1), y, zeros(1, NN-n1-N)];
    y2 = [zeros(1, n2), y, zeros(1, NN-n2-N)];
    y3 = [zeros(1, n3), y, zeros(1, NN-n3-N)];
    xt = y1+y2+y3;
    figure;
    subplot(2, 1, 1);
    plot((0:length(xt)-1)tsc/2/1000, xt);
    xlabel(‘距离/km’);
    xtfft = abs(fft(xt, 50000));
    subplot(2, 1, 2);
    fx=(0:length(xt)/2-1)*fs/length(xt);
    plot(fx/1e6, xtfft(1:length(xt)/2));
    xlabel(‘频率/MHz’);

    % 对回波信号采样
    fs1 = 100e6;
    ts1 = 1/fs1;
    t2 = 0 : ts1 : (length(xt)-1)ts1;
    xrt = xt .
    sin(2pif*t2);

    fx1=(0:length(xt)/2-1)*fs1/length(xt);
    figure;
    subplot(2, 1, 1);
    plot((0:length(xt)-1)tsc/2/1000, xrt);
    xlabel(‘距离/km’);
    xrtfft = abs(fft(xrt, 50000));
    subplot(2, 1, 2);
    fx1=(0:length(xrt)/2-1)*fs1/length(xrt);
    plot(fx1/1e6, xrtfft(1:length(xrt)/2));
    xlabel(‘频率/MHz’);

    load fir.mat
    firxrt = filter(Num, 1, xrt);
    firfft = abs(fft(firxrt, 50000));
    figure;
    plot(fx1/1e6, firfft(1:length(firxrt)/2));
    xlabel(‘频率/MHz’);
    xrtdown = downsample(firxrt, 4);
    value0=abs(fft(xrtdown));%FFT分析
    figure;
    fx1=(0:length(xrtdown)/2-1)*(fs1/4)/length(xrtdown);
    %plot((fx1(1:length(value0)))/1e6, value0);
    plot( fx1/1e6, value0(1:length(fx1)));
    xlabel(‘频率/MHz’);

    T = 10^(-5);
    u = B / T;
    c = 3e8;
    fs = 25e6;
    ts = 1 / fs;
    t1 = 0 : ts : T-ts;
    hdt = sin(2pi(0t1+0.5u*t1.^2));
    figure;
    plot(hdt);

    replica = xrtdown;
    y = fliplr(hdt);
    % out = conv(replica, y);
    replica1= [replica,zeros(1,16384-length(replica))];
    y1 = [hdt,zeros(1,16384-length(hdt))];

    rfft = fft(replica1);
    yfft = fft(y1);
    out = abs(ifft((rfft.*conj(yfft))));
    figure;
    t = (0:length(xrtdown)-1)tsc/2/1000;
    plot(t, out(1:length(t)));
    xlabel(‘距离/km’);

    展开全文
  • 学习matlab以及雷达信号处理的资料,关于雷达信号处理的matlab代码以及指导。
  • 如果这里概念不清楚,请看这qwe14789cn:雷达信号仿真的基本原理——时延与相位的变化​zhuanlan.zhihu.com如果你能够熟练的完成上述要求,那么今天我们要使用的MATLAB工具箱,用来大幅度的节省你的时间和精力,提高...

    c3a2ce922c0372ae09d79182c01977d1.png

    这篇文章的前提条件是在大家已经清楚整个雷达仿真的基本原理并且能自己熟练的根据公式写出雷达信号仿真的距离相位变化信息。如果这里概念不清楚,请看这

    qwe14789cn:雷达信号仿真的基本原理——时延与相位的变化zhuanlan.zhihu.com
    7d7a3f1cd43d92888665e3e5811244c6.png

    如果你能够熟练的完成上述要求,那么今天我们要使用的MATLAB工具箱,用来大幅度的节省你的时间和精力,提高仿真效率。

    说实话这篇文章实际上是我偷懒了,主要是MATLAB的帮助文档的部分,原教程在

    https://www.mathworks.com/help/phased/examples/automotive-adaptive-cruise-control-using-fmcw-technology.htmlwww.mathworks.com

    或者在matlab的F1帮助文档里搜索

    Automotive Adaptive Cruise Control Using FMCW Technology

    这篇文章实际上就是翻译+个人的一些理解,但是在写的过程中发现自己在一些地方上可以扩展,加点私货。所以从这篇文章作为开始,看看哪里可以进行补充说明,寻找一下文章的灵感。废话不多,今天我们来学习如何用MATLAB的相控阵工具箱进行雷达信号回波仿真。

    毫米波雷达目前是比较热门的领域,我们就按照77GHz调频连续波雷达作为我们仿真的建模参考(其实是因为文档里给的就是77GHz,我懒得改参数,参数变了大家也会算)

    23e07455d0cb54cee563c5b630cc2316.png

    波形设计

    在汽车系统中采用调频连续波模式(FMCW)进行目标探测,其测距的原理如图所示

    90459b95363d6c90ccc013c4821d10fd.png

    接收到的信号是发射信号的延迟,延迟的时间与目标的距离相关。由于发射的是扫频信号,因此在任意时刻,接收到的回波信号与发射信号的频率差必然是一个常数,这个信号我们称为拍频。我们可以从拍频中得到频率信息,再将频率转化为时间延迟,由时间延迟得到目标距离。

    车载雷达采用77G载频,假设最大探测距离是200m,对于FMCW雷达系统,接收信号的时间至少应该是往返时间的5到6倍,采用5.5倍采样时间进行仿真

    fc 

    range2time函数是matlab工具箱提供的函数,就是t = 2R/c,即电磁波往返探测距离需要飞行的时间,根据我们的要求设置5.5倍进行仿真,即我们需要设置接收信号的时间

    tm 

    扫频带宽实际上由距离分辨率决定,雷达的距离分辨率是

    ,我们设计距离分辨率为1m,根据公式计算扫频带宽应该为150Mhz,即bw=1e6
    range_res 

    range2bw即距离分辨率的计算公式,由于我们知道了距离分辨率得到了扫频带宽,同时也知道了采样时间tm,我们就知道了扫频信号的斜率 sweep_slope

    FMCW的发射波形具有非常大的带宽,如果单纯的根据奈奎斯特采样定理,那我们的AD器件的性能要求实在是太高了,这不是扯淡嘛!开玩笑这器件要多贵?为了解决这个问题,我们采集到的信号实际上是拍频信号,这样子我们就可以选择较低的采样率,那么采样率选择什么的样的参数合适呢?实际上我们需要考虑:

    1.复杂情况下采样率可以设置的与带宽相同

    2.FMCW的距离估计实际上是拍频信号,因此我们只需要知道最大距离下的拍频最大多普勒频率的和的两倍(奈奎斯特采样定理)即可

    我们来计算一下最大探测距离下的拍频是:

    fr_max 

    在汽车领域,一般按照120km/h为最大速度,在高速路上,迎面的2辆车具有的相对速度为240km/h,我们按照230km/h计算最大多普勒,那么最大频率差为

    v_max 

    我们仍然按照上述2条要求设计采样速率,那么采样速率应该选择:

    fs 

    根据上述要求,我们来看一下雷达指标如下:

    System parameters            Value
    ----------------------------------
    Operating frequency (GHz)    77
    Maximum target range (m)     200
    Range resolution (m)         1
    Maximum target speed (km/h)  230
    Sweep time (microseconds)    7.33
    Sweep bandwidth (MHz)        150
    Maximum beat frequency (MHz) 27.30
    Sample rate (MHz)            150

    指标确定后,我们可以开始设计雷达的参数了,第一个就是发射波形

    waveform 

    调用matlab的相控阵工具箱中的线性调频连续波模块,扫频时间为tm,扫描带宽为bw,按照fs的采样速率生成原始发射波形。

    我们来看一下波形的时频分析图

    sig 

    f4d6608705b2ad3aeaad6547499bed33.png

    我们可以看到发射信号的实部和虚部图分别是↖和↗,这样的图其实不好理解,不如把信号画成三维图来看↙。可以发现这个信号实际上是绕着复平面在旋转,像弹簧一样的结构,并且这个旋转的转速是线性变化,再看↘时频分析图,我们发现信号的频率是随着时间呈现一条直线,并且信号的带宽是150Mhz,时间就是我们设计的tm。

    在这里我要说明一下为什么这里150Mhz带宽的信号用150Mhz采样率生成为什么不混叠?奈奎斯特采样定理不是要求至少2倍吗?实际上这里仍然符合奈奎斯特采样定律,细心的同学会发现在如果我们采集的是实信号,信号带宽如果是150Mhz,我们需要用300Mhz才可以正确表达,但是这里是复信号,一个采样点是2个数据,一个实部和一个虚部,所以实际上还是满足奈奎斯特采样定理,虽然用150Mhz采样,但是我们采集到的数据和300Mhz的总点数一样,大家如果对这里感兴趣可以研究下复信号与实信号的傅里叶变换,你们会发现实信号只有0~fs/2,而复信号是0~fs。关于这部分内容我打算在后续开坑。

    我们继续往下走,波形设计好后我们就需要对整个雷达系统建模了

    目标建模

    我们假设在雷达目标前x轴上有个车辆距离雷达43m,并且以96km/h的速度运行在雷达x轴方向上沿着x轴正向行驶,目标的RCS根据论文

    Karnfelt, C. et al..77 GHz ACC Radar Simulation Platform, IEEE International Conferences on Intelligent Transport Systems Telecommunications (ITST), 2009.

    %-----------------------------------------------------------------------
    

    cardist是目标的绝对距离,car_speed是目标的速度,rcs由论文公式提供,那么后面这里大家可能会头大了,这个phased.RadarTarget 还有这个 phased.Platform是啥东西?

    phased.RadarTarget实际上是根据要求的特性生成一个系统函数,只要传入输入信号,他会返回一个输出响应。

    而phased.Platform这里是按照停跳假设仿真目标运动状态,在这里是按照列向量来表示目标的空间坐标,目标的空间速度也是一个列向量,即

    式中列向量[x y z]'是空间中的绝对位置,用三个坐标表示,[Vx Vy Vz]'是目标的矢量速度,那么每一次PRT时间目标在空间中的位置移动就满足这样的一个迭代关系。看懂了这里大家就明白了为什么参数'InitialPosition',设置[car_dist;0;0.5]就是[x y z]'目标的初始距离,而参数'Velocity'设置的是[car_speed;0;0]对应的就是[Vx Vy Vz]'。

    目标建模完了进行传输信道建模,雷达的电磁波传输的是自由空间,因此同样,采用相控阵工具箱建模如下

    %-----------------------------------------------------------------------
    

    这里有个参数是"TwoWayPropagation"设置的true,表示电磁波发射是一来一回

    下来就是雷达系统的参数设计了

    雷达系统建模

    雷达系统包括了发射机,接收机,天线主要部分,建模时忽略了其他组件(如耦合器和混频器等)影响,我们假设天线是各向同性。设置以下参数

    %-----------------------------------------------------------------------
    

    如上,我们根据雷达的系统参数就设置好了各个模块的传递函数了。

    雷达运动状态建模

    汽车雷达大部分处于运动状态,我们假设雷达按照100km/h的运动速度移动,则相对目标实际上是4km/h的相对速度接近雷达,设置如下参数:

    radar_speed 

    雷达的运动方式同前面一样,仍然采用函数phased.Platform进行位置矢量和速度矢量的初始化,同前面目标的建模方式一样,这里就不在赘述了

    雷达信号仿真

    FMCW雷达是通过检测回波信号的拍频来测量距离,混合后的信号只包含了与目标距离对应的单一点频的频率分量。

    而多普勒信息是从多次回波信号的频率分量提取的,雷达的工作模式是这样子:

    波形发生器产生FMCW信号->发射机放大->天线发射->自由空间传播->目标反射->自由空间传播->接收信号->存储缓冲

    当缓冲足够的回波信号后,在距离维(单一脉冲提取点频)和速度维(脉冲之间提取多普勒频率)上进行傅里叶变换,来提取拍频和多普勒频率,利用这些信息来估计目标的距离和速度。

    下来我们来模拟整个过程,前面我们构造的系统函数也要在这里使用,假设雷达发射了64次,我们写一个循环,如下所示,并且我会在注释中详细说明各个步骤

    %-----------------------------------------------------------------------
    

    我们设计的雷达是100km/h,目标是96km/h,相对速度是4km/h,来看看回波是如何运动的

    6638bb6d8922de69731762d307367e28.gif

    图中↖位置是64次发射雷达在x轴向的位置移动,↙位置是64次发射目标在x轴的位置移动

    →图就是我们采集到的回波信号,我非常喜欢用三维实部虚部来看信号,这样子理解非常直观,大家可以看到信号是在旋转的!

    那么这次我们修改下参数,设置目标的运动速度是110km/h,这样子相对速度是-10km/h,再来看下回波信号

    8d56cd347c5a77804191b19552d6c3c2.gif

    有没有发现相对速度的正负号变了,回波信号的旋转方向变了?

    再改一下,这一次我们设计目标完全静止0km/h,雷达是100km/h保持不变,看看回波信号是什么样子

    e97283311a17034b38aa0f074d54f26a.gif

    发现旋转速度变快了,说明目标的速度信息和回波信号的旋转速度有关,那么我们再看看距离信息,设置目标距离为15m静止,回波信号如图

    5513752ceadfe6a5955bd455daab61a7.gif

    这次我们发现回波信号的旋转速度保持不变,但是回波这个“弹簧”间距变大了,这说明回波信号的频率降低了,到此我们可以总结出

    FMCW雷达回波信号的特点

    1.目标的距离信息与回波信号的频率呈现线性关系。随着目标距离的增大,回波信号的频率逐渐提高,也就是说这个“弹簧”的间距越来越小

    2.目标的速度信息与回波信号的旋转速度呈现线性关系。目标的速度越快,回波信号的旋转速度越快,目标相对速度正负号变化,回波信号的旋转方向变化


    这篇文章主要是教会大家如何使用matlab工具箱进行雷达信号仿真。文章中并没有包含了信号处理部分,关于这部分内容我会另外开个坑。还有一些细节部分也没有详细展开,有时间的话我会继续在后续的文章中进行讲解。

    最后写这个的目的一个是分享,另外一个是希望能与各位大佬交流学习!

    文中的画图部分用到了我自己写的工具箱

    https://github.com/qwe14789cn/radar_toolsgithub.com

    转载请注明知乎来源,谢谢~

    展开全文
  • 雷达目标回波信号仿真,刘文娟,杨晓晖,本文详细论述了雷达目标回波信号的原理和模型及仿真环境下的相关噪声信号。针对雷达探测目标的特点,用Matlab仿真出加入杂波信号和
  • 不同统计分布雷达散射截面(RCS服从卡方分布,瑞利分布,对数正态分布)和回波模拟
  • 5.2 噪声和杂波的产生 在实际的雷达回波信号中不仅仅有目标的反射信号同时还有接收机的热噪声地物杂波气象杂波等各种噪声和杂波的叠加由于噪声和杂波都不是确知信号只能通过统计特性来分析 本节将讨论一些常见的...
  • 目前很多仿真软件对于参差重频的目标回波信号产生都有一定的局限性,本文在SystemVue仿真平台及其雷达信号处理库的基础上,通过设计MATLAB脚本程序动态更新模型参数解决了这一问题。文中简要介绍了SystemVue雷达库的...
  • 一种基于线性调频脉冲压缩雷达目标回波仿真,孟祥青,,用 Matlab 对某脉冲压缩雷达信号进行了仿真,得到了雷达系统中各个处理点上的具体信号形式,既包含幅度信息,又包含相位信息,该模�
  • LFM回波模拟matlab

    2018-05-29 15:26:54
    对LFM雷达信号及其目标回波进行仿真,并对其干扰进行了仿真
  • 空时自适应处理是一个用来描述同时处理空域和时域的...然后来自所有M个延时响应的输出进行相干累加,以产生合成的阵列响应,假设阵列输入由目标回波、杂波回波及干扰信号回波组成。 clear all; close all; sintheta_t1=
  • 波动目标检测----一种情况是完全已知的幅位和相位...由多个脉冲组合雷达回波的过程称为雷达脉冲积累。脉冲积累可以在包络检测器前的正交部分进行。因此,可以在信号幅度中积累。 另外,由于相干积累利用所有积累脉冲的
  • 1. 课题的意义雷达目标模拟器通过软、硬件结合的方法模拟代替真实目标,从而“复现”雷达信号的产生、传递、处理等动态过程,达到模拟目标回波信号的目的。雷达目标模拟器模拟的对象是雷达的目标和环境,它包括噪声...
  • 上学期刚上完《激光大气探测》这门儿课程,课程报告要求是对激光雷达得到的数据进行处理,最终得到回波强度、距离平方矫正信号和消光系数随距离的变化曲线。报告是用MATLAB写的,假期又用Python尝试了一下,写出来...
  • 基于MATLAB平台以线性调频信号为例通过仿真研究了...最后基于匹配滤波算法对雷达回波信号进行了脉冲压缩仿真,仿真结果表明采用线性调频信号可以有效地实现雷达回波信号脉冲压缩、实现雷达测距并且提高雷达的距离分辨力
  • 合成孔径雷达的点目标仿真程序,MATLAB编写

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 158
精华内容 63
关键字:

matlab雷达回波

matlab 订阅