Use wireless signals and wireless connection topology to detect motion locations

By analyzing the channel information and beamforming state in the wireless communication network, and using the Bayesian estimation framework for recursive calculation, the accurate positioning of motion detection locations in the wireless mesh network is solved, and the accurate identification of motion locations is achieved.

CN115053147BActive Publication Date: 2025-08-26COGNITIVE SYST
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202080081730.2
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2020-05-05
Filing Date
2020-08-07
Publication Date
2025-08-26
Estimated Expiration
2040-08-07

AI Technical Summary

Technical Problem

When the existing motion detection system detects the movement of an object, it is difficult to accurately determine its specific location in space, especially in wireless communication networks, especially in wireless mesh networks. It is difficult for the prior art to effectively utilize the topological structure of wireless signals to accurately locate the location of motion.

Method used

By analyzing the channel information and beamforming state of wireless signals in the wireless communication network, recursive calculation is performed using the Bayesian estimation framework, and combining the motion indication value and the transition probability matrix to determine the specific location of the motion.

Benefits of technology

Accurate positioning of motion in wireless communication networks is realized, the accuracy and robustness of motion detection is improved, and specific locations of motion can be effectively identified in complex environments.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115053147B_ABST
    Figure CN115053147B_ABST
Patent Text Reader

Abstract

In general terms, a method for detecting a location of motion using wireless signals and a topology of wireless connections is presented. The method includes obtaining motion sensing data from access point (AP) nodes of a wireless mesh network. The motion sensing data is based on wireless signals transmitted between pairs of AP nodes in the AP nodes. The method additionally includes identifying a motion sensing topology of the wireless mesh network. The motion sensing topology is based on tags assigned to each AP node, each tag indicating a connection status of the corresponding AP node. The method also includes generating a probability vector based on the motion sensing data and the motion sensing topology. The probability vector includes values ​​representing the probability of motion of an object at each AP node. The location of the object's motion is determined based on the probability vector.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS

[0002] This application claims priority to U.S. Provisional Application No. 62 / 908,401, filed on September 30, 2019, entitled “Detecting a Location of Motion Using Wireless Signals and Topologies of Wireless Connectivity.” This priority application is hereby incorporated by reference in its entirety.

[0003] This application also claims priority to U.S. patent applications No. 16 / 867,062, No. 16 / 867,064, No. 16 / 867,066, and No. 16 / 867,089, filed May 5, 2020, entitled “Detecting a Location of Motion Using Wireless Signals and Topologies of Wireless Connectivity,” “Detecting a Location of Motion Using Wireless Signals and Differences Between Topologies of Wireless Connectivity,” “Detecting a Location of Motion Using Wireless Signals that Propagate Along Two or More Paths of a Wireless Communication Channel,” and “Detecting a Location of Motion Using Wireless Signals in a Wireless Mesh Network that Includes Leaf Nodes,” respectively. These priority applications are hereby incorporated by reference in their entirety. Background Art

[0004] The following description relates to determining a location of motion detected from wireless signals based on wireless link counts.

[0005] Motion detection systems have been used to detect the movement of objects within a room or outdoor area, for example. In some example motion detection systems, infrared or optical sensors are used to detect the movement of objects within the sensor's field of view. Motion detection systems have been used in security systems, automated control systems, and other types of systems. BRIEF DESCRIPTION OF THE DRAWINGS

[0006] Figure 1 is a diagram illustrating an example wireless communication system.

[0007] Figure 2A and Figure 2B is a diagram illustrating example wireless signals communicated between wireless communication devices in a motion detection system.

[0008] Figure 3 is a schematic diagram of an example wireless communication network including a plurality of wireless nodes.

[0009] Figure 4 is a flow chart of an example process for determining a location of motion detected by one or more wireless links in a wireless communication network.

[0010] Figure 5A is a flow chart of an example process for a likelihood calculator to generate a probability vector based on multiple wireless links.

[0011] Figure 5B is an example mathematical function for generating a probability vector using the likelihood calculator.

[0012] Figure 6 is a schematic diagram of an example motion model represented using a trellis of three wireless nodes.

[0013] Figure 7 is a diagram of an example process for determining a probability of a location of motion detected by three wireless links in a wireless communication network.

[0014] Figure 8 yes Figure 3 Schematic diagram of an example wireless communication network, but where the motion of an object activates four wireless links.

[0015] Figure 9 is a flow chart of an example process for determining a location of movement based on a movement topology of a wireless communication network.

[0016] Figure 10 is a flow chart of an example process for determining a location of a motion using a variable time frame based motion topology.

[0017] Figure 11 is an example formula for determining the probability that a wireless node is in a dual-connectivity state in a moving topology with an example graph.

[0018] Figure 12A and Figure 12B Schematic diagrams of example wireless communication networks with different network topologies in subsequent and previous time frames, respectively.

[0019] Figure 13 is a flow chart of an example process for determining a location of movement based on a previous topology of a wireless communication network.

[0020] Figure 14 is a schematic diagram of an example wireless communication network having wireless communication channels including direct and indirect propagation paths.

[0021] Figure 15 is a flow chart of an example process for determining a location of motion based on a matrix decomposition of motion indication values.

[0022] Figure 16 is a schematic diagram of an example wireless communication network in which leaf nodes are communicatively coupled to wireless nodes.

[0023] Figure 17 is a flow chart of an example process for determining a location of a movement based on identifying wireless nodes in the vicinity of the movement and then identifying leaf nodes communicatively coupled to the wireless nodes.

[0024] Figure 18 Example formulas for determining the location of motion using sub-grid likelihood functions are presented. DETAILED DESCRIPTION

[0025] In some aspects described herein, information from multiple wireless communication devices that are wirelessly communicating 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.).

[0026] For example, wireless signals received at various wireless communication devices in a wireless communication network can be analyzed to determine channel information for different communication links in the network (between pairs of wireless communication devices in the network). Channel information can represent the physical medium used to apply a transfer function to wireless signals traveling through space. In some instances, channel information includes channel response information. Channel response information can refer to known channel properties of a communication link and can describe how wireless signals propagate from a transmitter to a receiver, thereby representing the combined effects of, for example, scattering, fading, and power attenuation in the space between the transmitter and receiver. In some instances, channel information includes beamforming state information. Beamforming (or spatial filtering) can refer to a signal processing technique used in multi-antenna (multiple-input / multiple-output (MIMO)) radio systems for directional signal transmission or reception. Beamforming can be achieved by combining elements in an antenna array in such a way that signals at certain angles experience constructive interference, while other signals experience destructive interference. Beamforming can be used at both the transmitting and receiving ends to achieve spatial selectivity. In some cases (e.g., the IEEE 802.11ac standard), the transmitter uses a beamforming steering matrix. A beamforming steering matrix may comprise a mathematical description of how an antenna array should use each of its individual antenna elements to select a spatial path for transmission. Although certain aspects are described herein with respect to channel response information, beamforming state information or beamformer steering matrix state may also be used in the described aspects.

[0027] The channel information of 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 motion has occurred in the space, to determine the relative location of the detected motion, or both. In some aspects, the channel information of each communication link can be analyzed to detect whether an object is present or absent, for example, when no motion is detected in the space.

[0028] In some implementations, the 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 point-to-point 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 normalized technology. Examples of commercially available wireless mesh networks include Wi-Fi systems sold by Google, Eero, and other companies.

[0029] In some example wireless communication networks, each node is connected to one or more other nodes via one or more bidirectional links. Each node can analyze the wireless signals it receives to identify disturbances or interference on each link. The interference on each link can be represented as a motion indication value, for example, as a scalar that can be normalized. The link interference values ​​from the nodes in the wireless communication network can be used to determine the probability of motion at a location associated with each node. For example, the probability of motion at each node can be used to determine which node has the highest probability of motion in its vicinity, and the node can be identified as the node around which motion occurs. To this end, for the recursive calculation of the probability, the analysis can be a case in a Bayesian estimation framework. The probabilistic framework provides many technical advantages, such as providing recursive estimation and thus ultimately converging to the correct result, simple logic without conditions for each special case, more accurate and robust performance (for example, for artifacts), and others.

[0030] Additionally, physical insights about motion detection systems can inform a Bayesian estimation framework for detecting locations of motion. For example, the relative size of the excitation on the link (between the transmitter node and the receiver node) may be larger when the motion that produces the excitation is closer to the receiver node. Therefore, as an initial probability estimate for where the motion has occurred, the highest probability can be assigned to the receiver node on the wireless link associated with the highest motion indication value. This initial probability estimate can 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 transitioning between different locations can be higher or lower relative to the likelihood of motion remaining in a single location. Therefore, location transition probabilities can be incorporated into the Bayesian framework. For example, a transition probability matrix can be combined with the initial probability estimate and the conditional probability distribution to produce a recursively refined probability estimate according to the Bayesian framework.

[0031] Figure 1 is a diagram illustrating 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.).

