esvrdrnoplot.m
来自「信号与信息处理-matlab信号处理工具箱源程序集合」· M 代码 · 共 99 行
M
99 行
function [R,rdrRange,esRange,sminr,sminEs]=esVrdrNoPlot(Pt,Gt,RCS,Ges,Freq)% ESVRDRNOPLOT For use with GUI or programs which do not require a plot% TODO: Help%% Initiate variablespt=Pt; % Power transmitted [W]ptdb=g2db(pt); % power tx [dB]gt=Gt; % Tx ae gain [ratio]gtdb=g2db(gt); % Tx ae gain [dB]gr=gt; % Rx ae gain [ratio]grdb=g2db(gr); % Rx ae gain [dB]ges=Ges; % ES ae gain [ratio]gesdb=g2db(ges); % ES ae gain [dB]rcs=RCS; % radar cross section [m^2]rcsdb=g2db(rcs); % radar cross section [dB]f=Freq; % rdr operating frequencyxtol=5; % tolerance for calculating x-axis limitsetLow=30; % low preset limit for logspace / rangesetHigh=60; % high preset limit for logspace / rangerdrpw=1e-6; % radar pulse width [s]rdrbw=p2b(rdrpw); % radar bandwidth [Hz] esbw=1e9; % ES bandwidth [Hz]xincr=false; % flag for x-axis increasing limits%% Set range%---ESses=smin(esbw,800,20)-30; % Smin for ES systemres=esRmaxdb(ses,ptdb,gtdb,gesdb,f); % range for ES systemrhigh=round(res)+xtol; % log limit high%---RDRsrdr=smin(rdrbw,800,4)-30; % Smin for RDR systemrrdr=rmaxdb(srdr,ptdb,gtdb,grdb+30,rcsdb,f);% range for radar systemrlow=round(rrdr)-xtol; % log limit low%---Check rlow rhigh to see if they are in the right orderif rlow>rhigh temp=rlow; rlow=rhigh; rhigh=temp;end%---Increase range only if greater than set limitsif setLow>rlow setLow=rlow; xincr=true;endif setHigh<rhigh setHigh=rhigh; xincr=true; endR=logspace(setLow/10,setHigh/10); % Create logspace for plot%% Smin and sensitivity arrays - createsminr=ones(1,length(R)); % initiate Smin(RDR) for R samplessminEs=ones(1,length(R)); % initiate Smin(ES) for R samplesrdrRange = g2db((rre(pt,R, rcs, f, gt, gr*1000))); % Radar sensitivity array for the rangeesRange = g2db((rre1(pt,R,f,gt,ges))); % ES sensitivity array for the rangesminr=sminr.*srdr; % Smin rdr array for the rangesminEs=sminEs.*ses; % Smin es array for the range% srdb=g2db(sminr(1))+30% sesdb=g2db(sminEs(1))+30 %% Interpolate detection range% figurerdetect=interp1(rdrRange,R,sminr(1));% radarRange_nm=rdetect/1852esdetect=interp1(esRange,R,sminEs(1));% esRange_nm=esdetect/1892esAdvantage=esdetect-rdetect;% Create db values that are not already createdRdb=g2db(R);esdetectdb=g2db(esdetect)rdetectdb=g2db(rdetect)%% Plothold onplot(Rdb,rdrRange,Rdb,esRange,Rdb,sminr,Rdb,sminEs); xlim([setLow setHigh])if esAdvantage>=0 area([esdetectdb rdetectdb],[sminr(1) sminr(1)],'BaseValue',sminEs(1),'FaceColor','y') legend('RDR received signal','ES received signal','RDR Smin','ES Smin','ES Advantage','Location','SouthWest')else area([esdetectdb rdetectdb],[sminr(1) sminr(1)],'BaseValue',sminEs(1),'FaceColor','r') legend('RDR received signal','ES received signal','RDR Smin','ES Smin','ES Disadvantage','Location','SouthWest')endif xincr text(setLow+2*xtol,srdr-40,'Note: x-axis limits','FontSize',12)end% % text(log10(rdetect)+.5,2/3*rdrRange(length(R)),'ES Advantage','Interpreter','Latex','FontSize',16,'FontWeight','bold','BackgroundColor','w')xlabel('\bf{Range} [$10log_{10}(m)$]','Interpreter','Latex')ylabel('\bf{Sensitivity} [$dB$]','Interpreter','Latex')% % format long g% esAdv_km=esAdvantage/1000esAdv_nm=esAdvantage/nm;annot=sprintf('ES Advantage is %0.2f nm',esAdv_nm);text(rdetectdb+0.05,srdr+(ses-srdr)/2,annot,'FontSize',12)% % format% print -dpdf esadv.pdf
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?