Initialize a probability vector for determining the location of movement detected from a wireless signal
By analyzing the channel information and beamforming state in the wireless communication network, and using the Bayesian estimation framework to generate motion indication values, the problem of inaccurate motion detection locations in the wireless communication network is solved, and higher detection accuracy and robustness are achieved.
Patent Information
- Application Number
- CN201980098049.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-04-30
- Filing Date
- 2019-08-22
- Publication Date
- 2025-07-29
- Estimated Expiration
- 2039-08-22
AI Technical Summary
It is difficult for existing motion detection systems to accurately determine the location of motion in wireless communication networks, especially in complex environments, where detection errors and insufficient robustness are present.
By analyzing the wireless signal channel information in the wireless communication network, using the Bayesian estimation framework for recursive calculation, combining channel response and beamforming state information, motion indication values are generated and location probability is updated, so as to achieve accurate positioning of motion.
It improves the accuracy and robustness of motion detection, can determine the location of motion more accurately in complex environments, reduces misdetects, and enhances the adaptability and reliability of the system.
Smart Images

Figure CN114041067B_ABST
Abstract
Description
[0001] Cross - reference to related applications
[0002] This application claims priority to U.S. Patent Application No. 16 / 399,681, filed on Apr. 30, 2019, the content of which is incorporated herein by reference. Background of the Invention
[0003] The following description relates to initializing a probability vector for determining the location of motion detected from wireless signals.
[0004] Motion detection systems have been used to detect the movement of objects, such as in a room or an outdoor area. In some example motion detection systems, infrared or optical sensors are used to detect the movement of objects within the field of view of the sensors. Motion detection systems have been used in security systems, automated control systems, and other types of systems. Brief Description of the Drawings
[0005] Figure 1 is a diagram showing an example wireless communication system.
[0006] Figure 2A and Figure 2B is a diagram showing an example wireless signal for communication between wireless communication devices in a motion detection system.
[0007] Figure 3 is a schematic diagram of an example wireless communication network including multiple wireless nodes.
[0008] Figure 4 is a flowchart of an example process for determining the location of motion detected by one or more wireless links in a wireless communication network.
[0009] Figure 5A is a flowchart of an example process for a link calculator to generate a probability vector based on multiple wireless links.
[0010] Figure 5B is an example mathematical function for generating a probability vector using a likelihood calculator.
[0011] Figure 6 is a schematic diagram of an example motion model represented by a trellis of three wireless nodes.
[0012] Figure 7 is a schematic diagram of an example process for determining probabilities when determining the location of motion detected by three wireless links in a wireless communication network.
[0013] Figure 8 is a schematic diagram of an example wireless communication network, where the dashed arrows indicate potential transitions of the detected motion between wireless nodes.
[0014] Figure 9 is a flowchart showing another example process for determining the location of movement detected by a wireless communication device in a wireless communication network.
[0015] Figure 10 is a flowchart showing an additional example process for determining the location of movement detected by a wireless communication device in a wireless communication network. DETAILED DESCRIPTION
[0016] In some aspects described herein, information from multiple wireless communication devices that communicate wirelessly with each other can be used to detect the location of movement in a space (e.g., a specific room in a house where a person is moving, a specific floor or quadrant of a building where a person is moving, etc.).
[0017] For example, wireless signals received at respective wireless communication devices in a wireless communication network can be analyzed to determine channel information for different communication links in the network (between each pair of wireless communication devices in the network). The channel information can represent the physical medium for applying a transfer function to the wireless signals passing through the space. In some instances, the channel information includes channel response information. Channel response information can refer to known channel attributes of a communication link and can describe how a wireless signal propagates from a transmitter to a receiver, thereby representing a combined effect such as scattering, fading, and power attenuation within the space between the transmitter and the receiver. In some instances, the channel information includes beamforming state information. Beamforming (or spatial filtering) can refer to a signal processing technique used in a multi-antenna (multiple-input / multiple-output (MIMO)) radio system for directional signal transmission or reception. Beamforming can be achieved by combining elements in an antenna array such that signals at a particular angle experience constructive interference while other signals experience destructive interference. Beamforming can be used at both the transmitting end and the receiving end to achieve spatial selectivity. In some cases (e.g., the IEEE 802.11ac standard), the transmitter uses a beamforming steering matrix. The beamforming steering matrix can include a mathematical description of how the antenna array should use each of its individual antenna elements to select the spatial path for transmission. Although certain aspects are described herein with respect to channel response information, beamforming state information or beamformer steering matrix state can also be used in the described aspects.
[0018] The channel information for each communication link can be analyzed (e.g., by a hub device or other device in the network, or a remote device communicatively coupled to the network) to detect whether movement has occurred in the space, to determine the relative location of the detected movement, or both. In some aspects, the channel information for each communication link can be analyzed to detect the presence or absence of an object, for example, when no movement is detected in the space.
[0019] In some implementations, a wireless communication network may include a wireless mesh network. A wireless mesh network may refer to a decentralized wireless network in which nodes (e.g., wireless communication devices) communicate directly in a peer-to-peer manner without the use of a central access point, base station, or network controller. A wireless mesh network may include mesh clients, mesh routers, or mesh gateways. In some instances, the wireless mesh network is based on the IEEE 802.11s standard. In some instances, the wireless mesh network is based on Wi-Fi ad-hoc or another standardized technology. Examples of commercially available wireless mesh networks include Wi-Fi systems sold by Google, Eero, and other companies.
[0020] In some example wireless communication networks, each node is connected to one or more other nodes by one or more bi-directional links. Each node may analyze the wireless signals it receives to identify perturbations or interferences on the respective links. The interference on each link may be represented as a motion indication value, e.g., may be represented as a scalar that can be normalized. The link interference values from the nodes in the wireless communication network may be used to determine the probability of motion at the locations associated with the respective nodes. For example, the probability of motion at each node may be used to determine which node has the highest probability of motion near it, and that node may be identified as the node around which motion has occurred. For this recursive calculation of probability, the analysis may be in the context of a Bayesian estimation framework. The probability framework offers many technical advantages, e.g., providing recursive estimation and thus eventually converging to the correct result, simple logic without conditions for each special case, more accurate and robust performance (e.g., for artifacts), and others.
[0021] Additionally, physical insights regarding the motion detection system may inform the Bayesian estimation framework for detecting the location of motion. For example, when the motion generating the excitation is closer to the receiver node, the relative magnitude of the excitation on the link (between the transmitter node and the receiver node) may be greater. Thus, as an initial probability estimate of where the motion has occurred, the highest probability may be assigned to the receiver node on the wireless link associated with the highest motion indication value. This initial probability estimate may be combined with a conditional probability distribution (e.g., based on prior motion data) to produce a recursively refined probability estimate according to the Bayesian framework. As another example, in certain contexts, the likelihood of motion transferring between different locations may be higher or lower than the likelihood of motion remaining at a single location. Thus, the location transition probability may be incorporated into the Bayesian framework. For example, a transition probability matrix may be combined with the initial probability estimate and the conditional probability distribution to produce a recursively refined probability estimate according to the Bayesian framework.
[0022] Figure 1FIG. 0 shows an example wireless communication system 100. The example wireless communication system 100 includes three wireless communication devices: a first wireless communication device 102A, a second wireless communication device 102B, and a third wireless communication device 102C. The example wireless communication system 100 may include additional wireless communication devices 102 and / or other components (e.g., one or more network servers, network routers, network switches, cables, or other communication links, etc.).
[0023] The example wireless communication devices 102A, 102B, 102C may operate in a wireless network, for example, according to a wireless network standard or another type of wireless communication protocol. For example, the wireless network may be configured to operate as a wireless local area network (WLAN), a personal area network (PAN), a metropolitan area network (MAN), or another type of wireless network. Examples of WLANs include networks configured to operate according to one or more of the 802.11 family of standards developed by the IEEE (e.g., Wi-Fi networks), etc. Examples of PANs include networks that operate according to short-range communication standards (e.g., Bluetooth near-field communication (NFC), ZigBee), as well as millimeter-wave communication, etc.
[0024] In some implementations, the wireless communication devices 102A, 102B, 102C may be configured to communicate in a cellular network, for example, according to a cellular network standard. Examples of cellular networks include networks configured according to the following standards: 2G standards such as Global System for Mobile Communications (GSM) and Enhanced Data Rates for GSM Evolution (EDGE) or EGPRS; 3G standards such as Code Division Multiple Access (CDMA), Wideband Code Division Multiple Access (WCDMA), Universal Mobile Telecommunications System (UMTS), and Time Division-Synchronous Code Division Multiple Access (TD-SCDMA); 4G standards such as Long-Term Evolution (LTE) and LTE-Advanced (LTE-A); and 5G standards; etc. In Figure 1 the example shown, the wireless communication devices 102A, 102B, 102C may be or may include standard wireless network components. For example, the wireless communication devices 102A, 102B, 102C may be commercially available Wi-Fi devices.
[0025] In some cases, the wireless communication devices 102A, 102B, 102C can be Wi-Fi access points or another type of wireless access point (WAP). The wireless communication devices 102A, 102B, 102C can be configured to perform one or more operations as described herein, and the one or more operations are embedded on these wireless communication devices as instructions (e.g., software or firmware). In some cases, one or more of the wireless communication devices 102A, 102B, 102C are nodes of a wireless mesh network, such as a commercially available mesh network system (e.g., Google Wi-Fi, Eero Wi-Fi system, etc.). In some cases, another type of standard or traditional Wi-Fi transceiver device can be used. The wireless communication devices 102A, 102B, 102C can be implemented without Wi-Fi components; for example, other types of wireless protocols (standard or non-standard) used for wireless communication can be used for motion detection.
[0026] In Figure 1 In the example shown, the wireless communication devices (e.g., 102A, 102B) transmit wireless signals on a communication channel (e.g., according to a wireless network standard, a motion detection protocol, a presence detection protocol, or other standard or non-standard protocol). For example, the wireless communication device can generate a motion detection signal for transmission to detect space to detect the motion or presence of an object. In some implementations, the motion detection signal can include standard signaling or communication frames that include standard pilot signals used in channel sounding (e.g., channel sounding for beamforming according to the IEEE802.11ac-2013 standard). In some cases, the motion detection signal includes a reference signal known to all devices in the network. In some instances, one or more of the wireless communication devices can process motion detection signals that are based on signals received through the motion detection signals transmitted through space. For example, based on the detected changes (or lack of these changes) in the communication channel, the motion detection signals can be analyzed to detect the motion of an object in space, the lack of motion in space, or the presence or absence of an object in space when lack of motion is detected.
[0027] A wireless communication device (e.g., 102A, 102B) that transmits a motion detection signal may be referred to as a source device. In some cases, the wireless communication devices 102A, 102B may broadcast a wireless motion detection signal (e.g., as described above). In other cases, the wireless communication devices 102A, 102B may send wireless signals addressed to another wireless communication device 102C and other devices (e.g., user equipment, client devices, servers, etc.). The wireless communication device 102C and other devices (not shown) may receive the wireless signals transmitted by the wireless communication devices 102A, 102B. In some cases, the wireless signals transmitted by the wireless communication devices 102A, 102B are periodically repeated, e.g., according to a wireless communication standard or otherwise.
[0028] In some examples, the wireless communication device 102C, which may be referred to as a sensor device, processes the wireless signals received from the wireless communication devices 102A, 102B to detect the motion or lack of motion of an object in the space accessed by the wireless signals. In some examples, another device or computing system processes the wireless signals received by the wireless communication device 102C from the wireless communication devices 102A, 102B to detect the motion or lack of motion of an object in the space accessed by the wireless signals. In some cases, when a lack of motion is detected, the wireless communication device 102C (or another system or device) processes the wireless signals to detect the presence or absence of an object in the space. In some instances, the wireless communication device 102C (or another system or device) may perform one or more operations as described with respect to Figure 6 or in the example methods for Figure 8 or perform another type of processing for detecting motion, detecting a lack of motion, or detecting the presence or absence of an object when a lack of motion is detected. In other examples, e.g., the wireless communication system 100 may be modified such that the wireless communication device 102C may transmit wireless signals, e.g., as a source device, and the wireless communication devices 102A, 102B may process the wireless signals from the wireless communication device 102C, e.g., as sensor devices, to detect motion, detect a lack of motion, or detect presence when no motion is detected. That is, in some cases, each of the wireless communication devices 102A, 102B, 102C may be configured as a source device, a sensor device, or both.
[0029] Wireless signals used for motion and / or presence detection can include, for example, beacon signals (e.g., Bluetooth beacons, Wi-Fi beacons, other wireless beacon signals), pilot signals (e.g., pilot signals used for channel sounding such as in beamforming applications according to the IEEE 802.11ac-2013 standard), or another standard signal generated for other purposes according to a wireless network standard, or a non-standard signal (e.g., random signal, reference signal, etc.) generated for motion and / or presence detection or other purposes. In some cases, the wireless signals used for motion and / or presence detection are known to all devices in the network.
[0030] In some examples, the wireless signal can propagate through an object (e.g., a wall) before or after interacting with a moving object, which can enable the detection of the movement of the moving object without a line of sight between the moving object and the transmitting or receiving hardware. In some cases, when the wireless signal is received by a wireless communication device (e.g., 102C), it can indicate a lack of motion in the space, e.g., the object is not moving or has stopped moving in the space. In some cases, when the wireless signal is received by a wireless communication device (e.g., 102C), it can indicate the presence of an object in the space when a lack of motion is detected. Conversely, the wireless signal can indicate the absence of an object in the space when a lack of motion is detected. For example, based on the received wireless signal, the third wireless communication device 102C can generate motion data, presence data, or both. In some instances, the third wireless communication device 102C can communicate the motion detection and / or presence data to another device or system such as a security system, which can include a control center for monitoring movement within a space (such as a room, building, outdoor area, etc.).
[0031] In some implementations, the wireless communication devices 102A, 102B can be configured to transmit motion detection signals (e.g., as described above) on a wireless communication channel separate from the wireless network traffic signal (e.g., a frequency channel or a coding channel). For example, the third wireless communication device 102C can be aware of the modulation applied to the payload of the motion detection signal and the type of data or data structure in the payload, which can reduce the amount of processing performed by the third wireless communication device 102C for motion and presence detection. The header can include additional information such as, for example, an indication of whether another device in the communication system 100 has detected motion or a lack of motion, whether another device in the communication system 100 has detected the presence of an object, an indication of the modulation type, the identity of the device transmitting the signal, etc.
[0032] In Figure 1In the example shown, the wireless communication system 100 is illustrated as a wireless mesh network in which there are wireless communication links between respective ones of the wireless communication devices 102 in the corresponding wireless communication devices 102. In the example shown, the wireless communication link between the third wireless communication device 102C and the first wireless communication device 102A can be used to detect the first motion detection area 110A, the wireless communication link between the third wireless communication device 102C and the second wireless communication device 102B can be used to detect the second motion detection area 110B, and the wireless communication link between the first wireless communication device 102A and the second wireless communication device 102B can be used to detect the third motion detection area 110C. In some instances, each wireless communication device 102 can be configured to detect motion, detect the absence of motion, and / or detect the presence or absence of an object when no motion is detected in each motion detection area 110 to which the device is connected by processing received signals based on wireless signals transmitted by the wireless communication device 102 through the motion detection area 110. For example, when a person 106 moves in the first motion detection area 110A and the third motion detection area 110C, the wireless communication devices 102 can detect the motion based on the signals they receive based on the wireless signals transmitted through the respective motion detection areas 110. For example, the first wireless communication device 102A can detect the motion of the person in the first motion detection area 110A and the third motion detection area 110C, the second wireless communication device 102B can detect the motion of the person 106 in the third motion detection area 110C, and the third wireless communication device 102C can detect the motion of the person 106 in the first motion detection area 110A. In some cases, the absence of motion of the person 106 can be detected in the respective motion detection areas 110A, 110B, 110C and in other cases the presence of the person 106 can be detected when it is not detected that the person 106 is moving.
[0033] In some instances, the motion detection area 110 can include, for example, air, solid material, liquid, or another medium through which a wireless electromagnetic signal can propagate. In Figure 1In the example shown, the first motion detection area 110A provides a wireless communication channel between the first wireless communication device 102A and the third wireless communication device 102C, the second motion detection area 110B provides a wireless communication channel between the second wireless communication device 102B and the third wireless communication device 102C, and the third motion detection area 110C provides a wireless communication channel between the first wireless communication device 102A and the second wireless communication device 102B. In some aspects of operation, wireless signals transmitted on a wireless communication channel (separate from or shared with the wireless communication channel used for network traffic) are used to detect the movement or lack of movement of an object in space and can be used to detect the presence (or absence) of an object in space when a lack of movement is detected. The object can be any type of static or movable object and can be living or inanimate. For example, the object can be a human (e.g., Figure 1 the person 106 shown), an animal, an inorganic object, or another device, apparatus, or assembly, an object that defines all or part of the boundary of the space (e.g., a wall, door, window, etc.), or another type of object. In some implementations, when movement of the object is not detected, the motion information from the wireless communication device can trigger further analysis to determine the presence or absence of the object.
[0034] In some implementations, the wireless communication system 100 can be or can include a motion detection system. The motion detection system can include one or more of the wireless communication devices 102A, 102B, 102C and possibly other components. One or more of the wireless communication devices 102A, 102B, 102C in the motion detection system can be configured for motion detection, presence detection, or both. The motion detection system can include a database for storing signals. One of the wireless communication devices 102A, 102B, 102C of the motion detection system can operate as a central hub or server for processing received signals and other information to detect motion and / or presence. The storage of data (e.g., in a database), and / or the determination of motion, lack of motion (e.g., steady state), or presence detection can be performed by the wireless communication device 102, or in some cases, by another device in the wireless communication network or cloud (e.g., by one or more remote devices).
[0035] Figure 2A and 2B is a diagram showing example wireless signals communicating between the wireless communication devices 204A, 204B, 204C in a motion detection system. The wireless communication devices 204A, 204B, 204C can be, for example, Figure 1The wireless communication devices 102A, 102B, 102C shown, or can be other types of wireless communication devices. Examples of wireless communication devices include wireless mesh devices, fixed wireless client devices, mobile wireless client devices, etc.
[0036] In some cases, one or more combinations of the wireless communication devices 204A, 204B, 204C can form a dedicated motion detection system, or can be part of a dedicated motion detection system. For example, as part of a dedicated motion detection system, one or more of the wireless communication devices 204A, 204B, 204C can be configured for motion detection, presence detection, or both in the motion detection system. In some cases, one or more combinations of the wireless communication devices 204A, 204B, 204C can be an ad - hoc motion detection system that also performs other types of functions, or can be part of that ad - hoc motion detection system.
[0037] The example wireless communication devices 204A, 204B, 204C can transmit and / or receive wireless signals through the space 200. The example space 200 can be completely or partially enclosed or open at one or more boundaries of the space 200. The space 200 can be or can include the interior of a room, multiple rooms, a building, an indoor area, or an outdoor area, etc. In the example shown, the first wall 202A, the second wall 202B, and the third wall 202C at least partially enclose the space 200.
[0038] In Figure 2A and Figure 2B In the example shown, the first wireless communication device 204A is operable to repeatedly (e.g., periodically, intermittently, at a predetermined, non - predetermined, or random interval, etc.) transmit a wireless motion detection signal, for example, as a source device. The second wireless communication device 204B and the third wireless communication device 204C can be used, for example, as sensor devices to receive signals based on the motion detection signal transmitted by the wireless communication device 204A. The motion detection signal can be formatted as described above. For example, in some implementations, the motion detection signal includes standard signaling or communication frames that include standard pilot signals used in channel sounding (e.g., channel sounding for beamforming according to the IEEE802.11ac - 2013 standard). Each of the wireless communication devices 204B, 204C has an interface, a modem, a processor, or other components configured to process the received motion detection signal to detect the motion or lack of motion of an object in the space 200. In some instances, each of the wireless communication devices 204B, 204C can have an interface, a modem, a processor, or other components configured to detect the presence or absence of an object in the space 100 (e.g., whether the space is occupied or unoccupied) when a lack of motion is detected.
[0039] As shown in the figure, at Figure 2A the initial time t = 0 in Figure 2B , the object is at the first position 214A, and at Figure 2A and Figure 2B in , the moving object in the space 200 is represented as a human, but the moving object can be another type of object. For example, the moving object can be an animal, an inorganic object (e.g., a system, a device, an equipment, or an assembly), an object for defining all or part of the boundary of the space 200 (e.g., a wall, a door, a window, etc.), or another type of object. For this example, the representation of the movement of the object 214 only indicates that the location of the object changes within the space 200 between time t = 0 and time t = 1.
[0040] As Figure 2A and Figure 2B shown, multiple example paths of the wireless signal transmitted from the first wireless communication device 204A are shown by dashed lines. Along the first signal path 216, the wireless signal is transmitted from the first wireless communication device 204A and reflected from the first wall 202A towards the second wireless communication device 204B. Along the second signal path 218, the wireless signal is transmitted from the first wireless communication device 204A and reflected from the second wall 202B and the first wall 202A towards the third wireless communication device 204C. Along the third signal path 220, the wireless signal is transmitted from the first wireless communication device 204A and reflected from the second wall 202B towards the third wireless communication device 204C. Along the fourth signal path 222, the wireless signal is transmitted from the first wireless communication device 204A and reflected from the third wall 202C towards the second wireless communication device 204B.
[0041] In Figure 2A , along the fifth signal path 224A, the wireless signal is transmitted from the first wireless communication device 204A and reflected from the object at the first position 214A towards the third wireless communication device 204C. Between the time t = 0 in Figure 2A and Figure 2B the time t = 1 in , the surface of the object moves from the first position 214A to the second position 214B (e.g., a distance away from the first position 214A) in the space 200. In Figure 2B , along the sixth signal path 224B, the wireless signal is transmitted from the first wireless communication device 204A and reflected from the object at the second position 214B towards the third wireless communication device 204C. Since the object moves from the first position 214A to the second position 214B, the sixth signal path 224B shown in Figure 2B is longer than the Figure 2AThe fifth signal path 224A shown is long. In some examples, signal paths may be added, removed, or otherwise modified due to the movement of an object in space.
[0042] Figure 2A and Figure 2B The example wireless signals shown may experience attenuation, frequency shift, phase shift, or other effects through their respective paths and may have components that propagate in another direction, for example, through walls 202A, 202B, and 202C. In some examples, the wireless signals are radio frequency (RF) signals. The wireless signals may include other types of signals.
[0043] In Figure 2A and Figure 2B the example shown, the first wireless communication device 204A may be configured as a source device and may repeatedly transmit wireless signals. For example, Figure 2A shows a wireless signal being transmitted from the first wireless communication device 204A during a first time t = 0. The transmitted signal may be transmitted continuously, periodically, at random or intermittent times, etc., or in a combination of these ways. For example, the transmitted signal may be transmitted one or more times between time t = 0 and Figure 2B a subsequent time t = 1 or any other subsequent time shown. The transmitted signal may have multiple frequency components in a frequency bandwidth. The transmitted signal may be transmitted from the first wireless communication device 204A in an omnidirectional manner, in a directional manner, or otherwise. In the example shown, the wireless signal travels through multiple respective paths in space 200, and the signals along each path may become attenuated due to path loss, scattering, or reflection, etc., and may have a phase offset or a frequency offset.
[0044] As Figure 2A and Figure 2B shown, the signals from the various paths 216, 218, 220, 222, 224A, and 224B are combined at the third wireless communication device 204C and the second wireless communication device 204B to form a received signal. Due to the effect of the multiple paths in space 200 on the transmitted signal, space 200 may be represented as a transfer function (e.g., a filter) that inputs the transmitted signal and outputs the received signal. In the case where an object moves in space 200, the attenuation or phase offset of the signals in the affected signal paths may change, and thus the transfer function of space 200 may change. Assuming the same wireless signal is transmitted from the first wireless communication device 204A, if the transfer function of space 200 changes, the output of this transfer function (e.g., the received signal) will also change. The change in the received signal can be used to detect the movement of the object. Conversely, in some cases, if the transfer function of the space does not change, the output of the transfer function (the received signal) does not change. The lack of a change in the received signal (e.g., a steady state) may indicate the lack of movement in space 200.
[0045] Mathematically, the transmitted signal f(t) transmitted from the first wireless communication device 204A can be described by Equation (1):
[0046]
[0047] where ω n represents the frequency of the n-th frequency component of the transmitted signal, c n represents the complex coefficient of the n-th frequency component, and t represents time. In the case where the transmitted signal f(t) is transmitted from the first wireless communication device 204A, the output signal r k (t) from path k can be described by Equation (2):
[0048]
[0049] where α n,k represents the attenuation factor (or channel response; e.g., due to scattering, reflection, and path loss) of the n-th frequency component along path k, and φ n,k represents the phase of the signal of the n-th frequency component along path k. Then, the received signal R at the wireless communication device can be described as the sum of all output signals r k (t) from all paths to the wireless communication device, which is shown in Equation (3):
[0050]
[0051] Substituting Equation (2) into Equation (3) gives the following Equation (4):
[0052]
[0053] Then, the received signal R at the wireless communication device can be analyzed. For example, using the fast Fourier transform (FFT) or another type of algorithm, the received signal R at the wireless communication device can be transformed into the frequency domain. The transformed signal can represent the received signal R as a series of n complex values, where one complex value is for each frequency component in the corresponding frequency components (n frequencies ω n ). For the frequency component at frequency ω n , the complex value Y n can be represented as follows in Equation (5):
[0054]
[0055] Given the complex value Y n of a frequency component ω n indicates that frequency component ω nThe relative magnitude and phase offset of the received signal at [location]. When an object moves in space, due to the channel response α of the space n,k constantly changes, so the complex value Y n changes. Therefore, the detected changes in the channel response (and thus the complex value Y n ) can indicate the movement of the object within the communication channel. Conversely, a stable channel response (or "steady state") indicating a lack of movement, for example, when no changes or only small changes are detected in the channel response (or the complex value Y n ). Therefore, in some implementations, the complex value Y of each device among multiple devices in a wireless mesh network can be analyzed n to detect whether movement has occurred or a lack of movement in the space through which the transmitted signal f(t) passes. In some cases, when a lack of movement is detected, the channel response can be further analyzed to determine whether an object is present in the space but not moving.
[0056] In Figure 2A and Figure 2B on the other hand, beamforming can be performed between devices based on some knowledge of the communication channel (e.g., through feedback attributes generated by the receiver), and this beamforming can be used to generate one or more steering attributes (e.g., a steering matrix) applied by the transmitter device to shape the transmitted beam / signal in one or more specific directions. Therefore, changes in the steering or feedback attributes used in the beamforming process indicate changes in the space accessed by the wireless communication system that may be caused by a moving object. For example, movement can be detected through significant changes in the communication channel over a period of time (as indicated by the channel response, or the steering or feedback attributes, or any combination thereof).
[0057] In some implementations, for example, a steering matrix can be generated at the transmitter device (beamforming transmit end) based on a feedback matrix provided by the receiver device (beamforming receive end) based on channel sounding. Since the steering matrix and the feedback matrix are related to the propagation characteristics of the channel, these matrices change as the object moves within the channel. Changes in the channel characteristics are correspondingly reflected in these matrices, and by analyzing the matrices, movement can be detected, and different characteristics of the detected movement can be determined. In some implementations, a spatial map can be generated based on one or more beamforming matrices. The spatial map can indicate the general direction of an object in space relative to the wireless communication device. In some cases, the "modes" of the beamforming matrix (e.g., the feedback matrix or the steering matrix) can be used to generate the spatial map. The spatial map can be used to detect the presence of movement in the space or to detect the location of the detected movement.
[0058] In some instances, channel information derived from a wireless signal (e.g., channel response information or beamforming status information as described above) can be used to calculate a motion indication value. For example, a set of motion indication values for a given time frame can represent the level of interference detected on respective wireless links over which a wireless signal was communicated during that time frame. In some cases, for example, the channel information can be filtered or otherwise modified to reduce the impact of noise and interference on the motion indication value. In some contexts, a higher magnitude motion indication value can represent a higher level of interference, while a lower magnitude motion indication value can represent a relatively lower level of interference. For example, each motion indication value can be a separate scalar, and the motion indication values can be normalized (e.g., to 1 (unity) or otherwise).
[0059] In some cases, the motion indication values associated with a time frame can be collectively used to make an overall determination, such as whether motion has occurred in space during that time frame, where in space motion has occurred during that time frame, and so on. For example, a motion consensus value for a time frame can indicate an overall determination regarding whether motion has occurred in space based on all (or a subset) of the motion indication values for that time frame. In some cases, a more accurate, reliable, or robust determination can be made by jointly analyzing multiple motion indication values for a time frame. And in some cases, a data set can be recursively updated to further improve, for example, the accuracy of location determination. For example, the motion indication values for each successive time frame can be used to recursively update a data set representing the conditional probabilities of detecting motion at different locations in space, and the recursively updated data set can be used to make an overall determination regarding where motion has occurred during subsequent time frames.
[0060] Figure 3 is a schematic diagram of an example wireless communication network 300 that includes a plurality of wireless nodes 302. The plurality of wireless nodes 302 can each be similar to Figure 1 and Figures 2A - 2B the wireless communication devices 102, 204. In Figure 3 three wireless nodes 302 labeled N0, N1, and N2 are depicted. However, other quantities of wireless nodes 302 are possible in the wireless communication network 300. Additionally, other types of nodes are possible. For example, the wireless communication network 300 can include one or more network servers, network routers, network switches, network repeaters, or other types of networking or computing devices.
[0061] The wireless communication network 300 includes a wireless communication channel 304 communicatively coupling each pair of wireless nodes 302. Such communicative coupling enables the exchange of wireless signals between the wireless nodes 302 within a time frame. In particular, the wireless communication channel 304 enables two-way communication between each pair of wireless nodes 302. Such communication can occur simultaneously in both directions (e.g., full duplex) or in only one direction at a time (e.g., half duplex). In some instances such as Figure 3 shown, etc., the wireless communication channel 304 communicatively couples each pair of wireless nodes 302 of a plurality of wireless nodes 302. In other instances, one or more pairs of wireless nodes 302 may lack a corresponding wireless communication channel 304.
[0062] Each wireless communication channel 304 includes two or more wireless links, which include at least one wireless link for each direction in two-way communication. In Figure 3 it, the arrows represent each individual wireless link. The arrows are labeled L ij , where the first subscript i indicates the transmitting wireless node and the second subscript j indicates the receiving wireless node. For example, wireless nodes N0 and N1 are communicatively coupled by two arrows L Figure 3 and L 01 shown in 10 . The wireless link L 01 corresponds to wireless communication along a first direction from N0 to N1, and the wireless link L 10 corresponds to wireless communication along a second, opposite direction from N1 to N0.
[0063] In some implementations, the wireless communication network 300 obtains a set of motion indication values associated with a time frame, and the set of motion indication values may include processing regarding Figures 2A - 2B the motion detection described. The set of motion indication values indicates motion detected from the wireless links in the wireless communication network. Each motion indication value is associated with a corresponding wireless link. One or more wireless links (e.g., Figure 3 one or more wireless links L 01 , L 10 , L 02 , L 20 , L 12 and L 21 ) in the wireless communication network can be used to detect motion. Each wireless link is defined between pairs of wireless communication devices (e.g., pairs of combinations of wireless nodes N0, N1, and N2) in the wireless communication network.
[0064] In some variations, the wireless communication network 300 can include a data processing device (e.g., a network server, a wireless communication device, a network router, etc.) that executes program instructions. The program instructions can cause the data processing device to assign a unique node identifier to each wireless node 302 in the wireless communication network 300. The unique node identifier can be mapped to a media access control (MAC) address value that corresponds to the MAC address (or a part thereof) associated with the wireless node. For example, Figure 3 the wireless nodes N0, N1, and N2 can be associated with the six-character portion of their respective MAC addresses, which is then mapped to a unique node identifier:
[0065] {N0, N1, N2} → {7f4440, 7f4c9e, 7f630c} → {0, 1, 2}
[0066] Here, the MAC address values 7f4440, 7f4c9e, and 7f630c are mapped to the respective unique node identifiers 0, 1, and 2. The program instructions can also cause the data processing device to associate wireless links with their respective pairs of wireless nodes via the corresponding pairs of MAC address values. The MAC address values can then be mapped to unique link identifiers to form a link table. For example, Figure 3 the wireless link L 01 、L 10 、L 02 、L 20 、L 12 and L 21 can be mapped to unique link identifiers according to the following:
[0067]
[0068] The MAC address values can be sorted from left to right to indicate the pairs of transmitting and receiving wireless nodes in the wireless link. In particular, the left MAC address value can correspond to the transmitting wireless node, and the right MAC address value can correspond to the receiving wireless node. This mapping of unique nodes and link identifiers can assist the data processing device in performing operations such as searching, sorting, and matrix manipulation during the processing of motion detection.
[0069] The program instructions can additionally cause the data processing device to poll the wireless links (or the wireless nodes 302) to obtain a motion indication value for each wireless link among a plurality of wireless links. For example, Figure 3 the wireless links of the wireless communication network 300 can report motion indication values according to a data structure such as the following:
[0070]
[0071] In this data structure, the first column corresponds to a unique link identifier of a wireless link, and the second column of the data structure corresponds to their respective motion indication values. The data structure can be an array as shown above, or some other type of data structure (e.g., a vector). Although the data structure is presented as having three significant digits for each motion indication value, other numbers of significant digits are possible for the motion indication values (e.g., 2, 5, 9, etc.).
[0072] Now refer to Figure 4 , a flowchart 400 of an example process for determining the location of motion detected by one or more than one wireless link in a wireless communication network is presented. One or more than one wireless link can be part of a plurality of wireless links defined by respective pairs of wireless nodes (such as Figure 3 wireless node 302, etc.). The wireless communication network can include data processing devices (e.g., one or more than one of the wireless nodes can be used as data processing devices). Optionally, the data processing device can be communicatively coupled to the wireless communication network via a data connection (e.g., a wireless connection, a copper wire connection, an optical fiber connection, etc.). As shown by line 402, the data processing device can receive a data structure associated with a time frame. The data structure 402 can map a plurality of wireless links to their respective motion indication values for the time frame. The plurality of wireless links can be represented by unique link identifiers in the data structure 402. However, other representations are possible. For example, the plurality of wireless links can be represented by respective pairs of unique node identifiers. In some instances, the data structure 402 can associate each unique link identifier with a corresponding pair of unique node identifiers.
[0073] The data processing device executes program instructions to generate the wireless links present in the wireless communication network during the time frame from the data structure 402. The generated wireless links and their respective motion indication values can be stored in a first memory of the data processing device (or motion detection system) that serves as a link dictionary. The link dictionary is shown by Figure 4 box 404. The link dictionary 404 is operable to track the wireless links present in the wireless communication network over consecutive time frames. For example, when a new wireless link is observed in the wireless communication network, the data processing device updates the link dictionary 404 to include the new wireless link. In another example, when an existing wireless link is no longer observed in the wireless communication network, the data processing device updates the link dictionary 404 to remove the (prior) existing wireless link. The wireless links can be represented in the link dictionary 404 by unique link identifiers, respective pairs of unique node identifiers, or both. However, other representations are possible.
[0074] The data processing device also executes program instructions to generate, from the data structure, the wireless nodes that were present in the wireless communication network during the time frame. In particular, as shown in block 406, the program instructions direct the data processing device to "split" each of the generated wireless links into the individual wireless nodes of each pair of wireless nodes. The program instructions also direct the data processing device to sort or filter through the individual wireless nodes to identify the unique wireless nodes in the wireless communication network during the time frame. Given that a single wireless node can be shared in common between two or more wireless links, the link dictionary 404 alone may not be sufficient to establish the unique wireless nodes of the wireless communication network. The unique wireless nodes can then be stored in a second memory of the data processing device (or motion detection system) that serves as a node dictionary. The node dictionary is shown by Figure 4 block 408. The node dictionary 408 is operable to maintain a list of the unique wireless nodes that were present in the wireless communication network over successive time frames. The unique wireless nodes can be represented in the node dictionary 408 by corresponding unique node identifiers. However, other representations are possible.
[0075] As shown in block 410, a node counter and a persistence calculator can be communicatively coupled to the node dictionary. In many instances, the node counter and the persistence calculator 410 are part of the data processing device. The node counter and the persistence calculator 410 are operable to track the wireless nodes that were present in the wireless communication network over successive time frames and to update the node dictionary 408 accordingly. Such tracking can include timing the appearance (or disappearance) of one or more wireless nodes. For example, when a new wireless node connects to the wireless communication network, the node counter and the persistence calculator 410 update the node dictionary 408 to include the new wireless node. In another example, when a wireless node disconnects from the wireless communication network, the node counter and the persistence calculator 410 update the node dictionary 408 to remove the disconnected wireless node. Such an update can occur after a predetermined number of time frames in which the wireless node was not connected to the wireless communication network.
[0076] The data processing device additionally executes program instructions to change one or more than the size of the set of motion indication values so that each motion indication value refers to a common scale of wireless link sensitivity. More specifically, the data processing device can be partially used as a link strength estimator (such as shown in block 412, etc.) and a link equalizer (such as shown in block 414, etc.). The link strength estimator 412 and the link equalizer 414 receive the identities of the wireless links present in the wireless communication network during a time frame and their respective motion indication values from the link dictionary 404. The link equalizer 414 also receives the equalization values for each of the identified wireless links from the link strength estimator 412. The link strength estimator 412 and the link equalizer 414 operate cooperatively to make the motion indication values of each of the identified wireless links refer to a common scale of wireless link sensitivity.
[0077] In operation, the link strength estimator 412 estimates the link strength of these wireless links by determining the statistical properties of the respective motion indication values of the identified wireless links. The statistical properties can be the maximum motion indication value, the deviation of the motion indication value from the average value, or the standard deviation. Other statistical properties are also possible. In some instances, the link strength estimator 412 tracks the statistical properties of one or more than one corresponding motion indication value within consecutive time frames. The statistical properties can enable the link strength estimator 412 to measure the excitation strength and the corresponding dynamic range of the wireless link. Such measurements can take into account the unique sensitivity of each of the identified wireless links. The link strength estimator 412 passes the determined statistical values to the link equalizer 414, which in turn uses these statistical values as the equalization values for the corresponding motion indication values. In particular, the link equalizer 414 divides the motion indication value of each of the identified wireless links by its respective equalization value (or statistical property) to generate a normalized motion indication value. In this way, the link equalizer 414 "equalizes" the identified wireless links so that their corresponding responses to motion or other events can be compared independently of sensitivity.
[0078] For example, due to motion or another event, a first subset of wireless links may become strongly excited and exhibit a correspondingly high dynamic range (or sensitivity). Due to the same motion or event, a second subset of wireless links may become weakly excited and exhibit a correspondingly low dynamic range (or sensitivity). Such excitation and the corresponding dynamic range are reflected in the motion indication values received by the link strength estimator 412 and the link equalizer 414 from the link dictionary 404. However, the link strength estimator 412 and the link equalizer 414 cooperate to normalize the received motion indication values to a common scale of wireless link sensitivity. This normalization ensures that the comparison of the first set and the second set of wireless links within multiple wireless links does not overweight the first set of wireless links relative to the second set. Other possible benefits are normalization.
[0079] The program instructions can further cause the data processing device to identify a subset of the wireless links based on the magnitude of the associated motion indication value of the wireless link relative to other motion indication values in the set of motion indication values. In particular, the data processing device can receive the identified wireless links and their respective normalized motion indication values from the link equalizer 414 and store this data in a memory associated with a likelihood calculator (such as shown in block 416, etc.). As part of this operation, the data processing device can also receive a list of unique wireless nodes from the node dictionary 408 and store this list in a memory associated with the likelihood calculator 416. The data processing device can partially function as the likelihood calculator 416.
[0080] The likelihood calculator 416 identifies a subset of the wireless links based on the magnitude of the respective normalized motion indication value of the wireless link relative to other normalized motion indication values. To this end, the likelihood calculator 416 can sort or filter the normalized motion indication values received from the link equalizer 414 to identify a subset of the wireless links. For example, the link calculator 416 can sort the data structure according to magnitude to determine the highest normalized motion indication value, thereby generating a subset of the wireless links with a single wireless link. In another example, the link calculator 416 can sort the data structure according to magnitude to determine the three highest normalized motion indication values, thereby generating a subset of the wireless links with three wireless links. Other quantities of wireless links are also possible for the subset of the wireless links.
[0081] The link calculator 416 also generates a count value for the wireless nodes connected to the wireless communication network during the time frame. The count value for each wireless node indicates how many of the wireless links in the subset of the wireless links are defined by the wireless node. For example, and with reference to Figure 3 , the link calculator 416 can identify a subset of the wireless links based on the three highest normalized motion indication values:
[0082]
[0083] As shown below, the unique link identifiers 3, 4, and 5 correspond to the wireless nodes N0, N1, and N2:
[0084]
[0085] Here, wireless node N0 helps define one wireless link in a subset of wireless links, i.e., N2→N0. Similarly, wireless node N1 helps define two wireless links in a subset of wireless links, i.e., N1→N2 and N2→N1, and wireless node N2 helps define three wireless links in a subset of wireless links, i.e., N1→N2, N2→N0, and N2→N1. Thus, link calculator 416 generates count values 1, 2, and 3 for respective wireless nodes N0, N1, and N2. In this example, all wireless nodes of the wireless communication network help define wireless links in a subset of wireless links. However, for wireless nodes that do not help define wireless links in a subset of wireless links, link calculator 416 may generate a count value of 0. In some instances, link calculator 416 generates a count value data structure that associates each wireless node connected to the wireless communication network during a time frame with its respective count value. For this example, link calculator 416 may generate the following count value data structure:
[0086]
[0087] Although the wireless nodes in the count value data structure are represented by label N i (where i represents the number of the wireless node), other representations (e.g., paired partial MAC addresses) are also possible.
[0088] Link calculator 416 further generates a probability vector based on the count values including values for each wireless node connected to the wireless communication network during a time frame. The value of each connected wireless node represents the probability of movement at the connected wireless node during the time frame. In particular, these values may represent the probability that movement at (or near) a corresponding wireless node induces link activity along a specific wireless link. In some instances, these values sum to 1. In these instances, these values may be probability values. As Figure 4 shown, link calculator 416 passes the generated probability vector to the Bayesian update engine.
[0089] In some instances, the value of each connected wireless node is a likelihood value assigned from a link likelihood graph. The likelihood values may not need to sum to 1. The link likelihood graph associates likelihood values with count values of various magnitudes. The likelihood values and their associations may be pre-determined and may be further stored in the memory of link calculator 416 (or the data processing device). For example, if a wireless node is strongly represented in a subset of wireless links, the probability that movement detected by the wireless communication network is at or near the wireless node will be relatively high. Thus, the link likelihood graph may associate a high likelihood value with a proportionally high count value. However, other associations of likelihood values and count values are also possible.
[0090] In some variations, the probability vector is represented by the probability vector P(L j |N i ), and this probability vector P(L j |N i ) includes probability values based on the link likelihood graph. The probability values correspond to the probability of the wireless link L j exhibiting link activity taking into account the movement at the wireless node N i . For example, and referring to Figure 3 , the link calculator 416 can generate a subset of wireless links that includes only the wireless link L 02 with the unique link identifier "1". Thus, P(L j |N i ) = P(1|N i ) = {P(1|0), P(1|1), P(1|2)}. Here, P(1|0) corresponds to the probability that the movement at wireless node 0 induces link activity along wireless link 1, P(1|1) corresponds to the probability that the movement at wireless node 1 induces link activity along wireless link 1, and P(1|2) corresponds to the probability that the movement at wireless node 2 induces link activity along wireless link 1. These probability values can be generated from the likelihood values of the link likelihood graph. For example, the link calculator 416 can assign likelihood values to each of the wireless nodes 0, 1, and 2 based on the corresponding count values. Then, the link calculator 416 can normalize the assigned likelihood values to 1, thereby generating corresponding probability values for each wireless node.
[0091] Figure 5A FIG. shows a flow chart of an example process in which a link calculator generates a probability vector based on multiple wireless links. Figure 5A FIG. depicts the link calculator considering three wireless links. However, other numbers of wireless links are also possible. To consider multiple wireless links, the link calculator depends on the movement indication values in addition to depending on the highest movement indication value. This process makes intuitive sense. If interference occurs near a wireless node, then that interference has the potential to affect all wireless links associated with that wireless node. The link calculator can accept all the stimulated wireless links and check the occurrence frequency of a particular wireless node among these stimulated wireless links. In this instance, movement is most likely to occur at the most common wireless node. The likelihood calculator employs the M highest stimulated wireless links (e.g., M = 3) and passes these wireless links to a mathematical function. The mathematical function splits each wireless link to create a set of tuples and then determines the frequency of each wireless node in the given set of tuples. The mathematical function also maps the so - obtained frequency of each wireless node to a likelihood value through the link likelihood graph. Then a probability vector is output for the Bayesian update engine.
[0092] Figure 5BShows an example mathematical function for generating a probability vector using a likelihood calculator. Figure 5B Shows the multi-link likelihood processing utilized by the Figure 5A likelihood calculator in t , and breaks down and explains the example mathematical function in more detail. The wireless link at a certain moment is called L
[0093] Now return to reference Figure 4 , the data processing device also executes program instructions to transfer the list of unique wireless nodes present in the wireless communication network during the time frame from the node dictionary 408 to the probability mapper / redistributor. The data processing device can partially function as a probability mapper / redistributor such as shown in block 418 etc. As part of this operation, the data processing device can receive a probability vector (e.g., a prior probability vector) generated before the time frame. The probability mapper / redistributor 418 is operable to determine changes in wireless connections between time frames (such as between a prior time frame and a subsequent time frame etc.). Changes in wireless connections can include one or both of the following items: [1] wireless nodes that have connected to the wireless communication network between the prior time frame and the subsequent time frame; and [2] wireless nodes that have disconnected from the wireless communication network between the prior time frame and the subsequent time frame. To determine changes in wireless connections, the probability mapper / redistributor 418 can compare the list of unique wireless nodes in the time frame with the wireless nodes represented in the probability vector generated before the time frame.
[0094] The probability mapper / redistributor 418 is also operable to generate an initialization probability vector among the plurality of initialization probability vectors 420 by changing the value of the prior probability vector based on changes in the wireless connection. For example, a change in the wireless connection can include a wireless node that has disconnected from the wireless communication network between a prior time frame and a subsequent time frame. In such a case, the probability mapper / redistributor 418 can generate an initialization probability vector by allocating the value of the prior probability vector associated with the disconnected wireless node to the values of the wireless nodes that remain connected to the wireless communication network. Such an allocation can occur at a ratio defined by the values of the remaining wireless nodes. However, other allocation schemes are possible. In another example, a change in the wireless connection can include a wireless node that has connected to the wireless communication network between a prior time frame and a subsequent time frame. In such a case, the probability mapper / redistributor 418 generates an initialization probability vector by adding a value to the prior probability vector of the newly connected wireless node.
[0095] The probability mapper / redistributor 418 is operable to generate other types of initialization probability vectors corresponding to reset states. For example, if the wireless communication network (or motion detection system) cold starts, the probability mapper / redistributor 418 can generate an initialization probability vector by assigning equal probability values to all the unique wireless nodes listed in the node dictionary 408. In another example, if the wireless communication network (or motion detection system) warm starts, the probability mapper / redistributor 418 can generate an initialization probability vector based on the probability values corresponding to the time frame when motion was last detected. In yet another example, if the wireless communication network (or motion detection system) is operable but later reset, the probability mapper / redistributor 418 can utilize the prior probability vector as the initialization probability vector. In yet another example, if a user (e.g., via a mobile software application) notifies the wireless communication network (or motion detection system) that he / she is about to leave the monitored residence, the probability mapper / redistributor 418 can generate an initialization probability vector having probability values biased towards the wireless nodes at the entry point (e.g., the front door).
[0096] The probability mapper / redistributor 418 passes the plurality of initialization probability vectors 420 to a multiplexer (or mux) that also receives the prior probability vector from the motion model. The data processing device can partially function as a multiplexer (such as shown in block 422, etc.). The multiplexer 422 is operable to select one of the plurality of initialization probability vectors or the prior probability vector based on a set of motion indication values, the configuration of the wireless communication network, or both. Then, as Figure 4As shown, the selected probability vector is passed to the Bayesian update engine. To determine which probability vector to select, the multiplexer 422 receives a control input from a motion persistence calculator (shown as block 424). The motion persistence calculator 424 receives a data structure 422 that includes a set of motion indication values, and also receives the configuration of the wireless communication network 426. Based on these inputs, the motion persistence calculator 424 generates a control signal that, when received by the multiplexer 422, selects which one of the plurality of initialization probability vectors and the prior probability vector to pass to the Bayesian update engine. If motion is continuously detected via the wireless communication network (or the motion detection system), the motion persistence calculator 424 may keep passing the prior probability vector through the multiplexer 422. Conversely, if motion is detected after a period of absence, the motion persistence calculator 424 may pass the initialization probability vector corresponding to the reset state through the multiplexer 422. The data processing device may also be partially used as the motion persistence calculator 424.
[0097] In some implementations, the data processing device uses the selected probability vector and the set of motion indication values associated with a second subsequent time frame to identify the location associated with the motion that occurred during that subsequent time frame. In particular, program instructions are executed to generate a third probability vector that includes a third value for each wireless node based on the first probability vector received from the likelihood calculator 416 and the second probability vector received from the multiplexer 422. In particular, as shown in block 428, the Bayesian update engine generates the third probability vector. The third value of the third probability vector represents the probability of motion at each wireless node during the time frame.
[0098] In some variations, the second probability vector is represented by the probability vector P(N i ), which includes probability values (or second values) representing the probability of motion at the wireless node N i . The probability of motion at the wireless node N i for P(N i ) is independent of the link activity along any of the wireless links in the wireless link L i , and may also be independent of other factors. For example, and referring to j Figure 3 , the program instructions may cause the data processing device to define P(N i ) = {P(0), P(1), P(2)}. Here, the probability values of P(N i ) are P(0), P(1), and P(2), which respectively correspond to the probabilities of motion at (or near) the wireless nodes 0, 1, and 2. i i ) are P(0), P(1), and P(2), which respectively correspond to the probabilities of motion at (or near) the wireless nodes 0, 1, and 2.
[0099] In some variations, the third probability vector is represented by P(N i |L j ), where N i corresponds to a unique node identifier, and L j corresponds to a unique link identifier. Considering the link activity along the wireless link L j , the third probability vector P(N i |L j ) includes a third value representing the probability of movement at the wireless node Ni. For example, if L j corresponds to Figure 3 the wireless link 1 in the wireless communication network 300, each third value can be represented by P(0|1), P(1|1), and P(2|1), where P(N i |1) = {P(0|1), P(1|1), P(2|1)}. Here, P(0|1) corresponds to the probability that the link activity along the wireless link 1 is generated by the movement at the wireless node 0, P(1|1) corresponds to the probability that the link activity along the wireless link 1 is generated by the movement at the wireless node 1, and P(2|1) corresponds to the probability that the link activity along the wireless link 1 is generated by the movement at the wireless node 2.
[0100] The third probability vector represented by P(N i |L j ) can be determined by the Bayesian update engine 428 according to Equation (1):
[0101]
[0102] where: P(L j |N i ) and P(N i ) are used for the first probability vector from the likelihood calculator 416 and the second probability vector from the multiplexer 422, respectively, as described above. Equation (1) can enable the wireless communication network 300 (or the data processing device) to use Bayesian statistics to determine the location of the detected movement. For example, if in Figure 3 the wireless communication network 300 the subset of wireless links only includes the wireless link 1, and based on the link likelihood graph P(1|N i ) = {1, 0.2, 0.9}, then the program instructions can enable the data processing device to calculate the third probability vector P(N i |1) according to the following:
[0103]
[0104] Such a calculation results in P(N i|1) = {0.476, 0.095, 0.429}, where the third value totals to 1, i.e., 0.476 + 0.095 + 0.429 = 1. Thus, P(N i |1) can represent a probability distribution normalized to 1. In P(N i |1), P(0|1) corresponds to the maximum value among the third values, which indicates that the probability that the movement detected by the wireless communication network 300 along the wireless link 1 is located at (or near) the wireless node 0 is the highest. Based on this value P(0|1), the program instructions can cause the data processing device to look up the MAC address value of the wireless node 0 and, when found, output the result (e.g., output 7f4440).
[0105] In some implementations, the data processing device iteratively processes consecutive time frames. For example, the data processing device can repeat the following operations for each time frame through multiple iterations: obtain a set of motion indication values associated with a subsequent time frame; identify a subset of wireless links based on the magnitude of the associated motion indication values of the wireless links relative to other motion indication values in the set of motion indication values; generate a count value for the wireless nodes connected to the wireless communication network during the subsequent time frame; and generate a first probability vector based on the count value and include the values of the connected wireless nodes. In some implementations, the repeated operations include: obtaining a set of motion indication values associated with a prior time frame; generating a prior probability vector associated with the prior time frame; and generating a second probability vector by selecting one of multiple initialization probability vectors or the prior probability vector.
[0106] In some implementations, the repeated operations can include: generating a third probability vector based on a first value of the first probability vector and a second value of the second probability vector; identifying the wireless communication device associated with the highest value among the third values; and, through the operation of the data processing device, identifying the location associated with the identified wireless communication device as the location of the movement detected from the wireless signals exchanged during the subsequent time frame.
[0107] The output of the Bayesian update engine 428 can be fed into the motion model to generate a prior probability vector (or a second probability vector), which is passed to the probability mapper / redistributor 418 and the multiplexer 422. The data processing device can be partially used as a motion model (as shown in block 430). The motion model 430 can operate similar to calculating probabilities on a grid. Figure 6 A schematic diagram presenting an example motion model representing a grid using three wireless nodes is shown. At each time t, the movement can be present at any of the available wireless nodes. From time t to time t + 1 (at Figure 6Shown as t1 and t2 respectively in [the figure], the movement can remain at the same wireless node or be transferred to any other wireless node. To determine the movement at time step t+1, the probabilities of the movement existing on any wireless node in time step t are aggregated, which can include matrix-vector calculations. Now the probability of a movement occurring at n1 in time step t+1 is given by the probabilities of the following movements: the movement that occurred at n1 in the past and stayed at n1, the movement that occurred at n2 in the past and moved to n1, or the movement that occurred at n3 in the past and moved to n1. In other words, the movement at n1 in time step t+1 can be represented by a dot product. The overall operation for all three nodes at any time can be represented by the matrix-vector calculation shown. Each entry of the matrix is the transition probability of a movement occurring at N x and transferring to N y .
[0108] Figure 7 Schematic diagram of an example process for presenting probabilities when determining the location of a movement detected by three wireless links in a wireless communication network. On the far left is the initial probability vector, which assigns equal probabilities of movement to all wireless nodes in the wireless communication network. In the upper left inset, each pulse on the axis is to be read as the probability of a movement occurring at node N x . On the far right, movement indication values are received, which specify the amount of excitation on the wireless links. These values are converted into a likelihood function, which determines the likelihood of each wireless node triggering the observed link behavior. In the inset on the upper right in the middle, the link excitation likelihood plot is on the x-axis and presents a plot of the likelihood vectors for all possible wireless nodes. Using Bayes' formula, the likelihood vector and the initial probability vector are multiplied, and the resulting product is divided by a normalization constant obtained by marginalizing over all wireless nodes. This calculation takes into account the link information at time step t+1 to provide the probability of a movement at the wireless node. This probability is used to form a decision on where the movement is most likely to occur. The output probability is assigned as the new probability to the anode movement probability vector and then propagated through the movement model to prepare for the next iteration of the loop. The job of the movement model is to propagate these probabilities into the next time step based on information about the transition probabilities of transferring from N x to N y at any moment.
[0109] Now return to the reference Figure 3, the wireless communication network 300 can determine the location of the detected movement by considering the potential transfer of movement from one wireless node 302 to another wireless node 302. The potential transfer of movement can also include a transfer that remains at or adjacent to the wireless node 302. For example, the wireless communication network 300 can detect movement at or near a first wireless node arranged in the bedroom of a house. If the corresponding detection period is during a meal time (e.g., breakfast, lunch, etc.), the wireless communication network 300 can consider a transfer to a second wireless node in the kitchen of the house. In another example, if the wireless communication network 300 detects movement at or near the second wireless node during a meal time, the wireless communication network 300 can consider the detected movement that remains at or near the second wireless node during a future period within the meal time. Other criteria for potential transfer are also possible.
[0110] In some instances, the potential transfer of the detected movement includes criteria of time, location, or both. For example, if the detection period occurs at night, the probability that the detected movement transfers from the bedroom to the bathroom may be high. In contrast, the probability that the detected movement transfers to the front door may be low. A transfer probability matrix can be used to represent these differences mainly based on time. The transfer probability matrix can assign a high transfer probability to the detected movement that transfers from the bedroom to the bathroom, while assigning a low transfer probability to the detected movement that transfers from the bedroom to the front door. The transfer probability matrix can also consider the location of the detected movement. For example, the movement detected in the living room can have a similar probability of transferring to any other wireless node. This similar probability can include considerations of time (e.g., night, day, etc.).
[0111] Figure 8 is a schematic diagram of the wireless communication network 800, where the dashed arrows indicate the potential transfer of the detected movement between the wireless nodes 802. Figure 8 The wireless communication network 800 can be similar to Figure 3 the wireless communication network. Figure 3 and Figure 8 The common features are related via coordinate numbers with an increment difference of 500. In Figure 8 , the dashed arrows represent the respective potential transfers of the detected movement between the wireless nodes 802 of the wireless communication network 800. The dashed arrows are labeled T ij , where the first subscript i indicates the starting location and the second subscript j indicates the destination location. For example, each of the wireless nodes N0 and N1 can be used as the starting location and the destination location according to a specific transfer. The transfer T 01 corresponds to the detected movement transferring from N0 to N1, and the transfer T 10 corresponds to the detected movement transferring from N1 to N0.
[0112] In some implementations, a node in a wireless communication network 800 obtains a transition probability matrix that includes transition values and non-transition values. The transition values can represent the probability of movement between locations associated with different wireless communication devices, and the non-transition values represent the probability of movement remaining within the locations associated with the respective wireless communication devices.
[0113] In some variations, the transition probability matrix is given by where: corresponds to the unique node identifier for which movement was detected during a prior time frame (t - 1), and corresponds to the unique node identifier to which the detected movement has moved in a subsequent time frame (t). The transition probability matrix includes probability values that can represent transition probability values or non-transition probability values For example, the transition probability matrix can be expanded according to Equation (2):
[0114]
[0115] Here, the diagonal terms of the transition probability matrix correspond to and the non-diagonal terms correspond to The diagonal terms can represent the probability of transitioning between the same wireless communication devices during a subsequent time frame (remaining at the same wireless communication device), e.g., T(0 t |0 t-1 ), T(1 t |1 t-1 ), T(2 t |2 t-1 ), etc. Thus, the diagonal terms can represent non-transition probability values (or non-transition values). Similarly, the non-diagonal terms represent the probability of transitioning from one wireless communication device to another during a subsequent time frame, e.g., T(0 t |2 t-1 ), T(3 t |0 t-1 ), T(1 t |8 t-1 ), etc. Thus, the non-diagonal terms can correspond to transition probability values (or transition values).
[0116] For Figure 8 the wireless communication device 800, the potential transitions T 00 , T 11 and T 22 can be given by the respective non-transition probability values T(0 t |0 t-1 ), T(1t |1 t-1 ) and T(2 t |2 t-1 ) are represented. Similarly, the potential transitions T 01 , T 10 , T 02 , T 20 , T 12 and T 21 can be represented by the corresponding transition probability values T(1 t |0 t-1 ), T(0 t |1 t-1 ), T(2 t |0 t-1 ), T(0 t |2 t-1 ), T(2 t |1 t-1 ) and T(1 t |2 t-1 ). Then, the full matrix can be constructed according to Equation (2)
[0117]
[0118] In some instances, the probability values are assigned based on the value of a stickiness factor. The stickiness factor can be the probability of remaining at the wireless communication device divided by the probability of transitioning away from the wireless communication device (e.g., a probability ratio). For example, for Figure 8 the wireless communication network 800, the detected movement can be known (five out of eight times) to remain close to any given wireless node 802. Then the stickiness factor can be determined to be 0.625. Thus, the non-transition probability values T(0 t |0 t-1 ), T(1 t |1 t-1 ) and T(2 t |2 t-1 ) can be assigned the value 0.625. If the probability of transitioning to either of the other two wireless nodes 802 is the same, the remaining transition probability values can be determined by (1 - 0.625) / 2 = 0.1875. The transition probability matrix can be constructed as follows
[0119]
[0120] In some implementations, a node in a wireless communication network 800 determines a location of movement detected from wireless signals exchanged during a subsequent time frame. The determined location is based on a first probability vector, a second probability vector, and a transition probability matrix. In a further implementation, the wireless communication network 800 generates a third probability vector by combining the first probability vector, the second probability vector, and the transition probability matrix. Generating the third probability vector may be caused by a data processing device executing program instructions. The third probability vector includes third values representing third probabilities of movement at respective wireless communication devices during the subsequent time frame. When executing the program instructions, the wireless communication network 800 may also identify the wireless communication device associated with the highest value among the third values. Additionally, the wireless communication network 800 may determine the location of movement by identifying the location associated with the wireless communication device as the location of movement detected during the first time frame.
[0121] In some variations, the third probability vector is represented by where: corresponds to a unique node identifier at a subsequent time frame (t), and corresponds to a unique link identifier at a first time frame (t). The third probability vector includes third values representing the probability of movement at a wireless node N j at a subsequent time frame, taking into account link activity along a wireless link L i . The third probability vector can be determined according to Equation (3) :
[0122]
[0123] where: and are as described above in relation to Equations (1) and (2). Here, the subscript t indicates a unique node or link identifier from the subsequent time frame (t). During recursive updating of the third probability vector, the third probability vector at a previous time can be used as the second probability vector for the subsequent time frame. Thus, in Equation (3), resulting in the generation of Equation (4):
[0124]
[0125] Equations (3) and (4) may enable the wireless communication network 800 (or the data processing device) to use Bayesian statistics to determine the location of the detected movement while considering potential transitions between wireless nodes 802.
[0126] Figure 9is a flowchart showing another example process 900 for determining the location of motion detected by a wireless communication device in a wireless communication network. The operations in example process 900 may be performed by a data processing device (e.g., Figure 1 a processor in the wireless communication device 102 in A) to detect the location of motion based on signals received at the wireless communication device. Example process 900 may be performed by another type of device. For example, the operations of process 900 may be performed by a system other than the wireless communication device (e.g., a computer system connected to Figure 1 the wireless communication system 100 of A that aggregates and analyzes signals received by the wireless communication device 102).
[0127] Example process 900 may include additional or different operations, and these operations may be performed in the order shown or in another order. In some cases, Figure 9 one or more of the operations shown may be implemented as a process including multiple operations, sub-processes, or other types of routines. In some cases, the operations may be combined, performed in another order, performed in parallel, iterated, or otherwise repeated or performed in another manner.
[0128] Example process 900 includes: obtaining, as shown in operation 902, a set of motion indication values associated with a time frame. The set of motion indication values indicates motion detected from wireless links in the wireless communication network during the time frame. Each motion indication value is associated with a corresponding wireless link, and each wireless link is defined between a pair of wireless communication devices in the wireless communication network.
[0129] Example process 900 further includes: identifying, as shown in operation 904, a subset of wireless links based on the magnitude of the respective motion indication values of the wireless links relative to other motion indication values in the set of motion indication values. Example process 900 additionally includes: generating, as shown in operation 906, a count value for wireless communication devices connected to the wireless communication network during the time frame. The count value for each wireless communication device indicates how many wireless links in the identified subset are defined by the wireless communication device.
[0130] Example process 900 further includes: generating, as shown in operation 908, a probability vector based on the count values and including values for the connected wireless communication devices. The value for each connected wireless communication device represents the probability of motion at the connected wireless communication device during the time frame.
[0131] In some implementations, example processing 900 includes: changing the size of one or more of a set of motion indication values to cause each motion indication value to reference a common scale of radio link sensitivity. In some implementations, example processing 900 includes: identifying radio links active in a wireless communication network during a time frame based on the set of motion indication values. Example processing 900 may optionally include: identifying pairs of wireless communication devices that define each identified active radio link, thereby identifying wireless communication devices connected to the wireless communication network during the time frame.
[0132] In some implementations, the time frame is a subsequent time frame after a prior time frame, the probability vector is a first probability vector, and the value is a first value. In these implementations, example processing 900 includes: obtaining a second probability vector generated from motion indication values associated with the prior time frame. The second probability vector includes second values of wireless communication devices connected to the wireless communication network during the prior time frame. The second values represent the probabilities of motion at the connected wireless communication devices during the prior time frame. Example processing 900 further includes: generating a third probability vector based on the first value of the first probability vector and the second values of the second probability vector. The third probability vector includes third values of wireless communication devices connected to the wireless communication network during the subsequent time frame. The third values represent the probabilities of motion at the connected wireless communication devices during the subsequent time frame. Example processing 900 further includes: identifying the wireless communication device associated with the highest value among the third values, and identifying, by operation of a data processing device, the location associated with the identified wireless communication device as the location of motion detected from wireless signals exchanged during the subsequent time frame.
[0133] In these implementations, example processing 900 may optionally include: obtaining a transition probability matrix that includes: [1] transition values that represent probabilities of motion for transitioning between locations associated with different wireless communication devices; and [2] non-transition values that represent probabilities of motion for remaining within the locations associated with each wireless communication device. Generating the third probability vector includes: generating the third probability vector based on the first value of the first probability vector, the second values of the second probability vector, and the transition values and non-transition values of the transition probability matrix.
[0134] Also in these implementations, example processing 900 may optionally include: repeating, for each time frame, through multiple iterations, the following operations: obtaining a set of motion indication values; identifying a subset of radio links; generating a count value; generating a first probability vector; obtaining a second probability vector; generating a third probability vector; identifying wireless communication devices; and identifying locations. The third probability vector of a previous iteration is used as the second probability vector of the current iteration, thereby enabling recursive updating of the third probability vector.
[0135] Figure 10is a flowchart showing an additional example process 1000 for determining the location of motion detected by a wireless communication device in a wireless communication network. The operations in example process 1000 may be performed by a data processing device (e.g., Figure 1 a processor in wireless communication device 102 in A) to detect the location of motion based on signals received at the wireless communication device. Example process 1000 may be performed by another type of device. For example, the operations of example process 1000 may be performed by a system other than a wireless communication device (e.g., a computer system connected to Figure 1 wireless communication system 100 of A, which aggregates and analyzes signals received by wireless communication device 102).
[0136] Example process 1000 may include additional or different operations, and these operations may be performed in the order shown or in another order. In some cases, Figure 10 one or more than one of the operations shown may be implemented as a process including multiple operations, sub-processes, or other types of routines. In some cases, operations may be combined, performed in another order, performed in parallel, iterated, or otherwise repeated or performed in another way.
[0137] Example process 1000 includes: obtaining a set of motion indication values associated with a prior time frame, as shown in operation 1002. The set of motion indication values indicates motion detected from wireless links in the wireless communication network during the prior time frame. Each motion indication value is associated with a corresponding wireless link. Each wireless link is defined between pairs of wireless communication devices in the wireless communication network.
[0138] Example process 1000 further includes: generating a prior probability vector based on the set of motion indication values and including values of wireless communication devices connected to the wireless communication network during the prior time frame. These values represent the probability of motion at the connected wireless communication devices during the prior time frame.
[0139] Example process 1000 additionally includes: selecting one of a plurality of initialization probability vectors or the prior probability vector based on the set of motion indication values, the configuration of the wireless communication network, or both. Example process 1000 further includes: using the selected probability vector and a set of motion indication values associated with a second subsequent time frame to identify the location associated with the motion that occurred during the subsequent time frame.
[0140] In some implementations, the plurality of initialization probability vectors includes an initialization probability vector having probability values of wireless communication devices connected to the wireless communication network during the subsequent time frame. These probability values are equal in magnitude and represent the probability of motion at the connected wireless communication devices during the subsequent time frame.
[0141] In some implementations, multiple initialization probability vectors include an initialization probability vector having probability values for wireless communication devices connected to a wireless communication network during subsequent time frames. At least one probability value has a magnitude based on the location of the corresponding wireless communication device. The probability values represent the probability of movement at the connected wireless communication devices during subsequent time frames.
[0142] In some implementations, example process 1000 includes: determining a change in wireless connectivity between a prior time frame and a subsequent time frame. The change in wireless connectivity includes one or both of the following: [1] wireless communication devices that were connected to the wireless communication network between the prior time frame and the subsequent time frame; and [2] wireless communication devices that were disconnected from the wireless communication network between the prior time frame and the subsequent time frame. Example process 1000 also includes: generating an initialization probability vector among the multiple initialization probability vectors by changing the values of the prior probability vectors based on the change in wireless connectivity.
[0143] In these implementations, the change in wireless connectivity can optionally include wireless communication devices that were disconnected from the wireless communication network between the prior time frame and the subsequent time frame. Then, the operation of generating the initialization probability vector includes: allocating the values of the prior probability vectors associated with the disconnected wireless communication devices to the values of the wireless communication devices that remain connected to the wireless communication network.
[0144] Also in these implementations, the change in wireless connectivity can optionally include wireless communication devices that were connected to the wireless communication network between the prior time frame and the subsequent time frame. Then, the operation of generating the initialization probability vector includes: adding values to the prior probability vectors of the wireless communication devices that are connected to the wireless communication network.
[0145] Additionally, in these implementations, example process 1000 can optionally include: monitoring the connection status of wireless communication devices through multiple iterations for each time frame. The connection status indicates a connected state or a disconnected state. Then, example process 1000 includes: if the connection status has continuously indicated a disconnected state for a predetermined number of time frames, identifying the wireless communication device as a disconnected wireless communication device for subsequent time frames.
[0146] Some of the subject matter and operations described in this specification can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and structural equivalents thereof, or combinations of one or more of these structures. Some of the subject matter described in this specification can be implemented as one or more computer programs (i.e., one or more modules of computer program instructions) encoded on a computer storage medium for execution by, or to control the operation of, a data processing apparatus. The computer storage medium can be, or be included in, a computer-readable storage device, a computer-readable storage substrate, a random or serial access memory array or device, or a combination of one or more of them. Additionally, although a computer storage medium is not a propagated signal, a computer storage medium can be the source or destination of computer program instructions encoded in an artificially generated propagated signal. The computer storage medium can also be, or be included in, one or more separate physical components or media (such as multiple CDs, disks, or other storage devices).
[0147] Part of the operations described in this specification can be implemented as operations performed by a data processing apparatus on data stored on one or more computer-readable storage devices or received from other sources.
[0148] The term “data processing apparatus” encompasses all kinds of devices, apparatus, and machines for processing data, which includes, for example, programmable processors, computers, system-on-a-chip, or combinations of the foregoing. The apparatus can include dedicated logic circuitry, such as an FPGA (Field Programmable Gate Array) or an ASIC (Application Specific Integrated Circuit). In addition to hardware, the apparatus can also include code for creating an execution environment for the computer programs being discussed, such as code constituting processor firmware, protocol stack, database management system, operating system, cross-platform runtime environment, virtual machine, or combinations of one or more of them.
[0149] A computer program (also known as a program, program instructions, software, software application, script, or code) can be written in any form of programming language, including compiled languages or interpreted languages, declarative languages or procedural languages, and it can be deployed in any form, including being deployed as a stand-alone program or being deployed as a module, component, subroutine, object, or other unit suitable for use in a computing environment. A computer program can, but need not, correspond to a file in a file system. The program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document) in a single file dedicated to the program, or in multiple coordinated files (e.g., files that store one or more modules, subroutines, or portions of code). A computer program can be deployed to execute on one computer or on multiple computers located at one site or distributed across multiple sites and interconnected by a communication network.
[0150] Some of the processes and logic flows described in this specification can be performed by one or more programmable processors executing one or more computer programs to perform actions by operating on input data and generating output. These processes and logic flows can also be performed by dedicated logic circuitry, and the apparatus can also be implemented as dedicated logic circuitry, such as, for example, an FPGA (Field Programmable Gate Array) or an ASIC (Application Specific Integrated Circuit).
[0151] For example, processors suitable for executing a computer program include both general and special purpose microprocessors, as well as processors for any kind of digital computer. Generally, a processor will receive instructions and data from a read only memory or a random access memory or both. Elements of a computer may include a processor for acting in accordance with instructions and one or more memory devices for storing the instructions and data. The computer may also include one or more mass storage devices for storing data (e.g., magnetic disks, magneto-optical disks, or optical disks) or operably coupled to receive or transfer data relative to the one or more mass storage devices, or both. However, a computer need not have such devices. In addition, a computer may be embedded in other devices (such as a telephone, an appliance, a mobile audio or video player, a game console, a Global Positioning System (GPS) receiver, or a portable storage device (such as a Universal Serial Bus (USB) flash drive)). Devices suitable for storing computer program instructions and data include all forms of non-volatile memory, media, and memory devices, including by way of example semiconductor memory devices (such as EPROM, EEPROM, and flash memory devices, etc.), magnetic disks (such as internal hard disks and removable disks, etc.), magneto-optical disks, and CD ROM and DVD-ROM disks. In some instances, the processor and memory may be supplemented by, or incorporated in, special purpose logic circuitry.
[0152] For providing interaction with a user, operations may be implemented on a computer having a display device (e.g., a monitor or other type of display device) for displaying information to the user and a keyboard and an indicating device (e.g., a mouse, trackball, tablet, touch screen, or other type of indicating device) by which the user may provide input to the computer. Other kinds of devices may also be used to provide interaction with the user; for example, feedback provided to the user may be any form of sensory feedback such as visual feedback, auditory feedback, or tactile feedback; and input from the user may be received in any form, including acoustic, speech, or tactile input. Additionally, a computer may interact with the user by sending and receiving documents relative to the device used by the user (e.g., by sending a web page in response to a request received from a web browser on the user's client device).
[0153] A computer system can include a single computing device, or multiple computers that operate either close to each other or generally far from each other and typically interact via a communication network. Examples of communication networks include local area networks ("LANs") and wide area networks ("WANs"), the Internet (e.g., the Internet), networks including satellite links, and peer-to-peer networks (e.g., ad hoc peer-to-peer networks). The client-server relationship can arise through computer programs that run on individual computers and have a client-server relationship with each other.
[0154] Although this specification contains many details, these details should not be construed as limitations on the scope that can be claimed, but rather as descriptions of features specific to particular examples. The specific features described in this specification or shown in the drawings can also be combined in the context of separate implementations. Conversely, the various features described or shown in the context of a single implementation can also be implemented separately in multiple embodiments or in any suitable sub-combination.
[0155] Similarly, although these operations are depicted in the drawings in a particular order, this should not be understood to mean that these operations need to be performed in the particular order or sequence shown, or that all of the operations shown need to be performed, in order to achieve the desired result. In certain circumstances, multitasking and parallel processing may be advantageous. Additionally, the separation of various system components in the implementations described above should not be understood to mean that such separation is required in all implementations, and it should be understood that the described program components and systems can generally be integrated together into a single product or packaged into multiple products.
[0156] Numerous embodiments have been described. However, it should be understood that various modifications can be made. Accordingly, other embodiments are within the scope of the present invention.
Claims
1. A method for identifying a location associated with movement, comprising: Obtaining a set of movement indication values associated with a prior time frame, the set of movement indication values indicating movement detected from a wireless link in a wireless communication network during the prior time frame, each movement indication value being associated with a corresponding wireless link, and each wireless link being defined between a pair of wireless communication devices in the wireless communication network; Generating a prior probability vector based on the set of movement indication values and including values for wireless communication devices connected to the wireless communication network during the prior time frame, the values representing the probability of movement at the connected wireless communication devices during the prior time frame; Selecting one of a plurality of initialization probability vectors or the prior probability vector based on the set of movement indication values, the configuration of the wireless communication network, or both; and Using the selected probability vector and a set of movement indication values associated with a second subsequent time frame to identify a location associated with movement occurring during the subsequent time frame.
2. The method according to claim 1, Among them, The plurality of initialization probability vectors include an initialization probability vector having probability values for wireless communication devices connected to the wireless communication network during the subsequent time frame, the probability values being equal in magnitude and representing the probability of movement at the connected wireless communication devices during the subsequent time frame.
3. The method according to claim 1, Among them, The plurality of initialization probability vectors include an initialization probability vector having probability values for wireless communication devices connected to the wireless communication network during the subsequent time frame, at least one probability value having a magnitude based on the location of the corresponding wireless communication device, the probability values representing the probability of movement at the connected wireless communication devices during the subsequent time frame.
4. The method according to any one of claims 1 to 3, comprising: Determining a change in wireless connection between the prior time frame and the subsequent time frame, the change in wireless connection including one or both of the following: Wireless communication devices that have been connected to the wireless communication network between the prior time frame and the subsequent time frame, and Wireless communication devices that have been disconnected from the wireless communication network between the prior time frame and the subsequent time frame; And Generating an initialization probability vector among the plurality of initialization probability vectors by changing the values of the prior probability vector based on the change in wireless connection.
5. The method according to claim 4, Among them, The change includes wireless communication devices that have been disconnected from the wireless communication network between the prior time frame and the subsequent time frame, and Wherein generating the initialization probability vector includes: allocating the values of the prior probability vector associated with the disconnected wireless communication devices to the values of the wireless communication devices that remain connected to the wireless communication network.
6. The method according to claim 4, Among them, The change includes wireless communication devices that have been connected to the wireless communication network between the prior time frame and the subsequent time frame, and Wherein, generating the initialization probability vector includes: adding a value to a prior probability value of a wireless communication device connected to the wireless communication network.
7. The method according to claim 4, comprising: Monitoring the connection status of a wireless communication device through multiple iterations for each time frame, the connection status indicating a connected state or a disconnected state; And If the connection status has continuously indicated the disconnected state for a predetermined number of time frames, then for the subsequent time frames, identifying the wireless communication device as a disconnected wireless communication device.
8. A system for identifying a location associated with movement, comprising: A wireless communication device in a wireless communication network, configured to exchange wireless signals on a wireless link, each wireless link being defined between a pair of wireless communication devices in the wireless communication device; One or more processors; And A memory for storing instructions configured to operate when executed by the one or more processors, the operations including: Obtaining a set of motion indication values associated with a prior time frame, the set of motion indication values indicating motion detected from the wireless links in the wireless communication network during the prior time frame, each motion indication value being associated with a corresponding wireless link; Generating a prior probability vector based on the set of motion indication values and including values, wherein the values are for wireless communication devices connected to the wireless communication network during the prior time frame, the values representing the probability of motion at the connected wireless communication device during the prior time frame; Selecting one of a plurality of initialization probability vectors or the prior probability vector based on the set of motion indication values, the configuration of the wireless communication network, or both; and Using the selected probability vector and a set of motion indication values associated with a second subsequent time frame to identify a location associated with the motion occurring during the subsequent time frame.
9. The system according to claim 8, Among them, The plurality of initialization probability vectors include an initialization probability vector having probability values for wireless communication devices connected to the wireless communication network during the subsequent time frame, the probability values being equal in magnitude and representing the probability of motion at the connected wireless communication device during the subsequent time frame.
10. The system according to claim 8, Among them, The plurality of initialization probability vectors include an initialization probability vector having probability values for wireless communication devices connected to the wireless communication network during the subsequent time frame, at least one probability value having a magnitude based on the location of the corresponding wireless communication device, the probability value representing the probability of motion at the connected wireless communication device during the subsequent time frame.
11. The system according to any one of claims 8 to 10, Among them, The operations include: Determining a change in wireless connection between the prior time frame and the subsequent time frame, the change in wireless connection including one or both of the following: Wireless communication devices connected to the wireless communication network between the prior time frame and the subsequent time frame, and a wireless communication device that has been disconnected from the wireless communication network between the prior time frame and the subsequent time frame; and generating an initialization probability vector among the plurality of initialization probability vectors by changing a value of the prior probability vector based on the change in the wireless connection.
12. The system according to claim 11, Among them, wherein the change includes a wireless communication device that has been disconnected from the wireless communication network between the prior time frame and the subsequent time frame, and wherein generating the initialization probability vector includes: allocating the value of the prior probability vector associated with the disconnected wireless communication device to the value of the wireless communication device that remains connected to the wireless communication network.
13. The system according to claim 11, Among them, wherein the change includes a wireless communication device that has been connected to the wireless communication network between the prior time frame and the subsequent time frame, and wherein generating the initialization probability vector includes: adding a value to the prior probability value of the wireless communication device that has been connected to the wireless communication network.
14. The system according to claim 11, the operation includes: monitoring a connection status of a wireless communication device through multiple iterations for each time frame, the connection status indicating a connected state or a disconnected state; and if the connection status has continuously indicated the disconnected state for a predetermined number of time frames, then for the subsequent time frame, identifying the wireless communication device as the disconnected wireless communication device.
15. The system according to any one of claims 8 to 10, wherein At least one of the wireless communication devices includes the memory and the one or more processors.
16. A non-transitory computer-readable medium for storing instructions that, when executed by a data processing device, cause the data processing device to perform operations, the operations including: obtaining a set of motion indication values associated with a prior time frame, the set of motion indication values indicating motion detected from a wireless link in a wireless communication network during the prior time frame, each motion indication value being associated with a corresponding wireless link, each wireless link being defined between each pair of wireless communication devices in the wireless communication network; generating a prior probability vector based on the set of motion indication values and including values that, for wireless communication devices connected to the wireless communication network during the prior time frame, represent the probability of motion at the connected wireless communication devices during the prior time frame; selecting one of the plurality of initialization probability vectors or the prior probability vector based on the set of motion indication values, the configuration of the wireless communication network, or both; and using the selected probability vector and a set of motion indication values associated with a second subsequent time frame to identify a location associated with motion that occurred during the subsequent time frame.
17. The computer-readable medium according to claim 16, Among them, wherein the plurality of initialization probability vectors include an initialization probability vector having probability values for wireless communication devices connected to the wireless communication network during the subsequent time frame, the probability values being equal in magnitude and representing the probability of motion at the connected wireless communication devices during the subsequent time frame.
18. The computer-readable medium according to claim 16, Among them, wherein the plurality of initialization probability vectors includes an initialization probability vector having probability values for wireless communication devices connected to the wireless communication network during the subsequent time frame, at least one of the probability values having a magnitude based on the location of the corresponding wireless communication device, the probability value representing the probability of movement at the connected wireless communication device during the subsequent time frame.
19. The computer-readable medium according to any one of claims 16 to 18, Among them, wherein the operations include: determining a change in the wireless connection between the prior time frame and the subsequent time frame, the change in the wireless connection including one or both of the following: wireless communication devices that have been connected to the wireless communication network between the prior time frame and the subsequent time frame, and wireless communication devices that have been disconnected from the wireless communication network between the prior time frame and the subsequent time frame; and generating an initialization probability vector among the plurality of initialization probability vectors by changing the value of the prior probability vector based on the change in the wireless connection.
20. The computer-readable medium according to claim 19, Among them, wherein the change includes wireless communication devices that have been disconnected from the wireless communication network between the prior time frame and the subsequent time frame, and wherein generating the initialization probability vector includes: allocating the value of the prior probability vector associated with the disconnected wireless communication device to the values of the wireless communication devices that remain connected to the wireless communication network.
21. The computer-readable medium according to claim 19, Among them, wherein the change includes wireless communication devices that have been connected to the wireless communication network between the prior time frame and the subsequent time frame, and wherein generating the initialization probability vector includes: adding a value to the prior probability values of the wireless communication devices that have been connected to the wireless communication network.
22. The computer-readable medium according to claim 19, wherein the operations include: monitoring the connection status of wireless communication devices through multiple iterations for each time frame, the connection status indicating a connected state or a disconnected state; and if the connection status has continuously indicated the disconnected state for a predetermined number of time frames, then identifying the wireless communication device as a disconnected wireless communication device for the subsequent time frame.
23. A computer program product comprising a computer program which, when executed by a processor, implements the method according to any one of claims 1 to 7.
Citation Information
Patent Citations
System and method for user profile enabled smart building control
US20170055126A1