[0032] The example wireless communication devices 102A, 102B, 102C may operate in a wireless network, for example, in accordance with a wireless network standard or another type of wireless communication protocol. For example, a 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 other types of wireless networks. Examples of WLANs include networks configured to operate in accordance with 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 configured to operate in accordance with short-range communication standards (e.g., Bluetooth Networks that operate with near field communication (NFC), ZigBee, and millimeter wave communications.

[0033] 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 2G standards such as Global System for Mobile (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; among others. Figure 1 In 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.

[0034] In some cases, wireless communication devices 102A, 102B, 102C may be Wi-Fi access points or another type of wireless access point (WAP). Wireless communication devices 102A, 102B, 102C may be configured to perform one or more operations as described herein, which are embedded as instructions (e.g., software or firmware) on these wireless communication devices. In some cases, one or more of wireless communication devices 102A, 102B, 102C is a node 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 may be used. Wireless communication devices 102A, 102B, 102C may be implemented without Wi-Fi components; for example, other types of wireless protocols (standard or non-standard) used for wireless communication may be used for motion detection.

[0035] exist Figure 1In the example shown, 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 protocols). For example, the wireless communication device may generate a motion detection signal for transmission to detect the space and thereby detect the motion or presence of an object. In some implementations, the motion detection signal may include a standard signaling or communication frame that includes a standard pilot signal used in channel sounding (e.g., channel sounding used for beamforming according to the IEEE 802.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 may process motion detection signals that are based on signals received from the motion detection signal transmitted through the space. For example, based on changes (or lack of such changes) detected in the communication channel, the motion detection signal may be analyzed to detect the motion of an object in the space, the lack of motion in the space, or the presence or absence of an object in the space when the lack of motion is detected.

[0036] 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, wireless communication devices 102A, 102B may broadcast a wireless motion detection signal (e.g., as described above). In other cases, wireless communication devices 102A, 102B may transmit a wireless signal addressed to another wireless communication device 102C and other devices (e.g., user equipment, client devices, servers, etc.). Wireless communication device 102C and other devices (not shown) may receive the wireless signal transmitted by wireless communication devices 102A, 102B. In some cases, the wireless signal transmitted by wireless communication devices 102A, 102B may be repeated periodically, for example, according to a wireless communication standard or other means.

[0037] In some examples, wireless communication device 102C, which may be referred to as a sensor device, processes wireless signals received from wireless communication devices 102A, 102B to detect motion or lack of motion of objects in the space accessed by the wireless signals. In some examples, another device or computing system processes wireless signals received by wireless communication device 102C from wireless communication devices 102A, 102B to detect motion or lack of motion of objects in the space accessed by the wireless signals. In some cases, when lack of motion is detected, wireless communication device 102C (or another system or device) processes the wireless signals to detect the presence or absence of objects in the space. In some instances, wireless communication device 102C (or another system or device) may perform as described with respect to Figure 6 Said or in relation to Figure 8In one embodiment, the wireless communication system 100 may be configured to perform one or more operations in the example method of the present invention, or to perform another type of processing for detecting motion, detecting lack of motion, or detecting the presence or absence of an object when lack of motion is detected. In other examples, for example, the wireless communication system 100 may be modified such that the wireless communication device 102C may, for example, transmit wireless signals as a source device, and the wireless communication devices 102A and 102B may, for example, process wireless signals from the wireless communication device 102C as sensor devices to detect motion, detect lack of motion, or detect presence when no motion is detected. That is, in some cases, the wireless communication devices 102A, 102B, and 102C may each be configured as a source device, a sensor device, or both.

[0038] The wireless signals used for motion and / or presence detection may include, for example, beacon signals (e.g., Bluetooth beacons, Wi-Fi beacons, or 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 non-standard signals generated for motion and / or presence detection or other purposes (e.g., random signals, reference signals, etc.). In some cases, the wireless signals used for motion and / or presence detection are known to all devices in the network.

[0039] In some examples, the wireless signal may propagate through an object (e.g., a wall) before or after interacting with the mobile object, which may enable detection of movement of the mobile object without optical line of sight between the mobile object and the transmitting or receiving hardware. In some cases, the wireless signal, when received by the wireless communication device (e.g., 102C), may indicate a lack of motion in the space, such as that the object is not moving or is no longer moving in the space. In some cases, the wireless signal, when received by the wireless communication device (e.g., 102C), may indicate the presence of an object in the space when the lack of motion is detected. Conversely, the wireless signal may indicate the absence of an object in the space when the lack of motion is detected. For example, based on the received wireless signal, the third wireless communication device 102C may generate motion data, presence data, or both. In some instances, the third wireless communication device 102C may communicate the motion detection and / or presence data to another device or system, such as a security system, which may include a control center for monitoring movement within a space (e.g., a room, a building, an outdoor area, etc.).

[0040] In some implementations, the wireless communication devices 102A, 102B may be configured to transmit the motion detection signal (e.g., as described above) on a wireless communication channel (e.g., a frequency channel or a coding channel) that is separate from wireless network traffic signals. For example, the third wireless communication device 102C may 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 may reduce the amount of processing performed by the third wireless communication device 102C for motion and presence detection. The header may include additional information such as, for example, an indication of whether another device in the communication system 100 detected motion or lack of motion, whether another device in the communication system 100 detected the presence of an object, an indication of the modulation type, an identification of the device transmitting the signal, and the like.

[0041] exist Figure 1 In the illustrated example, the wireless communication system 100 is illustrated as a wireless mesh network, wherein wireless communication links are provided between respective wireless communication devices 102. In the illustrated example, 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 zone 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 zone 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 zone 110C. In some instances, each wireless communication device 102 can be configured to detect motion, lack of motion, and / or the presence or absence of an object in each motion detection zone 110 to which the device is connected by processing a received signal based on a wireless signal transmitted by the wireless communication device 102 through the motion detection zone 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 may detect motion based on signals they receive based on wireless signals transmitted through the respective motion detection areas 110. For example, the first wireless communication device 102A may detect motion of the person in the first motion detection area 110A and the third motion detection area 110C, the second wireless communication device 102B may detect motion of the person 106 in the third motion detection area 110C, and the third wireless communication device 102C may detect motion of the person 106 in the first motion detection area 110A. In some cases, the absence of motion of the person 106 may be detected in the respective motion detection areas 110A, 110B, and 110C, and in other cases the presence of the person 106 may be detected when the person 106 is not detected as moving.

[0042] In some examples, motion detection area 110 may include, for example, air, a solid material, a liquid, or another medium through which wireless electromagnetic signals may propagate. Figure 1 In 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 a wireless communication channel used for network traffic) are used to detect movement or lack of movement of an object in a space, and can be used to detect the presence (or absence) of an object in the space when lack of movement is detected. The object can be any type of static or movable object, and can be animate or inanimate. For example, the object can be a human (e.g., Figure 1 In some implementations, when no motion of an object is detected, motion information from the wireless communication device can trigger further analysis to determine the presence or absence of the object.

[0043] In some implementations, the wireless communication system 100 may be or include a motion detection system. The motion detection system may 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 may be configured for motion detection, presence detection, or both. The motion detection system may include a database for storing signals. One of the wireless communication devices 102A, 102B, 102C of the motion detection system may operate as a central hub or server for processing received signals and other information to detect motion and / or presence. Storage of the data (e.g., in a database) and / or determination of motion, lack of motion (e.g., steady state), or presence detection may 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).

[0044] Figure 2A and 2B is a diagram illustrating example wireless signals communicated between wireless communication devices 204A, 204B, 204C in a motion detection system. The wireless communication devices 204A, 204B, 204C may be, for example, Figure 1The wireless communication devices 102A, 102B, and 102C shown may be other types of wireless communication devices. Examples of wireless communication devices include wireless mesh devices, fixed wireless client devices, mobile wireless client devices, and the like.

[0045] In some cases, one or more of the wireless communication devices 204A, 204B, 204C may form, or may 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 may be configured for motion detection, presence detection, or both in a motion detection system. In some cases, one or more of the wireless communication devices 204A, 204B, 204C may also form, or may be part of, an ad hoc motion detection system that also performs other types of functions.

[0046] Example wireless communication devices 204A, 204B, 204C can transmit and / or receive wireless signals through space 200. Example space 200 can be completely or partially enclosed or open at one or more boundaries of space 200. Space 200 can be or include the interior of a room, multiple rooms, a building, an indoor area, an outdoor area, etc. In the example shown, first wall 202A, second wall 202B, and third wall 202C at least partially enclose space 200.

[0047] exist Figure 2A and Figure 2B In the example shown, the first wireless communication device 204A is operable to, for example, repeatedly (e.g., periodically, intermittently, at predetermined, unscheduled, or random intervals, etc.) transmit a wireless motion detection signal 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 a standard signaling or communication frame that includes a standard pilot signal used in channel sounding (e.g., channel sounding used for beamforming according to the IEEE802.11ac-2013 standard). The wireless communication devices 204B and 204C each have an interface, a modem, a processor, or other components configured to process the received motion detection signal to detect motion or lack of motion of objects in the space 200. In some instances, wireless communication devices 204B, 204C may each have an interface, modem, processor, or other component configured to detect the presence or absence of objects in space 100 (e.g., whether the space is occupied or unoccupied) when a lack of motion is detected.

[0048] As shown in the figure, Figure 2A At the initial time t=0 in , the object is at the first position 214A and Figure 2B At a subsequent time t=1 in , the object has moved to the second position 214B. Figure 2A and Figure 2B In the example, the moving object in 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, device, equipment, or assembly), an object that defines all or a portion of the boundaries of space 200 (e.g., a wall, door, window, etc.), or another type of object. For this example, the representation of the movement of object 214 simply indicates that the location of the object changed within space 200 between time t=0 and time t=1.

[0049] like Figure 2A and Figure 2B As shown, multiple example paths of wireless signals transmitted from the first wireless communication device 204A are illustrated by dashed lines. Along a first signal path 216, a wireless signal is transmitted from the first wireless communication device 204A and reflected from the first wall 202A toward the second wireless communication device 204B. Along a second signal path 218, a wireless signal is transmitted from the first wireless communication device 204A and reflected from the second wall 202B and the first wall 202A toward the third wireless communication device 204C. Along a third signal path 220, a wireless signal is transmitted from the first wireless communication device 204A and reflected from the second wall 202B toward the third wireless communication device 204C. Along a fourth signal path 222, a wireless signal is transmitted from the first wireless communication device 204A and reflected from the third wall 202C toward the second wireless communication device 204B.

[0050] exist Figure 2A In FIG, along the fifth signal path 224A, a wireless signal is transmitted from the first wireless communication device 204A and reflected from an object at the first location 214A toward the third wireless communication device 204C. Figure 2A Time t = 0 and Figure 2B Between time t=1, the surface of the object moves in space 200 from a first position 214A to a second position 214B (e.g., a distance away from the first position 214A). Figure 2B In FIG. 2 , 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 toward the third wireless communication device 204C. As the object moves from the first position 214A to the second position 214B, Figure 2B The sixth signal path 224B is shown as Figure 2AThe fifth signal path 224A is shown as being long. In some examples, signal paths may be added, removed, or otherwise modified due to movement of objects in space.

[0051] 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 portions that propagate in another direction, such as through walls 202A, 202B, and 202C. In some examples, the wireless signals are radio frequency (RF) signals. Wireless signals may include other types of signals.

[0052] exist Figure 2A and Figure 2B In the example shown, the first wireless communication device 204A can be configured as a source device and can repeatedly transmit wireless signals. Figure 2A 1 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 a combination of these. For example, the transmitted signal may be transmitted at times t=0 and Figure 2B The wireless signal may be transmitted once or more than once between the subsequent time t=1 shown or any other subsequent time. The transmitted signal may have multiple frequency components within the frequency bandwidth. The transmitted signal may be transmitted from the first wireless communication device 204A in an omnidirectional manner, in a directional manner, or in other manners. In the example shown, the wireless signal traverses multiple corresponding paths in the space 200, and the signal along each path may become attenuated due to path loss, scattering, reflection, etc., and may have a phase offset or frequency offset.

[0053] like Figure 2A and Figure 2B As shown, signals from various paths 216, 218, 220, 222, 224A, and 224B are combined at third wireless communication device 204C and second wireless communication device 204B to form a received signal. Due to the influence of multiple paths in space 200 on the transmitted signal, space 200 can be represented as a transfer function (e.g., a filter) that inputs the transmitted signal and outputs the received signal. If an object moves in space 200, the attenuation or phase shift of the signal in the affected signal path may change, and thus the transfer function of space 200 may vary. Assuming the same wireless signal is transmitted from first wireless communication device 204A, if the transfer function of space 200 changes, the output of the transfer function (e.g., the received signal) will also change. Changes 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 (received signal) will not change. The lack of change in the received signal (e.g., steady state) can indicate the lack of movement in space 200.

[0054] Mathematically, the transmission signal f(t) transmitted from the first wireless communication device 204A can be described according to equation (1):

[0055]

[0056] Among them, ω n represents the frequency of the nth frequency component of the transmitted signal, c n represents the complex coefficient of the nth frequency component, and t represents time. In the case where the transmission signal f(t) is transmitted from the first wireless communication device 204A, the output signal r from the path k can be described according to equation (2): k (t):

[0057]

[0058] Among them, α n,k represents the attenuation factor (or channel response; e.g. due to scattering, reflection, and path loss) of the nth frequency component along path k, and φ n,k represents the phase of the signal of the nth frequency component along path k. Then, the received signal R at the wireless communication device can be described as all the output signals r from all paths to the wireless communication device. k The sum of (t), which is shown in equation (3):

[0059]

[0060] Substituting formula (2) into formula (3) yields the following formula (4):

[0061]

[0062] Then, the received signal R at the wireless communication device can be analyzed. For example, using a 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 used for the corresponding frequency component (n frequency ω n For the frequency ω n The frequency component at can be expressed as follows in formula (5): n :

[0063]

[0064] Given frequency component ω n The complex value Y n Indicates the frequency component ω nThe relative magnitude and phase shift of the received signal at . When the object moves in space, due to the spatial channel response α n,k is constantly changing, so the complex value Y n Therefore, the detected change in the channel response (and hence the complex value Y n ) can indicate the movement of an object within a communication channel. n A stable channel response (or "steady state") where no or only small changes are detected in the ) indicates a lack of movement. Thus, in some implementations, the complex value Y for each of the plurality of devices in the wireless mesh network may be analyzed. n , to detect whether motion or lack of motion occurs in the space through which the transmitted signal f(t) passes. In some cases, when lack of motion is detected, the channel response can be further analyzed to determine whether an object exists in the space but is not moving.

[0065] exist Figure 2A and Figure 2B In another aspect, beamforming can be performed between devices based on some knowledge of the communication channel (e.g., feedback properties generated by a receiver), which can be used to generate one or more steering properties (e.g., steering matrices) applied by the transmitter device to shape the transmit beam / signal in one or more specific directions. Thus, changes in the steering or feedback properties used in the beamforming process indicate changes in the space accessed by the wireless communication system that may be caused by moving objects. For example, motion can be detected by significant changes in the communication channel over a period of time (as indicated by the channel response, or the steering or feedback properties, or any combination thereof).

[0066] In some implementations, for example, a steering matrix can be generated at a transmitter device (beamforming transmitter) based on a feedback matrix provided by a receiver device (beamforming receiver) based on channel sounding. Because the steering matrix and feedback matrix are related to the propagation characteristics of the channel, these matrices change as objects move within the channel. Changes in the channel characteristics are reflected in these matrices accordingly, and by analyzing the matrices, motion can be detected and different characteristics of the detected motion 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 objects in space relative to the wireless communication device. In some cases, a "pattern" of a beamforming matrix (e.g., a feedback matrix or a steering matrix) can be used to generate the spatial map. The spatial map can be used to detect the presence of motion in space or to detect the location of the detected motion.

[0067] In some instances, channel information derived from wireless signals (e.g., channel response information or beamforming state information as described above) can be used to calculate motion indication values. For example, a set of motion indication values ​​for a given time frame can represent the level of interference detected on each wireless link that communicated the wireless signal during the 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 values. 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 value can be normalized (e.g., to unity or otherwise).

[0068] In some cases, the motion indication values ​​associated with a time frame can be used collectively to make an overall determination, e.g., whether motion occurred in space during the time frame, where in space the motion occurred during the time frame, and so on. For example, a motion consensus value for a time frame can indicate an overall determination related to whether motion occurred in space based on all (or a subset) of the motion indication values ​​for the 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 the accuracy of, for example, location determinations. For example, the motion indication values ​​for each consecutive time frame can be used to recursively update a data set representing the conditional probability of detecting motion at different locations in space, and the recursively updated data set can be used to make an overall determination related to where motion occurred during subsequent time frames.

[0069] Figure 3 FIG is a diagram of an example wireless communication network 300 including a plurality of wireless nodes 302. The plurality of wireless nodes 302 may be similar to Figure 1 and Figures 2A-2B Wireless communication devices 102, 204. Figure 3 , three wireless nodes 302 are depicted, labeled N0, N1, and N2. However, other numbers of wireless nodes 302 are possible in the wireless communication network 300. In addition, other types of nodes are possible. For example, the wireless communication network 300 may include one or more network servers, network routers, network switches, network repeaters, or other types of networking or computing devices.

[0070] The wireless communication network 300 includes a wireless communication channel 304 that communicatively couples pairs of wireless nodes 302. This communicative coupling can enable the exchange of wireless signals between the wireless nodes 302 within a time frame. In particular, the wireless communication channel 304 enables bidirectional communication between pairs of wireless nodes 302. This communication can occur in both directions simultaneously (e.g., full-duplex) or in only one direction at a time (e.g., half-duplex). In networks such as Figure 3 In some examples shown, the wireless communication channel 304 communicatively couples each pair of wireless nodes 302 in the plurality of wireless nodes 302. In other examples, one or more pairs of wireless nodes 302 may lack corresponding wireless communication channels 304.

[0071] Each wireless communication channel 304 includes two or more wireless links, which includes at least one wireless link for each direction of bidirectional communication. Figure 3 In the figure, the arrows represent individual wireless links. The arrows are marked as 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 connected by Figure 3 There are two arrows L 01 and L 10 The two wireless links indicated are communicatively coupled. 01 Corresponding to wireless communication along the first direction from N0 to N1, and the wireless link L 10 Corresponding to wireless communication along the opposite second direction from N1 to N0.

[0072] In some implementations, the wireless communication network 300 obtains a set of motion indication values ​​associated with a time frame, the set of motion indication values ​​may include information about Figures 2A-2B The motion indication value set indicates motion detected from a wireless link in the wireless communication network. Each motion indication value is associated with a corresponding wireless link. One or more wireless links (e.g., wireless communication network 300) in the wireless communication network (e.g., wireless communication network 300) may be used. Figure 3 One or more wireless links L 01 、L 10 、L 02 、L 20 、L 12 and L 21 ) to detect motion. Each wireless link is defined between each pair of wireless communication devices (eg, a pair combination of wireless nodes N0, N1, and N2) in the wireless communication network.

[0073] In some variations, the wireless communication network 300 may 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 may 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 may be mapped to a media access control (MAC) address value that corresponds to a MAC address (or a portion thereof) associated with the wireless node. For example, Figure 3 The wireless nodes N0, N1, and N2 may be associated with a six-character portion of their respective MAC addresses, which is then mapped to a unique node identifier:

[0074] {N0, N1, N2} → {7f4440, 7f4c9e, 7f630c} → {0, 1, 2}

[0075] Here, MAC address values ​​7f4440, 7f4c9e, and 7f630c are mapped to respective unique node identifiers 0, 1, and 2. The program instructions may also cause the data processing device to associate wireless links with their respective pairs of wireless nodes via corresponding pairs of MAC address values. The MAC address values ​​may then be mapped to unique link identifiers to form a link table. For example, Figure 3 Wireless link L 01 、L 10 、L 02 、L 20 、L 12 and L 21 Can be mapped to a unique link identifier according to:

[0076]

[0077] The MAC address values ​​can be sorted from left to right to indicate pairs of transmitting and receiving wireless nodes in a wireless link. Specifically, 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 node and link identifiers can assist a data processing device in performing operations such as searching, sorting, and matrix manipulation during motion detection processing.

[0078] The program instructions may additionally cause the data processing device to poll the wireless link (or wireless node 302) to obtain a motion indication value for each of the plurality of wireless links. Figure 3 The wireless links of the wireless communication network 300 may report the motion indication value according to a data structure such as shown below:

[0079]

[0080] In the data structure, the first column corresponds to the unique link identifiers of the wireless links, 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.).

