Satellite beam determination

A user terminal and a method of using the user terminal disclosed. The method may comprise: storing, at a user terminal (UT), a dataset that comprises a plurality of elements, wherein each of the plurality of elements is associated with a unique predetermined terrestrial location; using the dataset, determining an element (Ek) from among the plurality of elements based on a proximity of the UT to the respective unique, predetermined terrestrial location of the element (Ek); and then determining one of the plurality of satellite beams with which to utilize satellite communication.

BACKGROUND

In satellite systems, a base station may instruct a user terminal to connect. For example, the base station may determine a satellite beam with which the user terminal should communicate. Thereafter, the base station—via a satellite—may send an instruction to the user terminal instructing it to connect using the determined beam. Determining—at the base station—which beam should be used by the user terminal may be suitable when beam shapes are circular.

DETAILED DESCRIPTION

A satellite communication system is disclosed. Multibeam satellite systems may have one or more base stations, a plurality of beams, and a plurality of terminals distributed among the beams. Each terminal may gain access to the satellite by using its latitude and longitude and having a set of information defining which beam the terminal's latitude and longitude is in. In some cases, the terminal's location could reside in more than one beam. The base station may determine which beam the terminal should use and instruct it to access the satellite using the appropriate beam. Both terminal and base station need to know which beam the terminal is assigned to so that they may communicated via the satellite. According to an example, the satellite communication system may comprise a user terminal. Methods of using the user terminal are disclosed herein. According to one non-limiting example, a method of determining one of a plurality of satellite beams is disclosed. The method may comprise: storing, at a user terminal (UT), a dataset that comprises a plurality of elements, wherein each of the plurality of elements is associated with a unique predetermined terrestrial location; using the dataset, determining an element (Ek) from among the plurality of elements based on a proximity of the UT to the respective unique, predetermined terrestrial location of the element (Ek); and then determining one of the plurality of satellite beams with which to utilize satellite communication.

According to the method example set forth above and/or according to any of the other examples set forth above, each of the plurality of elements comprises: an element index, location identifiers of a respective unique and predetermined terrestrial location relative to a satellite, and one or more tuples, wherein each of the one or more tuples comprise: a beam identifier associated with one of the plurality of satellite beams and at least one of a signal quality parameter (SQF) or an availability parameter (Avail) of the respective one of the plurality of satellite beams.

According to the method example set forth above and/or according to any of the other examples set forth above, determining the one of the plurality of satellite beams further comprises using the corresponding one or more tuples of the element (Ek).

According to the method example set forth above and/or according to any of the other examples set forth above, using the dataset comprises using the respective location identifiers of the plurality of elements to determine the element (Ek).

According to another non-limiting example, a method of determining one of a plurality of satellite beams is disclosed. The method may comprise: storing, at a user terminal (UT), a dataset that comprises a plurality of elements, wherein each of the plurality of elements is associated with a unique predetermined terrestrial location, wherein each of the plurality of elements comprises: an element index, location identifiers of a respective unique and predetermined terrestrial location relative to a first satellite, and one or more tuples, wherein each of the one or more tuples comprise: a beam identifier associated with one of the plurality of satellite beams and at least one of a signal quality parameter (SQF) or an availability parameter (Avail) of the respective one of the plurality of satellite beams; using the respective location identifiers of the plurality of elements, determining an element (Ek) from among the plurality of elements based on a proximity of the UT to the respective unique, predetermined terrestrial location of the element (Ek); and using the corresponding one or more tuples of the element (Ek), determining one of the plurality of satellite beams with which to utilize satellite communication.

According to the method example set forth above and/or according to any of the other examples set forth above, further comprising establishing a satellite connection with the determined one of the plurality of satellite beams.

According to the method example set forth above and/or according to any of the other examples set forth above, for each of the plurality of elements, the respective location identifiers comprise a first location parameter and a second location parameter, wherein—for each respective element—the corresponding first and second location parameters define a unique predetermined terrestrial location relative to a celestial position of the first satellite.

According to the method example set forth above and/or according to any of the other examples set forth above, at least some of the one or more tuples comprise both the signal quality parameter and the availability parameter.

According to the method example set forth above and/or according to any of the other examples set forth above, at least some of the one or more tuples further comprise at least one hardware parameter, wherein the at least one hardware parameter is used to determine the one of the plurality of satellite beams with which to utilize satellite communication.

