Determining the location of motion detected from wireless signals based on wireless link counts

By analyzing channel information in the wireless communication network and using the Bayesian estimation framework, the problem of insufficient motion detection accuracy in the prior art is solved, and a more accurate and robust motion detection effect is achieved.

CN114072692BActive Publication Date: 2025-06-06COGNITIVE SYST
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN201980098048.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2019-04-30
Filing Date
2019-08-22
Publication Date
2025-06-06
Estimated Expiration
2039-08-22

AI Technical Summary

Technical Problem

When the existing motion detection system detects the location of motion in the space, it is difficult to accurately identify the movement transfer and maintenance between multiple wireless communication devices, resulting in insufficient accuracy and robustness of motion detection.

Method used

By analyzing the channel information of each wireless link in the wireless communication network, a Bayesian estimation framework and likelihood calculator generate probability vectors, identify possible locations of motion, and consider the probability of transfer of motion between different locations.

Benefits of technology

It improves the accuracy and robustness of motion detection, can more effectively identify the location and transfer path of motion, and enhances the real-time and adaptability of the system.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114072692B_ABST
    Figure CN114072692B_ABST
Patent Text Reader

Abstract

In a general aspect, a method for determining a location of motion detected by a wireless communication device in a wireless communication network includes obtaining a set of motion indication values ​​associated with a time frame. The set of motion indication values ​​indicates motion detected from wireless links during the time frame, each motion indication value being associated with a corresponding wireless link. The method also includes identifying a subset of the wireless links based on a magnitude of the respective motion indication values ​​of the wireless links relative to other motion indication values ​​in the set of motion indication values. The method additionally includes generating a count value for wireless communication devices connected to the wireless communication network during the time frame. The method further includes generating a probability vector based on the count value and including a value for the connected wireless communication device.
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. Patent Application No. 16 / 399,657, filed on April 30, 2019, the contents of which are incorporated herein by reference. Background Art

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

[0004] 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

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

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

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

[0008] 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.

[0009] Figure 5A is a flow chart of an example process by which a link calculator generates a probability vector based on a plurality of wireless links.

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

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

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

[0013] Figure 8 is a schematic diagram of an example wireless communication network, wherein dashed arrows indicate potential transitions of detected motion between wireless nodes.

[0014] Fig. 9 is a flow chart illustrating another example process for determining a location of motion detected by a wireless communication device in a wireless communication network.

[0015] Fig.10 is a flow chart illustrating additional example processing for determining a location of motion detected by a wireless communication device in a wireless communication network. DETAILED DESCRIPTION

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

[0017] For example, wireless signals received at each wireless communication device in a wireless communication network can be analyzed to determine the channel information of different communication links in the network (between each pair of wireless communication devices in the network). Channel information can represent the physical medium for applying a transfer function to a wireless signal passing through space. In some instances, the channel information includes channel response information. Channel response information can refer to known channel properties of a communication link, and can describe how a wireless signal propagates 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 the receiver. In some instances, the channel information includes beamforming state information. Beamforming (or spatial filtering) can refer to a signal processing technique used in a multi-antenna (multiple input / multiple output (MIMO)) radio system for directional signal transmission or reception. Beamforming can be achieved by combining elements in an antenna array in a manner that signals at a specific angle experience constructive interference and other signals experience destructive interference. Beamforming can be used at both the transmitting end and the receiving end to achieve spatial selectivity. In some cases (e.g., IEEE 802.11ac standard), the transmitter uses a beamforming steering matrix. A beamforming steering matrix may include 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 states may also be used in the described aspects.

[0018] The channel information of each communication link may 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 may be analyzed to detect whether an object is present or absent, for example, when no motion is detected in the space.

[0019] 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 self-organization or another normalization technology. Examples of commercially available wireless mesh networks include Wi-Fi systems sold by Google, Eero, and other companies.

[0020] In some example wireless communication networks, each node is connected to one or more other nodes via one or more bidirectional links. Each node can analyze the wireless signals it receives to identify disturbances or interferences 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 value of the node from 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 near it, and the node can be identified as a node where motion occurs around the node. To this end, for the recursive calculation of 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 eventually converging to the correct result, simple logic without conditions for each special case, more accurate and more robust performance (for example, for artifacts), and others.

[0021] In addition, 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 a Bayesian framework. As another example, in certain contexts, the likelihood of motion transferring between different locations can be higher or lower relative to the likelihood of motion remaining in a single location. Therefore, the location transfer probability 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 a Bayesian framework.

[0022] Figure 1is 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.).

[0023] 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 type of wireless network. 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., a Wi-Fi network), etc. Examples of PANs include networks configured to operate in accordance with short-range communication standards (e.g., Bluetooth Near Field Communication (NFC), ZigBee, and millimeter wave communications.

[0024] In some implementations, the wireless communication devices 102A, 102B, 102C may be configured to communicate in a cellular network, for example, according to a cellular network standard. Examples of cellular networks include networks configured according to the following standards: 2G standards such as Global System for Mobile (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 Advanced LTE (LTE-A); and 5G standards; etc. 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.

[0025] In some cases, the wireless communication devices 102A, 102B, 102C may be Wi-Fi access points or another type of wireless access point (WAP). The 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 the 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. The wireless communication devices 102A, 102B, 102C may be implemented without a Wi-Fi component; for example, other types of wireless protocols (standard or non-standard) used for wireless communication may be used for motion detection.

[0026] exist Figure 1 In the example shown, a wireless communication device (e.g., 102A, 102B) transmits a wireless signal 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, a wireless communication device may generate a motion detection signal for transmission to detect space to detect the motion or presence of an object. In some implementations, the motion detection signal may include a standard signaling or communication frame, which includes a standard pilot signal used in channel detection (e.g., channel detection 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, which are based on signals received by the motion detection signal transmitted through the space. For example, based on changes (or lack of these 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.

[0027] The wireless communication device (e.g., 102A, 102B) transmitting the motion detection signal may be referred to as a source device. In some cases, the wireless communication device 102A, 102B may broadcast a wireless motion detection signal (e.g., as described above). In other cases, the wireless communication device 102A, 102B may send a wireless signal addressed to another wireless communication device 102C and other devices (e.g., user equipment, client devices, servers, etc.). The wireless communication device 102C and other devices (not shown) may receive the wireless signal transmitted by the wireless communication device 102A, 102B. In some cases, the wireless signal transmitted by the wireless communication device 102A, 102B is repeated periodically, for example, according to a wireless communication standard or other manner.

[0028] 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 movement or lack of movement of objects in a 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 movement or lack of movement of objects in a 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 the following operations as described above: Figure 6 Said or in relation to Figure 8 The wireless communication system 100 may be configured to detect one or more operations of 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 so that the wireless communication device 102C may, for example, transmit wireless signals as a source device, and the wireless communication devices 102A, 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, 102C may each be configured as a source device, a sensor device, or both.

[0029] The wireless signal used for motion and / or presence detection may include, for example, a beacon signal (e.g., a Bluetooth beacon, a Wi-Fi beacon, or other wireless beacon signals), a pilot signal (e.g., a pilot signal used for channel sounding such as in beamforming applications according to the IEEE 802.11ac-2013 standard), or another standard signal generated for other purposes according to a wireless network standard, or a non-standard signal generated for motion and / or presence detection or other purposes (e.g., a random signal, a reference signal, etc.). In some cases, the wireless signal used for motion and / or presence detection is known to all devices in the network.

[0030] 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 the 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 the object is not moving or 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 that the object is not present 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 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 such as a room, a building, an outdoor area, etc.

[0031] 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 the 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, etc.

[0032] exist Figure 1In the illustrated example, the wireless communication system 100 is illustrated as a wireless mesh network, in which there are wireless communication links between respective ones of the wireless communication devices 102. In the 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 area 110A, the wireless communication link between the third wireless communication device 102C and the second wireless communication device 102B can be used to detect the second motion detection area 110B, and the wireless communication link between the first wireless communication device 102A and the second wireless communication device 102B can be used to detect the third motion detection area 110C. In some examples, 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 area 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 area 110. For example, when the person 106 moves in the first motion detection area 110A and the third motion detection area 110C, the wireless communication devices 102 may detect the motion based on the signals they receive based on the wireless signals transmitted through the respective motion detection areas 110. For example, the first wireless communication device 102A may detect the motion of the person in the first motion detection area 110A and the third motion detection area 110C, the second wireless communication device 102B may detect the motion of the person 106 in the third motion detection area 110C, and the third wireless communication device 102C may detect the motion of the person 106 in the first motion detection area 110A. In some cases, the lack of motion of the person 106 may be detected in the respective motion detection areas 110A, 110B, 110C, and in other cases the presence of the person 106 may be detected when the person 106 is not detected to be moving.

[0033] 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 1In the example shown, the first motion detection area 110A provides a wireless communication channel between the first wireless communication device 102A and the third wireless communication device 102C, the second motion detection area 110B provides a wireless communication channel between the second wireless communication device 102B and the third wireless communication device 102C, and the third motion detection area 110C provides a wireless communication channel between the first wireless communication device 102A and the second wireless communication device 102B. In some aspects of operation, wireless signals transmitted on a wireless communication channel (separate from or shared with a wireless communication channel used for network traffic) are used to detect movement or lack of movement of objects in a space, and can be used to detect the presence (or absence) of objects 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 The present invention may include a person 106 shown in the figure), an animal, an inorganic object, or another device, equipment or assembly, an object used to define all or part of the boundaries of a space (e.g., a wall, a door, a window, etc.), or another type of object. In some implementations, when the motion of the object is not detected, the motion information from the wireless communication device can trigger further analysis to determine the presence or absence of the object.

[0034] In some implementations, the wireless communication system 100 may be or may 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 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. The storage of data (e.g., in a database), and / or the determination of motion, lack of motion (e.g., steady state), or presence detection may be performed by the wireless communication device 102, or in some cases, may be performed by another device in the wireless communication network or in the cloud (e.g., by one or more remote devices).

[0035] Figure 2A and 2B is a diagram showing 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, 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, etc.

[0036] In some cases, one or more combinations of 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 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 combinations of wireless communication devices 204A, 204B, 204C may be, or may be part of, an ad hoc motion detection system that also performs other types of functions.

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

[0038] exist Figure 2A and Figure 2B In the example shown, the first wireless communication device 204A is operable to transmit a wireless motion detection signal repeatedly (e.g., periodically, intermittently, at predetermined, unscheduled or random intervals, etc.) as a source device, for example. The second wireless communication device 204B and the third wireless communication device 204C can be used, for example, as a sensor device to receive a signal 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, which includes a standard pilot signal used in channel detection (e.g., channel detection 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 the motion or lack of motion of an object 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 an object in space 100 (e.g., whether the space is occupied or unoccupied) when a lack of motion is detected.

[0039] As shown in the figure, Figure 2A At the initial time t=0 in FIG. 214 , the object is at the first position 214A and at Figure 2B At a subsequent time t=1 in , the object has moved to the second position 214B. Figure 2A and Figure 2B , the moving object in space 200 is represented as a human being, but the moving object may be another type of object. For example, the moving object may be an animal, an inorganic object (e.g., a system, device, equipment, or assembly), an object used to define 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 only indicates that the location of the object changes within space 200 between time t=0 and time t=1.

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

[0041] exist Figure 2A In FIG. 2 , along the fifth signal path 224A, the wireless signal is transmitted from the first wireless communication device 204A and reflected from the object at the first location 214A toward the third wireless communication device 204C. Figure 2A The 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 shown is 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.

[0042] Figure 2A and Figure 2B The example wireless signals shown may experience attenuation, frequency shift, phase shift or other effects through their respective paths, and may have a portion that propagates in another direction, such as through walls 202A, 202B, and 202C. In some examples, the wireless signals are radio frequency (RF) signals. The wireless signals may include other types of signals.

[0043] 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 2 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 transmission signal may have multiple frequency components in the frequency bandwidth. The transmission signal may be transmitted from the first wireless communication device 204A in an omnidirectional manner, in a directional manner, or in other ways. In the example shown, the wireless signal passes through multiple corresponding paths in the space 200, and the signal along each path may become attenuated due to path loss, scattering or reflection, etc., and may have a phase offset or a frequency offset.

[0044] like Figure 2A and Figure 2B As shown, signals from various paths 216, 218, 220, 222, 224A and 224B are combined at the third wireless communication device 204C and the second wireless communication device 204B to form a received signal. Due to the influence of multiple paths in the space 200 on the transmitted signal, the space 200 can be represented as a transfer function (e.g., a filter) that inputs the transmitted signal and outputs the received signal. In the case where an object moves in the space 200, the attenuation or phase shift of the signal in the affected signal path can change, so the transfer function of the space 200 can change. Assuming that the same wireless signal is transmitted from the first wireless communication device 204A, if the transfer function of the space 200 changes, the output of the transfer function (e.g., the received signal) will also change. The change in the received signal can be used to detect the movement of the object. On the contrary, in some cases, if the transfer function of the space does not change, the output of the transfer function (received signal) does not change. The lack of change in the received signal (e.g., steady state) can indicate the lack of movement in the space 200.

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

[0046]

[0047] 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):

[0048]

[0049] 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):

[0050]

[0051] Substituting equation (2) into equation (3) yields the following equation (4):

[0052]

[0053] 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 in equation (5) as follows: n :

[0054]

[0055] Given a frequency component ω n The complex value Y n Indicates the frequency component ω nThe relative size 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. Conversely, for example, in the channel response (or complex value Y n ) 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.

[0056] exist Figure 2A and Figure 2B In another aspect of the present invention, beamforming can be performed between devices based on some knowledge of the communication channel (e.g., feedback properties generated by the 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 shown by the channel response, or the steering or feedback properties, or any combination thereof).

[0057] In some implementations, for example, a steering matrix may be generated at a transmitter device (beamforming transmitting end) based on a feedback matrix provided by a receiver device (beamforming receiving end) based on channel sounding. Since the steering matrix and the feedback matrix are related to the propagation characteristics of the channel, these matrices change as the object moves within the channel. Changes in the channel characteristics are reflected in these matrices accordingly, and by analyzing the matrices, motion may be detected, and different characteristics of the detected motion may be determined. In some implementations, a spatial map may be generated based on one or more beamforming matrices. A spatial map may indicate a general direction of an object in space relative to a wireless communication device. In some cases, a "mode" of a beamforming matrix (e.g., a feedback matrix or a steering matrix) may be used to generate a spatial map. A spatial map may be used to detect the presence of motion in space or to detect the location of a detected motion.

[0058] In some instances, channel information derived from a wireless signal (e.g., channel response information or beamforming state information as described above) may be used to calculate a motion indication value. For example, a set of motion indication values ​​for a given time frame may 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 may be filtered or otherwise modified to reduce the effects of noise and interference on the motion indication value. In some contexts, a higher magnitude motion indication value may represent a higher level of interference, while a lower magnitude motion indication value may represent a relatively lower level of interference. For example, each motion indication value may be a separate scalar, and the motion indication value may be normalized (e.g., to unity or otherwise).

[0059] In some cases, motion indication values ​​associated with a time frame may be used collectively to make an overall determination, such as whether motion has occurred in space during the time frame, where in space the motion has occurred during the time frame, and so on. For example, a motion consensus value for a time frame may indicate an overall determination related to whether motion has 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 more robust determination may be made by jointly analyzing multiple motion indication values ​​for a time frame. And in some cases, a data set may be recursively updated to further improve the accuracy of, for example, location determination. For example, motion indication values ​​for each consecutive time frame may 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 may be used to make an overall determination related to where motion has occurred during a subsequent time frame.

[0060] Figure 3 3 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 Figure 2A-2B The wireless communication device 102, 204. Figure 3 In the figure, the N 0 、N 1 and N 2 3 wireless nodes 302. However, other numbers of wireless nodes 302 are possible in the wireless communication network 300. In addition, other types of nodes are also 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.

[0061] The wireless communication network 300 includes a wireless communication channel 304 that communicatively couples each pair of wireless nodes 302. Such communicatively coupling may 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 each pair of wireless nodes 302. Such communication may occur in both directions simultaneously (e.g., full-duplex) or in only one direction at a time (e.g., half-duplex). In a network such as Figure 3 In some examples shown, the wireless communication channel 304 communicatively couples each pair of wireless nodes 302 of the plurality of wireless nodes 302. In other examples, one or more pairs of wireless nodes 302 may lack a corresponding wireless communication channel 304.

[0062] Each wireless communication channel 304 includes two or more wireless links, which includes at least one wireless link for each direction in bidirectional communication. Figure 3 In the figure, arrows represent individual wireless links. The arrows are marked with L ij , where the first subscript i indicates a transmitting wireless node and the second subscript j indicates a receiving wireless node. 0 and N 1 By Figure 3 There are two arrows L 01 and L 10 The two wireless links indicated are communicatively coupled. 01 Corresponding to the direction from N 0 To N 1 The first direction of wireless communication, and the wireless link L 10 Corresponding to the direction from N 1 To N 0 Wireless communication in a second direction opposite to the first direction.

[0063] In some implementations, the wireless communication network 300 obtains a set of motion indication values ​​associated with a time frame, where the set of motion indication values ​​may include information about Figure 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., Figure 3 One or more wireless links L01, L 10 , L 02 , L 20 , L 12 and L 21 ) to detect motion. Each wireless link is a pair of wireless communication devices (e.g., wireless nodes N) in a wireless communication network. 0 、N 1 and N2 defined between pairs of combinations).

