基于时延的毫米波雷达回波模拟(多chirp组合) (三)

这篇文章是对《毫米波雷达 3发4收 阵列信号回波模拟(基于信号的延时来建模)以及DOA和MVDR方法测角 (二)》中考虑速度因素,并将锯齿波的扫频模式修改为多chirp组合的线性连续调频波。

以下是matlab的程序:

%% 本程序为FMCW制式雷达发射信号与回波信号仿真,雷达采用3发4收构造MIMO虚拟孔径,仿阵列回波,以验证超分辨算法
% 本例程是基于发射信号的延时的方式来构建的个接受天线的回波数据,推导原理参考
%天线间距为半波长,发射频率为77G,目标信息可设置
%V04 此版本是在V01版本的基础上,考虑速度的影响,并构成二维扫频的方式,生成数据并验证

close all;clearvars;clc;
dbstop if error;
 
%------------------------参数设置----------------------------------------
F0                = 77e9;                              %载频
FS                = 2E6;                               %中频信号采样率
samplenum         = 256;                               %中频采样点数
T                 = samplenum / FS;                    %扫频的有效时长,也是一个chirp的有效时长
Tchirptime        = T + 10e-6;                          %chirp的时长
chirpnumber       = 128;
RPT               = 50E-3;                             %每个frame的时长
B                 = 400E6;                             %信号带宽
u                 = B/T;
c                 = 3E8;
PL                = 200;                              %快拍数,处理总时长为PL*RPT
RXannate          = 4;
TXannate          = 3;
virtueRxannate    = TXannate * RXannate;
lamada            = c/F0;
D                 = lamada/2;
t                 = (1/FS : 1/FS : samplenum/FS);
rsolution         = c/2/B;

targetnumber= 3;
% 每一个目标的信息按顺序分别为距离(m)、速度(靠近为﹣,远离为+)(m/s)、角度(°)、信噪比 DB;
% 此处的距离是按照第一幅发射天线维坐标原点建立的相对位置
targetinfoR = [30 35.0 80]';
targetinfoV = [1 4 -5]';
targetinfoP = [10 11 15]';
signalAmplitude = [5 5 5]';                      
accelerate = [0.2 0.2 0.2]';

% 收发天线的物理排布位置
TXarraydis = [0 4*D 8*D]';                                      %发射天线在坐标轴上的位置
RXarraydis = TXannate*RXannate*D + [0 : 1 : RXannate-1]' * D;   %接受天线在坐标轴上的位置

tgaptime = 0;     % 时间记录标量,仅记录时间
h1 = figure;
for L = 1 : 1 : PL % 每一个frame周期循环 50e-3

    tgaptime = RPT * (L - 1);               
    sr = zeros(virtueRxannate , samplenum*chirpnumber);
    for chirpcnt = 1 : chirpnumber          %计算每个chirp下的回波
          
        TRVcacu = tgaptime + (chirpcnt-1)*Tchirptime;                   %当前时刻,用于确定当前的目标位置
        targetinfoR_T(: , L) = targetinfoR + targetinfoV .* TRVcacu;    %当前目标位置,用以计算延时等信息                                          
        fd = 2 * targetinfoV / lamada;                                  %多普勒频率
        
        % 根据目标位置计算目标在发射天线和接收天线之间的延时
        for i = 1 : targetnumber    %生成目标的TX延时txrtao
    
            txrtao(:,i) = sqrt(repmat(targetinfoR_T(i , L)^2 , TXannate , 1) + TXarraydis.^2 - 2*targetinfoR_T(i , L)*TXarraydis.*cosd(90 - targetinfoP(i)))/c;
        end

        for i = 1 : targetnumber    %生成目标的RX延时txrtao
    
            rxrtao(:,i) = sqrt(repmat(targetinfoR_T(i , L).^2 , RXannate , 1) + RXarraydis.^2 - 2*targetinfoR_T(i , L)*RXarraydis.*cosd(90 - targetinfoP(i)))/c;
        end
        
        % 按照3法4收获取12副接受天线的距离延时,用于后续构造阵列使用
        cnt = 1;
        for i=1 : 1 : TXannate
           for j = 1 : 1 : RXannate

               taor(cnt,:) = txrtao( i , :) + rxrtao( j,:);
               cnt = cnt + 1;
           end    
        end
        
        % 生成回波延时信号
        
        SNR = 10.^(signalAmplitude / 10);
        indx = (chirpcnt-1)*256+1;
        
        for k = 1 : targetnumber
            % 数据在sr总的存储格式为:12X256(CHIRP1) 12X256(CHIRP2) ... 12X256(CHIRP128)
            
            noise = (randn(virtueRxannate,samplenum)+1j*randn(virtueRxannate,samplenum))/sqrt(2);
            
            sr(: , indx : indx + samplenum-1) = sr(: , indx : indx + samplenum-1) + repmat( SNR(k) * exp(1i*2*pi*F0*taor(:,k)) ...
                                                      .* exp(1i*u*pi*taor(:,k).^2) , 1 , samplenum ) ...
                                                      .* exp(2*pi*1i*(-fd(k) + u*2*targetinfoV(k)*taor(:,k)/c + u*taor(:,k)) * t)...
                                                      + noise;          
        end
    end
    
    fftdata =  reshape(sr(1 , : ) , 256 , []);    
    fftdata = fft(fftdata);
    fftdata = fft(fftdata.');
    figure(h1);mesh(abs(fftdata));
    pause(0.01);
    

end

%% ----------------------------------------------------------------
% 结束

实验结果:

推导原理:

  • 12
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 17
    评论
毫米波雷达回波信号的Matlab仿真可以分为以下几个步骤: 1. 确定仿真模型和参数:选择合适的毫米波雷达仿真模型和参数设置,包括雷达频率、天线参数、目标参数等。 2. 生成目标场景:根据目标的形状、大小、位置等参数,生成目标场景模型。 3. 计算信号传播模型:根据雷达和目标的位置,计算信号在空气中的传播模型,包括多径效应、大气衰减等。 4. 生成回波信号:根据信号传播模型和目标场景模型,生成毫米波雷达回波信号。 5. 分析回波信号:对生成的回波信号进行分析,包括功率谱密度、自相关函数、时域波形等。 下面是一个简单的毫米波雷达回波信号Matlab仿真的示例代码: ```matlab % 确定参数设置 fc = 77e9; % 雷达频率 lambda = c/fc; % 波长 range_max = 200; % 最大探测距离 range_res = 1; % 距离分辨率 bw = 200e6; % 带宽 sweep_time = 5e-6; % 扫频时间 n_samples = 1024; % 采样点数 % 生成目标场景 target_pos = [50 0 0]; % 目标位置 target_rcs = 10; % 回波截面积 target_vel = [10 0 0]; % 目标速度 % 计算信号传播模型 range = linspace(0, range_max, n_samples); % 距离序列 tau = 2 * range / c; % 时延序列 doppler_shift = 2 * target_vel(1) / lambda; % 多普勒频移 % 生成回波信号 signal = zeros(1, n_samples); for i = 1:n_samples signal(i) = target_rcs * exp(1j * 4 * pi * fc * tau(i) + 1j * 2 * pi * bw / sweep_time * tau(i)^2 / 2); end % 分析回波信号 psd = abs(fftshift(fft(signal))).^2; % 功率谱密度 acf = xcorr(signal); % 自相关函数 t = linspace(-n_samples/2, n_samples/2, n_samples); % 时间序列 ``` 以上示例代码仅作为参考,实际的仿真应根据具体需求进行设置和修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值