According to the method example set forth above and/or according to any of the other examples set forth above, at least one hardware parameter comprises an antenna size parameter and a signal power parameter for the UT to establish and utilize satellite communication.

According to the method example set forth above and/or according to any of the other examples set forth above, at least some of the plurality of elements comprises multiple tuples.

According to the method example set forth above and/or according to any of the other examples set forth above, the respective location identifiers of at least some of the plurality of elements are indicia of a first boundary of a first footprint of the first satellite beam, and wherein the respective location identifiers of at least some other of the plurality of elements are indicia of a second boundary of a second footprint of a second satellite beam.

According to the method example set forth above and/or according to any of the other examples set forth above, the respective location identifiers of at least some of the plurality of elements are located outside of the first and second boundaries.

According to the method example set forth above and/or according to any of the other examples set forth above, when the location identifiers of the respective element are located outside of the first and second boundaries, then the beam identifier of the respective element is a negative value, the signal quality parameter being less than a first predetermined threshold, the availability parameter being less than a second predetermined threshold, or a combination thereof.

According to the method example set forth above and/or according to any of the other examples set forth above, the first boundary, the second boundary, or both have an irregular shape, wherein irregular shape refers a noncircular, nonelliptical, or nonregular shape, wherein irregular shape refers to an asymmetrical area having at least one portion of a perimeter that does not mirror another region of the perimeter and that is not uniform with respect to any other portion of the perimeter.

According to the method example set forth above and/or according to any of the other examples set forth above, the respective location identifiers of the plurality of elements define a grid of equidistantly-spaced locations within the first satellite beam.

According to the method example set forth above and/or according to any of the other examples set forth above, determining the element (Ek) using the respective location identifiers further comprises: determining a latitude value and a longitude value of the UT; converting the latitude and longitude values of the UT into an azimuth value and an elevation value that correspond with a celestial position of the first satellite; and calculating a distance value using the azimuth and elevation values (of the UT) and the location identifiers of the element (Ek).

According to the method example set forth above and/or according to any of the other examples set forth above, determining the relative position comprises: calculating a plurality of distance values between the UT and at least some of the plurality of evaluation points; and then, determining which of the plurality of distance values is a minimum.

According to the method example set forth above and/or according to any of the other examples set forth above, determining the element (Ek) using the respective location identifiers further comprises: determining a latitude value and a longitude value of the UT; converting the latitude and longitude values of the UT into an azimuth value and an elevation value that correspond with a celestial position of the first satellite; rounding the azimuth and elevation values according to a predetermined resolution; and then comparing the rounded azimuth and elevation values to each of the respective location identifiers of the plurality of elements.

According to another non-limiting example, a computer is disclosed that comprises one or more processors; and memory communicatively coupled to the one or more processors, wherein the memory stores instructions executable by the one or more processors, wherein the instructions comprise to: store a dataset that comprises a plurality of elements, wherein each of the plurality of elements is associated with a unique predetermined terrestrial location; using the dataset, determine an element (Ek) from among the plurality of elements based on a proximity of the UT to the respective unique, predetermined terrestrial location of the element (Ek); and then select one of the plurality of satellite beams with which to utilize satellite communication, wherein the computer is a user terminal, a satellite base station, or a land-based server.

According to the at least one example set forth above, a computing device comprising at least one processor and memory is disclosed that is programmed to execute any combination of the examples of the method(s) set forth above.

According to the at least one example, a computer program product is disclosed that includes a computer readable medium that stores instructions which are executable by a computer processor, wherein the instructions of the computer program product include any combination of the examples of the method(s) set forth above and/or any combination of the instructions executable by the one or more processors, as set forth above and herein.

Modern satellite systems may concentrate signal strength in some geographic regions more than others. For example, it may be desirable to narrow a width of a satellite beam (e.g., or simply a ‘beam’ herein) in urban areas or in geographic areas having higher throughput demands (e.g., a higher concentration of customers). Further, it may be desirable to alter signal strength concentrations from time-to-time in order to balance traffic loads. Concentrating or otherwise varying these beam characteristics can yield satellite beams having irregular shapes. For example, a typical shape of a beam may be circular or elliptical; however, an irregularly-shaped satellite beam may be noncircular, nonelliptical, or nonregular shape. In at least one example, an irregular shape may be defined as an asymmetrical area having at least one portion of a perimeter that does not mirror another region of the perimeter and that is not uniform with respect to any other portion of the perimeter. Changing the beam characteristics (and consequently the shape of the beam) presents challenges with regard to connecting user terminals. Below, a system is described which enables the user terminal to make the selection.

With reference to the figures, wherein like numerals indicate like parts throughout the several views, a satellite communication system10is described that permits a user terminal (UT)12to determine and select one of a plurality of satellite beams (or simply ‘beams’) with which to connect and use. The proposed system utilizes a plurality of user terminals that are each programmed with beam selection instructions (only one UT12is shown for purposes of illustration). These instructions include storing and using a beam selection dataset comprising a plurality of elements—each element being associated with one of a plurality of unique predetermined terrestrial locations. The UT12may be programmed to determine which, if any, of the unique predetermined terrestrial locations it is nearest. And based on this determination and other factors, the UT12may select a beam for connection.

Satellite communication system10first will be described; after which, a process of an example UT12using the system10to select a beam will be described in detail. System10may comprise a plurality of UTs12(only one is shown), one or more satellites14,15(only two are shown), and one or more satellite base stations16(only one is shown).

User terminal (UT)12may comprise, among other things, a computer20, a transceiver22that facilitates satellite communication (e.g., satellite uplinks and satellite downlinks), and a global positioning system (GPS) device (or equivalent)24that provides the device's current latitude and longitude. Non-limiting examples of satellite terminals include a fixed satellite communication device (e.g., for home or business use), a mobile satellite device or portable computer with satellite capabilities, and the like.

Computer20may be any suitable electronics device which is communicatively coupled to transceiver22and is programmed or configured to carry out the process(es) described below. Computer20may comprise one or more processors30(only one is shown in the diagram for purposes of illustration), memory32, and a plurality of instructions34(by way of example only, software code) which is stored on memory32and which is executable by processor(s)30. Processor(s)30may be programmed to process and/or execute digital instructions to carry out at least some of the tasks described herein. Non-limiting examples of processor(s)30include one or more of a microprocessor, a microcontroller or controller, an application specific integrated circuit (ASIC), a field-programmable gate array (FPGA), one or more electrical circuits comprising discrete digital and/or analog electronic components arranged to perform predetermined tasks or instructions, etc.—just to name a few. In at least one example, processor(s)30read from memory32and execute multiple sets of instructions (e.g., including instructions34) which may be embodied as a computer program product stored on a non-transitory computer-readable storage medium (e.g., such as memory32). Non-limiting examples of instructions34will be described below in the processes illustrated using flow diagrams and described elsewhere herein, wherein these and other instructions may be executed in any suitable sequence unless otherwise stated. The instructions and the example processes described below (and, e.g., shown inFIGS.4,5, and7) are merely embodiments and are not intended to be limiting.

Memory32may include any non-transitory computer usable or readable medium, which may include one or more storage devices or storage articles. Exemplary non-transitory computer usable storage devices include conventional hard disk, solid-state memory, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), as well as any other volatile or non-volatile media. Non-volatile media include, for example, optical or magnetic disks and other persistent memory, and volatile media, for example, also may include dynamic random-access memory (DRAM). These storage devices are non-limiting examples; e.g., other forms of computer-readable media exist and include magnetic media, compact disc ROM (CD-ROMs), digital video disc (DVDs), other optical media, any suitable memory chip or cartridge, or any other medium from which a computer can read. As discussed above, memory32may store one or more sets of instructions (e.g., such as instructions34) which may be embodied as software, firmware, or other programming instructions executable by the processor(s)30—including but not limited to the instruction examples set forth herein. In operation, processor(s)30may read data from and/or write data to memory32.

While not explicitly illustrated, transceiver22may comprise electronic circuitry, a dedicated microprocessor, one or more satellite communication chipsets enabling two-way communication, one or more antennas matched to a predetermined set of frequencies, and the like. Accordingly, transceiver22may receive an instruction from computer20and in response to the command, uplink information to the satellite14or15which in turn relays the information to base station16. Similarly, transceiver22may receive downlink information and provide it to processor(s)30, which in turn may store some of this information in memory32and/or act on the downlink information.

GPS device24may be any suitable electronic device that includes a receiver and computing device configured to receive information from a global positioning satellite—e.g., typically, a pair of coordinates (e.g., a latitude parameter and a longitude parameter) that correspond to a physical location of the device24on Earth's surface. GPS device24may utilize the Global Navigation Satellite System (GNSS placed into orbit by the U.S. Department of Defense), the Global Navigation Satellite System (GLONASS) (placed into orbit by Russia), or the like. Techniques for acquiring latitude and longitude from the GPS device24are generally known in the art.