[0064] 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 N 0 、N 1 and N 2 can be associated with the six-character portion of their respective MAC addresses, which is then mapped to a unique node identifier:

[0065] {N 0 , N 1 , N 2}→{7f4440, 7f4c9e, 7f630c}→{0, 1, 2}

[0066] 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 The 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:

[0067]

[0068] The MAC address values ​​may be ordered from left to right to indicate pairs of transmitting and receiving wireless nodes in a wireless link. In particular, the left MAC address value may correspond to a transmitting wireless node, and the right MAC address value may correspond to a receiving wireless node. This mapping of unique node and link identifiers may assist a data processing device in performing operations such as searching, sorting, and matrix manipulation during the processing of motion detection.

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

[0070]

[0071] 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 may be an array as shown above, or some other type of data structure (e.g., a vector). Although the data structure is presented as having three significant digits for each motion indication value, other numbers of significant digits are possible for the motion indication values ​​(e.g., 2, 5, 9, etc.).

[0072] Reference now 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 between 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 wire 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 multiple wireless links with their respective motion indication values ​​for the time frame. Multiple wireless links may be represented by unique link identifiers in the data structure 402. However, other representations are also possible. For example, multiple wireless links may be represented by pairs of unique node identifiers. In some instances, the data structure 402 may associate each unique link identifier with a corresponding pair of unique node identifiers.

[0073] The data processing device executes the program instructions to generate the wireless links present in the wireless communication network during the time frame from the data structure 402. The generated wireless links and their respective motion indication values ​​may 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 4The link dictionary 404 is shown in the box 404 of . The link dictionary 404 is operable to track the wireless links present in the wireless communication network within consecutive time frames. For example, when a new wireless link is observed in the wireless communication network, the data processing device updates the link dictionary 404 to include the new wireless link. In another example, when an existing wireless link is no longer observed in the wireless communication network, the data processing device updates the link dictionary 404 to remove the (previous) existing wireless link. The wireless link can be represented in the link dictionary 404 by a unique link identifier, each pair of unique node identifiers, or both. However, other representations are also possible.

[0074] The data processing device also executes program instructions to generate wireless nodes present in the wireless communication network during the time frame from the data structure. In particular, as shown in box 406, the program instructions direct the data processing device to "split" each generated wireless link into individual wireless nodes for each pair of wireless nodes. The program instructions also direct the data processing device to sort or filter through the individual wireless nodes to identify unique wireless nodes in the wireless communication network during the time frame. Considering that a single wireless node can be commonly shared between two or more wireless links, the link dictionary 404 alone may not be sufficient to establish unique wireless nodes of the wireless communication network. The unique wireless nodes can then be stored in a second memory of the data processing device (or motion detection system) used as a node dictionary. The node dictionary is composed of Figure 4 The node dictionary 408 is shown in FIG. 408. The node dictionary 408 is operable to maintain a list of unique wireless nodes present in the wireless communication network within consecutive time frames. The unique wireless nodes can be represented in the node dictionary 408 by corresponding unique node identifiers. However, other representations are also possible.

[0075] As shown in block 410, the node counter and persistence calculator may be communicatively coupled to the node dictionary. In many instances, the node counter and persistence calculator 410 are part of a data processing device. The node counter and persistence calculator 410 are operable to track wireless nodes present in the wireless communication network in successive time frames, and update the node dictionary 408 accordingly. This tracking may include timing the appearance (or disappearance) of one or more wireless nodes. For example, when a new wireless node is connected to the wireless communication network, the node counter and persistence calculator 410 update the node dictionary 408 to include the new wireless node. In another example, when a wireless node is disconnected from the wireless communication network, the node counter and persistence calculator 410 update the node dictionary 408 to remove the disconnected wireless node. This update may occur after a predetermined number of time frames have passed, in which the wireless node is not connected to the wireless communication network.

[0076] The data processing device additionally executes program instructions to change one or more sizes of the set of motion indication values ​​so that each motion indication value references a common scale of wireless link sensitivity. More specifically, the data processing device can be partially used as a link strength estimator (such as shown in box 412) and a link equalizer (such as shown in box 414). The link strength estimator 412 and the link equalizer 414 receive the identification of wireless links present in the wireless communication network during the time frame and their respective motion indication values ​​from the link dictionary 404. The link equalizer 414 also receives the equalization value for each wireless link in the identified wireless links from the link strength estimator 412. The link strength estimator 412 and the link equalizer 414 operate cooperatively to reference the motion indication value of each identified wireless link to a common scale of wireless link sensitivity.

