📄 radarsim2.m
字号:
grMANMADE=grMANMADE*ones(rows,1); grNa=grNa*ones(rows,1); semilogx(grDis,grATMO,'--xb',grDis,grGAL,'-.*R',grDis,grMANMADE,':oG',grDis,grNa,'-+k'); xlabel('距离(km)'); ylabel('功率谱密度(dBW)'); legend('ATMO','GAL','MANMADE','OVERALL'); end case 5 % 地波场强曲线。 grEr=CData.grEr;% fn=floor((FMAX-FMIN)/FSTEP)+1;% dn=floor((DMAX-DMIN)/DSTEP)+1;% axes(handles.axesEr);% siFreq=log10(siFreq);grDis=log10(grDis);% x=linspace(min(siFreq),max(siFreq),fn);% y=linspace(min(grDis),max(grDis),dn);% [X,Y]=meshgrid(x,y);% Z=griddata(siFreq,grDis,grEr,X,Y,'cubic');% mesh(X,Y,Z); if viewx=='fx' semilogx(grFreq,grEr,'-+'); xlabel('频率(MHz)'); ylabel('场强(dBuV/m)'); elseif viewx=='dx' semilogx(grDis,grEr,'-+'); xlabel('距离(km)'); ylabel('场强(dBuV/m)'); end case 6 % 地波衰减曲线。 grBTL=CData.grBTL; if viewx=='fx' semilogx(grFreq,grBTL,'-+'); xlabel('频率(MHz)'); ylabel('衰减(dB)'); elseif viewx=='dx' semilogx(grDis,grBTL,'-+'); xlabel('距离(km)'); ylabel('衰减(dB)'); end case 7 % 回波功率曲线。 grPr=CData.grPr; if viewx=='fx' semilogx(grFreq,grPr,'-+r'); xlabel('频率(MHz)'); ylabel('功率谱密度(dBW)'); elseif viewx=='dx' semilogx(grDis,grPr,'-+r'); xlabel('距离(km)'); ylabel('功率谱密度(dBW)'); end case 8 % 海杂波功率曲线。 grPs=CData.grPs; if viewx=='fx' semilogx(grFreq,grPs,'-dc'); xlabel('频率(MHz)'); ylabel('功率谱密度(dBW)'); elseif viewx=='dx' semilogx(grDis,grPs,'-dc'); xlabel('距离(km)'); ylabel('功率谱密度(dBW)'); end case 9 % 信噪(干)比曲线。% grSNR=CData.grSNR; grSCR=CData.grSCR; if viewx=='fx' semilogx(grFreq,grSCR,'-.k'); xlabel('频率(MHz)'); ylabel('信噪比(dB)');% semilogx(grFreq,grSNR,'-',grFreq,grSCR,'--'); elseif viewx=='dx' semilogx(grDis,grSCR,'-.k'); xlabel('距离(km)'); ylabel('信噪比(dB)');% semilogx(grDis,grSNR,'-',grDis,grSCR,'--'); endend% --- Executes on button press in grResultOutput.function grResultOutput_Callback(hObject, eventdata, handles)% hObject handle Ti grResultOutput (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Input VariablesMparam=evalin('base','Mparam');Eparam=evalin('base','Eparam');CData=evalin('base','CData');FMIN = Mparam.FMin; % The minimum frequency in MHz.FMAX = Mparam.FMax; % The maximum frequency in MHz.FSTEP = Mparam.FStep; % The frequency step.DMIN = Mparam.dmin; % The minimum range in kilometres.DMAX = Mparam.dmax; % The maximum range in kilometres.DSTEP = Mparam.dstep; % The range step. See LOGLIN for further explanation.viewx=Eparam.viewx;selc=Eparam.selc;if viewx=='fx' DMAX=DMIN;elseif viewx=='dx' FMAX=FMIN;end% fn=floor((FMAX-FMIN)/FSTEP)+1;% dn=floor((DMAX-DMIN)/DSTEP)+1;set(handles.grSelViewY,'Value',1);set(handles.grSelViewY,'String','(无)');fafalse=3;format short g;for level=1:selc switch level case 1 % 海浪散射截面计算。 if selc==1 set(handles.grSiCalc,'ForeGroundColor',[1,0,0]); %set(handles.grSiCalc,'Value',1); siFreq = Mparam.siFreq; siU = Mparam.siU; siUD = Mparam.siUD; sigemadB=SigmaCalc(siFreq,siU,siUD); fafalse=0; CData.sigemadB=sigemadB; set(handles.grSiCalc,'ForeGroundColor',[0,0,0]); end case 2 % 环境噪声计算。 if selc==2|selc==6 set(handles.grPaCalc,'ForeGroundColor',[1,0,0]); season = Mparam.season; lat = Mparam.lat; lon = Mparam.lon; bw = Mparam.bw; time = Mparam.time; [grFreq,grATMO,grGAL,grMANMADE,grNa]=noise(FMIN,FSTEP,FMAX,season,lat,lon,-bw,time); grDis=DMIN:DSTEP:DMAX; grDis=grDis'; fafalse=1; CData.grFreq=grFreq; CData.grATMO=grATMO; CData.grGAL=grGAL; CData.grMANMADE=grMANMADE; CData.grNa=grNa; CData.grDis=grDis; set(handles.grPaCalc,'ForeGroundColor',[0,0,0]); end case 3 % 地波场强/衰减计算。 set(handles.grErCalc,'ForeGroundColor',[1,0,0]); ANS = Mparam.ans; % The refractivity of the troposphere at the surface of the earth in N-units. HSCALE = Mparam.hscale; % The scale height of the troposphere in kilometres. EPSLON = Mparam.epslon; % The relative permittivity of the surface of the earth. SIGMA = Mparam.sigma; % The conductivity of the surface of the earth in S/m. HRR = Mparam.hrr; % The receiver height in metres. HTT = Mparam.htt; % The transmitter height in metres. U = Mparam.u; %The wind speed in m/s. [grFreq,grDis,grEr,grBTL]=grwave(FMIN,FSTEP,FMAX,DMIN,DSTEP,DMAX,ANS,HSCALE,EPSLON,SIGMA,HRR,HTT,U); CData.grFreq=grFreq; CData.grDis=grDis; CData.grEr=grEr; CData.grBTL=grBTL; set(handles.grErCalc,'ForeGroundColor',[0,0,0]);% viewy=get(handles.grSelViewY,'String')% set(handles.grSelViewY,'String',{viewy,'地波场强曲线'}); case 4 % 回波功率计算。 set(handles.grPrCalc,'ForeGroundColor',[1,0,0]); PrSigma = Mparam.PrSigma; % 雷达目标散射面积。 Ls = Mparam.Ls; % 雷达系统损失。 Po = Mparam.Po; % 发射功率。 Pt = Mparam.Pt; % 峰值发射功率。 Gamma = Mparam.Gamma; % 发射信号占空比。 Do = Mparam.Do; % 天线增益。 Dt = Mparam.Dt; % 发射天线方向性系数。 Dr = Mparam.Dr; % 接收天线方向性系数。 grPr=[]; grPr1=[]; Er4=[]; Lamda2=9e4*grFreq.^-2; rows=size(grFreq,1); progressbar; % 调用自制的进度条 for N=1:rows Er4(N)=(10^(grEr(N)/20))^4; grPr1(N)=Er4(N)*Pt*Gamma*Dt*Dr*Lamda2(N)*PrSigma*10^-27/(57600*pi^3*Po^2*Do^2*Ls); grPr(N)=10*log10(grPr1(N)); progressbar(N/rows); % 更新进度条 end grPr=grPr'; grPr=roundn(grPr,-2); CData.grPr=grPr; set(handles.grPrCalc,'ForeGroundColor',[0,0,0]);% viewy=get(handles.grSelViewY,'String')% set(handles.grSelViewY,'String',{viewy,'回波功率曲线'}); case 5 % 海杂波功率谱计算。 set(handles.grPsCalc,'ForeGroundColor',[1,0,0]); UD = Mparam.UD; % 风向。 DeltaR = Mparam.DeltaR; % 距离分辨率。 ThetaB = Mparam.ThetaB; % 角度分辨率。 OmgB = Mparam.OmgB; % 多普勒频率。 grPs=[]; grPs1=[]; progressbar; % 调用自制的进度条% for N=1:rows %dyn sigema=SigmaCalcA(grFreq(N),U,UD,OmgB); disp(sigema);% sigema=0.000001; %dyn for N=1:rows; %dyn% grPs(N)=Er4(N)*grPr(N)*Gamma*Dt*Dr*Lamda2(N)*grDis(N)*10^3*DeltaR*ThetaB*sigema*10^-27/(57600*pi^3*Po^2*Do^2*Ls); grPs1(N)=Er4(N)*Pt*Gamma*Dt*Dr*Lamda2(N)*grDis(N)*10^3*DeltaR*ThetaB*sigema*10^-27/(57600*pi^3*Po^2*Do^2*Ls); CData.grPs1(N)=grPs1(N); grPs(N)=10*log10(grPs1(N)); progressbar(N/rows); % 更新进度条 end grPs=grPs'; CData.grPs(N)=grPs(N); grPs=roundn(grPs,-2); CData.grPs=grPs; set(handles.grPsCalc,'ForeGroundColor',[0,0,0]); case 6 % 信噪(干)比计算。 set(handles.grSNRCalc,'ForeGroundColor',[1,0,0]); Ti = Mparam.Ti; % 雷达信号相参处理时间。 grNoise=[]; grNoise1=[]; progressbar; % 调用自制的进度条 for N=1:rows if viewx=='fx' grNoise1(N)=10^(grNa(N)/10)+grPs1(N); elseif viewx=='dx' grNoise1(N)=10^(grNa/10)+grPs1(N); end grNoise1(N)=10*log10(grNoise1(N)); progressbar(N/rows); % 更新进度条 end grNoise1=grNoise1'; CData.grNoise1=grNoise1;% grNoise=roundn(grNoise,-2);% grSNR=grPr-(grNa-10*log10(Ti)).*ones(rows,1);% grSCR=grPr-grPs+10*log10(Ti).*ones(rows,1);% grSNR=roundn(grSNR,-2); grSCR=grPr-grNoise1+10*log10(Ti).*ones(rows,1); grSCR=roundn(grSCR,-2);% CData.grSNR=grSNR; CData.grSCR=grSCR; set(handles.grSNRCalc,'ForeGroundColor',[0,0,0]); endendswitch selc case 1 set(handles.grSelViewY,'String',{'选择输出曲线...','海面散射系数曲线'}); case 2 set(handles.grSelViewY,'String',{'选择输出曲线...','环境噪声曲线(Fa)','环境噪声曲线(Pa)'}); case 3 set(handles.grSelViewY,'String',{'选择输出曲线...','地波场强曲线','地波衰减曲线'}); case 4 set(handles.grSelViewY,'String',{'选择输出曲线...','地波场强曲线','地波衰减曲线','回波功率曲线'}); case 5 set(handles.grSelViewY,'String',{'选择输出曲线...','地波场强曲线','地波衰减曲线','回波功率曲线','海杂波功率曲线'}); case 6 set(handles.grSelViewY,'String',{'选择输出曲线...','环境噪声曲线(Fa)','环境噪声曲线(Pa)','地波场强曲线','地波衰减曲线','回波功率曲线','海杂波功率曲线','回波信噪比曲线'});endEparam.fafalse=fafalse;assignin('base','Eparam',Eparam);assignin('base','CData',CData);% --- Executes on button press in grGraph.function grGraph_Callback(hObject, eventdata, handles)% hObject handle to grGraph (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)Eparam=evalin('base','Eparam');set(handles.axesEr,'Visible','on');% 关闭ActiveX控件。if isfield(handles,'spreadsheet') && ishandle(handles.spreadsheet) delete(handles.spreadsheet);endEparam.graph=0;assignin('base','Eparam',Eparam);% --- Executes on button press in grTable.function grTable_Callback(hObject, eventdata, handles)% hObject handle to grTable (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)set(handles.axesEr,'Visible','off');Eparam=evalin('base','Eparam');flag=Eparam.graph;if flag==0 Eparam.graph=1; assignin('base','Eparam',Eparam); % 获得仿真数据 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Eparam=evalin('base','Eparam'); CData=evalin('base','CData'); grFreq=CData.grFreq; grDis=CData.grDis; viewx=Eparam.viewx; level=Eparam.level; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 生成ActiveX控件。 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% set(handles.axesEr,'units','pixels'); pos=get(handles.axesEr,'position'); set(handles.axesEr,'units','normalized'); try handles.spreadsheet = actxcontrol('OWC11.Spreadsheet.11',... [pos(1)+18 pos(2)+45 pos(3) pos(4)],handles.figure1); catch handles.spreadsheet = actxcontrol('OWC11.Spreadsheet.10',... [pos(1)+18 pos(2)+45 pos(3) pos(4)],handles.figure1); end guidata(hObject,handles); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 填充数据 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% switch level case 2 % 海浪散射截面曲线。 case 3 % 环境噪声曲线(Fa)。 grATMO=CData.grATMO; grGAL=CData.grGAL; grMANMADE=CData.grMANMADE; grNa=CData.grNa; grATMO2=grATMO+204; grGAL2=grGAL+204; grMANMADE2=grMANMADE+204; grNa2=grNa+204; M = ['频率(MHz)',num2cell(grFreq');'ATMO',num2cell(grATMO2');... 'GAL',num2cell(grGAL2');'MANMADE',num2cell(grMANMADE2');'OVERALL',num2cell(grNa2')]'; % 数据 FillGrid(handles.spreadsheet,M); % 写入数据 case 4 % 环境噪声曲线(Fa)。 grATMO=CData.grATMO; grGAL=CData.grGAL; grMANMADE=CData.grMANMADE; grNa=CData.grNa; M = ['频率(MHz)',num2cell(grFreq');'ATMO(DB,W)',num2cell(grATMO');... 'GAL(DB,W)',num2cell(grGAL');'MANMADE(DB,W)',num2cell(grMANMADE');'OVERALL(DB,W)',num2cell(grNa')]'; % 数据 FillGrid(handles.spreadsheet,M); % 写入数据 case 5 % 地波场强曲线。 grEr=CData.grEr; M = ['频率(MHz)',num2cell(grFreq');'距离(KM)',num2cell(grDis');'场强(DB,uV/m)',num2cell(grEr')]'; % 数据 FillGrid(handles.spreadsheet,M); % 写入数据 case 6 % 地波衰减曲线。 grBTL=CData.grBTL; M = ['频率(MHz)',num2cell(grFreq');'距离(KM)',num2cell(grDis');'衰减(DB)',num2cell(grBTL')]'; % 数据 FillGrid(handles.spreadsheet,M); % 写入数据 case 7 % 回波功率曲线。 grPr=CData.grPr; M = ['频率(MHz)',num2cell(grFreq');'距离(KM)',num2cell(grDis');'功率(DB,W)',num2cell(grPr')]'; % 数据 FillGrid(handles.spreadsheet,M); % 写入数据 case 8 % 海杂波功率曲线。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -