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 + -
显示快捷键?