[0077] In operation, the link strength estimator 412 estimates the link strength of the identified wireless links by determining the statistical properties of the motion indication values ​​of the respective wireless links. The statistical properties may be the maximum motion indication value, the deviation of the motion indication value from the average value, or the standard deviation. Other statistical properties are also possible. In some instances, the link strength estimator 412 tracks the statistical properties of one or more corresponding motion indication values ​​in a continuous time frame. The statistical properties may enable the link strength estimator 412 to measure the excitation strength and the corresponding dynamic range of the wireless link. Such measurements may 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 values ​​of each identified wireless link by their respective equalization values ​​(or statistical properties) 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.

[0078] For example, due to motion or another event, a first subset of wireless links may become strongly excited and exhibit a correspondingly high dynamic range (or sensitivity). Due to the same motion or event, a second subset of wireless links may become weakly excited and exhibit a correspondingly low dynamic range (or sensitivity). This excitation and corresponding dynamic range are reflected in the motion indication values ​​received from the link dictionary 404 by the link strength estimator 412 and the link equalizer 414. However, the link strength estimator 412 and the link equalizer 414 operate in conjunction 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 set and a second set within a plurality of wireless links does not overweight the first set of wireless links relative to the second set. Possible other benefits are normalization.

[0079] 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 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 the 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 the list in a memory associated with the likelihood calculator 416. The data processing device may function in part as the likelihood calculator 416.

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

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

[0082]

[0083] As shown below, unique link identifiers 3, 4, and 5 correspond to wireless nodes N 0 、N 1 and N 2 :

[0084]

[0085] Here, the wireless node N 0 Helps define a wireless link in a subset of wireless links, namely N 2 →N 0 Similarly, wireless node N 1Helps define two wireless links in a subset of wireless links, namely N 1 →N 2 and N 2 →N 1 , and wireless node N 2 Helps define three wireless links in a subset of wireless links, namely N 1 →N 2 、N 2 →N 0 and N 2 →N 1 Therefore, the link calculator 416 calculates the value of each wireless node N. 0 、N 1 and N 2 Count values ​​1, 2, and 3 are generated. In this example, all wireless nodes of the wireless communication network contribute to the wireless links that define the subset of wireless links. However, for wireless nodes that do not contribute to the wireless links that define the subset of wireless links, the link calculator 416 may generate a count value of 0. In some examples, the link 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 link calculator 416 may generate the following count value data structure:

[0086]

[0087] 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 (eg, pairs of partial MAC addresses) are also possible.

[0088] The link calculator 416 further generates a probability vector based on the count values, the probability vector 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 the probability of motion at the connected wireless node during the time frame. In particular, the values ​​may represent the probability that motion at (or near) the corresponding wireless node induces link activity along a particular wireless link. In some instances, the values ​​may sum to 1. In these instances, the values ​​may be probability values. Figure 4 As shown, the link calculator 416 passes the generated probability vector to the Bayesian update engine.

[0089] In some instances, the value of each connected wireless node is a likelihood value assigned from a link likelihood graph. The likelihood values ​​may not need to total 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 link 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.

[0090] 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 with reference to Figure 3 , the link calculator 416 may generate a wireless link L that includes only the wireless link L having the 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 link calculator 416 may assign likelihood values ​​to each of the wireless nodes 0, 1, and 2 based on the corresponding count values. The link calculator 416 may then normalize the assigned likelihood values ​​to 1, thereby generating corresponding probability values ​​for each wireless node.

[0091] Figure 5A A flow chart illustrating example processing by a link calculator to generate a probability vector based on a plurality of wireless links. Figure 5AThe link calculator is depicted considering three wireless links. However, other numbers of wireless links are possible. In order to consider multiple wireless links, the link calculator relies on motion indication values ​​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 link calculator can accept all excited wireless links and check the frequency of occurrence of specific wireless nodes in these excited wireless links. In this example, the motion is most likely to occur at the most common wireless node. The likelihood calculator takes the M highest 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 thus obtained to a likelihood value through a link likelihood graph. The probability vector is then output for the Bayesian update engine.

[0092] Figure 5B An example mathematical function for generating a probability vector using a likelihood calculator is shown. Figure 5B Shown by Figure 5A The multi-link likelihood process utilized by the likelihood calculator in FIG. 1 and the example mathematical functions are broken down and explained in more detail. The wireless link from a certain time instant is called L t , and the number of wireless links represented by the excitation level is given by m. The likelihood calculator accepts M excited wireless links from the wireless link vector, and uses one wireless link represented as a→b to create node sets {a} and {b}, and performs a union of the sets for all M excited wireless links. The variable j then sweeps through the union by taking in 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 0, where the 1 or 0 is added together for all values ​​of j in the dictionary. The sum is obtained 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.

[0093] 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, etc.). The change in wireless connectivity may include one or both of the following: [1] wireless nodes that have been connected to the wireless communication network between the prior time frame and the subsequent time frame; and [2] wireless nodes that have been 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.

[0094] Probability mapper / redistributor 418 is also operable to generate the initialization probability vector in multiple initialization probability vectors 420 by changing the value of the prior probability vector based on the change of wireless connection. For example, the change of wireless connection can include the wireless node that has been disconnected from the wireless communication network between the previous time frame and the subsequent time frame. In this case, probability mapper / redistributor 418 can 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 that remains connected to the wireless communication network. This distribution can occur with the ratio defined by the value of the remaining wireless nodes. However, other allocation plans are also possible. In another example, the change of wireless connection can include the wireless node that has been connected from the wireless communication network between the previous time frame and the subsequent time frame. In this case, probability mapper / redistributor 418 generates the initialization probability vector by adding a value to the prior probability vector of the wireless node that is newly connected.

[0095] The probability mapper / redistributor 418 is operable to generate other types of initialization probability vectors corresponding to the reset state. 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 hot started, the probability mapper / redistributor 418 can generate an initialization probability vector based on the probability value corresponding to the time frame when the motion was last detected. In another example, if the wireless communication network (or motion detection system) is operable but reset later, the probability mapper / redistributor 418 can use the prior probability vector as the initialization probability vector. In another example, if the user (e.g., through 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 the wireless nodes at the entry point (e.g., the front door).

[0096] The probability mapper / redistributor 418 passes the plurality of initialization probability vectors 420 to a multiplexer (or mux), 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 shown in FIG. Figure 4 As shown, the selected probability vector is passed to the Bayesian update engine. In order to determine which probability vector is selected, multiplexer 422 receives control input from motion persistence calculator (as shown in box 424). Motion persistence calculator 424 receives data structure 422 including motion indication value set, and also receives the configuration of wireless communication network 426. Based on these inputs, motion persistence calculator 424 generates control signal, and this control signal, when received by multiplexer 422, selects which of one of multiple initialization probability vectors and a priori probability vector is 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 a priori 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.

[0097] In some implementations, the data processing device uses the selected probability vector and the set of motion indication values ​​associated with the second subsequent time frame to identify a location associated with motion occurring during the subsequent time frame. In particular, program instructions are executed to generate a third probability vector including a third value for each wireless node based on the first probability vector received from likelihood calculator 416 and the second probability vector received from multiplexer 422. In particular, as shown in block 428, the Bayesian update engine generates the third probability vector. The third value of the third probability vector represents the probability of motion at each wireless node during the time frame.

[0098] In some variations, the second probability vector is 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 motion 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 cause the data processing device to 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.

[0099] 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 The link activity of 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 Corresponds to Figure 3 If the wireless link 1 in the wireless communication network 300 is 1, 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.

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

[0101]

[0102] Where: P(L j |N i ) and P(N i ) are used as described above for the first probability vector from likelihood calculator 416 and the second probability vector from multiplexer 422, respectively. Equation (1) may 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):

