The subject matter disclosed herein relates generally to angle of arrival detection, and more specifically to angle of arrival detection for non-linear antenna arrays.
Radio frequency signals, such as Bluetooth or WiFi signals, received at a device (for example, a mobile device) may be used to estimate which angle the signal is coming from. For example, angle of arrival (AoA) may be measured in three dimensions as part of a process for finding location of another device such as an electronic tag, keyfob, smartwatch, or other device which may broadcast signals. Typical implementations for determining AoA utilize large arrays of antennas which is impractical for portable devices (for example, wearables, mobile phones or other handheld devices) which typically have two antennas which can give a rudimentary AoA. For example, the one antenna may be to receive Bluetooth (BT) signal, while another may be setup to receive WiFi or other signal. With two antennas, a mobile device may determine a general sector location of the signal source but may not be able to determine if the signal source is in front or behind the mobile device. Additionally, two antennas may not be enough to accurately determine any elevation information. Typically, the minimum number of antennas that can be used for 360 degree calculation is three antennas in either “L” or triangle format. However, even with three antennas in a mobile device, solving for angle of arrival of non-linear arrays often entails complicated closed-form functions, involve matrix inversion, and other computationally intensive steps.
Some embodiments discussed herein provide for detecting angle of arrival (AoA) of a wireless signal. In one aspect, a method comprises: receiving the wireless signal at a non-linear antenna array; determining a plurality of candidate angles of arrival for the received signal; and determining a resulting AoA for the received wireless signal based on a weighted average of the plurality of candidate angles.
In another embodiment, a mobile device is configured for AoA detection of a wireless signal and includes memory and a processor configured to: receive the wireless signal at a non-linear antenna array; determine a plurality of candidate angles of arrival for the received signal; and determine a resulting AoA for the received wireless signal based on a weighted average of the plurality of candidate angles.
In another embodiment, a machine readable non-transitory storage medium includes program instructions that are executable by a processor to: receive a wireless signal at a non-linear antenna array; determine a plurality of candidate angles of arrival for the received signal; and determine a resulting AoA for the received wireless signal based on a weighted average of the plurality of candidate angles.
In another embodiment, an apparatus for detecting angle of arrival (AoA) of a wireless signal by a mobile device includes: means for receiving the wireless signal at a non-linear antenna array; means for determining a plurality of candidate angles of arrival for the received signal; and means for determining a resulting AoA for the received wireless signal based on a weighted average of the plurality of candidate angles.
The above and other embodiments, objects, and features of the present disclosure will become apparent from the following description of various embodiments, given in conjunction with the accompanying drawings.
Reference throughout this specification to “one example”, “one feature”, “an example” or “a feature” means that a particular feature, structure, or characteristic described in connection with the feature and/or example is included in at least one feature and/or example of claimed subject matter. Thus, the appearances of the phrase “in one example,” “an example,” “in one feature,” or “a feature” in various places throughout this specification are not necessarily all referring to the same feature and/or example. Furthermore, the particular features, structures, or characteristics may be combined in one or more examples and/or features.
Angle of arrival (AoA) measurements may be used to determine propagation direction of a radio-frequency (RF) wave incident on an antenna array. Antenna arrays may be arranged in a variety of different configurations. AoA can indicate the direction of an RF wave from the Time Difference of Arrival (TDOA) delays measured at individual elements of the antenna array. AoA for signals received by a linear (also referred to as two dimensional) antenna array may be determined by a number of different methods. For example, Capon's angle and Bartlett's angle are two possible techniques to determine AoA for signals received by a single linear antenna array (for example, a single pair of antennas). In one embodiment, the linear array calculations provided by Capon's angle or Bartlett's angle are leveraged to determine AoA in non-linear (for example, a triangle, circle, “L” shaped, or other multiple dimension) antenna arrays. In one embodiment, an AoA Detection module determines AoA for a non-linear array in response to determining AoA for each of a plurality of linear subarray. Each linear subarray from the non-linear array can be used to compute a candidate AoA resulting in a plurality of candidate angles from the plurality of linear subarrays. In one embodiment, a final (also referred to as a refined, resulting, or output) AoA for the non-linear array is determined by combining the plurality of candidate angles from the plurality of linear subarrays. In some embodiments, the final AoA may be a result of the weighted average of the plurality of candidate angles. The weighted average can include outlier candidate angles weighted by a weight of zero value assigned to outlier candidate angles that are relatively far (for example, outside of a configurable candidate distance threshold) from other candidate angles. In some embodiments, the candidate distance threshold may be determined according to first determining an average of all candidate angles. In some embodiments, pairwise comparisons can be used to identify outlier candidate angles that are too far (according to the candidate distance threshold) from other candidate angles. In one embodiment, candidate angles not meeting the threshold are eliminated (for example, purged or ignored, which may be implemented by setting the respective candidate angle weight to zero). Weights for each of the remaining (for example, not yet eliminated or weighted to zero) candidate angles may be determined according to the distance of the particular candidate angle from an average of all candidate angles.
While traditional methods for determining AoA have focused on direction finding with large antenna arrays or beamforming by tracking multiple targets, AoA detection as described herein may be implemented with minimal antenna array hardware. AoA detection described herein also utilizes minimal computational resources, which may allow for greater flexibility in selecting and designing AoA detection platforms, such as when AoA detection is implemented in mobile and portable devices. The non-linear arrays described herein can include one or more existing mobile device antennae (for example WiFi, LTE, and Bluetooth (BT)) and need not be specialized or dedicated arrays. In some embodiments, utilization of antennas may be shared. For example, a mobile device operating system may utilize an antenna for a first AoA use case (for example, WiFi, LTE, BT, or other utilization) for a set amount of time before switching utilization back to its previous use (for example, WiFi, LTE, BT, or other utilization different than the first).
At block 110, the device determines a plurality of candidate angles of arrival for the received signal. In some embodiments, the plurality of candidate angles of arrival for the received signal comprises a candidate angle determined from each of the linear subarrays of the non-linear antenna array. The one or more of the plurality of candidate angles may be determined according to Capon's angle detection or Bartlett's angle detection methods.
At block 115, the device determines a resulting angle of arrival for the received signal based on a weighted average of the plurality of candidate angles of arrival for the received signal. In some embodiments, candidate angles not meeting a quality threshold are pruned or eliminated from the plurality of candidate angles. For example, the quality threshold may be associated with or determined from one or more of: distance from another candidate angle, an average of a plurality of candidate angles, or a combination thereof. Candidate angles below (i.e., failing to/not meeting) the quality threshold may be weighted to zero or otherwise removed/purged from consideration from a final/resulting AoA. In some embodiments, a weight for each respective candidate angle of the plurality of candidate angles is determined. The weight of the respective candidate angle may be determined according to one or more of: distance from another candidate angle, an average of a plurality of candidate angles, or a combination thereof. As noted above, one or more of the plurality of candidate angles is weighted by a weight of zero in the weighted average of the plurality of candidate angles.
The device 300 may also include a number of device sensors 335 coupled to one or more buses or signal lines further coupled to the processor(s) 301. The sensors 335 may include a clock, ambient light sensor (ALS), accelerometer, gyroscope, magnetometer, temperature sensor, barometric pressure sensor, red-green-blue (RGB) color sensor, ultra-violet (UV) sensor, UV-A sensor, UV-B sensor, compass, proximity sensor. The wireless device may also include a Global Positioning System (GPS) or global navigation satellite system (GNSS) receiver 330 which may enable GPS or GNSS measurements in support of A-GNSS positioning. In some embodiments, multiple cameras are integrated or accessible to the wireless device. In some embodiments, other sensors may also have multiple versions or types within a single wireless device.
Memory 305 may be coupled to processor(s) 301 to store instructions (for example, instructions to perform AoA detection 371) for execution by processor(s) 301. In some embodiments, memory 305 is non-transitory. Memory 305 may also store software or firmware instructions (for example, for one or more programs or modules) to implement embodiments described herein, such as AoA detection embodiments described in association with
Memory 305 may also store data from integrated or external sensors. In addition, memory 305 may store application program interfaces (APIs) for providing access to one or more features of AoA detection as described herein. In some embodiments, AoA detection functionality can be implemented in memory 305. In other embodiments, AoA detection functionality can be implemented as a module separate from other elements in the wireless device 300. The AoA detection module may be wholly or partially implemented by other elements illustrated in
Network interface 310 may also be coupled to a number of wireless subsystems 315 (for example, Bluetooth subsystem 366, WLAN subsystem 311, Cellular subsystem 361, or other networks) to transmit and receive data streams through a wireless antenna system 380 to/from a wireless network or through a wired interface for direct connection to networks (for example, the Internet, Ethernet, or other wireline systems). Wireless subsystems 315 may be connected to antenna system 380. Antenna system 380 may be connected to GPS or GNSS receiver 330 to enable reception of GPS or other GNSS signals by GPS or GNSS receiver 330. Antenna system 380 may comprise a single antenna, multiple antennas and/or an antenna array and may include antennas dedicated to receiving and/or transmitting one type of signal (e.g. cellular, WiFi or GNSS signals) and/or may include antennas that are shared for transmission and/or reception of multiple types of signals. WLAN subsystem 311 may comprise suitable devices, hardware, and/or software for communicating with and/or detecting signals from WiFi APs and/or other wireless devices within a network (for example, femtocells). In one aspect, WLAN subsystem 311 may comprise a WiFi (802.11x) communication system suitable for communicating with one or more wireless access points.
Cellular subsystem 361 may include one or more wide area network transceiver(s) that may be connected to one or more antennas in antenna system 380 (for example, in some embodiments the antenna system is also implemented and illustrated in
The device as used herein (for example, device 300) may be a: RF locator, wireless device, cell phone, personal digital assistant, mobile computer, wearable device (for example, watch, head mounted display, virtual reality glasses, etc.), tablet, personal computer, laptop computer, or any type of device that has wireless capabilities. As used herein, a wireless device may be any portable, or movable device or machine that is configurable to acquire wireless signals transmitted from, and transmit wireless signals to, one or more wireless communication devices or networks. Thus, by way of example but not limitation, the device 300 may include a radio device, a cellular telephone device, a computing device, a personal communication system device, or other like movable wireless communication equipped device, appliance, or machine. The term “device” is also intended to include devices which communicate with a personal navigation device, such as by short-range wireless, infrared, wireline connection, or other connection, regardless of whether satellite signal reception, assistance data reception, and/or position-related processing occurs at the device 300. Also, the term “device” is intended to include all devices, including wireless communication devices, computers, laptops, etc. which are capable of communication with a server, such as via the Internet, WiFi, or other network, and regardless of whether satellite signal reception, assistance data reception, and/or position-related processing occurs at the wireless device, at a server, or at another wireless device associated with the network. Any operable combination of the above can also be considered a “device” as used herein. Other uses may also be possible. While various examples given in the description below relate to wireless devices, the techniques described herein can be applied to other devices.
The device may communicate wirelessly with a plurality of APs, base stations and/or femtocells using RF signals (for example, 300 MHz, 1900 MHz, 2.4 GHz, 3.6 GHz, and 4.9/5.0 GHz bands) and standardized protocols for the modulation of the RF signals and the exchanging of information. For example, the protocol may be Institute of Electrical and Electronics Engineers (17) 802.11x or 3GPP LTE. By extracting different types of information from the exchanged signals, and utilizing the layout of the network (i.e., the network geometry) the wireless device may determine its position within a predefined reference coordinate system.
It should be appreciated that embodiments of the invention as will be hereinafter described may be implemented through the execution of instructions, for example as stored in the memory 305 or other element, by processor(s) 301 of device 300 and/or other circuitry of device 300 and/or other devices. Particularly, circuitry of device 300, including but not limited to processor(s) 301, may operate under the control of a program, routine, or the execution of instructions to execute methods or processes in accordance with embodiments of the invention. For example, such a program may be implemented in firmware or software (for example, stored in memory 305 and/or other locations) and may be implemented by processors, such as processor(s) 301, and/or other circuitry of device 300. Further, it should be appreciated that the terms processor, microprocessor, circuitry, controller, etc., may refer to any type of logic or circuitry capable of executing logic, commands, instructions, software, firmware, functionality and the like.
Some or all of the functions, engines or modules described herein (for example, AoA detection features and methods illustrated in at least
As an example of how to solve the UTA angle using Capon's method for each antenna pair, and combining the result, the below MATLAB® notation is provided. Any ULA solution can be applied, but Capon's method for 2 antennas is computationally simple and is therefore an effective example to convey one possible solution for implementing on or more aspects of AoA detection.
Capon's method in MATLAB® notation, in one embodiment:
A Capon's solution for the subarray 1-2 is illustrated as
In one embodiment, AoA is solved separately for each of the three subarrays. Although the centerpoints of each subarray do not overlap, in far field situations the origin may be assumed to be at the center of the triangle without introducing a large error to the AoA estimate. The illustrated angles are in a relative 60 degree phase shift, given that the UTA is an equilateral triangle. Capon's solution for subarray 2-3 and subarray 1-3 are illustrated in
At block 1310, the method assigns angle from a plurality of selected angles. In some embodiments, degrees may be rounded to nearest discrete angle for the purpose of majority voting later (for example, N may be multiplied by 15 degrees, where N=0, 1, 2, . . . etc.).
At block 1315, the method adjusts weight(s) near 90 or 270 degree singularity angles. For example, if a respective “X” degree measurement is within a threshold number/range of degrees from 90 or 270 degree singularity angles, the weight of the respective measurement may be reduced.
At block 1320, the method calculates candidate UTA angles from each antenna pair making up the UTA. In one embodiment, the method calculates two possible UTA angles from each antenna pair. UTA angles may be normalized to within a range of 0 to 360 degrees. For example, “X” and [180−“X”] degrees for antenna pair 1-2 (for example, pair 1-2 as illustrated in
At block 1325, the method provides the weighted majority voting result. For example, the thick line 1105 of
Those of skill in the art would understand that information and signals may be represented using any of a variety of different technologies and techniques. For example, data, instructions, commands, information, signals, bits, symbols, and chips that may be referenced throughout the above description may be represented by voltages, currents, electromagnetic waves, magnetic fields or particles, optical fields or particles, or any combination thereof.
The word “exemplary” is used herein to mean “serving as an example, instance, or illustration.” Any embodiment described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other embodiments. Likewise, the term “embodiments” does not require that all embodiments include the discussed feature, advantage or mode of operation.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of embodiments of the invention. As used herein, the singular forms “a,” “an,” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises,” “comprising,” “includes,” and/or “including”, when used herein, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
Further, many embodiments are described in terms of sequences of actions to be performed by, for example, elements of a computing device (for example, a server or device). It will be recognized that various actions described herein can be performed by specific circuits (for example, application specific integrated circuits), by program instructions being executed by one or more processors, or by a combination of both. Additionally, these sequence of actions described herein can be considered to be embodied entirely within any form of computer readable storage medium having stored therein a corresponding set of computer instructions that upon execution would cause an associated processor to perform the functionality described herein. Thus, the various aspects of the invention may be embodied in a number of different forms, all of which have been contemplated to be within the scope of the claimed subject matter. In addition, for each of the embodiments described herein, the corresponding form of any such embodiments may be described herein as, for example, “logic configured to” perform the described action.
Those of skill would further appreciate that the various illustrative logical blocks, modules, engines, circuits, and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, engines, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present invention.
The various illustrative logical blocks, modules, and circuits described in connection with the embodiments disclosed herein may be implemented or performed with a general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general-purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, for example, a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration.
The steps of a method or algorithm described in connection with the embodiments disclosed herein may be embodied directly in hardware, in a software module executed by a processor, or in a combination of the two. A software module may reside in random access memory (RAM), flash memory, read only memory (ROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), registers, hard disk, a removable disk, a compact disc read only memory (CD-ROM), digital versatile disc (DVD), or any other form of storage medium known in the art. An exemplary storage medium is coupled to the processor such the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium may be integral to the processor. The processor and the storage medium may reside in an ASIC. The ASIC may reside in a user terminal. In the alternative, the processor and the storage medium may reside as discrete components in a user terminal.
In one or more exemplary embodiments, the functions or modules described may be implemented in hardware, software, firmware, or any combination thereof. For example, hardware, software, firmware, or any combination thereof may provide means for receiving the wireless signal at a non-linear antenna array, means for determining a plurality of candidate angles of arrival for the received signal, and means for determining a resulting AoA for the received wireless signal based on a weighted average of the plurality of candidate angles.
If implemented in software as a computer program product, the functions or modules may be stored on or transmitted over as one or more instructions or code on a non-transitory computer-readable medium. Computer-readable media can include both computer storage media and communication media including any medium that facilitates transfer of a computer program from one place to another. A storage media may be any available media that can be accessed by a computer. By way of example, and not limitation, such non-transitory computer-readable media can comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to carry or store desired program code in the form of instructions or data structures and that can be accessed by a computer. Also, any connection is properly termed a computer-readable medium. For example, if the software is transmitted from a web site, server, or other remote source using a coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave, then the coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of medium. Disk and disc, as used herein, includes compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk and blu-ray disc where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Combinations of the above should also be included within the scope of non-transitory computer-readable media.
The previous description of the disclosed embodiments is provided to enable any person skilled in the art to make or use the present invention. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments without departing from the spirit or scope of the invention. Thus, the present invention is not intended to be limited to the embodiments shown herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.