[0081] Now refer to Figure 4 , presents a flowchart 400 of an example process for determining a location of motion detected by one or more wireless links in a wireless communication network. The one or more wireless links may be wireless links formed by pairs of wireless nodes such as Figure 3 The wireless communication network may include a data processing device (e.g., one or more of the wireless nodes may be used as a data processing device). Optionally, the data processing device may be communicatively coupled to the wireless communication network via a data connection (e.g., a wireless connection, a copper connection, an optical fiber connection, etc.). As shown by line 402, the data processing device may receive a data structure associated with a time frame. The data structure 402 may map the multiple wireless links with their respective motion indication values ​​for the time frame. The multiple wireless links may be represented by unique link identifiers in the data structure 402. However, other representations are also possible. For example, the multiple wireless links may be represented by pairs of unique node identifiers. In some examples, the data structure 402 may associate each unique link identifier with a corresponding pair of unique node identifiers.

[0082] The data processing device executes the program instructions to generate the wireless links existing 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) used as a link dictionary. The link dictionary is composed of Figure 4 The link dictionary 404 is shown in block 404. The link dictionary 404 is operable to track wireless links present in the wireless communication network within successive 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 (previously) existing wireless link. The wireless links may be represented in the link dictionary 404 by unique link identifiers, pairs of unique node identifiers, or both. However, other representations are also possible.

[0083] The data processing device also executes program instructions to generate, from the data structure 402, the wireless nodes present in the wireless communication network during the time frame. In particular, as indicated by block 406, the program instructions direct the data processing device to "split" each generated wireless link into its individual wireless nodes for each pair of wireless nodes. The program instructions further direct the data processing device to sort or filter through the individual wireless nodes to identify unique wireless nodes in the wireless communication network during the time frame. Given that a single wireless node may be commonly shared between two or more wireless links, the link dictionary 404 alone may not be sufficient to establish unique wireless nodes for the wireless communication network. The unique wireless nodes may 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 composed of Figure 4 The node dictionary 408 is operable to maintain a list of unique wireless nodes present in the wireless communication network within successive time frames. A unique wireless node may be represented in the node dictionary 408 by a corresponding unique node identifier. However, other representations are also possible.

[0084] As shown in block 410, a node counter and persistence calculator can be communicatively coupled to the node dictionary 408. In many instances, the node counter and persistence calculator 410 are part of a data processing device. The node counter and persistence calculator 410 can be operable to track the presence of wireless nodes in the wireless communication network over successive time frames and update the node dictionary 408 accordingly. This 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 persistence calculator 410 updates 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 persistence calculator 410 updates the node dictionary 408 to remove the disconnected wireless node. This update can occur after a predetermined number of time frames have passed in which the wireless node was not connected to the wireless communication network.

[0085] The data processing device additionally executes program instructions to change one or more magnitudes of the set of motion indication values ​​so that each motion indication value is referenced to a common scale of wireless link sensitivity. More specifically, the data processing device may function in part as a link strength estimator (such as shown in block 412) and a link equalizer (such as shown in block 414). Link strength estimator 412 and link equalizer 414 receive identifications of wireless links present in the wireless communication network during a time frame and their respective motion indication values ​​from link dictionary 404. Link equalizer 414 also receives an equalization value for each of the identified wireless links from link strength estimator 412. Link strength estimator 412 and link equalizer 414 operate cooperatively to reference the motion indication value for each identified wireless link to a common scale of wireless link sensitivity.

[0086] In operation, the link strength estimator 412 estimates the link strength of the identified wireless links by determining statistical properties of the motion indication values ​​of each of the identified wireless links. The statistical properties can be a maximum motion indication value, a deviation of the motion indication value from a mean value, or a standard deviation. Other statistical properties are also possible. In some examples, the link strength estimator 412 tracks the statistical properties of one or more corresponding motion indication values ​​within consecutive time frames. The statistical properties can enable the link strength estimator 412 to measure the excitation strength and corresponding dynamic range of the wireless links. Such measurements can take into account the unique sensitivity of each identified wireless link. The link strength estimator 412 passes the determined statistical values ​​to the link equalizer 414, which in turn uses these statistical values ​​as equalization values ​​for the corresponding motion indication values. In particular, the link equalizer 414 divides the motion indication value of each identified wireless link by its respective equalization value (or statistical property) to generate a normalized motion indication value. In this manner, link equalizer 414 "equalizes" the identified wireless links so that their respective responses to motion or other events can be compared independent of sensitivity.

[0087] 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). This excitation and corresponding dynamic range are reflected in the motion indication values ​​received by link strength estimator 412 and link equalizer 414 from link dictionary 404. However, link strength estimator 412 and link equalizer 414 cooperate to normalize the received motion indication values ​​to a common scale of wireless link sensitivities. This normalization ensures that a comparison of wireless links of a first subset and a second subset within a plurality of wireless links does not overweight the first subset of wireless links relative to the second subset. Another possible benefit is normalization.

[0088] The program instructions may further cause the data processing device to identify a subset of wireless links based on the magnitude of the associated motion indication values ​​of the wireless links relative to the other motion indication values ​​in the set of motion indication values. In particular, the data processing device may 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). As part of this operation, the data processing device may 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 may function, in part, as the likelihood calculator 416.

[0089] Likelihood calculator 416 identifies a subset of wireless links based on the magnitude of each normalized motion indication value of the wireless links relative to the magnitude of the other normalized motion indication values. To this end, likelihood calculator 416 may sort or filter the normalized motion indication values ​​received from link equalizer 414 to identify the subset of wireless links. For example, likelihood calculator 416 may sort the data stored in a memory by magnitude to determine the highest normalized motion indication value, thereby generating a subset of wireless links having a single wireless link. In another example, likelihood calculator 416 may sort the data in the memory by magnitude to determine the three highest normalized motion indication values, thereby generating a subset of wireless links having three wireless links. Other numbers of wireless links are also possible for the subset of wireless links.

[0090] Likelihood calculator 416 also generates a count value for wireless nodes connected to the wireless communication network during the time frame. The count value for each wireless node indicates how many wireless links in the subset of wireless links are defined by the wireless node. For example, and with reference to Figure 3 , likelihood calculator 416 may identify a subset of wireless links based on the three highest normalized motion indicator values:

[0091]

[0092] As shown below, unique link identifiers 3, 4, and 5 correspond to wireless nodes N0, N1, and N2:

[0093]

[0094] Here, wireless node N0 helps define one wireless link in the subset of wireless links, namely, N2→N0. Similarly, wireless node N1 helps define two wireless links in the subset of wireless links, namely, N1→N2 and N2→N1, and wireless node N2 helps define three wireless links in the subset of wireless links, namely, N1→N2, N2→N0, and N2→N1. Therefore, the likelihood calculator 416 generates count values ​​of 1, 2, and 3 for each of the wireless nodes N0, N1, and N2. In this example, all wireless nodes of the wireless communication network help define the wireless links of the subset of wireless links. However, for wireless nodes that do not help define the wireless links of the subset of wireless links, the likelihood calculator 416 may generate a count value of 0. In some instances, the likelihood calculator 416 generates a count value data structure that associates each wireless node connected to the wireless communication network during the time frame with its respective count value. For this example, the likelihood calculator 416 may generate the following count value data structure:

[0095]

[0096] Although the wireless nodes in the count value data structure are marked by N i (where i represents the number of the wireless node), but other representations (such as partial MAC address) are also possible.

[0097] The likelihood calculator 416 further generates a probability vector based on count values ​​including a value for each wireless node connected to the wireless communication network during the time frame. The value for each connected wireless node represents a probability of motion at the connected wireless node during the time frame. In particular, these values ​​may represent a probability that motion at (or near) the corresponding wireless node induces link activity along a particular wireless link. In some instances, these values ​​may sum to 1. In these instances, these values ​​may be probability values. Figure 4 As shown, likelihood calculator 416 passes the generated probability vector to the Bayesian update engine.

[0098] 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 necessarily sum to 1. The link likelihood graph associates likelihood values ​​with count values ​​of various sizes. The likelihood values ​​and their associations may be predetermined and may be further stored in a memory of the likelihood calculator 416 (or a data processing device). For example, if a wireless node is strongly represented in a subset of wireless links, the probability that the motion detected by the wireless communication network is located at or near the wireless node will be relatively high. Therefore, the link likelihood graph may associate high likelihood values ​​with proportionally high count values. However, other associations of likelihood values ​​and count values ​​are also possible.

[0099] In some variations, the probability vector is composed of the probability vector P(L j |N i ) indicates that the probability vector P(L j |N i ) includes probability values ​​based on the link likelihood graph. The probability values ​​correspond to the wireless link L j Considering the wireless node N i For example, and referring to Figure 3 , the likelihood calculator 416 may generate a probability distribution including only wireless links L having a unique link identifier “1”. 02 Therefore, 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 motion at wireless node 0 induces link activity along wireless link 1, P(1|1) corresponds to the probability that motion at wireless node 1 induces link activity along wireless link 1, and P(1|2) corresponds to the probability that motion at wireless node 2 induces link activity along wireless link 1. These probability values ​​may be generated from the likelihood values ​​of the link likelihood graph. For example, the likelihood calculator 416 may assign a likelihood value to each of wireless nodes 0, 1, and 2 based on the corresponding count value. The likelihood calculator 416 may then normalize the assigned likelihood values ​​to 1, thereby generating a corresponding probability value for each wireless node.

[0100] Figure 5A A flow chart illustrating example processing by a likelihood calculator to generate a probability vector based on multiple wireless links. Figure 5A The likelihood calculator is depicted considering three wireless links. However, other numbers of wireless links are possible. In order to consider multiple wireless links, the likelihood calculator relies on the motion indication value in addition to the highest motion indication value. This process makes intuitive sense. If interference occurs near a wireless node, the interference is likely to affect all wireless links associated with the wireless node. The likelihood calculator can take all excited wireless links and check the frequency of occurrence of a specific wireless node among these excited wireless links. In this example, motion is most likely to occur at the most common wireless node. The likelihood calculator takes the M most excited wireless links (for example, 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 frequency of each wireless node so obtained to a likelihood value through a link likelihood graph. The probability vector is then output for the Bayesian update engine.

[0101] Figure 5BAn example mathematical function for generating a probability vector using a likelihood calculator is shown. Figure 5B Shown by Figure 5A The multi-link likelihood processing utilized by the likelihood calculator in

[15] is described in more detail, and the example mathematical functions are broken down and explained in more detail. The wireless link from a certain moment is called L t , and the number of wireless links represented by the excitation level is given by m. The likelihood calculator accepts the M excited wireless links from the wireless link vector and uses one wireless link represented as a→b to create a set of nodes {a} and {b} and performs a union of the sets for all M excited wireless links. The variable j is then swept through the union by taking each element and comparing it to a given element represented by i, where i is swept through the node dictionary. The comparison produces a 1 or a 0, where the 1 or 0 is added together for all values ​​of j in the dictionary. The sum is calculated to obtain the count of each wireless node present in the wireless communication network. The LLmap function receives a node and its corresponding count, and in response, outputs a likelihood value for each count. The higher the count, the higher the likelihood value of the motion at the wireless node.

[0102] Now return to reference Figure 4 , the data processing device also executes program instructions to pass a 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 may function in part as a probability mapper / redistributor, such as shown in block 418. As part of this operation, the data processing device may receive a probability vector (e.g., a prior probability vector) generated prior to the time frame. The probability mapper / redistributor 418 may be operable to determine a change in wireless connectivity between time frames, such as between a prior time frame and a subsequent time frame. The change in wireless connectivity may include one or both of the following: [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 the change in wireless connectivity, the probability mapper / redistributor 418 may compare the list of unique wireless nodes in the time frame with the wireless nodes represented in the probability vector generated prior to the time frame.

[0103] The probability mapper / redistributor 418 is further operable to generate an initialization probability vector from the plurality of initialization probability vectors 420 by changing the value of the prior probability vector based on a change in wireless connectivity. For example, the change in wireless connectivity may include a wireless node being disconnected from the wireless communication network between a prior time frame and a subsequent time frame. In this case, the probability mapper / redistributor 418 may generate the initialization probability vector by distributing the value of the prior probability vector associated with the disconnected wireless node to the value of the wireless node remaining connected to the wireless communication network. This distribution may occur in a ratio defined by the values ​​of the remaining wireless nodes. However, other distribution schemes are also possible. In another example, the change in wireless connectivity may include a wireless node being connected from the wireless communication network between a prior time frame and a subsequent time frame. In this case, the probability mapper / redistributor 418 generates the initialization probability vector by adding the value to the prior probability vector of the newly connected wireless node.

[0104] 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) is cold-started, the probability mapper / redistributor 418 can generate an initialization probability vector by assigning equal probability values ​​to all unique wireless nodes listed in the node dictionary 408. In another example, if the wireless communication network (or motion detection system) is warm-started, the probability mapper / redistributor 418 can generate an initialization probability vector based on 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 operational but is later reset, the probability mapper / redistributor 418 can utilize a priori probability vectors as the initialization probability vectors. 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 with probability values ​​biased toward wireless nodes at entry points (e.g., front door).

[0105] The probability mapper / redistributor 418 passes the plurality of initialization probability vectors 420 to a multiplexer (or mux), which also receives the prior probability vector from the motion model. The data processing device may function in part as a multiplexer (such as shown in block 422). The multiplexer 422 is operable to select 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. Then, as Figure 4As shown, the selected probability vector is passed to the Bayesian update engine. In order to determine which probability vector to select, multiplexer 422 receives control input from motion persistence calculator (as shown in block 424). Motion persistence calculator 424 receives the data structure 402 comprising a motion indication value set, and also receives the configuration of wireless communication network 426. Based on these inputs, motion persistence calculator 424 generates a control signal, which, when received by multiplexer 422, selects which of one of a plurality of initialization probability vectors and the prior probability vector to be passed to the Bayesian update engine. If motion is continuously detected by wireless communication network (or motion detection system), motion persistence calculator 424 can keep passing the prior probability vector through multiplexer 422. On the contrary, if motion is detected after a period of time that does not exist, motion persistence calculator 424 can pass the initialization probability vector corresponding to the reset state through multiplexer 422. Data processing equipment can also be used as motion persistence calculator 424 in part.

[0106] 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 locations associated with motion occurring during the subsequent time frame. Specifically, program instructions are executed to generate a third probability vector including third values ​​for each wireless node based on the first probability vector received from likelihood calculator 416 and the second probability vector received from multiplexer 422. Specifically, as shown in block 428, the Bayesian update engine generates the third probability vector. The third values ​​of the third probability vector represent the probability of motion at each wireless node during the time frame.

[0107] In some variations, the second probability vector is composed of the probability vector P(N i ) indicates that the probability vector P(N i ) includes a wireless node N i The probability value (or second value) of the probability of the movement at P(N i ) of wireless nodes N i The probability of motion at is independent of the probability of motion along the wireless link L j The link activity of any wireless link in the network can also be independent of other factors. Figure 3 , the program instructions can make the data processing device according to P(N i )={P(0),P(1),P(2)}to define P(N i ). Here, P(N i ) are P(0), P(1), and P(2), which correspond to the probabilities of motion at (or near) wireless nodes 0, 1, and 2, respectively.

[0108] In some variations, the third probability vector is composed of P(N i |L j ) indicates that N i corresponds to a unique node identifier, and L j Corresponds to a unique link identifier. Considering that along the wireless link L j Link activity, the third probability vector P(N i |L j ) includes a wireless node N i The third value of the probability of motion at . For example, if L j Corresponding to Figure 3 The wireless link 1 in the wireless communication network 300 of FIG, then 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 wireless link 1 is caused by motion at wireless node 0, P(1|1) corresponds to the probability that the link activity along wireless link 1 is caused by motion at wireless node 1, and P(2|1) corresponds to the probability that the link activity along wireless link 1 is caused by motion at wireless node 2.

[0109] The third probability vector is represented by P(N i |L j ) can be determined by the Bayesian update engine 428 according to equation (1):

[0110]

[0111] Where: P(L j |N i ) and P(N i ) are used as described above for the first probability vector from likelihood calculator 416 and the second probability vector from multiplexer 422, respectively. Equation (1) can enable wireless communication network 300 (or data processing device) to use Bayesian statistics to determine the location of the detected motion. For example, if Figure 3 The subset of wireless links in the wireless communication network 300 includes only wireless link 1, and P(1|N i )={1,0.2,0.9}, the program instructions can cause the data processing device to calculate the third probability vector P(N i |1):

[0112]

[0113] This calculation yields P(N i|1)={0.476,0.095,0.429}, where the third value is 1, i.e. 0.476+0.095+0.429=1. Therefore, P(N i |1) can represent the 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 motion detected by the wireless communication network 300 along the wireless link 1 is located at (or close to) 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).