[0103]

[0104] This calculation yields P(N i |1)={0.476,0.095,0.429}, where the third value is 1, that is, 0.476+0.095+0.429=1. Therefore, P(N i |1) can represent the probability distribution normalized to 1. 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 search for the MAC address value of the wireless node 0, and when found, output the result (for example, output 7f4440).

[0105] In some implementations, the data processing device iteratively processes consecutive time frames. For example, the data processing device may repeat the following operations for each time frame through multiple iterations: obtaining a set of motion indication values ​​associated with a subsequent time frame; identifying a subset of wireless links based on the size of the associated motion indication value of the wireless link 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; generating a first probability vector based on the count value and including the value of the connected wireless node. 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; generating a second probability vector by selecting one of a plurality of initialization probability vectors or the priori probability vector.

[0106] 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 movement detected from wireless signals exchanged during subsequent time frames.

[0107] The output of the Bayesian update engine 428 may be fed to 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 may be used in part as a motion model (as shown in block 430). The motion model 430 may operate similarly to calculating probabilities on a grid. Figure 6 A schematic diagram of an example motion model represented using a grid 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 6 are shown as t 1 and t 2 ), the motion can remain at the same wireless node, or transfer to any other wireless node. To determine the motion at time step t+1, the probability of motion existing on any wireless node in time step t is aggregated, which may include matrix vector calculations. Now in time step t+1, the probability of motion existing on any wireless node in time step t is aggregated, which may include matrix vector calculations. 1 The probability of a motion occurring at n is given by the probability of a motion that occurred at n in the past. 1 Occurs at and stays at n 1 At, in the past 2 Occurs at and moves to n 1 , or in the past in n 3 Occurs at and moves to n 1 In other words, at time step t+1 in n 1The motion at can be represented by the 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.

[0108] Figure 7 A schematic diagram presenting an example flow of probabilities in determining the 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 probabilities 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 motion on the x-axis at node N. 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 anode 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 calculation of the probability vectors from N at any time. x To N y The information about the transition probabilities of the transitions is propagated to the next time step.

[0109] Now return to reference Figure 3 , the wireless communication network 300 can determine the location of the motion detected by the wireless link by considering the potential transfer of the motion from one wireless node 302 to another wireless node 302. The potential transfer of the motion can also include a transfer that remains at or is in close proximity to the wireless node 302. For example, the wireless communication network 300 can detect the motion at or near a first wireless node arranged in a bedroom of a house. If the corresponding detection time period is during mealtime (e.g., breakfast, lunch, etc.), the wireless communication network 300 can consider a transfer towards a second wireless node in the kitchen of the house. In another example, if the wireless communication network 300 detects motion at or near a second wireless node during mealtime, the wireless communication network 300 can consider the detected motion that remains at or near the second wireless node in a future time period during mealtime. Other criteria for potential transfer are also possible.

[0110] In some instances, the potential transfer of the detected motion includes criteria of time, place, or both. For example, if the detection time period occurs at night, the probability of the detected motion transferring from the bedroom to the restroom may be high. On the contrary, the probability of the detected motion transferring to the front door may be low. The transition probability matrix can be used to represent these differences mainly based on time. The transition probability matrix can assign high transition probabilities to the detected motion transferring from the bedroom to the restroom, while assigning low transition probabilities to the detected motion transferring from the bedroom to the front door. The transition probability matrix can also consider the location of the detected motion. For example, the motion detected in the living room can have a similar probability of transferring to any other wireless node. This similar probability can include considerations of time (e.g., nighttime, daytime, etc.).

[0111] Figure 8 is a schematic diagram of a wireless communication network 800 with dashed arrows indicating potential transfer of detected motion between wireless nodes 802 . Figure 8 The wireless communication network 800 may be similar to Figure 3 wireless communication network. Figure 3 and Figure 8 Common features are related by coordinate numbers that differ by increments of 500. Figure 8 In FIG. 8 , the dashed arrows represent potential transfers of detected motion between wireless nodes 802 of the wireless communication network 800. The dashed arrows are labeled T ij , where the first subscript i indicates the starting location and the second subscript j indicates the destination location. 0 and N 1 Each can be used as a starting point and a destination point depending on the specific transfer. 01 Corresponding to the detected movement from N 0 Transfer to N 1 , and transfer T 10 Corresponding to the detected movement from N 1 Transfer to N 0 .

[0112] In some implementations, nodes in the wireless communication network 800 obtain a transition probability matrix including transition values ​​and non-transition values. The transition values ​​may represent the probability of movement transitioning between locations associated with different wireless communication devices, and the non-transition values ​​represent the probability of movement remaining within a location associated with each wireless communication device.

[0113] In some variations, the transition probability matrix is ​​given by represents, where: corresponds to a unique node identifier for which motion was detected during the prior time frame (t-1), and The unique node identifiers corresponding to the detected motion have moved in the subsequent time frame (t). Transition probability matrix Includes probability values ​​that can represent transition probability values ​​or non-transition probability values For example, the transition probability matrix It can be expanded according to formula (2):

[0114]

[0115] Here, the transition probability matrix The diagonal terms correspond to and the off-diagonal terms correspond to The diagonal terms may represent the probability of transitioning between (remaining at) the same wireless communication device during subsequent time frames, e.g., T(0 t |0 t-1 )、T(1 t |1 t-1 )、T(2 t |2 t-1 ), and so on. Thus, the diagonal terms may represent non-transition probability values ​​(or non-transition values). Similarly, the off-diagonal terms represent the probability of transitioning from one wireless communication device to another wireless communication device during a subsequent time frame, e.g., T(0 t |2 t-1 )、T(3 t |0 t-1 )、T(1 t |8 t-1 ), etc. In this way, the off-diagonal terms may correspond to transition probability values ​​(or transition values).

[0116] for Figure 8 The wireless communication device 800, potentially transferring T 00 、T 11 and T 22 The corresponding non-transition probability value T(0 t |0 t-1 )、T(1 t |1 t-1 ) and T(2 t |2 t-1 ) is used to represent the potential transfer T 01 、T 10 、T 02 、T 20 、T 12 and T 21 The corresponding transition probability value T(1 t |0 t-1 )、T(0 t |1 t-1 )、T(2 t |0t-1 )、T(0 t |2 t-1 )、T(2 t |1 t-1 ) and T(1 t |2 t-1 ) is used to represent it. Then, the full matrix can be constructed according to formula (2):

[0117]

[0118] In some instances, the probability value is assigned a value based on a stickiness factor. The stickiness factor may be the probability of remaining at the wireless communication device divided by the probability of transferring away from the wireless communication device (eg, a probability ratio). Figure 8 For a wireless communication network 800, the detected motion can be known to remain close to any given wireless node 802 five times out of eight. The stickiness factor can then be determined to be 0.625. Thus, the non-transition probability value T(0 t |0 t-1 )、T(1 t |1 t-1 ) and T(2 t |2 t-1 ) can be assigned a value of 0.625. If the probability of transferring to any of the other two wireless nodes 802 is the same, the remaining transition probability values ​​can be determined by (1-0.625) / 2=0.1875. The transition probability matrix can be constructed as follows