Satellite(s)14,15may be any suitable satellite communication equipment located in earth's orbit—non-limiting examples include: global-positioning satellites, observation satellites, communications satellites, navigation satellites, weather satellites, space telescopes, etc. Non-limiting examples of earth orbits include: geocentric orbits, heliocentric orbits, areocentric orbits, low earth orbits (LEO), medium earth orbits (MEO), geosynchronous orbits (GEO), high earth orbits (HEO), etc. Other orbits or orbit classifications also exist and are known to skilled artisans. Satellite(s)14,15may communicate with the UT12via a so-called service link via any suitable frequency.

To illustrate a non-limiting example,FIG.2illustrates a plurality of beams B1, B2, B3, B4, B5diverging from satellite14(see alsoFIG.3which illustrates a satellite-view of the same beam shapes on a portion of the Earth's surface). While not required, at least some of the beams B1-B5have an irregular shape.FIG.2also illustrates that for each beam (B1, B2, B3, B4, B5) there is a corresponding beam footprint F1, F2, F3, F4, F5, wherein each footprint may be an area on the Earth's surface, wherein each footprint is an intersection of a longitudinally extending three-dimensional beam with the Earth's surface. Accordingly, the shape of a beam defines the shape of its footprint. (While not shown, it should be appreciated that satellite15may have similar beams, at least some of which may be irregularly-shaped as well, etc.)

FIG.3also illustrates sets of unique predetermined terrestrial locations50(1),50(2),50(3),50(4),50(n) (by way of example, a few are labeled). For example, footprint F1comprises a set52of n unique predetermined terrestrial locations. Among set52, an example subset54of twenty-five terrestrial locations define a perimeter56(also called a boundary) of the respective footprint (e.g., F1)). A secondary subset58(here comprising eight unique predetermined terrestrial locations within footprint F1) is also shown which may be used to tailor a boundary of a neighboring footprint (e.g., the beam may have subtle variations in performance near the edges of a beam. Adding more points enables the boundary of the beam to have “holes” wherein the optimum beam may be subtly chosen, even within the nominal boundary of that beam). The other footprints F2-F5each may have any suitable quantity of unique predetermined terrestrial locations, which may define the respective perimeters, a neighboring footprint, or both.

Returning toFIG.1, satellite base station16includes terrestrial hardware that comprises one or more antennas, transceivers electronics, computing devices, and one or more network controllers configured for satellite communication. For example, base station16may comprise any computing device having processor(s) and memory that store instructions executable by the processor(s). As explained below, these instructions may include any of the processes described herein. Configuration of and techniques for utilizing the satellite base station16are generally known and will not be explained in greater detail herein. Typically, the base station16is communicatively coupled to a core network40.

The core network40includes any suitable elements in a telecommunications network. For example, this may include Serving General Packet Radio Services (GPRS) Support Nodes (SGSNs), Gateway GPRS Support Nodes (GGSNs), Home Location Registers (HLRs), Authentication Centers (AuCs), and the like. The core network further may include any suitable components of 1G-5G cellular networks, etc. networks and interface components therebetween as well—all of which are known to skilled artisans. Further, other computers (e.g., such as a land-based server42) may be communicatively coupled to the core network40. Server42may be any computing device having processor(s) and memory that store instructions executable by the processor(s). As explained below, these instructions may include any of the processes described herein.

Before providing an example of a beam selection process by UT12, an example dataset which is stored in memory32of UT12will be described. As discussed briefly above, this dataset is used by the UT12when it conducts a beam selection process. A non-limiting example of the dataset follows (see Table I). The dataset comprises a plurality of elements, wherein each element is associated with one of the unique predetermined terrestrial locations (e.g., shown inFIG.3), wherein each element further comprises other information relevant to the UT12determining beam selection. As will be apparent from the description below, when the processor(s)30executes instructions34, processor(s)30also may parse the dataset to determine which beam to select and to carry out any other suitable aspect of the process. From time to time, the dataset may be updated via a downlink from the base station16or other tethered or wireless connection.