[0114] In some implementations, the data processing device iteratively processes consecutive time frames. For example, the data processing device may iteratively repeat the following operations for each time frame over multiple iterations: obtaining a set of motion indication values ​​associated with a subsequent time frame; identifying a subset of wireless links based on the magnitude of the motion indication values ​​associated with the wireless links relative to other motion indication values ​​in the set of motion indication values; generating a count value for wireless nodes connected to the wireless communication network during the subsequent time frame; and generating a first probability vector based on the count value and including values ​​for the connected wireless nodes. In some implementations, the repeated operations include obtaining a set of motion indication values ​​associated with a previous time frame; generating a priori probability vector associated with the previous time frame; and generating a second probability vector by selecting one of a plurality of initialization probability vectors or the priori probability vector.

[0115] In some implementations, the repeated operations may include: generating a third probability vector based on the first value of the first probability vector and the second value of the second probability vector; identifying the wireless communication device associated with the highest value of the third values; and identifying, through operation of the data processing device, 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.

[0116] The output of the Bayesian update engine 428 can be fed into the motion model to generate a priori 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 used in part as a motion model (as shown in block 430). The motion model 430 can operate similarly to calculating probabilities on a grid. Figure 6 A schematic diagram of an example motion model using a grid representation of three wireless nodes is presented. At each time instant t, motion may exist at any of the available wireless nodes. From time t to time t+1 (in Figure 6In the example shown as t1 and t2 respectively in the figure, the motion can remain at the same wireless node or be transferred to any other wireless node. In order to determine the motion at time step t+1, the probabilities of the motions that existed at any wireless node in time step t are aggregated, which may include a matrix vector calculation. The probability of a motion occurring at n1 in time step t+1 is now given by the probability of a motion that occurred at n1 and stayed at n1, occurred at n2 and moved to n1, or occurred at n3 and moved to n1. In other words, the motion at n1 at 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. The entries of the matrix are obtained from the N x Transfer to N y The transition probability of the movement.

[0117] Figure 7 A diagram presenting an example process for determining the probability of a location of motion detected by three wireless links in a wireless communication network. On the far left is an initial probability vector that assigns equal probability of motion to all wireless nodes in the wireless communication network. In the upper left illustration, each pulse on the x-axis will be read as the probability of the location of motion detected by three wireless links in a wireless communication network. x The probability of motion occurring at the wireless node. On the far right, motion indication values ​​are received that specify the amount of excitation on the wireless link. These values ​​are converted into a likelihood function that determines the likelihood of each wireless node triggering the observed link behavior. In the illustration on the middle right, the link excitation likelihood graph is on the x-axis and presents a plot of the likelihood vectors for all possible wireless nodes. Using the Bayesian formula, the likelihood vector and the initial probability vector are multiplied and the product so obtained 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 motion at the wireless node. This probability is used to form a decision where motion is most likely to occur. The output probability is assigned as a new probability to the node motion probability vector and then propagated through the motion model in preparation for the next iteration of the loop. The motion model works based on the assumption that at any moment in time N x To N y The information about the transition probabilities of the transitions is propagated to the next time step.

[0118] In some implementations, a wireless communication network may include a network topology, a motion topology, or both. The network topology is defined by the wireless links active within a time frame in the wireless communication network. Such activity can be represented by data exchange between two wireless nodes associated with the active wireless links within the time frame. Thus, the network topology includes wireless nodes associated with the active wireless links. By comparison, the motion topology is defined by the active wireless links within the time frame in the network topology that are activated by the movement of an object. The motion topology includes wireless nodes associated with the activated wireless links and the connection states of these wireless nodes. The connection state is defined by multiple wireless nodes connected to a wireless node of interest, such as via various wireless communication channels. Examples of connection states include single connection, dual connection, triple connection, etc.

[0119] For example, Figure 8 Presentation Figure 3 Schematic diagram of an example wireless communication network 300 of FIG. 3 , but in which the motion of an object activates four wireless links. The motion of the object may occur during a certain time frame. Figure 3 and Figure 8 The common features of the two are related via coordination numbers that differ by an increment of 500. The network topology of the example wireless communication network 800 consists of wireless nodes N0, N1 and N2 and wireless links L 01 、L 10 、L 02 、L 20 、L 12 and L 21 Definition. The dashed arrow 806 indicates the movement of an object near the wireless node N0, which activates the wireless link L 01 、L 10 、L 02 and L 20 Wireless link L 01 、L 10 、L 02 and L 20 The motivational state is Figure 8 Indicated by dotted arrows.

[0120] The activated wireless link is part of the wireless communication channel 804 between the wireless node N0 and the wireless nodes N1 and N2 and serves as a basis for defining a motion topology. In particular, the motion topology of the example wireless communication network 800 consists of the wireless nodes N0, N1 and N2 and the activated wireless link L. 01 、L 10 、L 02 and L 20 Definition. The motion topology does not include the wireless link L 12 and L 21 , these wireless links L 12 and L21 Not stimulated by the motion of the object. In the moving topology, there are two wireless communication channels 804, namely, one extending between wireless nodes N0 and N1, and one extending between wireless nodes N1 and N2. Thus, wireless node N0 is wirelessly connected to the other two nodes and has a connection state of dual connection. Similarly, wireless nodes N1 and N2 are each connected to the other node and have corresponding connection states of single connection (in the moving topology). Although presented in the context of a single time frame Figure 8 , however, one or both of the network topology and the motion topology of the example communication network 800 may change over multiple iterations of a time frame.

[0121] In some variations, the wireless communication network 800 corresponds to a wireless mesh network, and the wireless nodes N0, N1, and N2 correspond to access point (AP) nodes of the wireless mesh network. The access point nodes may be based on wireless links L between pairs of access point nodes, such as along wireless communication channels 804. 01 、L 10 、L 02 、L 20 、L 12 or L 21 Motion sensing data may be generated in response to the motion of an object in the space traversed by the wireless signal (e.g., as indicated by dashed arrow 806). However, motion sensing data may also be generated in the absence of such motion.

[0122] Now return to reference Figure 4 , the likelihood calculator 416 generates a probability vector for the Bayesian update engine 428 based on the count values ​​for each wireless node connected to the wireless communication network during the time frame. Figure 9 A flowchart 900 is presented of an example process for determining a location of movement based on a movement topology of a wireless communication network. Figure 4 The flowchart 400 described herein is an optional part and may correspond to program instructions to be executed by a data processing device of a wireless communication network. At the start of the example process, the data processing device may select a node from a node dictionary (e.g., Figure 4 The data processing device may also receive a list of unique wireless nodes present in the wireless communication network during the time frame from a node dictionary 408 of the link equalizer (e.g., Figure 4A link equalizer 414 of the wireless communication network receives a list of wireless links identified as being present in the wireless communication network during a time frame. The list of identified wireless links includes a normalized motion indicator value for each wireless link. The list of unique wireless nodes and the list of identified wireless links can be stored in a database and used to define a network topology of the wireless communication network.

[0123] As shown in block 902, the data processing device may function in part as a likelihood calculator. In this capacity, the data processing device may generate a probability vector in response to receiving a list of unique wireless nodes and a list of identified wireless links. Figure 4 As described in the likelihood calculator 414 of FIG. , the probability vector is based on the count values ​​for each unique wireless node in the unique wireless node list. As shown in block 904, the data processing device may also partially function as a link aggregator / filter. The link aggregator / filter 904 receives the list of unique wireless nodes and the list of identified wireless links and uses the latter to determine which wireless links were excited by motion during the time frame. In some examples, the link aggregator / filter 904 uses a minimum excitation (or interference) threshold to make this determination. The link aggregator / filter 904 then compiles a list of excited wireless links.

[0124] As indicated by block 906, the data processing device may further function, in part, as a node labeler. Node labeler 906 receives a list of stimulus wireless links from link aggregator / filter 904 and, for each stimulus wireless link in the list, determines a wireless node that defines the stimulus wireless link. For each unique wireless node thus determined, node labeler 906 generates a probability vector that includes probability values ​​for each possible connection state of the determined wireless node. Examples of possible connection states include single connection, dual connection, triple connection, and the like. Node labeler 906 then assigns a "label" to each determined wireless node, indicating the connection state of the determined wireless node during the time frame. In doing so, node labeler 906 may generate a list of the determined wireless nodes and their respective "labels" for the time frame. In many instances, the "label" assigned to the determined wireless node corresponds to the connection state with the highest probability in the probability vector.

[0125] In some implementations, after the "tags" have been assigned, the node tagger 906 parses the motion topology (or motion sensing topology) of the wireless communication network during the time frame. To this end, the node tagger 906 can use the "tags" assigned to the determined wireless nodes and the network topology of the wireless communication network. The motion topology can be stored in a motion topology database that includes the identification of the activated wireless links, the identification of the determined wireless nodes, and the "tags" of the determined wireless nodes.

[0126] In some implementations, the node tagger 906 may repeat the operations of determining wireless nodes, generating probability vectors, and assigning "tags" to update the "tags" associated with each determined wireless node. This repetition may enable the node tagger 906 to generate and maintain a "tag" database that includes all wireless nodes in the wireless communication network, their respective probability vectors, and their respective "tags." The "tags" in the "tag" database may be updated as the probability vectors change (e.g., as a subset of wireless links are activated in response to the motion of an object over successive time frames).

[0127] The node tagger 906 passes the list of determined wireless nodes and their respective "tags" to the adaptive modulator as shown in box 908. The adaptive modulator 908 also receives a count value data structure from the likelihood calculator 902. The count value data structure associates each wireless node connected to the wireless communication network during the time frame with a count value. The count value indicates how many excitation wireless links the wireless node has defined. The adaptive modulator 908 then compares the count value of the determined wireless node with a threshold count value associated with the "tag" assigned to the wireless node. If the count value is less than the threshold count value, the wireless node is removed from the count value data structure. The threshold count value can represent the minimum number of excitation wireless links required to consider the connection state to participate in motion detection. The adaptive modulator 908 repeats this comparison for each determined wireless node to generate a modified count value data structure. The modified count value data structure is then passed back to the likelihood calculator 908, which uses the modified count value data structure to generate a prediction algorithm for the Bayesian update engine (e.g., Figure 4 The probability vector of the Bayesian update engine 428 is obtained by the adaptive modulator 908. In this way, the adaptive modulator 908 updates the count value data structure based on the motion topology (or motion sensing topology) of the wireless communication network. In many implementations, the count value data structure is adaptively updated in successive time frames.

[0128] In some implementations, a data processing device executes program instructions to modify a count value data structure based on the topology of motion in a variable time frame. The duration of the variable time frame can be changed to accommodate the length of time it takes for motion to activate a wireless link in a wireless communication network. For example, if Figure 8 If the wireless nodes N1 and N2 are separated by a large distance, the movement 806 near the wireless node N0 may take a long time to 20 and L 02 Move to wireless link L 01 and L 10(e.g. due to a larger angular distance). If the duration of the time frame is not increased to include longer times, the motion topology is based only on the wireless link L 20 and L 02 , and the probability vector from the likelihood calculator does not accurately weight the location of the movement 806 equally between wireless nodes N0 and N2. Increasing the time frame to encompass a longer period of time allows the probability vector to more accurately weight the location of the movement 806 toward wireless node N0.

[0129] Figure 10 A flowchart 1000 is presented of an example process for determining a location of a movement using a variable time frame based movement topology. Figure 4 The flowchart 400 described herein is an optional part and may correspond to program instructions to be executed by a data processing device of a wireless communication network. At the start of the example process, the data processing device may select a node from a node dictionary (e.g., Figure 4 The data processing device may also receive a list of unique wireless nodes present in the wireless communication network during the time frame from a node dictionary 408 of the link equalizer (e.g., Figure 4 A link equalizer 414 of the wireless communication network receives a list of wireless links identified as being present in the wireless communication network during a time frame. The list of identified wireless links includes a normalized motion indicator value for each wireless link. The list of unique wireless nodes and the list of identified wireless links can be stored in a database and used to define a network topology of the wireless communication network.

[0130] Flowchart 1000 includes the following Figure 9 900. However, flowchart 900 includes additional features (or program instructions) that allow a data processing device to use a motion topology based on a variable time frame to determine a location of motion. In particular, the data processing device can execute the program instructions to function, in part, as an adaptive hysteresis link aggregator as shown in block 1010. The adaptive hysteresis link aggregator 1010 receives a list of unique wireless nodes and a list of identified wireless links, and uses the latter to determine which wireless links were excited by motion during the variable time frame t±τ. In doing so, the adaptive hysteresis link aggregator 1010 generates a list of excited wireless links, the list including an instance of the excited wireless link each time the excited wireless link is excited in the variable time frame. If the number of instances exceeds a threshold number, the number of instances is set to equal the threshold number.

[0131] The adaptive hysteresis link aggregator 1010 also determines a count value for each unique wireless node based on the list of excitation wireless links. The count value indicates how many excitation wireless links (including instances thereof) the unique wireless node has defined. Using the count value, the adaptive hysteresis link aggregator 1010 generates an adapted count value data structure that associates each unique wireless node with the count value. The adaptive hysteresis link aggregator 1010 passes the adapted count value data structure to the link aggregator / filter with hysteresis as shown in block 1004. The adaptive hysteresis link aggregator 1010 also passes the list of excitation wireless links to the node labeler as shown in block 1006. The link aggregator / filter with hysteresis 1004 and the node labeler 1006 may be similar to the ones described with respect to Figure 9 The link aggregator / filter 904 and node labeler 906 operate as described.

[0132] In many implementations, the adaptive hysteresis link aggregator 1010 implements a delay line. The delay line tracks not only the instantaneous excited link vector, but also the number (N) of the last excited link vectors. The delay line allows the data processing device to capture a pair of wireless links that were not triggered or excited together (e.g., due to pathology) and enables them to be aggregated in the same time frame. This aggregation allows wireless links belonging to a wireless node to appear in the same buffer while pointing to the "true" motion topology of the wireless node. Aggregation also assists the node tagger 1006 in accurately assigning "labels." Depending on the situation, aggregation can be performed using many different processes. For example, the adaptive hysteresis link aggregator 1010 can determine all unique wireless links in an N-element buffer and then form an output based on all unique wireless links. In another example, the adaptive hysteresis link aggregator 1010 can use the three most frequently excited wireless links in the buffer. Other examples of processing are possible. However, in general, an aggregation process can be used to feed a more subtle version of the excited wireless links to the node tagger 1006.

[0133] The delay line may also be adapted to calculate likelihoods, for example to allow motion to excite all relevant wireless links connected to the wireless node. The likelihood calculator 1002 also requires the frequency with which the wireless node appears in the excited wireless links to calculate the likelihood of motion at the wireless node. This aggregation may be performed in the same manner as described above. Alternatively, different criteria may be chosen, albeit formed along the same lines. Figure 10In FIG, the adaptive hysteresis link aggregator 1010 and the link aggregator / filter with hysteresis 1004 are shown as two different boxes, one of which is copied into the other. These functional units can be mirror images of each other, or they can be slightly different, depending on the optimization selected by the design (e.g., in the program instructions). For example, in the latter alternative, such as for the link aggregator / filter with hysteresis 1004, the designer can use two instances of the wireless link stimulus for aggregation instead of only a single instance. If a subset of the wireless links are aggregated, the aggregation can emphasize the likelihood function (or the frequency of occurrence of the wireless node) toward one or more specific wireless nodes in the wireless communication network. This deviation can have favorable convergence results for the Bayesian inference performed by the Bayesian update engine.

[0134] The data processing device may also function in part as a topology inconsistency calculator as shown in block 1012. The topology inconsistency calculator 1012 tracks the duration of a variable time frame over time to eliminate inconsistencies between the motion topology and the network topology of the wireless communication network. In particular, the topology inconsistency calculator 1012 compares the motion topology and the network topology during the variable time frame to determine a connectivity difference. The motion topology is received from the node labeler 1006, and in some instances, the motion topology includes a motion topology database. If the connectivity difference is greater than a threshold difference, the topology inconsistency calculator 1012 sends a signal to the adaptive hysteresis link aggregator 1010 to increase the duration of the variable time frame. The signal may specify an increment value, which is incremented at Figure 10 denoted as τ in . In many instances, the topology inconsistency calculator 1012 repeatedly sends a signal to the adaptive hysteresis link aggregator 1010 to iteratively increase the duration of the variable time frame (e.g., iteratively increase the magnitude of τ) until the connectivity difference is equal to or less than the threshold difference. The duration of the variable time frame can have a maximum duration, at which the topology inconsistency calculator 1012 stops sending signals to the adaptive hysteresis link aggregator 1010. In some implementations, if the connectivity difference is equal to or less than the threshold difference, the topology inconsistency calculator 1012 sends a signal to the adaptive hysteresis link aggregator 1010 to decrease the duration of the variable time frame. The signal can specify a decrement value (e.g., τ). It should be understood that by controlling the variable time frame used by the adaptive hysteresis link aggregator 1010, the topology inconsistency calculator 1012 allows the data processing device to adaptively adjust the length of time spent on a wireless link in the motion-activated wireless communication network.

[0135] In many variations, poor connectivity can be determined using a metric (e.g., a probability value) based on the motion and connection state of a wireless node in a network topology. For example, poor connectivity can be determined based on the probability that a wireless node is in a dual-connected state in a moving topology and the probability that a wireless node is in a dual-connected state in a network topology. The latter value can be calculated based on the observed link vector available at the input of flowchart 1000. The observed link vector indicates which wireless links in the wireless communication network are reporting their motion indications. If the wireless node frequently appears in a dual-connected state in the reporting vector (e.g., all four wireless links are connected to the wireless node and are always present), then the probability that the wireless node is in a dual-connected state in the network topology is high. In contrast, the probability that a wireless node is in a dual-connected state in a moving topology is based on the activated wireless links, not the reporting wireless links. If the wireless node is connected to all four wireless links, and all four wireless links are activated simultaneously and frequently, then the probability that the wireless node is in a dual-connected state in the moving topology is high.

[0136] Figure 11 An example formula for determining the probability of a wireless node being in a dual-connected state in a moving topology is presented as a graph. The example formula corresponds to a calculation illustrating how to populate a "tag" for a wireless node. This populating is based on how many activated wireless links were disturbed during a motion event associated with the wireless node. An example metric can be associated with the formula, more specifically a ratio calculated by dividing a first probability (Pr1) by a second probability (Pr2) (i.e., Pr1 / Pr2). The first probability represents the probability that the wireless node is dual-connected in a moving topology, and the second probability represents the probability that the wireless node is dual-connected in a network topology. The example metric can be determined and aggregated for all wireless nodes in the wireless communication network, such as by multiplying or summing across all wireless nodes. If the metric is equal to 1, then the first and second probabilities are consistent, and the topology inconsistency calculator 1012 does not need to increase the duration of the variable time frame. (Alternatively, no additional processing is required to align them.) If the metric is less than 1, then the first probability is low and needs to be enhanced to align the two probabilities (e.g., by increasing the duration of the variable time frame).

[0137] In some implementations, a method for determining a location of motion includes obtaining motion sensing data from access point (AP) nodes of a wireless mesh network. The motion sensing data is based on wireless signals transmitted between pairs of AP nodes. In some instances, the motion sensing data includes a motion indication value, which can be calculated based on channel information derived from the wireless signals. However, the motion sensing data can include other types of data, such as a list of unique wireless nodes during a time frame and a list of wireless links identified as present in the wireless mesh network during the time frame.

[0138] The method also includes identifying a motion sensing topology (or motion topology) of the wireless mesh network. The motion sensing topology is identified based on tags assigned to respective AP nodes. Each tag indicates a connection status of a corresponding AP node. The method further includes generating a probability vector based on the motion sensing data and the motion sensing topology. The probability vector includes values ​​representing probabilities of motion of an object at each AP node. In many examples, the generation of the probabilities is performed by operation of a data processing device, wherein the data processing device executes a program executed in conjunction with Figure 4 、 9 Program instructions corresponding to one or more of the flowcharts depicted in 10. Determining a location of motion of an object based on the probability vector. In many implementations, the method includes repeating the following operations in multiple iterations of respective time frames: obtaining motion sensing data, identifying motion sensing topologies, generating probability vectors, and determining a location of motion.

[0139] In some implementations, generating the probability vector includes generating a count value data structure based on the motion sensing data. The count value data structure includes count values ​​for corresponding APs. Each count value indicates the number of wireless links defined by the corresponding AP node, which are stimulated by motion according to the motion sensing data. Generating the probability vector also includes modifying the count value data structure based on the motion sensing topology and generating the probability vector based on the modified count value data structure. In a further implementation, identifying the motion sensing topology includes: identifying the wireless links stimulated by motion based on the motion sensing data, and generating a state probability vector for each AP node. Each state probability vector includes a value for a connection state of the corresponding AP node, and the value for each connection state represents the probability that the AP node is in a connected state. Identifying the motion sensing topology also includes assigning a label to the AP node based on each state probability vector.

[0140] The values ​​of the state probability vector may include a first probability value and a second probability value. For example, the first probability value may represent the probability that the AP node is in a single connection state, and the second probability value may represent the probability that the AP node is in a dual connection state. The values ​​of the state probability vector may also include a third probability value representing the probability that the AP node is in a triple connection state. Other probability values ​​and corresponding connection states are possible. In many implementations, the label assigned to each corresponding AP node indicates the connection state associated with the highest probability value in the state probability vector for the corresponding node.

[0141] In an implementation where generating the probability vector includes modifying a count value data structure, the modification may include comparing the count value for the first AP node to a threshold count value and removing the first AP node from the count value data structure if the count value is less than the threshold count value. The threshold count value is associated with a tag assigned to the first AP node and may represent a minimum number of activated wireless links necessary for a connection state to be considered participating in motion detection.

[0142] In implementations where generating the probability vector includes generating a count value data structure, such generating may include generating a list of wireless links in the wireless mesh network that are activated by motion based on the motion sensing data. Generating may also include generating a list of AP nodes for each instance, the list

[0143] Includes instances of AP nodes in the list of wireless links, which are defined by AP nodes.

[0144] This may additionally include setting a count value for each AP node to be equal to the number of times the corresponding AP node appears in the list of AP nodes.

[0145] In some implementations, identifying the motion sensing topology includes identifying a difference between a first estimated motion sensing topology and the network topology based on data collected during a first time duration. Identifying the motion sensing topology also includes identifying a match between a second estimated motion sensing topology and the network topology based on data collected during a second, longer time duration. The second estimated motion sensing topology is then selected as the motion sensing topology.

[0146] In some implementations, the wireless mesh network includes one or more leaf nodes in addition to the AP nodes. In these implementations, determining the location of the movement includes identifying one of the AP nodes or one of the leaf nodes as the location of the movement. In some implementations, the motion sensing data is based on wireless signals transmitted between pairs of the AP nodes during a first time frame, and the probability vector includes a first probability vector representing the first time frame. In such implementations, determining the location of the movement includes using a Bayesian calculator to determine the location of the movement based on the first probability vector and a previous probability vector representing a previous time frame.

[0147] The above method and its variations can be implemented using a system including a wireless mesh network and its AP nodes (or leaf nodes, if present), one or more processors, and a memory storing instructions, wherein the instructions, when executed by the one or more processors, cause the system to perform the operations of the method and its variations. The above method and its variations can also be stored as instructions on a non-transitory computer-readable medium. When executed by a data processing device, the instructions cause the data processing device to perform the operations of the method and its variations.

[0148] It should be understood that the wireless communication network can reconfigure its topology to improve network performance, such as to increase throughput or reduce latency between wireless nodes (or leaf nodes connected to wireless nodes). This reconfiguration can result in the wireless communication network having different topologies at different time frames. In some implementations, a data processing device executes program instructions to determine a location of movement based on motion indication values ​​collected during different time frames (such as in a subsequent time frame and a previous time frame). The subsequent time frame and the previous time frame correspond to different topologies and can allow the data processing device to determine the location of movement more accurately than when using motion indication values ​​only from the subsequent time frame.

[0149] For example, Figure 12A and Figure 12B Schematic diagrams of an example wireless communication network 1200 with different network topologies in a subsequent time frame and a previous time frame are presented, respectively. The example wireless communication network 1200 includes three wireless nodes 1202 labeled N0, N1, and N2. Wireless nodes N0 and N1 are configured adjacent to a physical barrier 1204 (e.g., a wall), and wireless node N2 is configured at a distance from the physical barrier 1204. Dashed arrows 1206 indicate the movement of objects primarily located near wireless node N0. Objects are restricted from moving into the space between wireless nodes N0 and N1 by physical barrier 1204. Therefore, wireless link L 01 and L 10The data processing device (or node tagger) is therefore unable to establish a motion topology in which the wireless node N0 is in dual connectivity. Instead, the motion topology is based on the wireless link L 20 and L 02 , and wireless nodes N0 and N2 are assigned a “label” indicating their connection status is single-connected. The resulting probability vector then inaccurately weights the location of the motion equally between wireless nodes N0 and N2, even though the motion 1206 is primarily located near wireless node N0.

[0150] However, in previous timeframes, as Figure 12B As shown, the example wireless communication network 1200 has a network topology in which the wireless node N2 is in dual connectivity. Therefore, the motion near the wireless node N2 will stimulate four wireless links (i.e., wireless link L) during the time frame. 02 、L 20 、L 21 and L 12 The resulting motion topology determined will indicate a dual connectivity state of wireless node N2 with high probability. If motion occurs again near wireless node N2 (but still with Figure 12B network topology), then the data from the wireless link pair L 02 / L 20 and L 21 / L 12 The motion indication value of L is used to generate a "depth tag" for each pair. In particular, the motion indication value for the wireless link pair L can be referenced in subsequent time frames. 02 / L 20 The “depth tags” are used to help resolve the location of movement between wireless nodes N0 and N2.

[0151] In some variations, the wireless communication network 1200 corresponds to a wireless mesh network, and the wireless nodes N0, N1, and N2 correspond to access point (AP) nodes of the wireless mesh network. The access point nodes may be based on a communication protocol between each pair of access point nodes, such as along a wireless link L. 01 、L 10 、L 02 、L 20 、L 12 and L 21 Motion sensing data may be generated in response to the motion of an object in the space through which the wireless signal passes (e.g., as indicated by dashed arrow 1206). However, motion sensing data may also be generated in the absence of such motion.

[0152] Figure 13A flowchart 1300 is presented of an example process for determining a location of movement based on a prior topology of a wireless communication network. The flowchart 1300 may represent a process for determining a location of movement based on a prior topology of a wireless communication network. Figure 4 The flowchart 400 described herein is an optional part and may correspond to program instructions to be executed by a data processing device of a wireless communication network. At the start of the example process, the data processing device may select a node from a node dictionary (e.g., Figure 4 The data processing device may also receive a list of unique wireless nodes present in the wireless communication network during the time frame from a node dictionary 408 of the link equalizer (e.g., Figure 4 A link equalizer 414 of the wireless communication network receives a list of wireless links identified as being present in the wireless communication network during the time frame. The list of identified wireless links includes a normalized motion indicator value for each wireless link. The list of unique wireless nodes and the list of identified wireless links can be stored in a database and used to define a network topology of the wireless communication network.

[0153] Flowchart 1300 includes the following Figure 10 Features similar to those described in the flowchart 1000. Figure 13 and Figure 10 The similar features of the two are correlated via a coordination number that differs by an incremental amount of 200. However, the flowchart 1300 includes additional features (or program instructions) that allow the data processing device to determine the location of the movement based on the previous topology. In particular, the data processing device can execute the program instructions to function, in part, as an adaptive modulator as shown in block 1308. The adaptive modulator 1308 can be similar to Figure 10 Adaptive modulator 1308 operates as described above, but also identifies a wireless node as stable if the probability value associated with the wireless node's connection state is above a threshold probability. To this end, adaptive modulator 1308 may query a "tag" database to retrieve probability vectors for all wireless nodes in the wireless communication network. Adaptive modulator 1308 also identifies wireless links associated with each stable wireless node. If all wireless links associated with the stable wireless node are being stimulated by motion, adaptive modulator 1308 sends a first signal to the deep node tagger to sample motion indication values ​​from the stimulated wireless link pairs.

[0154] The data processing device may also function in part as a deep node tagger as shown in block 1314. In response to the first signal, the deep node tagger 1314 samples motion indication values ​​from an excitation wireless link pair associated with the stable wireless node. Each excitation wireless link pair defines a wireless communication channel between the stable wireless node and other wireless nodes, and all of these pairs are sampled. The deep node tagger 1314 generates a probability density function (PDF) for each excitation wireless link pair based on its respective sampled motion indication value. The deep node tagger 1314 then compiles a "deep tag" that includes an identification of the stable wireless node, an identification of the excitation wireless link pair, and a corresponding probability density function. The "deep tag" may be stored in a "deep tag" database as a record "deep tag."

[0155] For example, and refer to Figure 12B , the adaptive modulator 1308 can identify the wireless node N2 as a stable wireless node for which all relevant wireless links are being stimulated by motion. Then, the adaptive modulator 1309 sends a first signal to the deep node tagger 1314, which identifies the wireless node N2 from the wireless link pair L 02 / L 20 and L 21 / L 12 The motion indication value is sampled. The deep node tagger 1314 then generates two “deep tags”, one for each radio link pair, as follows:

[0156] {N2;L 02 , L 20 ;PDF(L 02 , L 20 )}

[0157] {N2;L 21 , L 12 ;PDF(L 21 , L 12 )}

[0158] The two "deep tags" can then be stored as record "deep tags" in the "deep tags" database for future use (such as in Figure 12A reference to subsequent time frames, etc.

[0159] After the topology of the wireless communication network changes, such as in a subsequent time frame, the adaptive modulator 1308 may identify the wireless node as inconsistent. Specifically, the adaptive modulator 1308 may determine that the motion topology associated with the wireless node is persistently inconsistent with the network topology for a variable time frame. This persistent inconsistency may be caused by the topology inconsistency calculator 1312 increasing the duration of the variable time frame to a maximum duration. The adaptive modulator 1308 then identifies a wireless link pair associated with the inconsistent wireless node that is being stimulated by motion. The adaptive modulator 1308 also queries the "deep tag" dataset to locate a recorded "deep tag" that references the identified wireless link pair and a second wireless node different from the inconsistent wireless node (i.e., the wireless link pair communicatively couples the inconsistent wireless node and the second wireless node). The adaptive modulator 1308 then sends a second signal to the deep node tagger 1314 to sample a motion indication value from the identified wireless link pair.

[0160] In response to the second signal, the deep node tagger 1314 samples the motion indication values ​​from the identified wireless link pair and generates a corresponding probability density function. The deep node tagger 1314 then creates a "deep tag" that associates the inconsistent wireless node with the identified wireless link pair and the corresponding probability density function. This "deep tag" serves as a test "deep tag" that is transmitted back to the adaptive modulator 1308.

[0161] After receiving the test "deep tag" from the deep node tag 1314, the adaptive modulator 1308 determines the distance between the probability density function of the record "deep tag" and the probability density function of the test "deep tag". For example, the adaptive modulator 1308 can calculate the Kullback–Leibler divergence between the probability density functions to determine the distance. If the distance is less than or equal to the distance threshold, the adaptive modulator 1308 modifies the link likelihood graph to include likelihood values ​​biased toward the second wireless node. If the distance is greater than the distance threshold, the adaptive modulator 1308 modifies the link likelihood graph to include likelihood values ​​biased toward the inconsistent wireless node. The modified link likelihood graph is then passed to the likelihood calculator 1302, which uses the modified link likelihood graph to generate a likelihood graph for the Bayesian update engine (e.g., Figure 4 The probability vector of the Bayesian update engine 428).

[0162] In some implementations, a method for determining a location of motion includes storing first motion sensing statistics derived from first motion sensing data associated with a first time frame. The first motion sensing statistics may include a "deep tag" for an identification of a reference stable wireless node, an excitation wireless link pair defined in part by the stable wireless node, and a respective probability density function. Other statistics are possible. When the wireless mesh network operates in a first motion sensing topology (or a first motion topology), the first motion sensing data is based on wireless signals transmitted between pairs of access point (AP) nodes in the wireless mesh network during a first time frame. In some instances, the first motion sensing data includes a motion indication value, which can be calculated based on channel information derived from the wireless signal. However, the first motion sensing data may include other types of data, such as a list of unique wireless nodes during the first time frame and a list of wireless links identified as being present in the wireless mesh network during the first time frame.

[0163] The method also includes obtaining second motion sensing data based on wireless signals transmitted between pairs of AP nodes in the wireless mesh network during a subsequent second time frame when the wireless mesh network operates in a different second motion sensing topology (or second motion topology). The second motion sensing statistics may include a test "deep tag" for identifying reference inconsistent wireless nodes, a stimulus wireless link pair partially defined by the inconsistent wireless nodes, and a respective probability density function. Other statistics are possible. When the wireless mesh network operates in the second motion sensing topology (or second motion topology), the second motion sensing data is based on wireless signals transmitted between pairs of AP nodes in the wireless mesh network during a subsequent second time frame. In some examples, the second motion sensing data includes a motion indication value, which may be calculated based on channel information derived from the wireless signals. However, the second motion sensing data may include other types of data, such as a list of unique wireless nodes during the second time frame and a list of wireless links identified as being present in the wireless mesh network during the second time frame.

[0164] In response to detecting an inconsistency associated with a second motion sensing topology (e.g., an inconsistency between the second motion sensing topology and a network topology of the wireless mesh network), the method includes obtaining a second motion sensing statistic derived from the second motion sensing data and comparing the first motion sensing statistic with the second motion sensing statistic. The method additionally includes generating a probability vector based on the comparison. The probability vector includes values ​​representing probabilities of motion of the object at each AP node during the second time frame. In many instances, the generation of the probabilities is performed by operation of a data processing device that executes a procedure related to Figure 4 、 10and program instructions corresponding to one or more of the flowcharts depicted in FIG13. Then, determining a location of the object's motion during the second time frame based on the probability vector. In many implementations, the method includes repeating the following operations: obtaining second motion sensing data, detecting inconsistencies, generating the probability vector, and determining the location of the motion in multiple iterations of each second time frame.

[0165] In some implementations, the method includes identifying a set of wireless links in the wireless mesh network, wherein the wireless links are motion-activated during a second time frame based on second motion sensing data. Second motion sensing statistics include test depth tags associated with the identified set of wireless links. Each test depth tag includes a corresponding test probability density function associated with the second time frame. First motion sensing statistics include reference depth tags associated with the identified set of wireless links. Each reference depth tag includes a corresponding reference probability density function associated with the first time frame. In these implementations, the method may include generating a test probability density function based on sampling a subset of the first motion sensing data and generating a reference probability density function based on sampling a subset of the second motion sensing data. In these implementations, the method may further include generating a count value data structure including count values ​​for respective AP nodes. Each count value indicates a number of wireless links defined by the respective AP node, wherein the wireless links are motion-activated during the second time period. The count value data structure is then modified based on a comparison between the test depth tags and the reference depth tags, and a probability vector is generated based on the modified count value data structure. In some examples, modifying the count value data structure includes: if the difference between the test depth tag and the reference depth tag is greater than a threshold difference, decrementing the count value for the AP node. In some examples, modifying the count value data structure includes: if the difference between the test depth tag and the reference depth tag is less than a threshold difference, incrementing the count value for the AP node.

[0166] In some implementations, comparing the first motion sensing statistic to the second motion sensing statistic includes calculating a Kullback-Leibler divergence between a test probability density function and a reference probability density function. In some implementations, the method includes identifying a first motion sensing topology based on first tags assigned to respective AP nodes. Each first tag in the first tags indicates a connection status of the respective AP node. In these implementations, the method also includes identifying a second motion sensing topology based on second tags assigned to respective AP nodes. Each second tag in the second tags indicates a connection status of the respective AP node.

[0167] In some implementations, detecting an inconsistency associated with the second motion-sensing topology includes detecting that the second motion-sensing topology does not match a network topology of the wireless mesh network during a second time frame. In some implementations, the wireless mesh network includes one or more leaf nodes in addition to AP nodes. In these implementations, determining the location of the motion includes identifying one of the AP nodes or one of the leaf nodes as the location of the motion.

[0168] The above-described method and its variations can be implemented using a system including a wireless mesh network and its AP nodes (or leaf nodes, if present), one or more processors, and a memory storing instructions, wherein the instructions, when executed by the one or more processors, cause the system to perform the operations of the method and its variations. The above-described method and its variations can also be stored as instructions on a non-transitory computer-readable medium. When executed by a data processing device, the instructions cause the data processing device to perform the operations of the method and its variations.

[0169] Now refer to Figure 14 , presents a schematic diagram of an example wireless communication network 1400 having wireless communication channels including direct and indirect propagation paths. The example wireless communication network 1400 includes three wireless nodes 1402 labeled N0, N1, and N2 connected in a star-shaped manner. The network topology of the example wireless communication network 1400 includes a first wireless communication channel 1404 between wireless nodes N0 and N1 and a second wireless communication channel 1406 between wireless nodes N0 and N2. In the network topology, wireless node N0 has a dual-connected state, and wireless nodes N1 and N2 each have a single-connected state. However, the first communication channel 1404 is split into a direct propagation path and an indirect propagation path. The direct propagation path more or less directly communicatively couples wireless nodes N0 and N1 and includes a wireless link and The indirect propagation path communicatively couples wireless nodes N0 and N1 through the space adjacent to wireless node N2 and includes wireless link and Figure 14 The illustrated network topology of the example wireless communication network may be obtained from an indoor environment including reflectors.

[0170] In the case of movement near wireless node N1, as shown by dashed arrow 1408, the wireless link and will basically be in wireless links and This excitation is consistent with the single connection state of wireless node N1 in the network topology. However, in the case of movement near wireless node N2, as shown by the dotted arrow 1410, the wireless link and and wireless links and This excitation means that the dual-connected state of wireless node N2 does not conform to the single-connected state of wireless node N2 in the network topology. In addition, due to the excitation, the motion topology of the example wireless communication network 1400 has more dual-connected wireless nodes than the network topology.

[0171] In some variations, the wireless communication network 1400 corresponds to a wireless mesh network, and the wireless nodes N0, N1, and N2 correspond to access point (AP) nodes of the wireless mesh network. The access point nodes may be based on wireless links L between pairs of access point nodes, such as along wireless communication channels 1404, 1406. 01 、L 10 、L 02 、L 20 、L 12 and L 21 Motion sensing data may be generated in response to a wireless signal transmitted by a user, such as a wireless signal. Motion sensing data may be generated in response to the motion of an object in the space through which the wireless signal passes (e.g., as shown by dashed arrow 1408 or dashed arrow 1410). However, motion sensing data may also be generated in the absence of such motion.

[0172] Figure 15 Flowchart 1500 presents an example process for determining a location of motion based on a matrix decomposition of motion indication values. Flowchart 1500 may present information about Figure 4 The flowchart 400 described herein is an optional part and may correspond to program instructions to be executed by a data processing device of a wireless communication network. At the start of the example process, the data processing device may select a node from a node dictionary (e.g., Figure 4 The data processing device may also receive a list of unique wireless nodes present in the wireless communication network during the time frame from a node dictionary 408 of the link equalizer (e.g., Figure 4 A link equalizer 414 of the wireless communication network receives a list of wireless links identified as being present in the wireless communication network during a time frame. The list of identified wireless links includes a normalized motion indicator value for each wireless link. The list of unique wireless nodes and the list of identified wireless links can be stored in a database and used to define a network topology of the wireless communication network.

[0173] Flowchart 1500 includes the following Figure 10 Features similar to those described in the flowchart 1000. Figure 15 and Figure 10These two similar features are related via a coordination number that differs by an incremental amount of 200. However, flow chart 1500 includes additional features (or program instructions) that allow a data processing device to determine the location of a movement based on a prior topology.

[0174] In parallel with the node labeler processing path, flowchart 1500 includes a second parallel processing path. The second parallel processing path is operable to distinguish between nodes that share a common connection state (such as Figure 14 The data processing device can be used to identify wireless nodes (e.g., wireless nodes N0 and N2 in the illustrated motion topology, dual connectivity) and modify the likelihood function accordingly. The data processing device can partially function as a link filter, filtering wireless links associated with two dual-connected nodes. That is, the link filter selects links only when all four links exhibit activation. A correlation matrix is ​​then formed based on the link data.

[0175] In this example, the correlations within the correlation matrix come from two types of interference, namely the interference at wireless node N0 and the interference at node N2. These two types of interference are aggregated into the correlation matrix, and from the decomposition of the correlation matrix, two different characteristics of interference can be generated, such as two different orthogonal components of the correlation matrix. The decomposition of the correlation matrix can help determine two unique vectors (of link excitation data) that can explain all the changes observed whenever the four links are triggered. This is done by summing the link vectors when they have four excitation elements, then decomposing the correlation matrix to find the single component that produces the change, then projecting against these components to determine which component the observed excitation is closest to, and then assigning likelihoods based on the properties of the component to aggregate the changes. Flowchart 1500 shows the ongoing process.

[0176] In the second parallel processing path, the matrix correlator takes the four vectors of link excitation data, takes their outer products (e.g., to create a matrix), and sums them with the sum of the previous outer products to create a moving average of the correlation matrix. The correlation matrix is ​​then decomposed. This decomposition is triggered by the topology inconsistency calculator, which now has two outputs instead of one. Previously, the topology inconsistency calculator only triggered when the number of kinematically connected nodes was less than the number of network-connected nodes. But now it also triggers in the opposite direction (e.g., when the number of kinematically connected nodes is found to be higher than the number of network-connected nodes). When the topology inconsistency calculator determines that such a discrepancy exists, it then triggers the need to separate these wireless nodes based on something other than kinematically triggered wireless link behavior. In this example, it triggers a matrix decomposition of the correlation matrix, resulting in the formation of eigenvalues ​​(or eigenvectors) of the matrix. The eigenvalues ​​are then assigned labels based on their specific properties. The purpose of the labels is to assign one eigenvalue (or eigenvector) to wireless node N0 and another eigenvalue (or eigenvector) to wireless node N2. Now, when a new link excitation vector arrives that carries motion excitation on all four links, the data processing device executes program instructions to project the new link excitation vector against the two component vectors (by calculating the dot product). Likelihoods are assigned based on which dot product wins. The associated feature component node of the winning product is assigned a higher likelihood, while the feature component node of the losing product is assigned a lower likelihood.

[0177] The following formulas show the matrix formation and decomposition and the assignment of nodes to eigenvectors:

[0178]

[0179] In this formula, the leftmost column presents the nomenclature of all wireless links present in the example wireless communication network. When all of these wireless links are triggered, the link filter operates to filter the signal and assign it a vector symbol x, which consists of the four values ​​listed (i.e., x1, x2, x3, and x4). This average vector can consist of two components (over time). In some cases, wireless node N2 generates such a vector. In some cases, wireless node N0 generates such a vector. However, the properties of the vectors are slightly different. For example, when wireless node N2 is triggered, wireless link L 02 and L 20 Triggered to exceed the wireless link L 01 and L 10 This is because only the wireless link L 01 and L 10The component of the wireless link passes through the wireless node N2. Most of the energy of the wireless link passes through another path that does not pass through the wireless node N2. Therefore, the excitation at the wireless node N2 does not produce the same energy as that at the wireless link L. 02 and L 20 This fact is confirmed by placing the +δ sign on the other two excitation wireless links L 02 and L 20 The purpose is not to indicate that the components are equal, but rather to show that when the stimulus comes from wireless node N2 (e.g., motion occurs near wireless node N2), the component will be higher on average than when the stimulus comes from wireless node N0. This allows the second parallel processing path to differentiate how the components are assigned.

[0180] The three rightmost columns in the formula show the form and decomposition of the matrix, and x represents the column vector of link excitations. The column vector is multiplied by its own transposed version to create the average matrix, as shown by the expectation operator E(XX T ). In some instances, the mean value is subtracted from x before forming the outer product. Such a subtraction may be necessary if x is a vector with non-zero mean. Once the matrix is ​​formed, the singular value decomposition (SVD) splits the matrix into its eigencomponents, which can be extracted from the matrix U at the output of the matrix. Each column of U contains an eigencomponent. The first two columns of U are used to find the two eigencomponents. Of the components, the data processing device determines which link pair has the higher excitation. If the link is connected to the wireless link L 02 and L 20 If the incentive of the link pair of L is higher, the vector is assigned to the node wireless node N2. A similar process can be applied to the node based on the wireless link L 01 and L 10 The weight is assigned.

[0181] In this example, wireless node N2 competes with wireless node N0. Movement near wireless node N1 will only activate two wireless links, so wireless node N1 will be classified as having a single connection state in the motion topology and will not be incompatible with the network topology. However, wireless nodes N0 and N2 need to arbitrate. Therefore, the wireless link associated with wireless node N1, i.e., wireless link L, may be used. 01 and L 10 To assign a feature tag. The motion at the wireless node N0 will excite the wireless link L 01 and L 10 Since both components are excited, the magnitude of the excitation will be higher than the other two wireless link components in one of the eigenvalues ​​of the matrix. As described above, these higher values ​​of L 01 and L10 The pair components should be assigned to the node wireless node N0. Once the feature assignment has occurred, everything is ready. Each incoming link vector is projected onto the feature component if the excitation condition is met, and a likelihood is assigned based on the result of the projection (according to a table determined by the designer).

[0182] In some implementations, a method for determining a location of motion includes storing a set of feature vectors derived from first motion sensing data associated with a first time frame. When the wireless mesh network operates in a first motion sensing topology (or a first motion topology), the first motion sensing data is based on wireless signals transmitted between access point (AP) nodes in the wireless mesh network during the first time frame. Each feature vector in the set is assigned to a corresponding AP node in the AP nodes. In some instances, the first motion sensing data includes a motion indication value, which can be calculated based on channel information derived from the wireless signal. However, the first motion sensing data may include other types of data, such as wireless nodes sharing a common connection state.

[0183] The method further includes obtaining a motion vector based on wireless signals transmitted between AP nodes during a subsequent second time frame when the wireless mesh network operates in a different second motion sensing topology. The motion vector includes motion indication values ​​for respective wireless links between AP nodes. In response to detecting an inconsistency associated with the second motion sensing topology, the motion vector is compared with respective feature vectors. The method additionally includes generating a probability vector based on the comparison. The probability vector includes values ​​representing probabilities of motion of objects at respective AP nodes during the second time frame. In many instances, the generation of the probabilities occurs through the operation of a data processing device, wherein the data processing device executes a procedure related to Figure 4 、 10 and program instructions corresponding to one or more of the flowcharts depicted in 15. Then, determining a location of the object's movement during the second time frame based on the probability vector.

[0184] In some implementations, the method includes repeating the following operations: obtaining motion vectors, comparing motion vectors, generating probability vectors, and determining the location of the motion in a plurality of iterations for respective second time frames.

[0185] In some implementations, the method includes identifying a first motion sensing topology based on first tags assigned to respective AP nodes. Each first tag in the first tags indicates a connection state of the respective AP node. The method also includes identifying a second motion sensing topology based on second tags assigned to respective AP nodes. Each second tag in the second tags indicates a connection state of the respective AP node. In some implementations, detecting an inconsistency associated with the second motion sensing topology includes detecting that the second motion sensing topology does not match the network topology of the wireless mesh network during a second time frame. For example, detecting the inconsistency may include identifying a number of dual-connected nodes in the motion sensing topology that is greater than a number of dual-connected nodes in the network topology.

[0186] In some implementations, the method includes generating a set of feature vectors by at least the following operations: obtaining an aggregated correlation matrix for a first time period based on first motion sensing data, and performing matrix decomposition of the aggregated correlation matrix to obtain feature vectors. In these implementations, the method may optionally include calculating the aggregated correlation matrix by at least the following operations: [1] obtaining first motion vectors based on respective subsets of the first motion sensing data, [2] multiplying the first motion vector by a transposed instance of the first motion vector for each subset of the subsets of the first motion sensing data to generate a correlation matrix, and [3] combining the correlation matrices for the subsets to obtain an aggregated correlation matrix. The first motion vectors each include a first motion indication value for a respective wireless link between the AP nodes.

[0187] In some implementations, comparing the motion vector with each feature vector includes calculating a dot product between the motion vector and each feature vector. In these implementations, a probability vector is generated based on the dot product. In a further implementation, the method includes generating a count value data structure based on the motion sensing data. The count value data structure includes a count value for each AP node. Each count value indicates the number of wireless links defined by the corresponding AP node, which are stimulated by motion based on the motion sensing data. The method also includes modifying the count value data structure based on the dot product and generating a probability vector based on the modified count value data structure. In some variations, the dot product includes a first dot product and a second dot product, wherein the first dot product is calculated based on the corresponding feature vector associated with the first AP node and the second dot product is calculated based on the corresponding feature vector associated with the second AP node. The first dot product is higher than the second dot product. In addition, modifying the count value data structure includes increasing the count value for the first AP node and decreasing the count value for the second AP node.

[0188] In some implementations, the wireless mesh network includes one or more leaf nodes in addition to the AP nodes. In these implementations, determining the location of the movement includes identifying one of the AP nodes or one of the leaf nodes as the location of the movement.

[0189] The above method and its variations are implemented using a system including a wireless mesh network and its AP nodes (or leaf nodes, if present), one or more processors, and a memory storing instructions, wherein the instructions, when executed by the one or more processors, cause the system to perform the operations of the method and its variations. The above method and its variations can also be stored as instructions on a non-transitory computer-readable medium. When executed by a data processing device, the instructions cause the data processing device to perform the operations of the method and its variations.

[0190] Now refer to Figure 16 , presents a schematic diagram of an example wireless communication network 1600 in which leaf nodes 1606 are communicatively coupled to wireless nodes 1602. In particular, pairs of wireless nodes are communicatively coupled to each other via wireless communication channels 1604, and leaf nodes are communicatively coupled to wireless nodes via wireless communication channels 1608. As indicated by dashed arrows 1610, motion occurring in the vicinity of wireless node N2 will stimulate wireless links that communicatively couple wireless node N2 to leaf nodes Le4, Le5, and Le6. However, if some of the leaf nodes 1606 are in proximity to one another, motion in the vicinity of one of these proximate leaf nodes may stimulate wireless links associated with other proximate leaf nodes. Figure 16 , leaf nodes Le4 and Le5 are shown as being close to each other. As indicated by dashed arrow 1612, the movement around leaf node Le4 not only stimulates the wireless link for communicatively coupling leaf node Le4 to wireless node N2, but also stimulates the wireless link for communicatively coupling leaf node Le5 to wireless node N2.

[0191] In some variations, wireless communication network 1600 corresponds to a wireless mesh network, and wireless nodes N0, N1, and N2 correspond to access point (AP) nodes of the wireless mesh network. The access point nodes may generate motion sensing data based on wireless signals transmitted along wireless communication channels 1604, 1608. For example, the motion sensing data may be based on the motion sensing data transmitted between each pair of access point nodes along wireless link L. 01 、L 10 、L 02 、L 20 、L 12 and L 21The motion sensing data may also be based on wireless signals transmitted from the leaf node to the access point node along the wireless link defining the wireless communication channel 1608. The motion sensing data may be generated in response to the motion of objects in the space traversed by the wireless signal (e.g., as shown by dashed arrow 1610 or dashed arrow 1612). However, the motion sensing data may also be generated in the absence of such motion.

[0192] Figure 17 A flowchart 1700 is presented for an example process for determining a location of a movement based on identifying wireless nodes in the vicinity of the movement and then identifying leaf nodes communicatively coupled to the wireless nodes. The example process can localize the movement to both wireless nodes and leaf nodes. Wireless nodes can have higher power than leaf nodes and, therefore, can more easily exhibit the effects of movement on the movement. Figure 14 discussed multipath effects. Therefore, the example process first localizes the motion to the wireless node to mitigate possible multipath effects and improve the accuracy of motion detection. A data processing device executing program instructions according to the example process can continuously generate the best wireless node estimate from the available excitation wireless link data. The estimate is used to form a decision on the wireless node to which the motion interference is closest. Once the wireless node decision is formed, the decision is used to filter out a portion of the leaf node wireless links connected to other wireless nodes. Such filtering allows some of the lowest likelihoods to be assigned to these leaf nodes. Once the appropriate leaf node wireless links have been filtered, the remaining wireless links are passed to the sub-grid likelihood function. Using the sub-grid likelihood function, the data processing device calculates the likelihood of whether the motion is close to the wireless node or any leaf node in the leaf nodes connected to the wireless node. This calculation allows the motion to be accurately located as occurring near any available node (e.g., wireless node or leaf node) in the wireless communication network.

[0193] Figure 18 An example formula for determining the location of a motion using a sub-grid likelihood function is presented. Sub-grid nodes undergo separate likelihood formation compared to nodes excluded from the sub-grid. Excluded nodes are assigned uniformly (very) small weights. Figure 16In the specific example of motion in , the subgrid will be defined by wireless node N2 and leaf nodes Le4, Le5 and Le6. The subgrid likelihood function is operable to resolve: [1] contention between wireless nodes and leaf nodes and [2] contention between several leaf nodes whose respective radio links may have been triggered due to motion. The subgrid likelihood function resolves contention between wireless nodes and leaf nodes because if the data processing device only counts the number of times any node appears in an excited radio link, then whenever any two radio links connected to the wireless node are triggered, the presence of the wireless node will always exceed the presence of the leaf nodes. However, this presence may be artificial. For example, because the leaf nodes are very close, two leaf node radio links may be triggered and motion may occur at either of the two leaf nodes. A more accurate measure of motion at a wireless node is whether all radio links connected to the wireless node have been excited. If motion actually occurs at the wireless node, all radio links connected to the node (i.e., leaf node) will show some interference because the channels existing in these radio links are changing. This behavior is corrected by modifying the likelihood function to include a ratio as shown below:

[0194]

[0195] This ratio (which is also Figure 18 (shown in Figure 2) The likelihood of a wireless node is allowed to reach 1 (highest) only when all connected wireless links show motion on it. Since the connectivity of leaf nodes is 1 (always), the ratio will quickly rise to 1 whenever any leaf node wireless link is triggered.

[0196] If two leaf node wireless links are triggered simultaneously because the leaf nodes are in close proximity, the likelihood function can be further modified to take this scenario into account. In particular, the motion magnitudes of the leaf nodes can be sorted. The highest magnitude can be assigned a rating of 1, the second highest magnitude can be assigned 2, and so on. A multiplier variable (α) can then be selected that is a number less than 1, and the multiplier variable specifies how much weight should be given to the motion rating information in order to determine the likelihood. The value of the multiplier variable can be selected to have a small value ranging from 0.01 to 0.09. The multiplier variable is used to amplify or de-amplify the motion rating information when calculating the likelihood. For the leaf node showing the highest rating, the term (1-α×rating) will be used to modify the above likelihood expression by multiplication. If the rating is 1, α will be subtracted from 1 to produce a relatively large weight. If the rating is 2, 2α will be subtracted from 1 to produce a smaller weight for the likelihood of the leaf node. In this way, likelihoods are assigned to all leaf nodes on which the respective wireless links have shown motion excitations. This assignment allows the strength of motion (or channel interference) present on each leaf node's wireless link to be taken into account in the likelihood of motion, and ultimately the probability of motion at a particular node.

[0197] In some implementations, a method for determining a location of motion includes obtaining motion sensing data based on wireless signals exchanged over wireless links in a wireless mesh network comprising a plurality of nodes. The plurality of nodes includes a first access point (AP) node, one or more other AP nodes, and leaf nodes. The wireless links include wireless links between the first AP node and the one or more other AP nodes, and wireless links between the first AP node and a first subset of leaf nodes. The method also includes identifying the first AP node as an estimated location of motion of an object based on the motion sensing data.

[0198] In response to the first AP node being identified as an estimated location of motion, the method additionally includes generating a likelihood data structure comprising likelihood values ​​assigned to each of the plurality of nodes. Likelihood values ​​are assigned to a first subset of leaf nodes and a first AP node, the assigned likelihood values ​​being higher than likelihood values ​​assigned to other nodes in the wireless mesh network. In some variations, the likelihood values ​​assigned to the first subset of leaf nodes and the first AP node are at least an order of magnitude higher than the likelihood values ​​assigned to other nodes in the wireless mesh network. The location of motion of the object is determined based on the likelihood data structure. In some implementations, the method includes repeating the following operations in multiple iterations of respective time frames: obtaining motion sensing data, identifying the first AP node, generating a likelihood data structure, and determining the location of motion.

[0199] In some implementations, determining a location of movement of the object includes generating a probability vector based on a likelihood data structure. The probability vector includes probability values ​​representing probabilities of movement at respective nodes of the wireless mesh network. Determining a location of movement of the object further includes selecting a first AP node or a leaf node in a first subset of leaf nodes as the location of movement based on the probability vector.

[0200] In some implementations, the method includes calculating a likelihood value assigned to the first AP node based on a ratio of the number of leaf nodes in the first subset to the number of nodes representing a connection state for the first AP node. In further implementations, the method includes calculating a likelihood value assigned to the first subset of leaf nodes based on ranking motion indication values ​​associated with wireless links between the first AP node and the first subset of leaf nodes. In some instances, the likelihood value assigned to each respective leaf node represents a product of a ranking assigned to the leaf node multiplied by a magnification factor. In these instances, the method may optionally include assigning a uniform value to other nodes in the wireless mesh network.

[0201] The above-described method and its variations can be implemented using a system including a wireless mesh network and its AP nodes and leaf nodes, one or more processors, and a memory storing instructions, wherein the instructions, when executed by the one or more processors, cause the system to perform the operations of the method and its variations. The above-described method and its variations can also be stored as instructions on a non-transitory computer-readable medium. When executed by a data processing device, the instructions cause the data processing device to perform the operations of the method and its variations.

[0202] Some of the themes and operations described in this specification can be implemented in digital electronic circuits, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or a combination of one or more of these structures. Some of the themes described in this specification can be implemented as one or more computer programs (i.e., one or more modules of computer program instructions) that are encoded on a computer storage medium for execution by a data processing device or for controlling the operation of a data processing device. A computer storage medium can be or be included in the following: 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. In addition, although a computer storage medium is not a propagation signal, a computer storage medium can be a source or destination of computer program instructions encoded in an artificially generated propagation signal. A computer storage medium can also be or be included in the following: one or more separate physical components or media (e.g., multiple CDs, disks, or other storage devices).

[0203] Portions 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.

[0204] The term "data processing equipment" encompasses all kinds of equipment, devices and machines for processing data, including, for example, a programmable processor, a computer, a system on a chip, or multiple or combinations of the foregoing. The equipment may include dedicated logic circuits, such as an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit). In addition to hardware, the equipment may also include code for creating an execution environment for the computer program in question, for example, code constituting processor firmware, a protocol stack, a database management system, an operating system, a cross-platform runtime environment, a virtual machine, or one or more combinations thereof.

[0205] A computer program (also known as a program, program instruction, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, declarative or procedural languages, and can be deployed in any form, including as a standalone program or 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. A program can be stored in a portion of a file that is used to keep 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 for storing a portion of one or more modules, subroutines, or 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.

[0206] 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, and devices can also be implemented as, special purpose logic circuitry, such as an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit).

[0207] For example, processors suitable for executing computer programs include general-purpose microprocessors and special-purpose microprocessors, and processors of any type of digital computer. Generally, the processor will receive instructions and data from a read-only memory or a random access memory or both. The elements of a computer may include a processor for performing actions according to instructions and one or more memory devices for storing instructions and data. The computer may also include one or more large-capacity storage devices (e.g., magnetic disks, magneto-optical disks, or optical disks) for storing data or be operably coupled to receive or transmit data relative to the one or more large-capacity storage devices, or both. However, the computer need not have such a device. In addition, the computer may be embedded in other devices (e.g., phones, electrical appliances, mobile audio or video players, game consoles, global positioning systems (GPS) receivers, or portable storage devices (e.g., universal serial bus (USB) flash drives)). Suitable devices for storing computer program instructions and data include all forms of non-volatile memory, media, and storage devices, including, by way of example, semiconductor memory devices (e.g., EPROM, EEPROM, and flash memory devices), magnetic disks (e.g., internal hard disks and removable disks), magneto-optical disks, and CD ROM and DVD-ROM disks. In some cases, the processor and memory can be supplemented by, or incorporated in, special purpose logic circuitry.

[0208] To provide for 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 pointing device (e.g., a mouse, trackball, tablet, touch-sensitive screen, or other type of pointing device) through which the user can provide input to the computer. Other types of devices may also be used to provide for interaction with a 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 sound, voice, or tactile input. Additionally, a computer may interact with a user by sending and receiving documents with respect to a device used by the user (e.g., by sending a web page to a web browser on a user's client device in response to a request received from the web browser).

[0209] A computer system may include a single computing device or multiple computers operating in close proximity to or generally remote from each other and typically interacting through a communication network. Examples of communication networks include local area networks ("LANs") and wide area networks ("WANs"), internetworks (e.g., the Internet), networks including satellite links, and peer-to-peer networks (e.g., ad hoc peer-to-peer networks). The relationship of client and server may arise through computer programs running on the respective computers and having a client-server relationship to each other.

[0210] Although this specification contains many details, these details should not be construed as limitations on the scope of what may be claimed, but rather as descriptions of features specific to particular examples. Certain features described in this specification or shown in the accompanying drawings in the context of separate implementations may also be combined. Conversely, various features described or shown in the context of a single implementation may also be implemented in multiple embodiments separately or in any suitable subcombination.

[0211] Similarly, although these operations are depicted in the accompanying drawings in a particular order, this should not be understood as requiring that these operations be performed in the particular order shown or sequentially, or that all of the operations shown be performed, in order to achieve the desired result. In certain circumstances, multitasking and parallel processing may be advantageous. In addition, the separation of various system components in the implementations described above should not be understood as requiring these separations in all implementations, and it should be understood that the program components and systems described can generally be integrated together into a single product or packaged into multiple products.

[0212] A number of embodiments have been described. However, it should be understood that various modifications can be made. Therefore, other embodiments are within the scope of the present invention.

Claims

1. A method for determining a location of movement of an object, comprising: Obtaining motion sensing data from access point nodes (AP nodes) of a wireless mesh network, the motion sensing data being based on wireless signals transmitted between pairs of AP nodes among the AP nodes; identifying a motion sensing topology of the wireless mesh network, the motion sensing topology being identified based on tags assigned to respective AP nodes, each tag indicating a connection status of a corresponding AP node; generating, through the operation of a data processing device, a probability vector based on the motion sensing data and the motion sensing topology, the probability vector including values ​​representing probabilities of motion of the object at respective AP nodes; as well as A location of the object's movement is determined based on the probability vector.

2. The method according to claim 1, wherein Generating the probability vector includes: generating a count value data structure based on the motion sensing data, the count value data structure including a count value for each AP node, each count value indicating a number of wireless links defined by the corresponding AP node, the wireless links being stimulated by motion according to the motion sensing data; modifying the count value data structure based on the motion sensing topology; and The probability vector is generated based on the modified count value data structure.

3. The method according to claim 2, wherein: Identifying the motion sensing topology includes: identifying a wireless link activated by the motion based on the motion sensing data; Generate a state probability vector for each AP node, each state probability vector including a connection state value of the corresponding AP node, each connection state value representing a probability of the AP node being in a connection state; and The labels are assigned to the AP nodes based on respective state probability vectors.

4. The method according to claim 3, wherein: The label assigned to each respective AP node indicates the connection state associated with the highest probability value in the state probability vector for the respective AP node.

5. The method according to claim 2, wherein: Modifying the count value data structure includes: comparing a count value for a first AP node to a threshold count value, the threshold count value being associated with a tag assigned to the first AP node; and In a case where the count value is less than the threshold count value, the first AP node is removed from the count value data structure.

6. The method according to claim 2, wherein: Generating the count value data structure includes: generating a list of wireless links in the wireless mesh network, the wireless links being activated by motion based on the motion sensing data; generating, for each instance, a list of AP nodes including the instance of the AP node, wherein in the list of wireless links, the wireless link is defined by the AP node; and The count value for each AP node is set equal to the number of times the corresponding AP node appears in the list of AP nodes.

7. The method according to claim 1 or any one of claims 2 to 6, wherein Identifying the motion sensing topology includes: identifying a difference between a first estimated motion sensing topology and a network topology based on data collected during a first duration; identifying a match between a second estimated motion sensing topology and the network topology based on data collected over a second, longer duration; The second estimated motion sensing topology is selected as the motion sensing topology.

8. The method according to claim 1 or any one of claims 2 to 6, in, In addition to the AP node, the wireless mesh network further includes one or more leaf nodes; and Determining the location of the movement includes identifying one of the AP nodes or one of the leaf nodes as the location of the movement.

9. The method according to claim 1 or any one of claims 2 to 6, in, The motion sensing data is based on wireless signals transmitted between pairs of AP nodes among the AP nodes during a first time frame; wherein the probability vector comprises a first probability vector representing the first time frame; and Wherein, determining the location of the movement includes using a Bayesian calculator to determine the location of the movement based on the first probability vector and a previous probability vector representing a previous time frame.

10. The method according to claim 1 or any one of claims 2 to 6, further comprising: The operations for obtaining motion sensing data, identifying motion sensing topology, generating probability vectors, and determining location of motion are repeated in multiple iterations for various time frames.

11. A system for determining a location of movement of an object, comprising: A wireless mesh network includes access point nodes, i.e., AP nodes; one or more processors; as well as a memory storing instructions that, when executed by the one or more processors, cause the system to perform operations comprising: Obtaining motion sensing data from access point nodes (AP nodes) of a wireless mesh network, the motion sensing data being based on wireless signals transmitted between pairs of AP nodes among the AP nodes; identifying a motion sensing topology of the wireless mesh network, the motion sensing topology being identified based on tags assigned to respective AP nodes, each tag indicating a connection status of a corresponding AP node; generating a probability vector based on the motion sensing data and the motion sensing topology, the probability vector including values ​​representing probabilities of motion of the object at respective AP nodes; and A location of the object's movement is determined based on the probability vector.

12. The system according to claim 11, wherein Generating the probability vector includes: generating a count value data structure based on the motion sensing data, the count value data structure including a count value for each AP node, each count value indicating a number of wireless links defined by the corresponding AP node, the wireless links being stimulated by motion according to the motion sensing data; modifying the count value data structure based on the motion sensing topology; and The probability vector is generated based on the modified count value data structure.

13. The system according to claim 12, wherein: Identifying the motion sensing topology includes: identifying a wireless link activated by the motion based on the motion sensing data; Generate a state probability vector for each AP node, each state probability vector including a connection state value of the corresponding AP node, each connection state value representing a probability of the AP node being in a connection state; and The labels are assigned to the AP nodes based on respective state probability vectors.

14. The system according to claim 13, wherein: The label assigned to each respective AP node indicates the connection state associated with the highest probability value in the state probability vector for the respective AP node.

15. The system according to claim 12, wherein: Modifying the count value data structure includes: comparing a count value for a first AP node to a threshold count value, the threshold count value being associated with a tag assigned to the first AP node; and In a case where the count value is less than the threshold count value, the first AP node is removed from the count value data structure.

16. The system of claim 12, wherein: Generating the count value data structure includes: generating a list of wireless links in the wireless mesh network, the wireless links being activated by motion based on the motion sensing data; generating, for each instance, a list of AP nodes including the instance of the AP node, wherein in the list of wireless links, the wireless link is defined by the AP node; and The count value for each AP node is set equal to the number of times the corresponding AP node appears in the list of AP nodes.

17. A system according to claim 11 or any one of claims 12 to 16, wherein: Identifying the motion sensing topology includes: identifying a difference between a first estimated motion sensing topology and a network topology based on data collected during a first duration; identifying a match between a second estimated motion sensing topology and the network topology based on data collected over a second, longer duration; The second estimated motion sensing topology is selected as the motion sensing topology.

18. A system according to claim 11 or any one of claims 12 to 16, in, In addition to the AP node, the wireless mesh network further includes one or more leaf nodes; and Determining the location of the movement includes identifying one of the AP nodes or one of the leaf nodes as the location of the movement.

19. A system according to claim 11 or any one of claims 12 to 16, in, The motion sensing data is based on wireless signals transmitted between pairs of AP nodes among the AP nodes during a first time frame; wherein the probability vector comprises a first probability vector representing the first time frame; and Wherein, determining the location of the movement includes using a Bayesian calculator to determine the location of the movement based on the first probability vector and a previous probability vector representing a previous time frame.

20. A system according to claim 11 or any one of claims 12 to 16, wherein The operations include: The operations for obtaining motion sensing data, identifying motion sensing topology, generating probability vectors, and determining location of motion are repeated in multiple iterations for various time frames.

21. A non-transitory computer-readable medium storing instructions that, when executed by a data processing device, cause the data processing device to perform operations comprising: Obtaining motion sensing data from access point nodes (AP nodes) of a wireless mesh network, the motion sensing data being based on wireless signals transmitted between pairs of AP nodes among the AP nodes; identifying a motion sensing topology of the wireless mesh network, the motion sensing topology being identified based on tags assigned to respective AP nodes, each tag indicating a connection status of a corresponding AP node; generating a probability vector based on the motion sensing data and the motion sensing topology, the probability vector including values ​​representing probabilities of motion of objects at respective AP nodes; as well as A location of the object's movement is determined based on the probability vector.

22. The non-transitory computer readable medium of claim 21, wherein: Generating the probability vector includes: generating a count value data structure based on the motion sensing data, the count value data structure including a count value for each AP node, each count value indicating a number of wireless links defined by the corresponding AP node, the wireless links being stimulated by motion according to the motion sensing data; modifying the count value data structure based on the motion sensing topology; and The probability vector is generated based on the modified count value data structure.

23. The non-transitory computer readable medium of claim 22, wherein: Identifying the motion sensing topology includes: identifying a wireless link activated by the motion based on the motion sensing data; Generate a state probability vector for each AP node, each state probability vector including a connection state value of the corresponding AP node, each connection state value representing a probability of the AP node being in a connection state; and The labels are assigned to the AP nodes based on respective state probability vectors.

24. The non-transitory computer readable medium of claim 23, wherein: The label assigned to each respective AP node indicates the connection state associated with the highest probability value in the state probability vector for the respective AP node.

25. The non-transitory computer readable medium of claim 22, wherein: Modifying the count value data structure includes: comparing a count value for a first AP node to a threshold count value, the threshold count value being associated with a tag assigned to the first AP node; and In a case where the count value is less than the threshold count value, the first AP node is removed from the count value data structure.

26. The non-transitory computer-readable medium of claim 22, wherein: Generating the count value data structure includes: generating a list of wireless links in the wireless mesh network, the wireless links being activated by motion based on the motion sensing data; generating, for each instance, a list of AP nodes including the instance of the AP node, wherein in the list of wireless links, the wireless link is defined by the AP node; and The count value for each AP node is set equal to the number of times the corresponding AP node appears in the list of AP nodes.

27. The non-transitory computer readable medium of claim 21 or any one of claims 22 to 26, wherein: Identifying the motion sensing topology includes: identifying a difference between a first estimated motion sensing topology and a network topology based on data collected during a first duration; identifying a match between a second estimated motion sensing topology and the network topology based on data collected over a second, longer duration; The second estimated motion sensing topology is selected as the motion sensing topology.

28. The non-transitory computer readable medium of claim 21 or any one of claims 22 to 26, in, In addition to the AP node, the wireless mesh network further includes one or more leaf nodes; and Determining the location of the movement includes identifying one of the AP nodes or one of the leaf nodes as the location of the movement.

29. The non-transitory computer readable medium of claim 21 or any one of claims 22 to 26, in, The motion sensing data is based on wireless signals transmitted between pairs of AP nodes among the AP nodes during a first time frame; wherein the probability vector comprises a first probability vector representing the first time frame; and Wherein, determining the location of the movement includes using a Bayesian calculator to determine the location of the movement based on the first probability vector and a previous probability vector representing a previous time frame.

30. The non-transitory computer readable medium of claim 21 or any one of claims 22 to 26, wherein: The operations include: The operations for obtaining motion sensing data, identifying motion sensing topology, generating probability vectors, and determining location of motion are repeated in multiple iterations for various time frames.

31. A computer program product comprising instructions which, when executed by a data processing apparatus, cause the data processing apparatus to perform the method according to any one of claims 1 to 10.

Citation Information

Patent Citations

  • Managing wireless connections based on motion

    CN105453647A

  • Determining motion zones in a space traversed by wireless signals

    US10404387B1