[0119]

[0120] In some implementations, a node in the wireless communication network 800 determines a location of a motion detected from a wireless signal exchanged during a subsequent time frame. The determined location is based on a first probability vector, a second probability vector, and a transition probability matrix. In a further implementation, the wireless communication network 800 generates a third probability vector by combining the first probability vector, the second probability vector, and the transition probability matrix. Generating the third probability vector may be caused by a data processing device executing a program instruction. The third probability vector includes a third value representing a third probability of motion at each wireless communication device during a subsequent time frame. When executing the program instruction, the wireless communication network 800 may also identify a wireless communication device associated with the highest value in the third value. In addition, the wireless communication network 800 may determine the location of the motion by identifying the location associated with the wireless communication device as the location of the motion detected during the first time frame.

[0121] In some variations, the third probability vector is given by represents, where: corresponds to a unique node identifier at the subsequent time frame (t), and Corresponds to the unique link identifier at the first time frame (t). The third probability vector Including taking into account the wireless link L j The link activity of wireless node N in the subsequent time frame i The third probability vector can be determined according to formula (3):

[0122]

[0123] in: and As mentioned above, it is related to equations (1) and (2). Here, the subscript t indicates a unique node or link identifier from the subsequent time frame (t). During the recursive update of the third probability vector, the third probability vector at the previous time Can be used as a second probability vector for subsequent time frames Thus, in formula (3), Thus generating formula (4):

[0124]

[0125] Equations (3) and (4) may enable the wireless communication network 800 (or a data processing device) to use Bayesian statistics to determine the location of the detected motion while taking into account potential transfers between wireless nodes 802 .

[0126] Fig. 9 900 is a flow chart illustrating another example process 900 for determining a location of motion detected by a wireless communication device in a wireless communication network. The operations in the example process 900 may be performed by a data processing device (e.g., Figure 1 The example process 900 may be performed by a processor in the wireless communication device 102 in the example embodiment of the present invention to detect the location of the movement based on the signal received at the wireless communication device. The example process 900 may be performed by another type of device. For example, the operations of the process 900 may be performed by a system other than the wireless communication device (e.g., a system connected to the wireless communication device). Figure 1 A computer system of the wireless communication system 100 that aggregates and analyzes signals received by the wireless communication device 102) is performed.

[0127] The example process 900 may include additional or different operations, and these operations may be performed in the order shown or in another order. Fig. 9One or more than one of the operations shown may be implemented as a process that includes multiple operations, sub-processes or other types of routines. In some cases, the operations may be combined, performed in another order, performed in parallel, iterated, or repeated or performed in another manner.

[0128] The example process 900 includes obtaining a set of motion indication values ​​associated with a time frame, as shown in operation 902. The set of motion indication values ​​indicates motion detected from wireless links in a wireless communication network during the time frame. Each motion indication value is associated with a corresponding wireless link, and each wireless link is defined between each pair of wireless communication devices in the wireless communication network.

[0129] The example process 900 also includes identifying a subset of the wireless links based on a magnitude of the respective motion indication values ​​of the wireless links relative to other motion indication values ​​in the set of motion indication values, as shown in operation 904. The example process 900 additionally includes generating a count value for wireless communication devices connected to the wireless communication network during the time frame, as shown in operation 906. The count value for each wireless communication device indicates how many wireless links in the identified subset are defined by the wireless communication device.

[0130] The example process 900 also includes generating a probability vector based on the count value and including values ​​for the connected wireless communication devices, as shown at operation 908. The value for each connected wireless communication device represents a probability of motion at the connected wireless communication device during the time frame.

[0131] In some implementations, the example process 900 includes: changing one or more magnitudes of the set of motion indication values ​​so that each motion indication value references a common scale of wireless link sensitivity. In some implementations, the example process 900 includes: identifying wireless links active in the wireless communication network during the time frame based on the set of motion indication values. The example process 900 may optionally include: identifying pairs of wireless communication devices defining each identified active wireless link, thereby identifying wireless communication devices connected to the wireless communication network during the time frame.

[0132] In some implementations, the time frame is a subsequent time frame after the prior time frame, the probability vector is a first probability vector, and the value is a first value. In these implementations, the example process 900 includes: obtaining a second probability vector generated from the motion indication value associated with the prior time frame. The second probability vector includes a second value of a wireless communication device connected to the wireless communication network during the prior time frame. The second value represents the probability of motion at the connected wireless communication device during the prior time frame. The example process 900 also includes: generating a third probability vector based on the first value of the first probability vector and the second value of the second probability vector. The third probability vector includes a third value of the wireless communication device connected to the wireless communication network during the subsequent time frame. The third value represents the probability of motion at the connected wireless communication device during the subsequent time frame. The example process 900 also includes: identifying the wireless communication device associated with the highest value in the third value, and identifying the location associated with the identified wireless communication device as the location of the motion detected from the wireless signal exchanged during the subsequent time frame by operation of the data processing device.

[0133] In these implementations, example process 900 may optionally include obtaining a transition probability matrix including: [1] transition values ​​representing probabilities of motion for transitioning between locations associated with different wireless communication devices; and [2] non-transition values ​​representing probabilities of motion for remaining within locations associated with respective wireless communication devices. Generating a third probability vector includes generating the third probability vector based on a first value of the first probability vector, a second value of the second probability vector, and the transition values ​​and non-transition values ​​of the transition probability matrix.

[0134] Also in these implementations, the example process 900 may optionally include: repeating the following operations for each time frame through multiple iterations: obtaining a set of motion indication values; identifying a subset of wireless links; generating a count value; generating a first probability vector; obtaining a second probability vector; generating a third probability vector; identifying a wireless communication device; and identifying a location. The third probability vector of the previous iteration is used as the second probability vector of the current iteration, thereby enabling the third probability vector to be recursively updated.

[0135] Fig.10 1 is a flow chart illustrating an additional example process 1000 for determining a location of motion detected by a wireless communication device in a wireless communication network. The operations in the example process 1000 may be performed by a data processing device (e.g., Figure 1 The example process 1000 may be performed by a processor in the wireless communication device 102 in the example embodiment of the present invention to detect the location of the movement based on the signal received at the wireless communication device. The example process 1000 may be performed by another type of device. For example, the operations of the example process 1000 may be performed by a system other than the wireless communication device (e.g., a system connected to the example embodiment of the present invention). Figure 1A computer system of the wireless communication system 100 that aggregates and analyzes signals received by the wireless communication device 102) is performed.

[0136] The example process 1000 may include additional or different operations, and these operations may be performed in the order shown or in another order. In some cases, Fig.10 One or more than one of the operations shown may be implemented as a process that includes multiple operations, sub-processes or other types of routines. In some cases, the operations may be combined, performed in another order, performed in parallel, iterated, or repeated or performed in another manner.

[0137] The example process 1000 includes obtaining a set of motion indication values ​​associated with a previous time frame, as shown in operation 1002. The set of motion indication values ​​indicates motion detected from a wireless link in a wireless communication network during the previous time frame. Each motion indication value is associated with a corresponding wireless link. Each wireless link is defined between each pair of wireless communication devices in the wireless communication network.

[0138] The example process 1000 also includes generating a priori probability vectors based on the set of motion indication values ​​and including values ​​for wireless communication devices connected to the wireless communication network during a prior time frame. The values ​​represent probabilities of motion at the connected wireless communication devices during the prior time frame.

[0139] The example process 1000 additionally includes selecting one of a plurality of initialization probability vectors or a prior probability vector based on the set of motion indication values, the configuration of the wireless communication network, or both. The example process 1000 further includes identifying a location associated with motion occurring during the subsequent time frame using the selected probability vector and the set of motion indication values ​​associated with a second subsequent time frame.

[0140] In some implementations, the plurality of initialization probability vectors include an initialization probability vector having probability values ​​of a wireless communication device connected to the wireless communication network during a subsequent time frame. The probability values ​​are equal in magnitude and represent a probability of motion at the connected wireless communication device during the subsequent time frame.

[0141] In some implementations, the plurality of initialization probability vectors include an initialization probability vector having probability values ​​of a wireless communication device connected to the wireless communication network during a subsequent time frame. At least one probability value has a magnitude based on a location of the corresponding wireless communication device. The probability value represents a probability of motion at the connected wireless communication device during a subsequent time frame.

[0142] In some implementations, example process 1000 includes determining a change in wireless connectivity between a prior time frame and a subsequent time frame. The change in wireless connectivity includes one or both of: [1] a wireless communication device that has been connected to a wireless communication network between a prior time frame and a subsequent time frame; and [2] a wireless communication device that has been disconnected from the wireless communication network between a prior time frame and a subsequent time frame. Example process 1000 also includes generating an initialization probability vector from among a plurality of initialization probability vectors by changing a value of the prior probability vector based on the change in wireless connectivity.

[0143] In these implementations, the change in wireless connectivity may optionally include a wireless communication device that has been disconnected from the wireless communication network between a prior time frame and a subsequent time frame. Then, the operation of generating the initialization probability vector includes assigning the value of the a priori probability vector associated with the disconnected wireless communication device to the value of the wireless communication device that remains connected to the wireless communication network.

[0144] Also in these implementations, the change in wireless connection may optionally include a wireless communication device connected to the wireless communication network between a previous time frame and a subsequent time frame.Then, generating the initialization probability vector includes adding values ​​to the prior probability vector of the wireless communication device connected to the wireless communication network.

[0145] Additionally, in these implementations, the example process 1000 may optionally include monitoring a connection status of the wireless communication device for each time frame through multiple iterations. The connection status indicates a connected state or a disconnected state. Then, the example process 1000 includes identifying the wireless communication device as a disconnected wireless communication device for subsequent time frames if the connection status has continuously indicated a disconnected state for a predetermined number of time frames.

[0146] 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 one or more combinations 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), which 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 one or more combinations thereof. In addition, although a computer storage medium is not a propagation signal, a computer storage medium can be a source or destination of a computer program instruction 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).

[0147] Portions of the operations described in this specification may be implemented as operations performed by a data processing apparatus on data stored on one or more computer-readable storage devices or received from other sources.

[0148] The term "data processing equipment" covers all kinds of equipment, devices and machines for processing data, including, for example, a programmable processor, a computer, a system on a chip, or a plurality or combination of the foregoing. The equipment may include special-purpose 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.

[0149] 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 a compiled language or an interpreted language, a declarative language or a procedural language, and it can be deployed in any form, including being deployed as a stand-alone program or being deployed as a module, component, subroutine, object or other unit suitable for use in a computing environment. A computer program can but need not correspond to a file in a file system. A program can be stored in a portion of a file, where the file 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 coordination files (e.g., files for storing a portion of one or more modules, subroutines or codes). A computer program can be deployed to execute on one computer, or on multiple computers located at one site, or distributed across multiple sites and interconnected by a communication network.

[0150] Some of the processes and logic flows described in this specification can be performed by executing one or more computer programs by one or more programmable processors to perform actions by operating on input data and generating output. These processes and logic flows can also be performed by special purpose logic circuits, and the device can also be implemented as special purpose logic circuits, such as FPGAs (field programmable gate arrays) or ASICs (application-specific integrated circuits).

[0151] For example, processors suitable for executing computer programs include both general-purpose microprocessors and special-purpose microprocessors, and processors of digital computers of any kind. 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 mass storage devices (e.g., disks, magneto-optical disks, or optical disks) for storing data or may be operably coupled to receive or transmit data relative to one or more mass 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 system (GPS) receivers, or portable storage devices (e.g., universal serial bus (USB) flash drives)). Devices suitable 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, etc.), magnetic disks (e.g., internal hard disks and removable disks, etc.), magneto-optical disks, and CD ROM and DVD-ROM disks. In some cases, the processor and memory may be supplemented by, or incorporated in, special purpose logic circuitry.

[0152] To provide 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 computer, 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 interaction with the user; for example, feedback provided to the user may be any form of sensory feedback, such as visual feedback, auditory feedback, or tactile feedback; and input from the user may be received in any form, including sound, voice, or tactile input. In addition, a computer may interact with a user by sending and receiving documents relative 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).