With regard to the plurality of elements, each element may comprise an element index (e.g., a unique identifier of the element), a set of location identifiers (which may correlate a terrestrial position with that of a particular satellite), and one or more tuples. In the example that follows, each set of location identifiers comprises a first location parameter and a second location parameter. For example, the first and second location parameters may define a unique vector value (in a spherical coordinate system) that points from the predetermined terrestrial location to a celestial position of the satellite14—e.g., an azimuth value and an elevation value. The azimuth value may be a reference direction (e.g., a degree value on the horizon), wherein the elevation value may be a reference altitude (e.g., a degree value above the horizon), wherein each azimuth or elevation value may be in a floating-point double-precision format (e.g., 64 bits). To illustrate, the set of location identifiers of terrestrial location50(1) may be50(1)AZ,50(1)EL. And other terrestrial locations may have location identifiers that identify their locations with respect to satellite14.

Each tuple in the respective element may be defined as a finite list of parameters pertaining to a satellite beam associated with the particular unique predetermined terrestrial location. According to one non-limiting example, the tuple may comprise a beam identifier parameter, a signal quality factor (SQF) parameter, and an availability (Avail) parameter. The beam identifier parameter identifies the specific beam for the tuple from satellite14(e.g., this may be a 16-bit or greater integer). The SQF parameter may define an outroute signal quality measurable by the UT12(e.g., this may be a decimal or percentage (e.g., a decimal*100)). And the Avail parameter may be a connectivity parameter that accounts for local weather (at the respective terrestrial location), a strength of the signal gain, a signal frequency, etc. and may be a decimal or percentage (e.g., a decimal*100).

In some examples, a tuple further may comprise at least one hardware parameter identifying which UT hardware is suitable for connecting to the beam identified by the respective beam identifier parameter. The hardware parameter may identify an antenna size parameter (e.g., 74 centimeters (cm), 90 cm, 98 cm, 120 cm, etc.), a signal power parameter (e.g., radio power of 1 Watt (W), 2 W, 3 W, 5 W, etc.), or both. As will be described in the processes below, the antenna size and signal power parameters may be compared to the respective UT's12parameters to determine whether the UT12can connect to the beam identified by the corresponding beam identifier parameter.

Table I is merely a small illustrative example of the parameters set forth in a dataset that may be stored in memory32. As appropriate, each element may have one, two, or more tuples. And the quantity of elements will vary with (and correspond to) the quantity of unique predetermined terrestrial locations for a given footprint. Further, a dataset may comprise elements that correspond to numerous footprints.

Turning now toFIG.4, a flow diagram is shown that illustrates an example process400(carried out by UT12) for determining an element associated with a unique predetermined terrestrial location. Process400may be part of a beam selection process; as explained more below, process400may be used with a process500(shown inFIG.5). Process400illustrates an example of some of instructions34and an arrangement thereof which may be stored in memory32and which may be executed using processor(s)30of computer20. Non-limiting examples of software instructions are illustrated as instructional blocks in the diagram. It will be appreciated that while not necessarily explained explicitly in process400, other software instructions may be carried out as well.

Process400may begin at block410. In block410, UT12optionally may receive one or more beam loading factors (BLFs) from a network gateway. Each BLF received may be associated with a different beam (e.g., UT12could receive a BLF for one or more of beams B1-B5). The BLF—which may be controlled by a network operator—may be communicated wirelessly to the UT12during installation and stored in memory32. The processes described herein include examples with and without the UT12receiving the one or more BLFs. When no BLF is received for a particular beam, then UT12will set the value of BLF to zero (e.g., BLF=0). Block410may be received and/or updated at any suitable time during the process400(and/or 500).

In block430which may follow, processor(s)30may covert the pair of coordinates (e.g., UTLAT, UTLONG) to azimuth and elevation values (e.g., UTAZ, UTEL), wherein the azimuth value (UTAZ) and elevation value (UTEL) are with respect to (or relative to) a position of a specific satellite (e.g., satellite14). Block430may use any suitable conversion technique.

Block440may follow and may comprise UT12determining (e.g., identifying) one of the elements (Ek) of the dataset (e.g., of Table I), wherein the determination is based on a closest proximity of UT12to one of the unique predetermined terrestrial locations. (E.g., here k may be an index uniquely identifying the respective element). Block440may comprise subblocks450,460,470,480, and490.

Recall that for each footprint, a finite and determinable quantity of unique predetermined terrestrial locations exist. For example, as discussed above, footprint F1shown inFIG.3comprises 33 terrestrial locations (for instance, in this example,50(1),50(2), . . . ,50(n), wherein n=33). In subblock450, processor(s)30may select one of the elements of the dataset, and for that element, processor(s)30may calculate a distance dibetween the UT12and the corresponding terrestrial location associated with that element. In some examples, the calculation may determine an L2 norm, as shown in Equation (1). In Equation (1), i is an index (e.g., i=1, i=2, i=3, . . . , i=33).
di=(UTAZ−50(i)AZ)2+(UTEL−50(i)EL)2Equation (1)

