MLDesign Technologies, Inc.

Mainnavigation

Subnavigation

BORDER

 
 
 

Pagecontent

Link Analysis with the Irridium System

The se plots and map come from an end-to-end link analysis for an Iridium system satellite-based link between an Francisco and Berlin.

%function demoLink % % demoLink % % This demo simulates the Iridium system. During the simulation % the routing path between Berlin and SanFrancisco is calculated. % For uplink, crosslink, and downlink channel Eb/N0, delay, C/N, % and the biterror rate are calculated. In the next step Eb/N0 % delay, C/N, and the biterror rate for the whole link is % computed and shown. % 1; % Not a function file, since the first command is not the function % keyword % function [EbN0, DELAY, BEP, CN, CN0] = UpDownChannel(DIST, ELEV, ALT,LAT) % DIST [km] Distance vector from groundstation to satellite % ELEV [deg] Elevation angle vector from groundstation to satellite % ALT [km] Altitude of groundstation over NN % LAT [deg] Latitude of groundstation (deg) % % EbN0 [dB] Bit energy Eb/N0 (dB) % DELAY [sec] Delays % BEP [] Bit error rate % CN [dB] Carrier-to-noise ratio % CN0 [dB] Carrier-to-noise density ratio (dB) % user setting variables for downlink F = 1.62e9; % Carrier Frequency [Hz] Pol = 45; % Polarization 45-circ., 0-horiz., 90-vert. B = 75e3; % Channel Bandwidth [Hz] Rb = 50e3; % Data bit rate [bps] Eta = 0.55; % Antenna efficiency D = 1; % Antenna diameter [m] Pt = 10; % Transmitter Power [W] Lp = 3; % Pointing Loss [dB] T = 18; % Temperature [deg C] Rho = 5; % Water vapour [g/m^3] R001 = 31; % Rain rate 0.01 % [mm/h] ISI = 0.5; % Intersymbol Interference Loss [dB] Lm = 3; % Link Margin [dB] Fomr = -24.8; % Figure of Merit [dB] Coder = 4; % ConvolutionCode4 M = 0; % ASK modulation Gt = G_antenna(F, D, Eta); % Antenna gain maximum EIRP = dB(Pt) + Gt; % EIRP Lg = L_gas (ALT, ELEV, F, Rho, T); % Gas Loss Lr = L_rain (ALT, ELEV, F, LAT, R001); % Rain Loss Lfs = L_fs (DIST, F); % Free space Loss L = Lfs + Lg + Lr + Lp + ISI; % Overall Losses Gc = G_coding (Coder); DELAY = Delay (DIST, Lr); BEP = BER (EbN0, M); [EbN0, CN0, CN] = LinkBudget(EIRP, L, Lm, Gc, Fomr, Rb, B); % inverse dB EbN0A = exp10(EbN0/10); endfunction function [EbN0, DELAY, BEP, CN, CN0] = CrossLinkChannel(DIST) % DIST [km] Distance vector from groundstation to satellite % ELEV [deg] Elevation angle vector from groundstation to satellite % ALT [km] Altitude of groundstation over NN % LAT [deg] Latitude of groundstation (deg) % % EbN0 [dB] Bit energy Eb/N0 (dB) % DELAY [sec] Delays % BEP [] Bit error rate % CN [dB] Carrier-to-noise ratio % CN0 [dB] Carrier-to-noise density ratio (dB) % user setting variables for downlink F = 1.62e9; % Carrier Frequency [Hz] B = 10e6; % Channel Bandwidth [Hz] Rb = 12e6; % Data bit rate [bps] Eta = 0.55; % Antenna efficiency D = 2; % Antenna diameter [m] Pt = 30; % Transmitter Power [W] Lp = 3; % Pointing Loss [dB] ISI = 0.5; % Intersymbol Interference Loss [dB] Lm = 3; % Link Margin [dB] Fomr = -10; % Figure of Merit [dB] Coder = 4; % ConvolutionCode4 M = 17; % QPSK modulation Gt = G_antenna(F, D, Eta); % Antenna gain maximum EIRP = dB(Pt) + Gt; % EIRP Lfs = L_fs (DIST, F); % Free space Loss L = Lfs + Lp + ISI; % Overall Losses Gc = G_coding (Coder); DELAY = Delay (DIST); BEP = BER (EbN0, M); [EbN0, CN0, CN] = LinkBudget(EIRP, L, Lm, Gc, Fomr, Rb, B); EbN0A = exp10(EbN0/10); % inverse dB endfunction loadreplaceAll("./IR66.data"); % initialize values for Iridium Node1 = getNodeNumber('SanFrancisco')+1; Node2 = getNodeNumber('Berlin')+1; SatsPerOrbit=11; % other values [lat(1), alt(1)] = getNodeParameter (Node1-1, P_lat, P_alt); [lat(2), alt(2)] = getNodeParameter (Node2-1, P_lat, P_alt); % set start time setSimEpoch(1992,7,30,10,30,0); % time steps t=0:10:600; for i=1:max(size(t)) tnow=t(i); setSimTime(tnow); [d,r,a,e,v] = RelPosition (); D = RoutingCorrection (d,v,SatsPerOrbit,NumberOfStations+NumberOfMobiles); Route= RoutingDijkstra (D,Node1,Node2); UsedNodes=prod(size(Route)); % uplink [EbN0(1), Delay(1),Ber(1),CN(1),CN0(1)] =UpDownChannel(d(Node1, Route(2)), e(Node1, Route(2)), alt(Node1), lat(Node1)); % crosslink for i2 = 2:(UsedNodes-2) distance(i2)=d(Route(i2),Route(i2+1)); [EbN0(i2),Delay(i2),Ber(i2),CN(i2),CN0(i2)] =CrossLinkChannel(distance(i2)); endfor % downlink i2 = UsedNodes-1; [EbN0(i2),Delay(i2),Ber(i2),CN(i2),CN0(i2)] =UpDownChannel(d(Node2, Route(i2)), e(Node2, Route(i2)), alt(Node2), lat(Node2)); % all links Delay_g(i) = 0; for i2 = 1:(UsedNodes-1) if (i2==1) Delay_g(i) = Delay(i2); CN_g(i) = CN(i2); Ber_g(i)=Ber(i2); else Delay_g(i)=Delay_g(i)+Delay(i2); zw1 = exp10(CN_g(i)/10.0); zw2 = exp10(CN(i2) /10.0); CN_g(i)=10*log10(1/((1/zw1) + (1/zw2))); Ber_g(i)=Ber_g(i)*(1-Ber(i2)) + (1-Ber_g(i))*Ber(i2); endif endfor EbN0_g(i)=CN_g(i)-10.0*log(12.0/10.0); endfor erase title('SanFrancisco to Berlin'); window('221'); plot(t,EbN0_g,'grid','red'); xlabel('t [sec]'); ylabel('Eb/N0 [dB]'); window('222'); plot(t,Delay_g,'grid','red'); xlabel('t [sec]'); ylabel('Delay [sec]'); window('223') plot(t,CN_g,'grid','green'); xlabel('t [sec]'); ylabel('C/N [dB]'); window('224') plot(t,log10(Ber_g),'grid','green'); xlabel('t [sec]'); ylabel('log10(BER)'); %demos %endfunction