You are on page 1of 11

UNIVERSITY KUALA LUMPUR

British Malaysian Institute

SUBJECT:
SATELLITE COMMUNICATION 1
BTB45403

ASSIGNMENT 2
ORBITAL ASPECT OF SATELLITE COMMUNICATION
PREPARED BY:
FAKHRY BIN WAHID
(51263110286)
HANI ATIQAH BINTI HASSAN
(51263209072)
MUHAMAD IFTIKHAR BIN SHARI (51263110057)

GROUP:
L01-B01

SEMESTER:
S1 2012

LECTURER:
MAZHANIZA BINTI MAZUMIL

TASK 1 : Question 1
Details:
Latitude Earth Station ES = 3N
Longitude Earth Station ES =102E
Longitude Satellite Station SS = 90E
Question 1(a)
| |

[
[

[
[

]
]

| |

]
]

Question 1(b)

Vernal Equinox (J2000 Epoch) at 14 March 2011, 10:00 local time


[

(
(
(

Since there are 86 400 seconds in a day,

( )

)
(

(
)

)
(

(
)

( )
Hence,
(

Question 1(c)

Earth station position in Earth Centred Inertial Frame (ECI) coordinate.


ES = 3N
ES =102E

TASK 2 : Question 2
Decode_coeff_pointer
function [nyear,ncoef]=decode_coeff_pointer(np);
%USAGE: [nyear,ncoef]=decode_coeff_pointer(np);
%
% Decode igrf10syn gh pointer to extract year number and ncoef
% 1<=ncoef<=120 for nyear=1:19
% 1<=ncoef<=195 for nyear=20:24
%
% np=(nyear-1)*120+ncoef for np<=np1_max
% np=np1_max+(nyear-19)*195+ncoef; for nyear=20:24
%
% year=1995+(nyear-1)*5;
%
np1_max=2280;
if np<=np1_max
nyear=floor(np/120)+1;
ncoef=np-(nyear-1)*120;
if ncoef==0
ncoef=120;
nyear=nyear+1;
end
elseif np<=3255
np2=np-np1_max;
nyear=floor(np2/195)+1;
ncoef=np2-(nyear-1)*195;
if ncoef==0
ncoef=195;
nyear=nyear+1;
end
nyear=19+nyear;
else
error('np>3255!')
end
return

getIGRF11_Coefficients
function [gh,date]=GetIGRF11_Coefficients(varargin)
%Get IGRF11 Coefficients from Excel file
OutputMATfile=[];
if ~isempty(varargin)
OutputMATfile=varargin{1};
end
ff='igrf11coeffs.xls';
if exist(ff,'file')~=2
ff=pickfile('*.xls','Get igrf11 coefficients');
end
num = xlsread(ff);
num=num';
dd=num(3:end,1);
ndate=length(dd);
date=cell(1,ndate);
for n=1:ndate-1
date{n}=num2str(dd(n));
end
date{ndate}='2010-15';

num=num(3:end,2:end);
gh = NaN(1,3255);
for n=1:19
n1=(n-1)*120+1; n2=n*120;
gh(n1:n2)=num(n,1:120);
end
for n=20:24
n11=n2+(n-20)*195+1; n22=n2+(n-19)*195;
gh(n11:n22)=num(n,1:195);
end
if ~isempty(OutputMATfile)
save GHcoefficients gh
end
return

demo_igrf11syn
%Demo IGRF11
clear
global gh
if exist('GHcoefficients','file')==2
load('GHcoefficients')
else
gh=GetIGRF11_Coefficients(1);
end

fyear=2009.7;
alt=300;
z =zeros(size(length([-180:179]),length([-89:90])));
dip=z;
for long=-180:179
for lat=-89:90
xyzt=igrf11syn(fyear,alt,lat,long);
z(long+181,lat+90)=xyzt(3);
dip(long+181,lat+90)=atan2(xyzt(3),sqrt(xyzt(1).^2+xyzt(2).^2));
end
end
figure
imagesc([-180:179],[-89:90],z')
axis xy
colorbar
xlabel('Longitude--deg')
ylabel('Latitude--deg')
title('Bz--at alt=0 NTeslas')
zlon_deg=-180:179;
zlat_deg=-89:90;
figure
imagesc(zlon_deg,zlat_deg,z')
axis xy
hold on
%An equator location of interest
rtd=180/pi;
origin_llh =[-0.0453,-0.7716,48.2000];
hold on
plot(origin_llh(2)*rtd, origin_llh(1)*rtd,'mp')
colorbar

title('Bz--at alt=0 NTeslas')


xlabel('Longitude--deg')
ylabel('Latitude--deg')
LINESPEC='w';
hold on
[cs,h]=contour(zlon_deg,zlat_deg,z',20,LINESPEC);
save Bz300 zlon_deg zlat_deg z dip

igrf11syn
function
[B]=igrf11syn(fyears,alt,nlat,elong)
%****************************************************
global gh
%%%%%%%%%%%Variable Changes:
isv=0;
itype=1;
colat=90-nlat;
%****************************************************
cl=NaN*ones(1,13);
sl=NaN*ones(1,13);
x
= 0;
y
= 0;
z
= 0;
if fyears < 1900 || fyears > 2020
error('Date >=1900 & <=2020')
end
if fyears > 2015
warning('on',' This version of IGRF intended for use to only to 2015 \n')
end
if fyears <2010
t
= 0.2*(fyears - 1900.0);
ll
= floor(t);
one
= ll;
t
= t - one;
if fyears<1995.0
nmx
= 10;
nc
= nmx*(nmx+2);
ll
= nc*ll;
kmx
= (nmx+1)*(nmx+2)/2;
else %1995<=fyears<2010
nmx
= 13;
nc
= nmx*(nmx+2);
ll
= floor(0.2*(fyears - 1995));
ll
= 120*19 + nc*ll;
kmx
= (nmx+1)*(nmx+2)/2;
end
tc = 1-t;
if isv==1
tc = -0.2;
t = 0.2;
end
else %>= 2010
t=fyears-2010;
tc =1;
if isv==1
t=1;
tc=0;
end
ll
= 2865;
nmx
= 13;

nc
kmx

= nmx*(nmx+2);
= (nmx+1)*(nmx+2)/2;

end
r
one
ct
st
one
cl(1)
sl(1)
cd
sd
l
m
n

=
=
=
=
=
=
=
=
=
=
=
=

alt;
colat*0.017453292;
cos(one);
sin(one);
elong*0.017453292;
cos(one);
sin(one);
1.0;
0.0;
1;
1;
0;

if itype==1 %Skip if itype==2


%
Conversion from geodetic to geocentric coordinates (using the WGS84
spheroid)
a2
= 40680631.6;
b2
= 40408296.0;
one
= a2*st*st;
two
= b2*ct*ct;
three = one + two;
rho
= sqrt(three);
r
= sqrt(alt*(alt + 2.0*rho) + (a2*one + b2*two)/three);
cd
= (alt + rho)/r;
sd
= (a2 - b2)/rho*ct*st/r;
one
= ct;
ct
= ct*cd - st*sd;
st
= st*cd + one*sd;
end
ratio = 6371.2/r;
rr
= ratio*ratio;
p=NaN*ones(1,kmx);
q=NaN*ones(1,kmx);
%
computation of Schmidt quasi-normal coefficients p and x(=q)
p(1) = 1.0;
p(3) = st;
q(1) = 0.0;
q(3) = ct;
for k=2:kmx
if n<m
m
= 0;
n
= n + 1;
rr
= rr*ratio;
fn
= n;
gn
= n - 1;
end
fm
= m;
if m==n && k~=3
one
= sqrt(1.0 - 0.5/fm);
j
= k - n - 1;
p(k) = one*st*p(j);
q(k) = one*(st*q(j) + ct*p(j));
cl(m) = cl(m-1)*cl(1) - sl(m-1)*sl(1);
sl(m) = sl(m-1)*cl(1) + cl(m-1)*sl(1);
end
if m~=n && k~=3

gmm
one
two
three
i
j
p(k)
q(k)

=
=
=
=
=
=
=

= m*m;
sqrt(fn*fn - gmm);
sqrt(gn*gn - gmm)/one;
(fn + gn)/one;
k - n;
i - n + 1;
three*ct*p(i) - two*p(j);
three*(ct*q(i) - st*p(i)) - two*q(j);

end
%Synthesis of x, y, and z
lm
= ll + l;
one
= (tc*gh(lm) + t*gh(lm+nc))*rr;
%DEBUG
%[nyear,ncoef]=decode_coeff_pointer(lm);
%fprintf('nyear %6i %5i %5i \n',lm,nyear,ncoef);
if m~=0
two
= (tc*gh(lm+1) + t*gh(lm+nc+1))*rr;
three = one*cl(m) + two*sl(m);
x
= x + three*q(k);
z
= z - (fn + 1.0)*three*p(k);
if st~=0
y
= y + (one*sl(m) - two*cl(m))*fm*p(k)/st;
else
y
= y + (one*sl(m) - two*cl(m))*q(k)*ct;
end
l
= l + 2;
else
x
= x + one*q(k);
z
= z - (fn + 1.0)*one*p(k);
l
= l + 1;
end
m
= m + 1;
end %k loop
%
conversion to coordinate system specified by itype
one
= x;
x
= x*cd +
z*sd;
z
= z*cd - one*sd;
B
=[x; y; z];
%f
= sqrt(x*x + y*y + z*z);
return

OUTPUT

You might also like