[0153] 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 ("LAN") and wide area networks ("WAN"), Internet (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.

[0154] 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 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.

[0155] Similarly, although these operations are depicted in the accompanying drawings in a specific order, this should not be understood as requiring these operations to be performed in the specific order shown or in sequence, or performing all of the operations shown, 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 implementation 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 usually be integrated together into a single product or packaged into multiple products.

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

Claims

1. A method for determining the location of a movement, include: Obtaining a set of motion indication values ​​associated with a time frame, the set of motion indication values ​​indicating motion detected from wireless links in a wireless communication network during the time frame, each motion indication value being associated with a corresponding wireless link, each wireless link being defined between each pair of wireless communication devices in the wireless communication network; identifying a subset of the radio links based on a magnitude of a respective motion indication value of the radio links relative to other motion indication values ​​in the set of motion indication values; generating a count value for wireless communication devices connected to the wireless communication network during the time frame, the count value for each wireless communication device indicating how many wireless links in the identified subset are defined by the wireless communication device; as well as A probability vector is generated based on the count value, wherein the probability vector includes values ​​for the connected wireless communication devices, the value for each connected wireless communication device representing a probability of motion at the connected wireless communication device during the time frame.

2. The method according to claim 1, include: One or more magnitudes of the set of motion indication values ​​are varied so that the motion indication values ​​are referenced to a common scale of radio link sensitivity.

3. The method according to claim 1 or 2, include: Wireless links active in the wireless communication network during the time frame are identified based on the set of motion indication values.

4. The method according to claim 3, include: Pairs of wireless communication devices defining each identified active wireless link are identified, thereby identifying wireless communication devices connected to the wireless communication network during the time frame.

5. The method according to claim 1 or 2, in, The time frame is a subsequent time frame after the preceding time frame, the probability vector is a first probability vector, and the value is a first value, and Wherein, the method comprises: obtaining a second probability vector generated from motion indication values ​​associated with the prior time frame, the second probability vector comprising a second value for a wireless communication device connected to the wireless communication network during the prior time frame, the second value representing a probability of motion at the connected wireless communication device during the prior time frame; generating a third probability vector based on the first value of the first probability vector and the second value of the second probability vector, the third probability vector comprising a third value for a wireless communication device connected to the wireless communication network during the subsequent time frame, the third value representing a probability of motion at the connected wireless communication device during the subsequent time frame; identifying a wireless communication device associated with a highest value among the third values; and The location associated with the identified wireless communication device is identified, through operation of the data processing apparatus, as the location of the motion detected from the wireless signals exchanged during the subsequent time frame.

6. The method according to claim 5, include: A transition probability matrix is ​​obtained, wherein the transition probability matrix includes: a transition value representing a probability of motion for transitioning between locations associated with different wireless communication devices, and a non-transition value representing a probability for remaining in motion within a location associated with each wireless communication device, and The generating of the third probability vector comprises: generating the third probability vector based on the first value of the first probability vector, the second value of the second probability vector, and the transition value and the non-transition value of the transition probability matrix.

7. The method according to claim 5, include: Repeating the following operations for each time frame through multiple iterations: obtaining the set of motion indication values, identifying the subset of the wireless links, generating the count value, generating the first probability vector, obtaining the second probability vector, generating the third probability vector, identifying the wireless communication device, and identifying the location, The third probability vector of the previous iteration is used as the second probability vector of the current iteration, so that the third probability vector can be recursively updated.

8. A system for determining the location of a movement, include: Wireless communication devices in a wireless communication network, configured to exchange wireless signals over wireless links, each wireless link being defined between each pair of wireless communication devices in the wireless communication devices; one or more processors; as well as a memory for storing instructions configured to, when executed by the one or more processors, perform operations comprising: obtaining a set of motion indication values ​​associated with a time frame, the set of motion indication values ​​indicating motion detected from the radio link during the time frame, each motion indication value being associated with a corresponding radio link; identifying a subset of the radio links based on a magnitude of a respective motion indication value of the radio links relative to other motion indication values ​​in the set of motion indication values; generating a count value for wireless communication devices connected to the wireless communication network during the time frame, the count value for each wireless communication device indicating how many wireless links in the identified subset are defined by the wireless communication device; and A probability vector is generated based on the count value, wherein the probability vector includes values ​​for the connected wireless communication devices, the value for each connected wireless communication device representing a probability of motion at the connected wireless communication device during the time frame.

9. The system according to claim 8, wherein the operation include: One or more magnitudes of the set of motion indication values ​​are varied so that the motion indication values ​​are referenced to a common scale of radio link sensitivity.

10. The system according to claim 8 or 9, wherein the operation include: Wireless links active in the wireless communication network during the time frame are identified based on the set of motion indication values.

11. The system according to claim 10, wherein the operation include: Pairs of wireless communication devices defining each identified active wireless link are identified, thereby identifying wireless communication devices connected to the wireless communication network during the time frame.

12. The system according to claim 8 or 9, in, The time frame is a subsequent time frame after the preceding time frame, the probability vector is a first probability vector, and the value is a first value, and The operations include: obtaining a second probability vector generated from motion indication values ​​associated with the prior time frame, the second probability vector comprising a second value for a wireless communication device connected to the wireless communication network during the prior time frame, the second value representing a probability of motion at the connected wireless communication device during the prior time frame; generating a third probability vector based on the first value of the first probability vector and the second value of the second probability vector, the third probability vector comprising a third value for a wireless communication device connected to the wireless communication network during the subsequent time frame, the third value representing a probability of motion at the connected wireless communication device during the subsequent time frame; identifying a wireless communication device associated with a highest value among the third values; and Through operation of the data processing apparatus, a location associated with the identified wireless communication device is identified as the location of the motion detected from the wireless signals exchanged during the subsequent time frame.

13. The system according to claim 12, wherein the operation include: A transition probability matrix is ​​obtained, wherein the transition probability matrix includes: a transition value representing a probability of motion for transitioning between locations associated with different wireless communication devices, and a non-transition value representing a probability for remaining in motion within a location associated with each wireless communication device, and The generating of the third probability vector comprises: generating the third probability vector based on the first value of the first probability vector, the second value of the second probability vector, and the transition value and the non-transition value of the transition probability matrix.

14. The system according to claim 12, wherein the operation include: Repeating the following operations for each time frame through multiple iterations: obtaining the set of motion indication values, identifying the subset of the wireless links, generating the count value, generating the first probability vector, obtaining the second probability vector, generating the third probability vector, identifying the wireless communication device, and identifying the location, The third probability vector of the previous iteration is used as the second probability vector of the current iteration, so that the third probability vector can be recursively updated.

15. The system according to claim 8 or 9, in, At least one of the wireless communication devices includes the memory and the one or more processors.

16. A non-transitory computer readable medium storing instructions that, when executed by a data processing device, cause the data processing device to perform an operation, the operation include: Obtaining a set of motion indication values ​​associated with a time frame, the set of motion indication values ​​indicating motion detected from wireless links in a wireless communication network during the time frame, each motion indication value being associated with a corresponding wireless link, each wireless link being defined between each pair of wireless communication devices in the wireless communication network; identifying a subset of the radio links based on a magnitude of a respective motion indication value of the radio links relative to other motion indication values ​​in the set of motion indication values; generating a count value for wireless communication devices connected to the wireless communication network during the time frame, the count value for each wireless communication device indicating how many wireless links in the identified subset are defined by the wireless communication device; as well as A probability vector is generated based on the count value, wherein the probability vector includes values ​​for the connected wireless communication devices, the value for each connected wireless communication device representing a probability of motion at the connected wireless communication device during the time frame.

17. The computer readable medium of claim 16, include: One or more magnitudes of the set of motion indication values ​​are varied so that the motion indication values ​​are referenced to a common scale of radio link sensitivity.

18. The computer readable medium according to claim 16 or 17, include: Wireless links active in the wireless communication network during the time frame are identified based on the set of motion indication values.

19. The computer readable medium of claim 18, include: Pairs of wireless communication devices defining each identified active wireless link are identified, thereby identifying wireless communication devices connected to the wireless communication network during the time frame.

20. The computer readable medium according to claim 16 or 17, in, The time frame is a subsequent time frame after the preceding time frame, the probability vector is a first probability vector, and the value is a first value, and The operations include: obtaining a second probability vector generated from motion indication values ​​associated with the prior time frame, the second probability vector comprising a second value for a wireless communication device connected to the wireless communication network during the prior time frame, the second value representing a probability of motion at the connected wireless communication device during the prior time frame; generating a third probability vector based on the first value of the first probability vector and the second value of the second probability vector, the third probability vector comprising a third value for a wireless communication device connected to the wireless communication network during the subsequent time frame, the third value representing a probability of motion at the connected wireless communication device during the subsequent time frame; identifying a wireless communication device associated with a highest value among the third values; and Through operation of the data processing apparatus, a location associated with the identified wireless communication device is identified as the location of the motion detected from the wireless signals exchanged during the subsequent time frame.

21. The computer readable medium of claim 20, include: A transition probability matrix is ​​obtained, wherein the transition probability matrix includes: a transition value representing a probability of motion for transitioning between locations associated with different wireless communication devices, and a non-transition value representing a probability for remaining in motion within a location associated with each wireless communication device, and The generating of the third probability vector comprises: generating the third probability vector based on the first value of the first probability vector, the second value of the second probability vector, and the transition value and the non-transition value of the transition probability matrix.

22. The computer readable medium of claim 20, include: Repeating the following operations for each time frame through multiple iterations: obtaining the set of motion indication values, identifying the subset of the wireless links, generating the count value, generating the first probability vector, obtaining the second probability vector, generating the third probability vector, identifying the wireless communication device, and identifying the location, The third probability vector of the previous iteration is used as the second probability vector of the current iteration, so that the third probability vector can be recursively updated.

Citation Information

Patent Citations

  • User position predicating system and method based on wireless network

    CN103747523A

  • Motion localization in a wireless mesh network based on motion indicator values

    WO2019075551A1