卫星通信实验报告1.docx

上传人:b****4 文档编号:6693906 上传时间:2023-05-10 格式:DOCX 页数:21 大小:568.48KB
下载 相关 举报
卫星通信实验报告1.docx_第1页
第1页 / 共21页
卫星通信实验报告1.docx_第2页
第2页 / 共21页
卫星通信实验报告1.docx_第3页
第3页 / 共21页
卫星通信实验报告1.docx_第4页
第4页 / 共21页
卫星通信实验报告1.docx_第5页
第5页 / 共21页
卫星通信实验报告1.docx_第6页
第6页 / 共21页
卫星通信实验报告1.docx_第7页
第7页 / 共21页
卫星通信实验报告1.docx_第8页
第8页 / 共21页
卫星通信实验报告1.docx_第9页
第9页 / 共21页
卫星通信实验报告1.docx_第10页
第10页 / 共21页
卫星通信实验报告1.docx_第11页
第11页 / 共21页
卫星通信实验报告1.docx_第12页
第12页 / 共21页
卫星通信实验报告1.docx_第13页
第13页 / 共21页
卫星通信实验报告1.docx_第14页
第14页 / 共21页
卫星通信实验报告1.docx_第15页
第15页 / 共21页
卫星通信实验报告1.docx_第16页
第16页 / 共21页
卫星通信实验报告1.docx_第17页
第17页 / 共21页
卫星通信实验报告1.docx_第18页
第18页 / 共21页
卫星通信实验报告1.docx_第19页
第19页 / 共21页
卫星通信实验报告1.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

卫星通信实验报告1.docx

《卫星通信实验报告1.docx》由会员分享,可在线阅读,更多相关《卫星通信实验报告1.docx(21页珍藏版)》请在冰点文库上搜索。

卫星通信实验报告1.docx

卫星通信实验报告1

南京信息工程大学

 

卫星通信实验报告

 

学院电子与信息工程学院

专业通信工程

年级2011级

班级1班

学号

姓名

 

实验一卫星与轨道2

一、实验原理2

二、实验器材2

三、实验内容2

四、实验过程2

实验二QPSK调制解调13

一、实验原理13

二、实验器材13

三、实验内容13

四、实验过程13

五、总结14

实验三GMSK调制15

一、实验原理15

二、实验器材15

三、实验内容15

四、实验过程15

五、总结17

 

实验一卫星与轨道

一、实验原理

1、卫星只要获得这一水平方向的速度后,不需要再加动力就可以环绕地球[1]飞行。

这时卫星的飞行轨迹叫卫星轨道。

卫星轨道参数是用来描述在太空中卫星运行的位置、形状和取向的各种参数。

同义词:

卫星轨道根数。

(1)轨道平面的倾角i:

赤道平面与卫星轨道平面间的夹角,具体计算是在卫星轨道升段时由赤道平面反时针旋转到轨道平面的夹角。

(2)轨道的半长轴a

(3)轨道的偏心率e:

焦距与轨道半长轴之比。

(4)升节点位置

指从春分点到地心的连线与从升节点到地心的连线之间的夹角。

(5)近地点幅角

指从升节点到地心的连线与从卫星近地点到地心的连线之间的夹角。

从升节点顺轨道运行方向度量,

(6)卫星初始时刻的位置

是卫星在初始时刻到到地心的连线与升节点到地心的连线之间的张角。

其中

是初始时刻卫星在轨道内的幅角,从升节点位置开始计算。

2、利用MATLAB可以把卫星的轨道参数直观的表现出来

二、实验器材

电脑、MATLAB软件等。

三、实验内容

用MATLAB仿真卫星轨道

四、实验过程

1、代码:

function[]=orbits(action);

%ThisfunctionplotsanEarthorbitbasedon

%thefollowingorbtialelements:

%perigee=altitudeatperigee(miles)

%apogee=altitudeatapogee(miles)

%i=inclinationoforbitalplanetoequatorialplane(degrees)

%Omega=argumentofascendingnode(degrees)

%omega=argumentofperiapsis(degrees)

%

%WrittenwithMatlab5.3by:

%MichaelHanchak(mhanchakATyahooDOTcom)

%Dayton,Ohio

%August9,2001

%

%ReferenceText:

%FundamentalsofAstrodynamics

%PublishedbyDoverPress,1971

%

%Usersofthisfunctionassumeallriskinusingthecalculations

%containedwithin.Thisfunctionisnottobedistributedwithout

%theauthor'sfullconsent.

%

%Forbestresults,requires"coast.mat"and"topo.mat"

%standardswitchyardprogramminglogic

ifnargin==0;

action='build';

end

%Earthradius(miles)

rad=6378136/1000/1.6;

colors=[.6.7.8];

colors2='k';

switchaction

%buildGUI

case'build'

strings={'w','W','i','Apogee','Perigee'};

tags={'o','O','i','alt_a','alt_p'};

values={'45','45','30','345','115'};

strings2={'PlotOrbit','ClearOrbits','CenterEarth',...

'ZoomAll','Flyby','Help','ToggleEarth','Quit'};

callbacks={'orbits(''plot'')','orbits(''clear'')',...

'camva(15);view(120,30);camlookat(findobj(''tag'',''earth''));',...

'camva(15);camlookat','orbits(''flyby'')','helporbits',...

'orbits(''earth'')','close(gcf)'};

ifisempty(findobj('tag','orbits'))

www=figure('tag','orbits');

else

www=findobj('tag','orbits');

figure(www);

clf

end

set(www,'position',[2575600500],'color',colors2);

forkk=1:

length(strings),

ppp=uicontrol('Units','pixels','Position',[2(20*(kk-1)+16)5020],...

'String',strings{kk},'style','text','backgroundcolor',colors2,...

'foregroundcolor','w','fontsize',9);

uicontrol('Units','pixels','Position',[55(20*(kk-1)+16)5020],...

'tag',tags{kk},'style','edit','string',values{kk},'backgroundcolor',[111]);

ifkk<=2

set(ppp,'fontname','symbol','fontsize',12);

end

end

forkk=1:

length(strings2),

uicontrol('Units','pixels','Position',[10(25*(kk-1)+150)7022],...

'string',strings2{kk},'callback',callbacks{kk},'backgroundcolor',colors);

end

uicontrol('Units','pixels','Position',[1037010080],...

'string',['LeftclickanddragEarthfordynamicviewing.',...

'Rightclickforzooming.Double-Clicktocenter.'],...

'style','text','backgroundcolor',colors2,'fontsize',8,...

'HorizontalAlignment','left','foregroundcolor','w');

axes('position',[.2.05.75.9],'units','normalized')

axisequal

axisoff

axisvis3d

holdon

%Plotreferenceframeaxes

h1=plot([0rad+500],[00],'r-');

h2=plot([00],[0rad+500],'g-');

h3=plot3([00],[00],[0rad+500],'color',[00.8]);

set([h1h2h3],'linewidth',4);

view(120,30);

camva(15);

rot3d;

data.simple=1;

data.handles=[];

data.earthhandle=[];

set(gcf,'userdata',data);

orbits('earth')%callroutinetodrawearth

camlookat(findobj('tag','earth'));

case'earth'

%determinelevelofgraphics

data=get(gcf,'userdata');

simple=data.simple;

delete(data.earthhandle);

data.earthhandle=[];

%Plottheearth(texturemaporsimple)

ifsimple==0&~isempty(which('topo.mat'))

[X,Y,Z]=sphere(50);

loadtopo

topo=[topo(:

181:

360)topo(:

1:

180)];

mat.dull.AmbientStrength=0.4;

mat.dull.DiffuseStrength=.6;

mat.dull.SpecularColorReflectance=.5;

mat.dull.backfacelighting='reverselit';

