FMCW雷达应用:TDM-MIMO阵列matlab源码

2023-07-11 11:37:55   来源:个人图书馆-汉无为


(相关资料图)

close all;clear all;clc;%光速,m/sCRate = 3e8; %射频载波频率,HzRadioFreq = 77e9; %波长,mLamda = CRate/RadioFreq; %发射阵元个数TxElementNum = 3; %接收阵元个数RxElementNum = 4; %接收阵元间距RxElementDist =0.5*Lamda; %发射阵元间距TxElementDist =RxElementNum *RxElementDist;%虚拟阵列中阵元个数ArrayElementNum = TxElementNum * RxElementNum;%波束指向seta =0; %最大扫描角度MaxScanSeta =80; %接收阵列坐标RxArrayAxis= (0:(RxElementNum-1))"*RxElementDist; %接收阵列导向矢量 RxArrayVect= exp(-1i*2*pi*RadioFreq*RxArrayAxis*sind(seta)/CRate);%发射阵列坐标TxArrayAxis= (0:(TxElementNum-1))"*TxElementDist; %发射阵列导向矢量 TxArrayVect= exp(-1i*2*pi*RadioFreq*TxArrayAxis*sind(seta)/CRate);%虚拟阵列坐标VirArrayAxis= (0:(ArrayElementNum-1))"*RxElementDist; %虚拟阵列导向矢量 VirArrayVect= kron(TxArrayVect,RxArrayVect); %扫描范围 ScanRange= linspace(-1*MaxScanSeta,MaxScanSeta,10000); figure;hold on;plot(RxArrayAxis,zeros(1,length(RxArrayAxis)),"ok","linewidth",2)plot(TxArrayAxis,zeros(1,length(TxArrayAxis)),"pb","linewidth",2)plot(VirArrayAxis,zeros(1,length(TxArrayAxis)*length(RxArrayAxis)),".r","linewidth",2)hold off; box on; legend("接收阵列","发射阵列","虚拟阵列")axis tight; xlabel("X(m)");ylabel("Y(m)");for knum=1:length(ScanRange) %计算扫描导向矢量 RxScanVect = exp(-1i*2*pi*RadioFreq*RxArrayAxis*sind(ScanRange(knum))/CRate); %计算波束合成 RxBeamPow(knum)= 20*log10(abs(RxArrayVect"*RxScanVect)); %计算扫描导向矢量 TxScanVect = exp(-1i*2*pi*RadioFreq*TxArrayAxis*sind(ScanRange(knum))/CRate); %计算波束合成 TxBeamPow(knum)= 20*log10(abs(TxArrayVect"*TxScanVect)); %计算扫描导向矢量 VirScanVect = kron(TxScanVect,RxScanVect); %计算虚拟波束合成 VirBeamPow(knum)= 20*log10(abs(VirArrayVect"*VirScanVect)); end;figure;plot(ScanRange,VirBeamPow-max(VirBeamPow),"r")xlabel("扫描角度(度)");ylabel("波束图(dB)");figure;plot(ScanRange,VirBeamPow-max(VirBeamPow),"r",ScanRange,RxBeamPow-max(VirBeamPow),"b",ScanRange,TxBeamPow-max(VirBeamPow),"k")legend("虚拟阵列","接收阵列","发射阵列");xlabel("扫描角度(度)");ylabel("波束图(dB)");

关键词: