我是靠谱客的博主 勤恳康乃馨,最近开发中收集的这篇文章主要介绍【雷达通信】模拟无人机FMCW毫米波高度雷达含Matlab源码,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1 简介

这是用于无人机的毫米波高度计雷达的简单模拟场景:无人机在空中飞行时,地面为探测对象。

​2 部分代码

%  %  % 1T1R Simulation. % Senario: UAV radar to horizontal ground/slope ground , height measurement.clc;clear%% Radar Parametersfc = 24e9;   c = physconst('LightSpeed');lambda = c/fc;tm = 5e-4;   % Chirp Cyclebw = 300e6;    % FMCW Bandwidthrange_max = 5;     % Max detection Range 1~100 metersv_max = 2.5;         % Max Velocity%range_res = c/2/bw;sweep_slope = bw/tm;fr_max = range2beat(range_max,sweep_slope,c);fd_max = speed2dop(2*v_max,lambda);fb_max = fr_max+fd_max;fs = max(2*fb_max,bw);%%%% Use Phased Array System Toolbox to generate an FMCW waveformwaveform = phased.FMCWWaveform('SweepTime',tm,'SweepBandwidth',bw,...'SampleRate',fs);%%tx_antenna = phased.IsotropicAntennaElement('FrequencyRange',[23.8e9 24.4e9],'BackBaffled',true);rx_antenna = phased.IsotropicAntennaElement('FrequencyRange',[23.8e9 24.4e9],'BackBaffled',true);%%transmitter = phased.Transmitter('PeakPower',0.001,'Gain',20);receiver = phased.ReceiverPreamp('Gain',20,'NoiseFigure',8.5,'SampleRate',fs);txradiator = phased.Radiator('Sensor',tx_antenna,'OperatingFrequency',fc,...'PropagationSpeed',c);rxcollector = phased.Collector('Sensor',rx_antenna,'OperatingFrequency',fc,...'PropagationSpeed',c);rng(2020);fs_d = 2500000;Dn = fix(fs/fs_d);%%%% --------------Radar Motion Platform-------------- %%radar_s = phased.Platform('InitialPosition',[0;0;0],...    'Velocity',[0.05;2.3;-0.04]);  %% *********** Set Radar Velocity Here **************        %% Targets ------------- Ground -------------------- %%target_ypos = -6:0.15:6;target_num = size(target_ypos,2);target_xpos = 1.3*ones(1,target_num) + 0*1.1*target_ypos; %% *********** Set Ground Shape Here ************** target_zpos = zeros(1,target_num);target_pos = [[target_xpos,target_xpos,target_xpos];    [target_ypos,target_ypos,target_ypos];    [target_zpos-0.15,target_zpos,target_zpos+0.155]];target_num = target_num*3;target_rcs = 0.02*ones(1,target_num);targets_vel = [zeros(1,target_num);zeros(1,target_num);zeros(1,target_num)];targets = phased.RadarTarget('MeanRCS',target_rcs,'PropagationSpeed',c,'OperatingFrequency',fc);targetmotion = phased.Platform('InitialPosition',target_pos,...    'Velocity',targets_vel);%%%% Signal Propogation% simulation of free space propagtionchannel = phased.FreeSpace('PropagationSpeed',c,...'OperatingFrequency',fc,'SampleRate',fs,'TwoWayPropagation',true);%%%%% Generate Time Domain Waveforms of Chirps% xr is the data received at rx arrayNsweep = 32;               % Number of Chirps (IF signal) of this simulationchirp_len = fix(fs_d*waveform.SweepTime);xr = complex(zeros(chirp_len,1,Nsweep));disp('The simulation will take some time. Please wait...')for m = 1:Nsweep    if mod(m,1)==0        disp([num2str(m),'/',num2str(Nsweep)])    end        % Update radar and target positions    [radar_pos,radar_vel] = radar_s(waveform.SweepTime);    [tgt_pos,tgt_vel] = targetmotion(waveform.SweepTime);    [~,tgt_ang] = rangeangle(tgt_pos,radar_pos);        % Transmit FMCW waveform    sig = waveform();    txsig = transmitter(sig);        % Toggle transmit element    txsig = txradiator(txsig,tgt_ang);        % Propagate the signal and reflect off the target    txsig = channel(txsig,radar_pos,tgt_pos,radar_vel,tgt_vel);    txsig = targets(txsig);        % Dechirp the received radar return    rxsig = rxcollector(txsig,tgt_ang);    rxsig = receiver(rxsig);    dechirpsig = dechirp(rxsig,sig);        % Decimate the return to reduce computation requirements    for n = size(xr,2):-1:1        xr(:,n,m) = decimate(dechirpsig(1:chirp_len*Dn,n),Dn,'FIR');    endendrange_res = range_res*size(dechirpsig,1)/Dn/size(xr,1);%%xrv = squeeze(xr);save('vrv.mat',...    'xrv','fc','fs_d','c','tm','bw','waveform','range_res',...    'Nsweep','chirp_len','Dn','fb_max','lambda',...    'v_max','range_max')%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%         Part II: Signal Processing                %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%if ~exist('xrv')    load('vrv.mat');end    % FFT pointsnfft_r = 2^nextpow2(size(xrv,1));nfft_d = 2^nextpow2(size(xrv,2));nfft_mul = 2;ra_res = range_res*size(xrv,1)/nfft_mul/nfft_r;% RDM Algorithmrngdop = phased.RangeDopplerResponse('PropagationSpeed',c,...    'DopplerOutput','Speed','OperatingFrequency',fc,'SampleRate',fs_d,...    'RangeMethod','FFT','PRFSource','Property',...    'RangeWindow','Hann','PRF',1/waveform.SweepTime,...    'SweepSlope',waveform.SweepBandwidth/waveform.SweepTime,...    'RangeFFTLengthSource','Property','RangeFFTLength',nfft_r*nfft_mul,...    'DopplerFFTLengthSource','Property','DopplerFFTLength',nfft_d*nfft_mul,...    'DopplerWindow','Hann');% RD Map[resp,r,sp] = rngdop(xrv);% % Range-Energy Calibration% for k=size(resp,1)/2+1:size(resp,1)%     resp(k,:,:) = resp(k,:,:) * (k-size(resp,1)/2)^3;% endsubplot(221);plotResponse(rngdop,squeeze(xrv));axis([-2*v_max 2*v_max 0 range_max-0.05])%respmap = mag2db(abs(resp));respmap = abs(resp);respmap = avg_filter_2D(respmap,1);subplot(222);mesh(respmap(nfft_r*nfft_mul/2+1:nfft_r*nfft_mul/2+1+30*nfft_mul,...    :))    %nfft_d*nfft_mul/2-12*nfft_mul:nfft_d*nfft_mul/2+12*nfft_mul))subplot(413);plot(sum(respmap(nfft_r*nfft_mul/2+1:nfft_r*nfft_mul/2+1+30*nfft_mul,...    nfft_d*nfft_mul/2-1:nfft_d*nfft_mul/2+2),2))

3 仿真结果

4 参考文献

[1]黄广超. 毫米波雷达超分辨率成像关键技术研究. 

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

最后

以上就是勤恳康乃馨为你收集整理的【雷达通信】模拟无人机FMCW毫米波高度雷达含Matlab源码的全部内容,希望文章能够帮你解决【雷达通信】模拟无人机FMCW毫米波高度雷达含Matlab源码所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部