In subblock460which follows, processor(s)30may determine whether distance values (di) for each of the elements associated with the respective footprint have been calculated. For instance, continuing with the same example, UT12determines whether dihas been calculated for each of the 33 elements of footprint F1. When all distance calculations have been calculated, then process400proceeds to subblock480; otherwise, process400proceeds to subblock470.

In subblock470, the value of i may be incremented. E.g., i=i+1. Thereafter, the process may loop back and repeat subblock450. Subblocks450,460,470may continue to loop until all of the first and second location parameters of the elements associated with the respective footprint (e.g., F1) have been evaluated.

In subblock480, using each of the calculated distances (di) for all i (e.g., 1→n), processor(s)30may determine which value of diis the smallest. E.g., determine MIN(di). Accordingly, subblock480represents processor(s)30determining which of the unique predetermined terrestrial locations UT12is closest.

Thus, in subblock490which follows, UT12determines (e.g., identifies) the element (Ek). For example, the identified element (Ek) is the element having location identifiers which are determined in subblock480to be nearest to UT12. Following subblock490, a block505of process500may follow.

Turning now toFIG.5, a flow diagram is shown that illustrates an example process500(carried out by UT12) for selecting a satellite beam with which to connect and use based on the determination of element (Ek). Process500also may be a portion of a beam selection process; as explained above, process500may be used with process400(FIG.4). Process500illustrates an example of some of instructions34and an arrangement thereof which may be stored in memory32and which may be executed using processor(s)30of computer20. Non-limiting examples of software instructions are illustrated as instructional blocks in the diagram. It will be appreciated that while not necessarily explained explicitly in process500, other software instructions may be carried out as well.

In process500, each of the instructional blocks pertain to the identified element (Ek). Process500may begin with block505. In block505, processor(s)30may evaluate the hardware parameters of the tuple(s) associated with the identified element (Ek) and determine whether a hardware conflict exists. Recall: the identified element (Ek) may have one or more tuples, and each of the tuples(j) may or may not have hardware parameters listed in the dataset. (E.g., for the identified element (Ek), there may be a quantity of t tuples, wherein j is an index, wherein each of the tuples can be identified as tuples(j) for j: 1→t.) Thus, in block505, a conflict exists when—for all of the available tuples(j) of the identified element (Ek)—hardware parameters are listed for each of the tuples(j) and each of the listed hardware parameters do not match those of the instant UT12. For example, for each of the available tuples(j), an antenna size parameter, a signal power parameter, or the like is not compatible with using UT12. Alternatively, no conflict is determined to exist in block505when—for at least one of the tuples(j) of the identified element (Ek)—hardware parameters are listed and those hardware parameters are compatible with UT12, or when hardware parameters are not listed for a respective tuple(j) (e.g., hardware parameter is blank). When a conflict exists, the process500may proceed to block510. When no conflict exists, the process proceeds to block520, and only the tuples(j) which do not have a conflict are further evaluated during process500(e.g., referred to below as the ‘remaining tuples(j).’).

Block510is optional. For example, in some instances, the process500is carried out while an installer is installing UT12is a residence or commercial facility. In such examples, block510comprises processor(s)30providing an indication to the installer to install different UT hardware (e.g., that is compatible with an antenna size parameter, a signal power parameter, or the like of a respective beam). This may include the installer receiving an SMS, an email, or notification via the UT12, or the like. Thereafter, block505could be repeated. In another example, process500ends following block510. In other examples, process500proceeds to block515.

In block515, processor(s)30initiates repeating processes400and500for a different satellite (e.g., to satellite15).FIG.5illustrates block410ofFIG.4following block515. This, of course, is merely an example.

In block520which may follow block505, processor(s)30determine whether BLF(s) are available for the beam(s) associated with the remaining tuples(j) of the identified element (Ek)—i.e., the beam identified by the respective beam identifier parameters (beam_id(j)).

In block525which follows block520, for each of the remaining tuples(j) having an available BLF, the available value is assigned to BLF(j). And in block530which also follows block520, for each of the remaining tuples(j) having to available BLF, BLF(j)=0.