mat.dull.SpecularExponent=20;

mat.dull.SpecularStrength=.8;

data.earthhandle

(1)=surface(rad*X,rad*Y,rad*Z,...

mat.dull,...

'FaceColor','texturemap',...

'EdgeColor','none',...

'FaceLighting','phong',...

'Cdata',topo,'tag','earth');

colormap(topomap1)

data.earthhandle

(2)=light('position',rad*[101010]);

%light('position',rad*[-10-10-10],'color',[.6.2.2]);

%set(gcf,'renderer','opengl');

data.simple=1;

else

[X,Y,Z]=sphere(24);

data.earthhandle

(1)=mesh(rad*X,rad*Y,rad*Z);

%set(data.earthhandle,'tag','earth','facecolor',[.6.7.9],'edgecolor',[111]);

set(data.earthhandle

(1),'tag','earth','facecolor',[001],'edgecolor',[.3.31]);

if~isempty(which('coast.mat'))

loadcoast

ncst=ncst*pi/180;

all=zeros(length(ncst),3);

forj=1:

length(ncst)

theta=ncst(j,1);

phi=ncst(j,2);

all(j,:

)=[cos(theta)*cos(phi),...

sin(theta)*cos(phi),...

-sin(phi)];

end

data.earthhandle

(2)=plot3(rad*all(:

1),rad*all(:

2),-rad*all(:

3));

set(data.earthhandle

(2),'color',[0.90]);

end

data.simple=0;

end

set(gcf,'userdata',data);

%plotorbits

case'plot'

deg2rad=pi/180;

data=get(gcf,'userdata');

handles=data.handles;

%getorbitalelementsfromGUI

alt_p=str2num(get(findobj('tag','alt_p'),'string'));

alt_a=str2num(get(findobj('tag','alt_a'),'string'));

inc=str2num(get(findobj('tag','i'),'string'));

Omega=str2num(get(findobj('tag','O'),'string'));

omega=str2num(get(findobj('tag','o'),'string'));

%checkforcorrectnessofinputdata

ifalt_p>alt_a

error1=errordlg('Perigeemustbesmallerthanapogee');

waitfor(error1);

else

%Orbitalelements

a=(alt_p+alt_a+2*rad)/2;

c=a-alt_p-rad;

e=c/a;

p=a*(1-e^2);

th=linspace(0,2*pi,200);

r=p./(1+e*cos(th));

xx=r.*cos(th);

yy=r.*sin(th);

Omega=Omega*deg2rad;

inc=inc*deg2rad;

omega=omega*deg2rad;

%CoordinateTransformations

ZZ=[cos(Omega)-sin(Omega)0;

sin(Omega)cos(Omega)0;

001];

XX=[100;

0cos(inc)-sin(inc);

0sin(inc)cos(inc)];

ZZ2=[cos(omega)-sin(omega)0;

sin(omega)cos(omega)0;

001];

%actualplot

vec=ZZ*XX*ZZ2*[xx;yy;zeros(1,length(xx))];

h1=plot3(vec(1,:

),vec(2,:

),vec(3,:

));

set([h1],'linewidth',1,'color',[111]);

%lineofascendingnode

vec1=ZZ*[rad+600;0;0];

h2=plot([0vec1

(1)],[0vec1

(2)],'r-');

%lineofperiapsis

vec2=ZZ*XX*ZZ2*[rad+600;0;0];

h3=plot3([0vec2

(1)],[0vec2

(2)],[0vec2(3)],'color',...

[110]);

%lineofinclination

vec3=ZZ*XX*[0;0;rad+600];

h4=plot3([0vec3

(1)],[0vec3

(2)],[0vec3(3)],...

'color',[00.8]);

set([h2h3h4],'linewidth',2);

data.handles=[data.handlesh1h2h3h4];

set(gcf,'userdata',data);

%camlookat;

end

case'clear'

data=get(gcf,'userdata');

handles=data.handles;

forrr=1:

length(handles)

ifishandle(handles(rr))

delete(handles(rr));

end

end

data.handles=[];

set(gcf,'userdata',data);

case'flyby'

camlookat(findobj('tag','earth'));

camva(15);

camup([001]);

forx=-300000:

1000:

60000

campos([x,30000,30000])

drawnow

end

%herearetherecursivecallbacksfortherotationoftheaxes

case'rot'

rot3d('rot');

case'down'

rot3d('down');

case'up'

rot3d('up');

case'zoom'

rot3d('zoom');

end

%thisfunctionbelowallowsfordynamics"clickanddrag"

%rotationoftheplot.

functionrot3d(huh)

ifnargin<1

set(gcf,'WindowButtonDownFcn','orbits(''down'')');

set(gcf,'WindowButtonUpFcn','orbits(''up'')');

set(gcf,'WindowButtonMotionFcn','');

else

switchhuh

case'down'

ifstrcmp(get(gcf,'SelectionType'),'normal')

set(gcf,'WindowButtonMotionFcn','orbits(''rot'')');

elseifstrcmp(get(gcf,'SelectionType'),'alt')

set(gcf,'WindowButtonMotionFcn','orbits(''zoom'')');

elseifstrcmp(get(gcf,'SelectionType'),'open')%centerpoint

temp1=get(gca,'currentpoint');

temp1=(temp1(1,:

)+temp1(2,:

))/2;%averagepoints

%newvec=temp1-campos

%oldvec=camtarget-campos

%dir=cross(oldvec,newvec)

%ang=atan2(norm(dir),dot(oldvec,newvec))+2

%campan(-ang,0,'data',dir);

camtarget([temp1]);

end

rdata.oldpt=get(0,'PointerLocation');

set(gca,'userdata',rdata);

case'up'

set(gcf,'WindowButtonMotionFcn','');

case'rot'

rdata=get(gca,'userdata');

oldpt=rdata.oldpt;

newpt=get(0,'PointerLocation');

dx=(newpt

(1)-oldpt

(1))*.5;

dy=(newpt

(2)-oldpt

(2))*.5;

%direction=[001];

%coordsys='camera';

%pos=get(gca,'cameraposition');

%targ=get(gca,'cameratarget');

%dar=get(gca,'dataaspectratio');

%up=get(gca,'cameraupvector');

%[newPosnewUp]=camrotate(pos,targ,dar,up,-dx,-dy,coordsys,direction);

%set(gca,'cameraposition',newPos,'cameraupvector',newUp);

camorbit(gca,-dx,-dy,'camera');

rdata.oldpt=newpt;

set(gca,'userdata',rdata);

case'zoom'

rdata=get(gca,'userdata');

oldpt=rdata.oldpt;

newpt=get(0,'PointerLocation');

dy=(newpt

(2)-oldpt

(2))/abs(oldpt

(2));

camzoom(gca,1+dy)

rdata.oldpt=newpt;

set(gca,'userdata',rdata)

end

end

2、结果图:

Perigee近地点Apogee远地点i轨道平面的倾角

升节点位置

近地点幅角

改变i、

的值可以得到不同的卫星轨道

五、总结

卫星轨道参数是用来描述在太空中卫星运行的位置、形状和取向的各种参数,可以在MATLAB图中形象的表示出来。

实验二QPSK调制解调

一、实验原理

四相相移键控信号简称“QPSK”。

它分为绝对相移和相对相移两种。

由于绝对相移方式存在相位模糊问题,所以在实际中主要采用相对移相方式DQPSK。

它具有一系列独特的优点,目前已经广泛应用于无线通信中,成为现代通信中一种十分重要的调制解调方式。

在数字信号的调制方式中QPSK四相移键控是目前最常用的一种卫星数字信号调制方式。

二、实验器材

电脑、MATLAB软件等。

三、实验内容

用MATLAB

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2