Motion data processing method and mobile device
By acquiring location information and calculating stride length and step count when the positioning signal is strong, and using sensors to acquire step frequency and step count when the signal is weak, the problem of motion data loss of mobile devices when the positioning signal is poor is solved, ensuring the continuity and accuracy of data and improving the user experience.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-09-30
- Publication Date
- 2026-04-07
AI Technical Summary
In some scenarios, mobile devices may fail to obtain accurate motion data due to poor or lost positioning signals, resulting in the loss of motion parameters and impacting user experience.
By acquiring positioning information when the positioning signal is strong, stride length and step count are calculated. When the positioning signal is weak, the step frequency and step count are acquired using sensors, and motion parameters are calculated to ensure the continuity and accuracy of the data.
Even in situations with poor positioning signals, it can accurately acquire and display motion parameters, avoiding data loss and improving user experience.
Smart Images

Figure CN121815186A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of terminal technology, and in particular to a motion data processing method and a mobile device. Background Technology
[0002] With the rapid development of mobile devices such as smartphones and wearable devices, mobile devices are able to provide users with an increasing number of functions and services. For example, mobile devices can provide sports and health functions. Sports and health applications (Apps) on mobile devices can acquire exercise data generated during activities such as running and walking, and display various parameters during the exercise process to the user. For instance, when a user moves along a path carrying a mobile device such as a smartphone or wearable device, the mobile device can acquire the user's movement trajectory in real time; the trajectory is composed of individual trajectory points. Generally, mobile devices can obtain the user's location, i.e., acquire each trajectory point, through positioning methods such as the Global Positioning System (GPS), the BeiDou Navigation Satellite System (BDS), and mobile base stations. However, in certain scenarios, such as when a mobile device passes through a cave, tunnel, or under an overpass, the mobile device cannot obtain its current location through positioning methods, and thus loses exercise data for that scenario. Summary of the Invention
[0003] This application provides a motion data processing method and a mobile device that can obtain relatively accurate motion data when the user's location cannot be obtained through positioning, thus avoiding the loss of motion data in certain scenarios.
[0004] To achieve the above objectives, the embodiments of this application adopt the following technical solutions:
[0005] In a first aspect, a motion data processing method is provided, the method comprising: acquiring the real-time location of a mobile device at preset time intervals within a first duration; acquiring the stride length of a first user (a user carrying a mobile device for exercise) based on multiple real-time locations; and acquiring at least one of the distance traveled by the first user, average speed, and pace within a second duration, based on the first user's stride length and number of steps.
[0006] In this method, during the user's movement, during the first time period (e.g., when the positioning signal is strong), positioning information (including real-time location) is acquired, and the user's stride length is also obtained based on the positioning information. During the second time period (e.g., when the positioning signal is weak), motion parameters such as distance, pace, and average speed are acquired based on the user's stride length and the corresponding number of steps (or cadence). In this way, even if the positioning signal is poor and the user's real-time location cannot be determined, motion parameters can still be acquired and displayed to the user, avoiding the problem of motion parameter loss when the positioning signal is weak.
[0007] In conjunction with the first aspect, in one possible implementation, during a first time period, at least one of the following is obtained based on the real-time location of the mobile device: the distance traveled by the first user, the average speed, and the pace.
[0008] In this method, when the positioning signal is strong, motion parameters such as trajectory, distance, pace, and average speed are obtained and displayed to the user based on the positioning information (including real-time location).
[0009] In conjunction with the first aspect, in one possible implementation, obtaining the stride of the first user based on multiple real-time locations includes: obtaining the distance the first user moves within a third time period based on the multiple real-time locations; and obtaining the stride of the first user within the third time period based on the distance and number of steps moved within the third time period.
[0010] In conjunction with the first aspect, in one possible implementation, the multiple real-time locations include a first real-time location and a second real-time location, the first real-time location corresponding to a first trajectory point, the second real-time location corresponding to a second trajectory point, and the first trajectory point being adjacent to the second trajectory point. The method further includes: obtaining the distance moved by the first user within a first time interval based on the first real-time location and the second real-time location; obtaining the number of steps moved by the first user within the first time interval; and obtaining the stride length of the first user within the first time interval based on the distance moved by the first user within the first time interval and the number of steps moved by the first user within the first time interval.
[0011] In this method, the user's stride is calculated in units of time intervals (e.g., 1 second), resulting in a more accurate stride calculation.
[0012] In conjunction with the first aspect, in one possible implementation, multiple step amplitudes corresponding to multiple adjacent time intervals are obtained; wherein the fluctuation of the multiple step amplitudes is less than or equal to a preset fluctuation threshold, and the fluctuation of the multiple step amplitudes is... stride max The maximum value among multiple strides, stride min It is the minimum value among multiple step sizes.
[0013] In this method, when stride... max With stride minIf the fluctuation is less than or equal to the preset fluctuation threshold (e.g., 5%), it indicates that the user's movement is in a relatively stable phase, the cadence has not changed rapidly, the obtained stride data is valid data, and more accurate stride values can be obtained.
[0014] In conjunction with the first aspect, in one possible implementation, the Z-score of each of the multiple strides is less than a preset threshold, wherein, Z is the Z-score, x i Let be the i-th step among the plurality of steps, μ be the average value of the plurality of steps, and σ be the standard deviation of the plurality of steps.
[0015] In this method, a normal distribution is satisfied when Z is less than or equal to a preset threshold (e.g., the preset threshold is 2). That is, when the Z score is greater than the preset threshold, it indicates that the corresponding stride value is a value with a large deviation and needs to be removed. This removes the stride values with large deviations, resulting in more accurate stride values.
[0016] In conjunction with the first aspect, in one possible implementation, obtaining at least one of the following: the distance traveled by the first user, average speed, and pace, based on the first user's stride length and number of steps, includes: obtaining the first user's first step frequency within a second time period; the step frequency is the number of steps within a unit time period; obtaining the first step length based on the first step frequency, wherein the first step length is one of a plurality of step lengths; and obtaining at least one of the following: the distance traveled by the first user, average speed, and pace, based on the first step length.
[0017] When users are at different pace frequencies, their stride lengths vary significantly. In this method, the corresponding stride length is obtained based on the pace frequency, and motion parameters are calculated using a stride length that matches the pace frequency, resulting in more accurate motion parameters.
[0018] In conjunction with the first aspect, in one possible implementation, before obtaining at least one of the distance traveled by the first user, average speed, and pace based on the first user's stride length and number of steps, the method further includes: obtaining a second step frequency within a second time period; the step frequency is the number of steps within a unit time period; obtaining a second step length corresponding to the second step frequency based on multiple step lengths corresponding to multiple step frequencies in the step frequency interval to which the second step frequency belongs; the second step length value is one of the first user's stride lengths.
[0019] In this method, an unknown step size within a step frequency interval is calculated based on multiple step frequency values and their corresponding step size values, rather than arbitrarily selecting multiple step frequency values and their corresponding step size values to calculate an unknown step size. Since the difference in user step size is small within a step frequency interval, calculating an unknown step size within that interval based on multiple step frequency values and their corresponding step size values yields a more accurate step size.
[0020] Secondly, a mobile device is provided that has the functionality to implement the method described in the first aspect. This functionality can be implemented by hardware or by hardware executing corresponding software. The hardware or software includes one or more modules corresponding to the aforementioned functionality.
[0021] Thirdly, a mobile device is provided, comprising: a processor, a memory, and a display; the display is used to display a user interface of the mobile device, the memory is used to store computer execution instructions, and when the mobile device is running, the processor executes the computer execution instructions stored in the memory to cause the mobile device to perform the method as described in any one of the first aspects above.
[0022] Fourthly, a mobile device is provided, comprising: a processor; the processor being configured to be coupled to a memory, and after reading instructions from the memory, to execute, according to the instructions, a method as described in any one of the first aspects above.
[0023] Fifthly, a computer-readable storage medium is provided that stores instructions which, when executed on a computer, cause the computer to perform the method described in any one of the first aspects.
[0024] In a sixth aspect, a computer program product containing instructions is provided, which, when run on a computer, enables the computer to perform the method described in any one of the first aspects above.
[0025] In a seventh aspect, an apparatus (e.g., a chip system) is provided, comprising a processor for supporting a mobile device in implementing the functions described in the first aspect above. In one possible design, the apparatus further comprises a memory for storing program instructions and data necessary for the mobile device. When the apparatus is a chip system, it may be composed of chips or may include chips and other discrete devices.
[0026] The technical effects of any of the design methods in aspects two through seven can be found in the technical effects of different design methods in aspect one, and will not be repeated here. Attached Figure Description
[0027] Figure 1 A schematic diagram illustrating a scenario to which the motion data processing method provided in this application is applicable;
[0028] Figure 2 This is a schematic diagram illustrating a scenario example of the motion data processing method provided in an embodiment of this application.
[0029] Figure 3 This is a schematic diagram illustrating a scenario example of the motion data processing method provided in an embodiment of this application.
[0030] Figure 4 A schematic diagram of the hardware structure of a mobile device provided in an embodiment of this application;
[0031] Figure 5 This is a schematic diagram of an interactive flow of the motion data processing method provided in an embodiment of this application;
[0032] Figure 6 This is a schematic diagram of a motion data processing method provided in an embodiment of this application;
[0033] Figure 7 This is a schematic diagram comparing the trajectories before and after smoothing.
[0034] Figure 8 This is a schematic diagram illustrating a scenario example of the motion data processing method provided in an embodiment of this application.
[0035] Figure 9 This is a schematic diagram of a motion data processing method provided in an embodiment of this application;
[0036] Figure 10 This is a schematic diagram illustrating a scenario example of the motion data processing method provided in an embodiment of this application.
[0037] Figure 11 This is a schematic diagram illustrating a scenario example of the motion data processing method provided in an embodiment of this application.
[0038] Figure 12 This is a schematic diagram of a motion data processing method provided in an embodiment of this application;
[0039] Figure 13 A schematic diagram of module interaction for a motion data processing method provided in an embodiment of this application;
[0040] Figure 14 This is a schematic diagram of the module division in the motion data processing method provided in the embodiments of this application. Detailed Implementation
[0041] In the description of the embodiments of this application, the terminology used in the following embodiments is for the purpose of describing specific embodiments only and is not intended to be a limitation of this application. As used in the specification and appended claims of this application, the singular expressions "a," "the," "the," "the," and "this" are intended to also include expressions such as "one or more," unless the context clearly indicates otherwise. It should also be understood that in the following embodiments of this application, "at least one" and "one or more" refer to one or more (including two). The term "and / or" is used to describe the relationship between related objects, indicating that three relationships can exist; for example, A and / or B can indicate: A alone, A and B simultaneously, or B alone, where A and B can be singular or plural. The character " / " generally indicates that the preceding and following related objects are in an "or" relationship.
[0042] References to "one embodiment" or "some embodiments" in this specification mean that one or more embodiments of this application include a specific feature, structure, or characteristic described in connection with that embodiment. Therefore, the phrases "in one embodiment," "in some embodiments," "in other embodiments," "in still other embodiments," etc., appearing in different parts of this specification do not necessarily refer to the same embodiment, but rather mean "one or more, but not all, embodiments," unless otherwise specifically emphasized. The terms "comprising," "including," "having," and variations thereof mean "including but not limited to," unless otherwise specifically emphasized. The term "connection" includes direct connections and indirect connections, unless otherwise stated. "First" and "second" are used for descriptive purposes only and should not be construed as indicating or implying relative importance or implicitly specifying the number of technical features indicated.
[0043] In the embodiments of this application, the terms "exemplary" or "for example" are used to indicate that something is an example, illustration, or description. Any embodiment or design that is described as "exemplary" or "for example" in the embodiments of this application should not be construed as being more preferred or advantageous than other embodiments or design. Specifically, the use of the terms "exemplary" or "for example" is intended to present the relevant concepts in a specific manner.
[0044] When a user exercises using a mobile device, the fitness and health app on that device can display various parameters based on the exercise data generated during the workout. For example, such as... Figure 1As shown, mobile phone 100 displays the user interface 101 of the sports and health app. The user interface 101 includes a track 102 and an information page 103. The information page 103 includes the exercise distance "2.54 km", calories burned "106.1 km", exercise duration "00:06:23", pace "4'34", heart rate "101 beats / minute", etc.
[0045] In this example, the phone displays exercise parameters such as the user's movement trajectory, distance, calories burned, duration, pace, and heart rate. In some examples, the phone can also display exercise parameters such as the number of steps taken.
[0046] In some embodiments, reference Figure 2 The motion parameters displayed on mobile devices include distance, calories burned, pace, heart rate, and steps. These motion parameters can be obtained through positioning units, timing units, and step counting units.
[0047] The positioning unit is used to acquire the real-time location of the mobile device. The positioning unit can acquire the user's real-time location through a global navigation satellite system (GNSS). The GNSS may include a global positioning system (GPS), a global navigation satellite system (GLONASS), a BeiDou navigation satellite system (BDS), a quasi-zenith satellite system (QZSS), and / or satellite-based augmentation systems (SBAS), etc. The positioning unit can also acquire the user's real-time location through a mobile communication system. The mobile communication system may include cellular networks such as 2G / 3G / 4G / 5G. For example, the coordinates of the user's real-time location g acquired by the mobile device are [x, y], where x represents the latitude value and y represents the longitude value; for example, g = ["x":116.478928,"y":39.997761].
[0048] The timing unit is used to record the duration of a user's movement while carrying a mobile device. For example, the timing unit can be a timer, which generates the duration of the user's movement in seconds. The timer can also trigger the processing of motion data, such as calculating the distance traveled per second, calculating the speed per second, or calculating the cadence per second.
[0049] A pedometer unit is used to record the number of steps and cadence of a user while running or walking with a mobile device, where cadence is the number of steps per unit time (e.g., 1 minute). For example, a pedometer unit can be a pedometer, or it can include sensors such as an accelerometer.
[0050] In one implementation, the mobile device stores the real-time locations of each trajectory point and connects these points to generate a motion trajectory. In another implementation, the mobile device accumulates the distances between trajectory points during its movement to obtain the distance traveled by the user (the mobile device itself). In yet another implementation, the positioning unit can also acquire the speed of the mobile device, thereby obtaining the user's speed, pace, etc. For example, GPS can report the real-time speed corresponding to each trajectory point, and the positioning unit can obtain the average speed, pace, etc., over a certain period based on the real-time speeds corresponding to each trajectory point. As another example, the average speed, pace, etc., over a certain period can be obtained based on the distance traveled by the mobile device within that period.
[0051] In one implementation, the mobile device can also obtain the calories burned during exercise based on the distance and pace.
[0052] Optionally, the mobile device can also connect to a wearable device, or the mobile device itself can be a wearable device. For example, a wearable device could be a fitness tracker, smartwatch, or similar device. The mobile device can then use the wearable device to obtain data such as the user's heart rate, altitude, and calories burned during exercise.
[0053] Of course, the exercise parameters don't have to be displayed by a sports and health app. For example, the desktop interface of a mobile device may include information cards, which can be used to display the aforementioned exercise parameters.
[0054] In some scenarios, such as when a mobile device passes through tunnels, under overpasses, or through caves, the positioning unit may not be able to obtain signals from GPS, cellular, or other communication networks for a period of time, or the signal may be weak. In such cases, the mobile device cannot obtain real-time location data for its trajectory points. Consequently, it also cannot acquire parameters such as trajectory, distance traveled, speed, and pace during this period.
[0055] For example, such as Figure 3 As shown in (a), when the GPS signal of mobile phone 100 is poor, mobile phone 100 fails to obtain real-time location within 13 seconds, and the information such as distance, heat, pace, etc. displayed on information page 104 of mobile phone 100 are invalid values.
[0056] For example, after another 7 seconds, such as Figure 3 As shown in (b), the information such as distance, heat, and pace displayed on the information page 105 of the mobile phone 100 are all invalid values.
[0057] In this case, when the mobile device passes through caves, tunnels, or under overpasses, it cannot properly display the parameters of the user's movement, affecting the user experience.
[0058] This application provides a motion data processing method. When the real-time location of the mobile device can be obtained through a positioning unit, the method acquires the user's motion data, such as the trajectory points of the movement (the real-time location of the mobile device). Based on the real-time location of the mobile device, motion parameters such as distance, speed, and pace are acquired. Furthermore, the method acquires and saves the user's stride length (the span of each step) during the movement. When the positioning unit cannot obtain the real-time location of the mobile device, sensors (timing units, pedometers, etc.) are used to acquire parameters such as step count and cadence. Based on stride length, step count, and cadence, motion parameters such as distance, speed, and pace are acquired. This allows the user's motion parameters to be displayed correctly even when the mobile device is passing through tunnels, under overpasses, or in other scenarios, improving the user experience.
[0059] For example, such as Figure 3 As shown in (c), the mobile phone 100 displays the message "Poor signal, recording with sensor", indicating that the GPS signal of the mobile phone 100 is poor and motion parameters are obtained by using motion data collected by sensors (such as pedometers).
[0060] The motion data processing method provided in this application can be applied to mobile devices including displays. These mobile devices may include mobile phones, tablets, laptops, ultra-mobile personal computers (UMPCs), handheld computers, netbooks, personal digital assistants (PDAs), wearable devices (e.g., smartwatches, smart bracelets), virtual reality devices, etc., and this application does not impose any limitations on them.
[0061] In this embodiment, the mobile device described above is a mobile device capable of running an operating system and installing applications. Optionally, the operating system running on the mobile device can be... system, system, Systems, etc.
[0062] For example, please refer to Figure 4 The diagram illustrates the structure of a mobile device 100. The mobile device 100 may include a processor 110, an external memory interface 120, an internal memory 121, an audio module 130, a speaker 130A, a microphone 130B, a display screen 140, a communication module 150, a power module 160, a sensor module 170, etc.
[0063] It is understood that the structures illustrated in the embodiments of this application do not constitute a specific limitation on the mobile device 100. In other embodiments of this application, the mobile device 100 may include more or fewer components than illustrated, or combine some components, or split some components, or have different component arrangements. The illustrated components may be implemented in hardware, software, or a combination of software and hardware.
[0064] Processor 110 may include one or more processing units. For example, processor 110 may include an application processor (AP), a modem processor, a graphics processing unit (GPU), an image signal processor (ISP), a controller, a video codec, a digital signal processor (DSP), and / or a neural network processing unit (NPU). Different processing units may be independent components or integrated into one or more processors. In some embodiments, mobile device 100 may also include one or more processors 110.
[0065] The controller is the nerve center and command center of the mobile device 100. It can generate operation control signals based on instruction opcodes and timing signals to control the fetching and execution of instructions.
[0066] The application processor can run the operating system of the mobile device 100 to manage the hardware and software resources of the mobile device 100. This includes managing and configuring memory, determining the priority of system resource allocation, controlling input and output devices, operating the network, managing the file system, and managing drivers. The operating system can also provide a user interface for interacting with the system. Various types of software can be installed within the operating system, such as drivers and applications (Apps).
[0067] NPU stands for Neural Network (NN) Computing Processor. By borrowing the structure of biological neural networks, such as the transmission patterns between neurons in the human brain, it can rapidly process input information and continuously learn on its own. NPUs can enable applications such as intelligent cognition in mobile devices.
[0068] The processor 110 may also include a memory for storing instructions and data. In some embodiments, the memory in the processor 110 is a cache memory. This memory can store instructions or data that the processor 110 has just used or that are used repeatedly. If the processor 110 needs to use the instruction or data again, it can retrieve it directly from the memory. This avoids repeated accesses, reduces the waiting time of the processor 110, and thus improves the efficiency of the system.
[0069] In some embodiments, the processor 110 may include one or more interfaces. Interfaces may include an inter-integrated circuit (I2C) interface, an integrated circuit sound (I2S) interface, a pulse code modulation (PCM) interface, a universal asynchronous receiver / transmitter (UART) interface, a mobile industry processor interface (MIPI), a general-purpose input / output (GPIO) interface, a SIM card interface, and / or a USB interface, etc.
[0070] It is understood that the interface connection relationships between the modules illustrated in the embodiments of this application are merely illustrative and do not constitute a structural limitation on the mobile device 100. In other embodiments of this application, the mobile device 100 may also employ different interface connection methods or combinations of multiple interface connection methods as described in the above embodiments.
[0071] The external storage interface 120 can be used to connect an external storage card, such as a Micro SD card, to expand the storage capacity of the mobile device 100. The external storage card communicates with the processor 110 through the external storage interface 120 to perform data storage functions. For example, music, video, and other files can be saved on the external storage card.
[0072] Internal memory 121 can be used to store one or more computer programs, which include instructions. Processor 110 can execute the instructions stored in internal memory 121, thereby causing mobile device 100 to perform the application running methods, various applications, and data management provided in some embodiments of this application. Internal memory 121 may include a code storage area and a data storage area. The data storage area may store data created during the use of mobile device 100. In addition, internal memory 121 may include high-speed random access memory and may also include non-volatile memory, such as one or more disk storage components, flash memory components, universal flash storage (UFS), etc. In some embodiments, processor 110 can execute instructions stored in internal memory 121 and / or instructions stored in memory disposed in processor 110 to cause mobile device 100 to perform the application running methods, other applications, and data management provided in embodiments of this application.
[0073] The mobile device 100 can implement audio functions through an audio module 130, a speaker 130A, a microphone 130B, and an application processor, such as music playback and recording. The audio module 130 is used to convert digital audio information into analog audio signals for output, and also to convert analog audio input into digital audio signals. The audio module 130 can also be used for encoding and decoding audio signals. In some embodiments, the audio module 130 can be located in the processor 110, or some functional modules of the audio module 130 can be located in the processor 110.
[0074] The loudspeaker 130A, also known as a "loudspeaker", is used to convert audio electrical signals into sound signals.
[0075] Microphone 130B, also known as a "microphone" or "voice transducer," is used to convert sound signals into electrical signals. Users can speak by bringing their mouth close to microphone 130B, inputting sound signals into microphone 130B.
[0076] The communication function of the mobile device 100 can be achieved through antenna 1, antenna 2, and communication module 150.
[0077] Communication module 150 provides solutions for wireless communication applications on mobile device 100, including cellular, Wi-Fi, Bluetooth (BT), and wireless data transmission modules (e.g., 433MHz, 868MHz, 915MHz). Communication module 150 can be one or more devices integrating at least one communication processing module. Communication module 150 receives electromagnetic waves via antenna 1 or antenna 2, filters and frequency-modulates the electromagnetic wave signals, and sends the processed signal to processor 110. Communication module 150 can also receive signals to be transmitted from processor 110, frequency-modulate and amplify them, and then convert them into electromagnetic waves for radiation via antenna 1 or antenna 2.
[0078] The mobile device 100 implements display functions through a GPU, a display screen 140, and an application processor. The GPU is a microprocessor for image processing, connected to the display screen 140 and the application processor. The GPU is used to perform mathematical and geometric calculations for graphics rendering. The processor 110 may include one or more GPUs, which execute program instructions to generate or modify display information.
[0079] The display screen 140 is used to display images, videos, etc. The display screen 140 includes a display panel. The display panel can be a liquid crystal display (LCD), an organic light-emitting diode (OLED), an active-matrix organic light-emitting diode (AMOLED), a flexible light-emitting diode (FLED), a Miniled LED, a MicroLED, a Micro-OLED, a quantum dot light-emitting diode (QLED), etc. In some embodiments, the mobile device 100 may include one or N display screens 140, where N is a positive integer greater than 1. In this embodiment, the display screen 140 can be used to display the user interface of a sports and health app, and can be used to display the user's exercise parameters, etc.
[0080] In some embodiments, the display screen 140 is provided with a pressure sensor, a touch sensor, etc. The pressure sensor senses pressure signals and converts them into electrical signals. When a touch operation is applied to the display screen 140, the mobile device 100 detects the intensity of the touch operation based on the pressure sensor. The mobile device 100 can also calculate the touch location based on the detection signal from the pressure sensor. The touch sensor, also called a "touch panel," can form a touchscreen with the display screen 140, also called a "touch screen." The touch sensor detects touch operations applied to or near it. The touch sensor can transmit the detected touch operation to the application processor to determine the type of touch event. Visual output related to the touch operation can also be provided through the display screen 140.
[0081] The power module 160 can be used to supply power to the various components included in the mobile device 100. In some embodiments, the power module 160 can be a battery, such as a rechargeable battery.
[0082] The sensor module 170 may include a fingerprint sensor, pressure sensor, gyroscope sensor, barometric pressure sensor, magnetic sensor, accelerometer, proximity sensor, near-light sensor, temperature sensor, touch sensor, ambient light sensor, bone conduction sensor, etc. For example, the accelerometer can detect the magnitude of the mobile device 100's acceleration in various directions (typically three axes). When the mobile device 100 is stationary, it can detect the magnitude and direction of gravity. It can also be used to identify the mobile device's posture, applicable to screen orientation switching, pedometers, and other applications.
[0083] In one embodiment, the mobile device includes a processing unit, a positioning unit, and a step counting unit. The processing unit may include a fitness and health app.
[0084] For example, such as Figure 5 As shown, the motion data processing method provided in this application includes:
[0085] S500: After determining that the user has started moving, the processing unit sends registration information to the positioning unit.
[0086] After a user begins to move while carrying a mobile device, the device's sensors detect the user's movement. In one implementation, the sensors send a motion event to a processing unit, allowing the processing unit to determine that the user has begun to move.
[0087] After the user begins to move, the processing unit sends registration information to the positioning unit.
[0088] S501. When the positioning signal is greater than the preset value, the positioning unit periodically sends positioning information to the processing unit.
[0089] In some embodiments, the positioning unit is not activated when the registration message is received. For example, the positioning unit is GPS, and GPS is turned off on the mobile device. After receiving the registration message, the positioning unit (e.g., GPS) is activated first. In other embodiments, the positioning unit is already activated when the registration message is received. For example, the positioning unit is GPS, and the positioning unit is already activated when an app such as a navigation app or shopping app is launched.
[0090] Once the positioning unit is activated, it acquires a positioning signal. When the strength of the positioning signal exceeds a preset value, indicating a strong signal, the positioning unit obtains the real-time location of the mobile device.
[0091] In one implementation, the positioning unit periodically sends positioning information to the processing unit; for example, the positioning unit sends positioning information to the processing unit once per second. In one example, the positioning information includes real-time location information, such as longitude and latitude values. Optionally, the positioning information also includes signal strength indication information, which indicates the current positioning signal strength. For example, the signal strength indication information is a positioning signal strength value; a larger value indicates a better positioning signal, and a smaller value indicates a weaker signal. Alternatively, the signal strength indication information can be a confidence level; a higher confidence level indicates a better positioning signal, and a lower confidence level indicates a weaker signal. Another example is a precision value; a smaller precision value indicates a better positioning signal, and a larger precision value indicates a weaker signal. Optionally, the positioning information also includes real-time speed information of the mobile device at that real-time location.
[0092] S502, The processing unit obtains motion parameters based on the positioning information, including trajectory, distance, real-time speed, average speed, pace, stride length, cadence, etc.
[0093] After receiving positioning information periodically, the processing unit obtains motion parameters based on the positioning information.
[0094] Due to limitations in the capabilities of mobile devices and the location signal (such as GPS signal), real-time location information may experience significant drift, meaning the real-time location information in the location data may be inaccurate. Optionally, after obtaining the real-time location information from the location data, the processing unit performs noise filtering on the real-time location information, i.e., removes inaccurate real-time location information, and then saves the noise-filtered real-time location information.
[0095] In one implementation, the real-time location information in the location information can be verified; if the verification fails, the real-time location information is discarded, that is, inaccurate real-time location information is removed.
[0096] In one example, reference Figure 6 For each received real-time location information, determine whether the real-time location indicated by the information is valid. For example, if both the longitude and latitude values of the real-time location are 0, then the real-time location is invalid. If the real-time location is invalid, return and wait for the next real-time location information.
[0097] If the real-time location is valid, determine whether the real-time location information is the same as the previous real-time location information (e.g., the real-time location information in the location information received in the previous cycle); if the real-time location information is the same as the previous real-time location information, return and wait for the next real-time location information.
[0098] If the real-time location information differs from the previous real-time location information, it is determined whether the real-time location information is a valid value. In one implementation, signal strength indication information corresponding to the real-time location information is obtained based on the positioning information. If the signal strength indication information determines that the positioning signal strength is greater than or equal to a preset signal strength threshold, that is, the positioning signal is considered good, indicating that the real-time location information is a valid value. For example, the signal strength indication information is a precision value. When the precision value is less than a preset precision threshold, it indicates that the positioning signal strength is greater than the preset precision threshold; when the precision value is greater than the preset precision threshold, it indicates that the positioning signal strength is less than the preset precision threshold. For example, the preset precision threshold is 25. When the precision value is greater than 25, it indicates that the positioning signal strength is less than the preset precision threshold, the real-time location information is determined to be invalid, and the system returns to wait for the next real-time location information.
[0099] If the real-time location information is valid, it is then determined whether it is noise. In one implementation, if the distance between the real-time location indicated by the current real-time location information and the real-time location indicated by the previous real-time location information is greater than a preset value, it indicates that the real-time location information is noise. For example, the positioning unit periodically reports location information once per second. The maximum running speed of a user is 10 meters per second. If the distance between the real-time location indicated by the current real-time location information and the real-time location indicated by the previous real-time location information is greater than 10 meters, it indicates that the real-time location information is inaccurate and needs to be removed as noise. If the real-time location information is determined to be noise, the process returns to wait for the next real-time location information.
[0100] If the real-time location information is not noise, it is saved to the location list. In other words, noise-filtered real-time location information can be saved to the location list. Alternatively, the real-time location information directly from the location data can also be saved to the location list.
[0101] Optionally, the processing unit may also obtain and save the real-time speed information of the mobile device at the real-time location from the received positioning information.
[0102] In some implementations, the processing unit obtains motion parameters based on the positioning information.
[0103] In some examples, the processing unit obtains motion parameters such as the trajectory and distance generated by the user's movement based on location information. For instance, by connecting each saved real-time location (trajectory point), the user's movement trajectory can be obtained. By sequentially accumulating the distance between two trajectory points, the distance of the user's movement process can be obtained.
[0104] In one implementation, Kalman filtering, also known as smoothing, can be applied to the real-time location (trajectory point) to reduce trajectory glitches and improve the accuracy of the calculated distance.
[0105] For example, Figure 7 A schematic diagram comparing the trajectories before and after smoothing is shown. For example... Figure 7 As shown, the trajectory obtained after applying Kalman filtering to the real-time location (trajectory point) is smoother.
[0106] In some examples, the processing unit obtains motion parameters such as real-time speed, average speed, and pace based on the positioning information.
[0107] In one implementation, the location information includes real-time speed information corresponding to the real-time location. The real-time speed can be displayed to the user based on this location information. When the real-time speed information in the location information has a large error, parameters such as real-time speed and pace will fluctuate significantly. For example, such as... Figure 8 As shown in (a), when the real-time speed information in the location information fluctuates greatly, the pace obtained from the real-time speed information in the location information also fluctuates greatly, which is quite different from the user's actual movement.
[0108] In another implementation, a sliding window filter is applied to the real-time speed information. One implementation obtains the real-time speed information corresponding to the current trajectory point based on M real-time speed data points from a preceding time period. For example, if the time period is 1 minute, and the positioning unit reports real-time speed information once per second, 60 real-time speed data points can be obtained in 1 minute, i.e., M = 60. Combining these M real-time speed data points to obtain the real-time speed information corresponding to the current trajectory point avoids excessive fluctuations in the real-time speed information within the positioning data, which could cause large fluctuations in the motion parameters displayed to the user and contradict the user's actual movement.
[0109] In one implementation, M real-time speed information points within a given time period are divided into N groups. For example, 60 real-time speed information points are divided into 12 groups, i.e., N=12, with each group containing 5 (M / N) real-time speed information points. In one example, the processing unit maintains a speed information queue with a length of M, meaning the queue can store M data points. The speed information queue follows a first-in, first-out (FIFO) principle. Taking M=60 as an example, each time the processing unit acquires a real-time speed information point, it stores it in the first position of the speed information queue. The previously stored real-time speed information points in the queue are then moved forward sequentially, and the real-time speed information point that was originally in the 60th position is removed from the queue. In other words, the speed information queue stores the latest M real-time speed information points. When the time period is 1 minute, and the positioning unit reports real-time speed information at a frequency of once per second, the speed information queue stores the 60 real-time speed information points reported within the most recent minute.
[0110] For example, such as Figure 9 As shown, the speed information queue includes 60 real-time speed information entries, which are divided into 12 groups, with each group containing 5 real-time speed information entries.
[0111] In one implementation, the current real-time speed information is obtained by weighted summation of the data from each of the M real-time speed information sets. Each data set corresponds to a weight factor.
[0112] In one implementation, the weighting factors decrease sequentially from group 1 to group 12. For example, as shown... Figure 9 As shown, the weight factor 1 corresponding to the first group of data is 0.92, the weight factor 2 corresponding to the second group of data is 0.8486, ..., and the weight factor 12 corresponding to the 12th group of data is 0.367666.
[0113] The first data point in the speed information queue (e.g., real-time speed 1) is the last data added to the queue; that is, the first data point (e.g., real-time speed 1) is the most recent and newest real-time speed information. Correspondingly, the first group of data is the most recent and newest of the 12 groups, arranged in ascending order of age. From group 1 to group 12, the weighting factor decreases sequentially. This ensures that newer data has a larger weighting factor, and that newer data accounts for a larger proportion of the weighted summation result. In other words, newer data has a greater impact on the calculated current real-time speed, making the calculated real-time speed closer to the user's actual movement.
[0114] It should be noted that in practical applications, the duration of this segment does not necessarily have to be 1 minute, and the number of groups does not necessarily have to be 12. The length of the segment and the number of groups can be set according to the actual situation.
[0115] In one example, the current real-time velocity is calculated according to the following formula (1):
[0116]
[0117] Where N represents the total number of groups, G i F represents the average value of the i-th group of real-time speed information. i This represents the weight factor corresponding to the i-th data group.
[0118] In one implementation, the real-time speed information in each speed information queue does not use the real-time speed information from the positioning information. In one example, the real-time speed information corresponding to the i-th trajectory point is calculated as the distance between the i-th trajectory point and the previous trajectory point divided by the trajectory point reporting interval. For example, the positioning unit reports the real-time speed information once per second, and correspondingly, the trajectory point reporting interval is 1 second. This avoids inaccurate motion parameters obtained due to inaccurate real-time speed information in the positioning information.
[0119] The real-time velocity information of each trajectory point obtained using the above method exhibits smaller fluctuations, better reflecting the user's actual movement and more accurately representing the user's motion parameters. For example, such as... Figure 8 As shown in (b), the real-time speed information after sliding window filtering fluctuates less, and correspondingly, the pace obtained from the real-time speed information also fluctuates less, which is more in line with the user's actual movement.
[0120] The processing unit can obtain motion parameters such as average speed and pace based on real-time speed information. For example, by averaging 60 real-time speed data points within one minute, the average speed within that minute can be obtained.
[0121] In some examples, the processing unit obtains the user's stride based on location information and can also obtain the step frequency from the step counting unit.
[0122] Stride length, also known as stride length, represents the distance a user travels with each step during movement.
[0123] In one implementation, the processing unit obtains the number of steps taken within a certain time period from the step counting unit. The processing unit also obtains the distance within that time period; for example, the distance of the user's movement within that time period can be obtained by sequentially summing the distances between each trajectory point within that time period. Here, stride length = distance within a time period / number of steps within a time period.
[0124] Step frequency is the number of steps taken per unit of time (e.g., 1 minute).
[0125] Stride length and cadence are data related to the individual user. Generally speaking, stride length and cadence are related to the user's height and other data, as well as the state of exercise. For example, cadence and stride length will differ when the user is walking, jogging, or running.
[0126] In one implementation, the stride length corresponding to different time frequencies can be calculated. For example, such as... Figure 10 As shown, it can distinguish different cadence ranges for different exercise states (such as walking and running) and calculate and save stride length separately. For example, when the user selects walking as the exercise state, the corresponding cadence ranges for walking include 35-45, 46-55, 56-65, ..., 130-135, 136-140. For example, when the user selects running as the exercise state, the corresponding cadence ranges for running include 116-125, 126-135, 136-145, ..., 176-185, 186-195, 196-205.
[0127] In some examples, stride data is calculated in seconds, that is, according to the time interval between the trajectory points reported by the positioning unit. For instance, the stride corresponding to the real-time location (trajectory point) in the positioning information = the distance between that trajectory point and the previous trajectory point / the number of steps within a time interval. For example, if the processing unit obtains the step frequency from the step counting unit, where the step frequency is the number of steps per unit time period (e.g., 1 minute), then the number of steps within a time interval (e.g., 1 second) = step frequency / 60.
[0128] In one implementation, invalid stride values are removed based on multiple stride data points. In one example, p stride data points are recorded, for example, p = 15. (Stroke length) max The maximum value among p steps, also known as the maximum step size; step size min This is the minimum value among p steps, also known as the minimum step size. When the step size... max With stride min If the fluctuation is less than or equal to the preset fluctuation threshold (e.g., 5%), it indicates that the user's movement is in a relatively stable phase and the stride frequency has not changed rapidly. These p stride data are valid data.
[0129] For example, when stride max With stride min When the following formula (2) is satisfied, the stride length max With stride min The fluctuation is less than or equal to the preset fluctuation threshold.
[0130]
[0131] Optionally, when p stride data are valid, they can be further filtered. For example, stride data with large deviations can be removed.
[0132] For example, Figure 11 This shows the 15 stride data points corresponding to the latest 15 trajectory points (i.e., within the last 15 seconds). Each trajectory point corresponds to one stride data point. For example, p stride data points include stride data 1, stride data 2, stride data 3, ..., stride data 14, stride data 15.
[0133] In one implementation, the mean and standard deviation of the p step values are calculated.
[0134] For example, the average of p step values is calculated according to the following formula (3).
[0135]
[0136] Where μ represents the average value, x i Let p represent the i-th step value, and p be the number of step values.
[0137] For example, the standard deviation of the p step values is calculated according to the following formula (4).
[0138]
[0139] Where σ represents the standard deviation, μ represents the mean, and x i Let p represent the i-th step value, and p be the number of step values.
[0140] For example, the Z score of the i-th step value is calculated according to the following formula (5).
[0141]
[0142] When Z is less than or equal to a preset threshold (e.g., the preset threshold is 2), it follows a normal distribution. That is, when the Z score is greater than the preset threshold, it indicates that the corresponding step size value is a value with a large deviation and needs to be removed.
[0143] For example, such as Figure 11 As shown, after calculating the Z scores for stride data 1 to stride data 15 respectively, it is determined that the Z score of stride data 4 is greater than 2. Therefore, stride data 4 is removed, leaving stride data 1 to stride data 3 and stride data 5 to stride data 15.
[0144] In one implementation, the filtered stride data is saved. Each stride data point is calculated based on the distance to the corresponding trajectory point and the number of steps (or stride frequency); that is, each stride data point corresponds to a stride frequency value. In another implementation, refer to... Figure 10 As shown, walking and running each correspond to multiple cadence intervals. Each cadence interval includes multiple cadence values. For example, the cadence values are integers, and within a cadence interval, the cadence value increases by 1 step length. Figure 10 In the example shown, the number of step frequency values included in each step frequency interval can be different. Each time the processing unit acquires a step amplitude data point, it saves the step amplitude data as the step amplitude value corresponding to that step frequency value, based on the step frequency value. After multiple rounds of data acquisition and processing, the step amplitude value corresponding to each step frequency value can be acquired. For example, acquiring... Figure 10 By determining the stride length corresponding to each stride frequency value within each stride frequency range, complete stride length data is obtained. Table 1 provides an example of the correspondence between stride length and stride frequency.
[0145] As shown in Table 1, walking and running each correspond to multiple step frequency intervals. Each step frequency interval includes multiple step frequencies. After calculating the stride length corresponding to the step frequency, the stride length value can be saved to the corresponding step frequency.
[0146] Table 1
[0147]
[0148]
[0149] It should be noted that during a single exercise session, it may not be possible to obtain the stride length value corresponding to each stride frequency value in each stride frequency range based on the user's exercise data.
[0150] When the stride length corresponding to a certain stride frequency within a stride frequency range is not obtained, in one implementation, the stride frequency can be calculated according to the following formula (6). i Corresponding stride i .
[0151]
[0152] Among them, step frequency i It is the step frequency value within a certain step frequency range. The average step frequency is the average of Q step frequency values with determined step amplitude values within the step frequency range, and the average step amplitude is the average of Q step amplitude values with determined step amplitude values within the step frequency range.
[0153] For example, within the step frequency range of 35-45, the step amplitude values corresponding to step frequency values 35, 36, 37, 38, 39 and 40 have been determined to be step amplitude values a, b, c, d, e and f, respectively.
[0154] The step size corresponding to step frequency value 41 can be calculated according to formula (6):
[0155]
[0156] In this implementation, an unknown step size within a step frequency range is calculated based on multiple step frequency values and their corresponding step amplitude values, rather than arbitrarily selecting multiple step frequency values and their corresponding step amplitude values. Since the difference in user step amplitude is relatively small within a step frequency range, calculating an unknown step size within that range based on multiple step frequency values and their corresponding step amplitude values yields a more accurate step size.
[0157] In one implementation, for steps whose stride value has not yet been calculated based on the user's motion data, the stride value can be calculated based on the user's body data. In one implementation, stride value = user height * stride coefficient. The stride coefficient is a pre-set value. In one example, the stride value is also related to the user's gender; for example, corresponding stride coefficients are set for males and females respectively. For instance, when the user is male, stride value = user height * stride coefficient 1; when the user is female, stride value = user height * stride coefficient 2.
[0158] In other embodiments, the correspondence between step frequency ranges and stride lengths can also be preserved. For example, if the stride length corresponding to a certain step frequency within a step frequency range is obtained, then that stride length value is taken as the stride length corresponding to that step frequency range.
[0159] For example, the correspondence between step frequency ranges and stride length is shown in Table 2. Compared to the saving method shown in Table 1, the saving method shown in Table 2 has lower precision, but it is easier to obtain complete data.
[0160] Table 2
[0161]
[0162]
[0163] S503. When the positioning signal is less than or equal to the preset value, the processing unit sends registration information to the step counting unit.
[0164] If the positioning signal is less than or equal to a preset value, it indicates that the positioning signal is weak. The processing unit cannot obtain real-time location information from the positioning unit, and therefore cannot obtain motion parameters such as average speed, pace, trajectory, and heat based on the real-time location information.
[0165] In some embodiments, when the location signal is less than or equal to a preset value, the processing unit registers a listener with the step counting unit. After successful listener registration, the step counting unit sends step count information to the processing unit.
[0166] S504, The step counting unit sends step count information to the processing unit.
[0167] In one implementation, when the step counting unit (e.g., an accelerometer) detects a change in motion state, it converts the motion state into a digital acceleration signal and then generates a step count increment based on the digital acceleration signal. The step count information includes the step count increment generated at each time interval (e.g., a time interval of 1 second).
[0168] S505 The processing unit obtains the number of steps corresponding to each time interval based on the step count information, and obtains parameters such as the step frequency corresponding to each unit duration based on the step count information.
[0169] The processing unit receives the step count information. In one implementation, the processing unit obtains the step count increment generated in each time interval (e.g., a time interval of 1 second), and accumulates the step count increments of each time interval within a certain period of time to obtain the step count within that period of time. Alternatively, it can accumulate the step count increments of each time interval within a unit of time (e.g., 1 minute) to obtain the step frequency.
[0170] S506 The processing unit obtains motion parameters based on stride length, number of steps, and step frequency.
[0171] In one implementation, the processing unit obtains the step frequency for each unit of time within a certain time period, and obtains the distance within the unit of time based on each step frequency (the number of steps within a unit of time) and the stride length corresponding to the step frequency.
[0172] In one example, the processing unit queries the stored correspondence between step frequency and stride length, for example, by querying Table 1 to obtain the stride length corresponding to the step frequency. In another example, the processing unit queries the stored correspondence between step frequency intervals and stride length, for example, by querying Table 2 to obtain the stride length corresponding to the step frequency interval in which the step frequency falls, i.e., obtaining the stride length corresponding to that step frequency. The stride length in Table 1 or Table 2 can be calculated based on the user's motion data (such as real-time location) or based on the user's body data.
[0173] Optionally, in some embodiments, when there is no corresponding stride length for a certain stride length in the saved stride frequency-stride length correspondence, the stride length corresponding to that stride length can be calculated using the above formula (6), that is, the stride length corresponding to that stride length can be calculated based on multiple stride length values and corresponding stride length values in the stride frequency interval to which that stride length belongs. In other embodiments, when there is no corresponding stride length for a certain stride length in the saved stride frequency-stride length correspondence, the stride length can be calculated based on the user's body data (e.g., height, gender).
[0174] The processing unit can also accumulate the distance within a unit of time to obtain the distance over a period of time.
[0175] In one implementation, the processing unit can obtain the average speed based on the distance over a period of time and that period of time, and can also obtain motion parameters such as pace and calories burned.
[0176] S507 The processing unit displays motion parameters on the display screen.
[0177] The motion data processing method provided in this application allows for the acquisition of motion parameters such as trajectory, distance, pace, and average speed based on location information when the positioning signal is strong. Furthermore, it also acquires the user's stride length based on the positioning information. When the positioning signal is weak, it acquires motion parameters such as distance, pace, and average speed based on the user's stride length and corresponding cadence or number of steps. Even with a poor positioning signal that prevents the user's real-time location from being determined, motion parameters can still be acquired and displayed to the user, thus avoiding the problem of motion parameter loss when the positioning signal is weak.
[0178] In one example, the mobile device uses GPS for location. Figure 12 As shown, after the user starts exercising, when the GPS signal is good, the system acquires motion parameters via GPS and records the stride length. When the GPS signal is poor or there is no GPS signal, the system acquires the step frequency via sensors (pedometer, accelerometer, etc.) and obtains motion parameters based on the step frequency and the saved stride length.
[0179] Let's take GPS positioning as an example. Figure 13 As shown, the processing unit includes a GPS monitoring module, a GPS signal processing module, and a data processing module. The GPS monitoring module listens for GPS signals at fixed time intervals (e.g., 1 second). The GPS monitoring module also sends GPS information to the GPS signal processing module at fixed time intervals (e.g., 1 second). The GPS information may include real-time location, accuracy value, etc.
[0180] In one scenario, the GPS signal is good, and the accuracy value in the GPS information is less than or equal to a preset accuracy threshold. The GPS signal processing module determines that the current GPS signal is good based on the accuracy value and reads the real-time location.
[0181] In another scenario, if the GPS signal is weak or nonexistent, and the accuracy value in the GPS information is greater than a preset accuracy threshold, the GPS signal processing module determines that the current GPS signal is weak based on the accuracy value.
[0182] Once the user begins exercising, if the GPS signal is confirmed to be good (the accuracy value in the GPS information is less than or equal to a preset accuracy threshold), the GPS signal processing module notifies the data processing module to use the positioning information (real-time location) to obtain motion parameters. The data processing module then obtains motion parameters such as distance, pace, and average speed based on the positioning information.
[0183] If the GPS signal processing module determines that the accuracy value of a GPS message is greater than a preset accuracy threshold, it starts a timer for a preset duration (e.g., 15 seconds). If, within the preset duration, the accuracy value of all received GPS messages is greater than the preset accuracy threshold, the GPS signal is considered poor. The GPS signal processing module then instructs the data processing module to use a sensor (pedometer) to acquire motion parameters. The data processing module acquires motion parameters such as distance, pace, and average speed based on cadence and stride length.
[0184] Optionally, if the GPS signal processing module determines that the accuracy value in a GPS message is less than or equal to a preset accuracy threshold, and the GPS signal is deemed to be good, the GPS signal processing module notifies the data processing module to use the positioning information (real-time location) to obtain motion parameters.
[0185] This allows for the use of location information (real-time location) to obtain motion parameters when the GPS signal is good, and the use of sensors (pedometers) to obtain motion parameters when the GPS signal is poor.
[0186] In some embodiments, the processing unit (such as a sports and health app) follows the App layered design architecture MVVM, which is divided into three layers: data-driven layer, data processing layer, and interface layer.
[0187] The data-driven layer is the source of data, responsible for data collection and generation. The data processing layer processes, handles, and saves the data generated by the data-driven layer. The interface layer displays the processed data on the screen.
[0188] For example, such as Figure 14 As shown, the data-driven layer includes a GPS module, a pedometer module, a timer module, and a device module. The GPS module generates GPS information, such as real-time location and accuracy values. The pedometer module reads the number of steps and cadence generated by the pedometer. The timer module acquires the duration information generated by the timer. The device module acquires data from wearable devices, such as calories and heart rate.
[0189] The data processing layer includes a data storage module and a data calculation module. The data storage module is used to store data obtained from the data-driven layer. The data calculation module is used to process and manipulate the data, such as calculating distance, average speed, and pace based on real-time location; or, for example, calculating distance, average speed, and pace based on cadence, steps, and stride length.
[0190] The interface layer includes a data display module for displaying data, such as motion parameters.
[0191] It is understood that the mobile device provided in this application embodiment includes hardware structures and / or software modules corresponding to the execution of each function in order to achieve the above-mentioned functions. Those skilled in the art should readily recognize that, in conjunction with the units and algorithm steps of the various examples described in the embodiments disclosed herein, the embodiments of this application can be implemented in hardware or a combination of hardware and computer software. Whether a function is executed by hardware or by computer software driving hardware depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of the embodiments of this application.
[0192] This application embodiment can divide the above-described mobile device into functional modules based on the method example described above. For example, each function can be divided into its own functional module, or two or more functions can be integrated into one processing module. The integrated module can be implemented in hardware or as a software functional module.
[0193] This application also provides a computer-readable storage medium including computer instructions that, when executed on the mobile device, cause the mobile device to perform the functions or steps described in the method embodiments.
[0194] This application also provides a computer program product that, when run on a computer, causes the computer to perform the functions or steps described in the above method embodiments.
[0195] Through the above description of the embodiments, those skilled in the art can clearly understand that, for the sake of convenience and brevity, only the division of the above functional modules is used as an example. In actual applications, the above functions can be assigned to different functional modules as needed, that is, the internal structure of the device can be divided into different functional modules to complete all or part of the functions described above.
[0196] In the several embodiments provided in this application, it should be understood that the disclosed apparatus and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of modules or units is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another device, or some features may be ignored or not executed. Furthermore, the mutual coupling or direct coupling or communication connection shown or discussed may be through some interfaces; the indirect coupling or communication connection between devices or units may be electrical, mechanical, or other forms.
[0197] The units described as separate components may or may not be physically separate. A component shown as a unit can be one or more physical units; that is, it can be located in one place or distributed in multiple different locations. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.
[0198] Furthermore, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or as a software functional unit.
[0199] If the integrated unit is implemented as a software functional unit and sold or used as an independent product, it can be stored in a readable storage medium. Based on this understanding, the technical solutions of the embodiments of this application, essentially or in other words, the parts that contribute to the prior art, or all or part of the technical solutions, can be embodied in the form of a software product. This software product is stored in a storage medium and includes several instructions to cause a device (which may be a microcontroller, chip, etc.) or processor to execute all or part of the steps of the methods described in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.
[0200] The above description is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any variations or substitutions within the technical scope disclosed in this application should be included within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims.
Claims
1. A motion data processing method applied to mobile devices, characterized in that, The method includes: Within the first time period, the real-time location of the mobile device is obtained at preset time intervals; The stride of the first user is obtained based on multiple real-time locations; the first user is a user who is exercising while carrying the mobile device. During the second time period, at least one of the following is obtained based on the first user's stride length and number of steps: the distance the first user traveled, average speed, and pace.
2. The method according to claim 1, characterized in that, The method further includes: Within the first time period, at least one of the following is obtained based on the real-time location of the mobile device: the distance the first user moved, the average speed, and the pace.
3. The method according to claim 1 or 2, characterized in that, The step length of the first user obtained from multiple real-time locations includes: The distance traveled by the first user within a third time period is obtained based on the multiple real-time locations; The stride of the first user within the third time period is obtained based on the distance and number of steps the first user moves within the third time period.
4. The method according to claim 3, characterized in that, The plurality of real-time locations include a first real-time location and a second real-time location, wherein the first real-time location corresponds to a first trajectory point, the second real-time location corresponds to a second trajectory point, and the first trajectory point and the second trajectory point are adjacent. The method further includes: The distance traveled by the first user within the first time interval is obtained based on the first real-time location and the second real-time location; Obtain the number of steps taken by the first user within the first time interval; The stride length of the first user in the first time interval is obtained based on the distance traveled by the first user in the first time interval and the number of steps taken by the first user in the first time interval.
5. The method according to claim 4, characterized in that, The method further includes: Obtain multiple step sizes corresponding to multiple adjacent time intervals; Wherein, the fluctuation of the plurality of step lengths is less than or equal to a preset fluctuation threshold, and the fluctuation of the plurality of step lengths is... stride max The maximum value among the plurality of strides, stride min It is the minimum value among the plurality of step lengths.
6. The method according to claim 5, characterized in that, The Z-score of each of the multiple strides is less than a preset threshold. in, Z is the Z-score, x i Let be the i-th step among the plurality of steps, μ be the average value of the plurality of steps, and σ be the standard deviation of the plurality of steps.
7. The method according to any one of claims 1-6, characterized in that, The step of obtaining at least one of the following based on the first user's stride length and number of steps includes: Obtain the first user's step frequency within the second time period; the step frequency is the number of steps per unit time period. The first step amplitude is obtained based on the first step frequency, wherein the first step amplitude is one of the plurality of amplitudes; Based on the first step, at least one of the following is obtained: the distance the first user moved, the average speed, and the pace.
8. The method according to any one of claims 1-7, characterized in that, Before obtaining at least one of the distance traveled by the first user, average speed, and pace based on the first user's stride length and number of steps, the method further includes: Obtain the second step frequency within the second time period; the step frequency is the number of steps within a unit time period. The second step amplitude corresponding to the second step frequency is obtained from multiple step amplitudes corresponding to multiple step frequencies in the step frequency interval to which the second step frequency belongs; the value of the second step amplitude is one of the step amplitudes of the first user.
9. A mobile device, characterized in that, The device includes a memory, a processor, a positioning unit, and a step counting unit; the positioning unit is used to acquire the real-time location of the user's movement, the step counting unit is used to acquire the number of steps the user has taken, the memory is coupled to the processor, the memory is used to store computer program code, the computer program code includes computer instructions, and the processor calls the computer instructions to cause the mobile device to perform the method as described in any one of claims 1-8.
10. A computer-readable storage medium having a computer program / instructions stored thereon, characterized in that, When the computer program / instruction is executed by the processor, it implements the method described in any one of claims 1-8.
11. A computer program product, comprising a computer program / instructions, characterized in that, When the computer program / instruction is executed by the processor, it implements the method described in any one of claims 1-8.