Block535follows both of blocks525and530. In block535, for each the remaining tuples(j), processor(s)30may calculate a metric (e.g., Bsmetric(j)) based, at least in part, on the SQF parameter (e.g., SQF(j)) and the Avail parameter (e.g., Avail(j)). Equation (2) illustrates one non-limiting example.
Bsmetric(j)=(1−BLF(j))*SQF(j)*Avail(j)  Equation (2).

Recall that each of SQF(j) and Avail(j) may be values between zero and 100. Further, recall that the dataset may be updated as desirable; thus, while SQF(j) is measured by UT12, Avail(j) may be updated by the network as appropriate. If perchance no value is available for Avail(j), then a default value may be assigned (e.g., such as 99.5 or any other suitable value).

While not shown inFIG.3., unique predetermined terrestrial locations of element(s) may exist outside of a footprint. In these instances, in at least some examples, the SQF parameter and/or Avail parameter may have values less than a first predetermined threshold and less than a second predetermined threshold, respectively. In this manner, the value of the Bsmetric(j) will be undesirably low when evaluated in block540which follows.

Block540follows block535. In block540, processor(s)30may determine BsmetricMAX. That is, processor(s)30may determine which of the values of Bsmetric(j) is largest.

In block545which follows, processor(s)30may determine whether the beam identifier beam_id(j) that corresponds with the Bsmetric(j) has a predefined value that identifies it as out of (or outside of) satellite coverage. According to one example, a negative one (−1) is assigned to tuples(j) when the corresponding predetermined terrestrial location is out of coverage of the respective beam (e.g., outside of beam B1). In this manner, terrestrial locations slightly outside of the respective footprint can be used to assist the UT12in determining its location with respect to a satellite beam. (Note: such predetermined terrestrial locations are contemplated even though they are not shown inFIG.3.) When the value of the beam identifier parameter beam_id(j) is not the predefined value, then process500proceeds to block550. Else, the process500proceeds to block555.

In block550which may follow block545, processor(s)30determine (e.g., select) the respective beam identified by the beam identifier parameter beam_id(j). Block550further may comprise connecting to this beam. Thereafter, the process may end.

In block555which may follow block545, processor(s)30may determine whether there are any remaining tuples(j) which have not been evaluated by block545. If so, process500may proceed to block560; else, process500may proceed to block565.

In block560which may follow block555, the next largest Bsmetric(j) may be determined. Thereafter, the process500proceeds to block545again (and repeats as previously described). This may be carried out provided there are remaining tuples(j) which have yet to be evaluated by block545. Block560is optional; thus, in some examples, block545may proceed to block565without executing block560.

In block565which may follow block555, processor(s)30determine that the UT12is outside of a satellite coverage area (e.g., outside of any of the footprints of the respective satellite14). In this instance, process500may end, or alternatively may loop back to block410(process400) evaluating a different satellite (e.g., satellite15).

Other UT beam selection examples exist. PerFIG.4, subset54of the unique predetermined terrestrial locations were used by UT12to select a satellite beam. In at least one example, subset58(also shown inFIG.4) may be used by UT12to determine how far UT12is from perimeter56or another footprint (e.g., such as footprint F2or F5).

Other examples of process500also exist. According to one non-limiting example, following block565, the process loops back to block515instead (e.g., and initiates repeating the processes for different satellites). Or according to another non-limiting example, each of processes400and700are executed for multiple satellites; in this manner, in process500, a respective beam may be selected from the beams of a number of different satellites—thereby providing more choices for UT12in selecting a desirable beam.

According to yet another example, UT12may determine beam selection according to the examples shown inFIGS.6-7.FIG.6illustrates another example of footprints F1-F5, wherein a plurality of unique predetermined terrestrial locations60(1),60(2),60(3),60(4), and60(m) are shown within footprint F1by way of example (e.g., a set62), wherein m represents a quantity of terrestrial locations (e.g., here, m equals a total of 48 terrestrial locations (within footprint F1) by way of example only). Index i may be used here similarly to that described above (e.g., i=1, i=2, i=3, . . . , i=48). InFIG.6, it will be appreciated that the unique predetermined terrestrial locations may be arranged as a grid or other suitable spaced-arrangement. In at least one example, the respective location identifiers of the plurality of elements define a grid of equidistantly-spaced locations within the satellite beam. While some terrestrial locations may define perimeter56, additional terrestrial locations may exist within terrestrial locations about the perimeter56. According to at least one example, any single unique predetermined terrestrial location is no more than a threshold distance from another of the plurality of unique predetermined terrestrial locations. In this manner, a process700shown inFIG.7may be effectively executed. Other aspects of the beam, footprint, and associated dataset may be similar to that described above.

