Professional Documents
Culture Documents
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)
(
(
(
( )
)
(
(
)
)
(
(
)
( )
Hence,
(
Question 1(c)
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
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;
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