leo-毕设论文 联系客服

发布时间 : 星期三 文章leo-毕设论文更新完毕开始阅读019e66b19b6648d7c0c74626

兰州理工大学毕业设计

附录3 程序

function hlm_generalarr_platetar clear all clc;

f0=300;fs=1000;Ns=round(300/1000*fs);

%水平方位角cta0 、俯仰角pha0 、敌舷角为gama、横滚角为yeta

R=500;cta0=10;pha0=10;L1=200;L2=200;N1=50;N2=50;gama=85;yeta=70;r=200; M=16;T=1;N=round(T*fs);c=1500;lamda=c/f0; d=lamda/2; xarr=[0 d d*2 d*3 0 d d*2 d*3 0 d d*2 d*3 0 d d*2 d*3]; yarr=[0 0 0 0 d d d d d*2 d*2 d*2 d*2 d*3 d*3 d*3 d*3]; zarr=[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]; SNR=30;N0=round(2*R/c*fs);

alpha_sweep=-40:10:40;beta_sweep=-60:5:60;

alpha1=alpha_sweep'*ones(1,length(beta_sweep));alpha=reshape(alpha1,1,length(alpha_sweep)*length(beta_sweep));

beta1=ones(1,length(alpha_sweep))'*beta_sweep;beta=reshape(beta1,1,length(beta_sweep)*length(alpha_sweep));

%求v l t轴在xoyz坐标系中的单位向量 [v l t]=vlt(R,cta0,pha0,gama,yeta)

%确定矩形平面目标的多亮点个数及方位

[r,ct a,pha,x,y,z,rou1]=qiumian_tar(R,cta0,pha0,r,N1,N2,v,l,t) %发射信号

Emit_Sig=Emit_signal(f0,Ns,fs); %回波及阵列信号

[echo_sig,Array_Sig]=array_signal(Emit_Sig,cta,pha,c,f0,N0,N,Ns,x_arr,yarr,z_arr,SNR,rou1); plot3(x,y,z);

title('空间谱');x label('alpha(度)'),y label('beta(度)');z label('空间谱(dB)'); function EmitSig=Emit_signal(f0,Ns,fs) rect=ones(1,Ns);

EmitSig=rect.*exp(1i*2*pi*f0*(1:Ns)/fs);

40

兰州理工大学毕业设计

return

%--------------------------------- function

[echo_sig,Array_Sig]=array_signal(Emit_Sig,cta,pha,c,f0,N0,N,Ns,xarr,yarr,zarr,SNR,rou1) Ct a=cta*pi/180;pha=pha*pi/180; Nd=length(cta);s=zeros(Nd,N); for ii=1:Nd

s(ii,N0:N0+Ns-1)=rou1(ii)*Emit_Sig; end

echo_sig=sum(s,1);

A=exp(-1i*2*pi/c*f0*(x_arr'*(sin(cta).*cos(pha))+yarr'*sin(pha)+zarr'*(cos(cta).*cos(pha)))); Array_Sig=A*s;

varc=1/sqrt(2*10^(SNR/10));

Array_Sig=Array_Sig+varc*(randn(size(ArraySig))+1i*randn(size(ArraySig))); return

%---------------------------------

function [P,BeamSig]=beamout(ArraySig,f0,c,alpha,beta,xarr,yarr,zarr) alpha=alpha*pi/180;beta=beta*pi/180;

B=exp(-1i*2*pi/c*f0*(xarr'*(sin(alpha).*cos(beta))+yarr'*sin(beta)+zarr'*(cos(alpha).*cos(beta)))); Beam_Sig=B'*Array_Sig; P=mean(abs(Beam+Sig),2); P=10*log10(P/max(P)); return

%---------------------------------

function [r,cta,pha,x,y,z]=plate_tar(R,cta0,pha0,L1,L2,N1,N2,v,l,t) cta0=cta0*pi/180;pha0=pha0*pi/180;

x0=R*sin(cta0)*cos(pha0);y0=R*sin(pha0);z0=R*cos(cta0)*cos(pha0);

Lij=reshape((L1/2/N1*((1:N1)*2-1)-L1/2)'*ones(1,N2),1,N1*N2); Vij=reshape(ones(1,N1)'*(L2/2/N2*((1:N2)*2-1)-L2/2),1,N1*N2); Tij=zeros(1,N1*N2);

41

兰州理工大学毕业设计

x=zeros(1,N1*N2);y=zeros(1,N1*N2);z=zeros(1,N1*N2); p=[Lij;Vij;Tij]'*[l;v;t]+ones(N1*N2,1)*[x0 y0 z0]; x=p(:,1)'; y=p(:,2)'; z=p(:,3)';

r=sqrt(x.^2+y.^2+z.^2); cta=atan(x./z)*180/pi; pha=asin(y./r)*180/pi; return

function [v l t]=vlt(R,cta0,pha0,gama,yeta)

x0=R*sin(cta0*pi/180)*cos(pha0*pi/180);y0=R*sin(pha0*pi/180);z0=R*cos(cta0*pi/180)*cos(pha0*pi/180);

gama1=cos(gama*pi/180)*sqrt(x0^2+z0^2); if gama==0

xl=-x0/sqrt(x0^2+z0^2); yl=0;

zl=-z0/sqrt(x0^2+z0^2); elseif gama==180

xl=x0/sqrt(x0^2+z0^2); yl=0;

zl=z0/sqrt(x0^2+z0^2); else

xl =[ -(gama1 - (z0*(gama1*z0 + x0*(- gama1^2 + x0^2 + z0^2)^(1/2)))/(x0^2 + z0^2))/x0;... -(gama1 - (z0*(gama1*z0 - x0*(- gama1^2 + x0^2 + z0^2)^(1/2)))/(x0^2 + z0^2))/x0]; 你 zl = [-(gama1*z0 + x0*(- gama1^2 + x0^2 + z0^2)^(1/2))/(x0^2 + z0^2);... -(gama1*z0 - x0*(- gama1^2 + x0^2 + z0^2)^(1/2))/(x0^2 + z0^2)];

[C,I] = max(sin(gama*pi/180)*(xl*z0-zl*x0)); xl=xl(I); yl=0;

42

兰州理工大学毕业设计

zl=zl(I); end if yeta==0 xv=0; yv=1; zv=0;

elseif yeta==90||yeta==-90

warndlg('请修改参数,潜艇横滚角在-90~90度之间','潜艇侧翻','modal'); else

xT =[ x0;...

(x0*zl^2 - xl*z0*zl)/(xl^2 + zl^2)]; zT =[ z0; (xl^2*z0 - x0*xl*zl)/(xl^2 + zl^2)]; [C,I]=max(xl*(xT-x0)+zl*(zT-z0)); xT=xT(I); yT=y0; zT=zT(I);

yv=cos(yeta*pi/180);

xv =[ zl*(-(yv^2 - 1)/(xl^2 + zl^2))^(1/2);... -zl*(-(yv^2 - 1)/(xl^2 + zl^2))^(1/2)]; zv =[ -xl*(-(yv^2 - 1)/(xl^2 + zl^2))^(1/2);... xl*(-(yv^2 - 1)/(xl^2 + zl^2))^(1/2)]; cc=sin(yeta*pi/180)*(xl*zv-zl*xv); [C,I] = min(sin(yeta*pi/180)*(xl*zv-zl*xv)); X_v=xv(I); Y_v=yv(I); Z_v=zv(I); end

%先求T点坐标[xT.yT=y0,zT] v=[xv yv zv]; l=[xl yl zl]; %t=v x l (叉乘)

43