Turning now toFIG.7, a flow diagram is shown that illustrates the example process700(carried out by UT12) for determining the element (Ek) associated with a unique predetermined terrestrial location—e.g., process700may in some instances be used in place of process400, wherein the plurality of predetermined terrestrial locations is arranged similarly to that shown inFIG.6. Thus, process700may be part of a beam selection process and may be used with process500(shown inFIG.5). Process700illustrates an example of some of instructions34and an arrangement thereof which may be stored in memory32and which may be executed using processor(s)30of computer20. Non-limiting examples of software instructions are illustrated as instructional blocks in the diagram. It will be appreciated that while not necessarily explained explicitly in process700, other software instructions may be carried out as well.

Process700may begin with block710followed by block720followed by block730. According to at least one example, blocks710,720,730may be similar or identical to blocks410,420,430, respectively; therefore, for sake of brevity, these blocks will not be re-described here. Block740may follow block730.

Block740may comprise subblocks750,760,770, and790. In subblock750, using azimuth and elevation values (e.g., UTAZ, UTEL) determined in block730, processor(s)30may calculate a rounding of the azimuth and elevation values (e.g., UTAZ_RD, UTEL_RD). The rounding may be in accordance with a predefined resolution, wherein the predefined resolution may correspond to a spacing of the unique predetermined terrestrial locations from one another in a respective footprint and/or may correspond to a location of the respective satellite relative to the beam footprint. According to one example, a network operator controls the predefined resolution and provides it to the UT12. Further, according to another example which may be used in combination with the examples set forth above, when no predefined resolution is provided for a given region (or footprint), then UT12may use a default resolution of (0.03, 0.03). For example, the rounded azimuth and elevation values (UTAZ_RD, UTEL_RD) may be rounded to the nearest 0.03 in azimuth and nearest 0.03 in elevation. Of course, these values are merely examples. Further, the value of a default azimuth resolution need not be the same as a default elevation resolution.

In subblock760which follows, processor(s)30compare the rounded azimuth and elevation values to the location parameters of each of the unique predetermined terrestrial locations in the respective footprint (e.g., F1)—seeking a match.

In subblock770which may follow, processor(s)30may determine whether a match is determined. E.g., processor(s)30may determine a match when the rounded azimuth and elevation values (UTAZ_RD, UTEL_RD) match one of the first or second location parameters of the elements, even though additional decimal places of the first or second location parameters do not match. Continuing with the default resolution example above (of 0.03, 0.03), if UTAZ_RD, UTEL_RDequaled 10.36, 14.03 and a pair of first and second parameters equaled 10.3634, 14.0343, then processor(s)30would determine a match in subblock770(despite the difference of 0.0034 and 0.0043, respectively, as these errors are smaller than the level of resolution). When each of the first and second location parameters of each of the elements associated with the respective footprint are compared and no match with the rounded azimuth and elevation values (UTAZ_RD, UTEL_RD) is determined, then process700proceeds to block780; alternatively, when a match is determined, then process700proceeds to subblock790.

In block780, processor(s)30determine that the UT12is outside of a satellite coverage area (e.g., similar to block565). Thereafter, process700may end.

In subblock790, UT12—via processor(s)30—determines (e.g., identifies) the element (Ek). For example, the identified element (Ek) is the element having location identifiers which are determined to be nearest to UT12. Following subblock790, process500may follow (e.g., proceeding to block505(FIG.5), which was previously described). In this manner, having identified element (Ek), UT12utilize the remainder of the dataset to determine (e.g., select) a suitable beam with which to connect. As process500has been previously described, this will not be re-described here.

Still other examples exist. According to at least one example, any or all of the processes400,500, and/or700are executed by the satellite base station16. According to another example, any or all of the processes400,500, and/or700are executed by the land-based server42.

Thus, there has been described a satellite communication system comprising user terminals (UTs), one or more satellites, and one or more base stations. A plurality of user terminals store a dataset in their respective computing memories and ultimately use the dataset to determine with which beam of a satellite to connect. Within a footprint of a satellite beam are a plurality of unique predetermined terrestrial locations relatively near an example UT (provided the UT is in a region of satellite coverage). The example UT determines which of the terrestrial locations it is nearest. Once this is determined, the example UT evaluates parameters in the dataset, and based on this evaluation, the example UT determines with which of the satellite beams to connect.