A snoring detection method and system
By extracting characteristic signals such as respiration, heart rate, body movement, and interference from BCG signals, snoring envelope data is constructed, solving the problems of high cost and inconvenient operation in existing snoring detection methods, and realizing low-cost and efficient snoring detection.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- SHENZHEN STATE MICRO TECH CO LTD
- Filing Date
- 2022-11-28
- Publication Date
- 2026-04-14
AI Technical Summary
Existing snoring detection methods are costly and inconvenient to operate. Traditional methods require a lot of manual intervention and complex calculations, are easily affected by environmental interference, and polysomnography is not suitable for widespread use.
By acquiring BCG data in real time, digital filtering and signal analysis techniques are used to separate heart rate, respiration, body movement, interference, and snoring data, construct snoring envelope data, and perform snoring event detection, simplifying the signal acquisition circuit design and reducing hardware requirements.
It achieves low-cost and easy-to-operate snoring detection, reduces hardware performance requirements, improves detection accuracy and processing speed, and is suitable for various application scenarios.
Smart Images

Figure CN115708669B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of medical devices, and more particularly to a method and system for detecting snoring. Background Technology
[0002] Snoring is the sound produced during sleep caused by the vibration of the uvula (palmar fold) due to narrowing of the upper airway. Enlarged tonsils, an oversized tongue, and excessive alcohol consumption can trigger snoring. Snoring can lead to daytime sleepiness, fatigue, poor concentration, headaches, and decreased work performance. Snoring is an independent risk factor for hypertension, and severe snoring is often accompanied by sleep apnea syndrome.
[0003] In the past, few people cared about the harmful effects of snoring. Only after sleep became a subject of research did scholars study the sleep patterns of snorers. Research has found that long-term or severe snorers often suffer from sleep apnea syndrome, experiencing pauses in breathing throughout sleep, leading to a decrease in blood oxygen. This means they inhale less oxygen throughout the night than normal people, which can affect memory over time. Studies have shown that snorers do indeed have poorer memory than normal people, but they themselves are unaware of this. Therefore, many scholars now suggest that snorers undergo polysomnography (PSG) to check for sleep apnea syndrome, and if present, receive appropriate treatment.
[0004] Clinically, wearing a 24-hour sleep monitor can monitor low blood pressure, blood cell count, hemoglobin, and arterial blood gas analysis. This can indicate severe conditions, or complications such as pulmonary heart disease, hypertension, coronary heart disease, hypoxemia, hypercapnia, and respiratory acidosis. Chest X-rays can also reveal pulmonary hypertension, coronary heart disease, and corresponding enlarged pulmonary arteries, pulmonary artery protrusion, and other related manifestations. Simultaneously, it monitors the patient's central nervous system respiration, cardiovascular function, and sleep apnea disorders during sleep, providing a basis for diagnosis.
[0005] The common method for detecting snoring is to use a microphone to collect snoring signals, and then use a neural network to analyze the characteristics of the sound signals through machine learning in order to detect snoring events. In addition, traditional methods also use polysomnography, which detects snoring by having the subject wear multiple sensors.
[0006] Existing methods for detecting snoring events using microphones require extensive manual collection and extraction of snoring and non-snoring feature signals from the environment for training a neural network model. This process is cumbersome, requires significant manpower, and the training model is susceptible to the influence of feature extraction algorithms, which can affect the accuracy of classification results.
[0007] Meanwhile, existing technologies have high computing power requirements, generally involving a large number of matrix operations and recursive operations, which are complex calculations. Therefore, they have high hardware requirements and are quite difficult to implement in general application scenarios. In addition, detecting snoring by collecting snoring sounds is easily affected by the snoring sounds of people in the same bed or room, leading to misjudgments in snoring detection.
[0008] Using a polysomnography system for snoring detection requires wiring multiple sensors, which is not convenient or comfortable for long-term personal physiological monitoring. In addition, the professional operation and high price of polysomnography systems prevent them from being widely used by the general population. Summary of the Invention
[0009] The purpose of this invention is to address the technical problems of high cost and inconvenient operation of existing snoring detection methods. This invention proposes a low-cost and easy-to-operate snoring detection method and system.
[0010] In this embodiment of the invention, a snoring detection method is provided, comprising:
[0011] Real-time acquisition of raw BCG (Ballistocardiography) data;
[0012] The raw BCG data was analyzed to separate heart rate data, respiratory data, body movement data, interference data, and snoring data.
[0013] Heart rate data, respiratory data, body movement data, interference data, and snoring data were analyzed separately to obtain heart rate dispersion value, respiratory rate value, body movement time point, interference data time point, and snoring envelope data.
[0014] Snoring time was detected based on heart rate dispersion value, respiratory rate value, body movement time point, interference data time point, and snoring envelope data.
[0015] Furthermore, the raw BCG data was analyzed to separate heart rate data, respiratory data, body movement data, interference data, and snoring data, including:
[0016] A respiratory data bandpass filter is constructed using the lowest and highest respiratory frequencies as the bandpass filter cutoff points of the digital bandpass filter. The original BCG data is then subjected to digital bandpass filtering to obtain respiratory data.
[0017] A bandpass filter for heart rate data was constructed using the lowest and highest heart rate frequencies as the bandpass filter cutoff frequencies of the digital bandpass filter. The original BCG data was then subjected to digital bandpass filtering to obtain heart rate data.
[0018] A body motion data bandpass filter is constructed using the lowest and highest body motion frequencies as the bandpass filter cutoff frequencies of the digital bandpass filter. The original BCG data is then subjected to digital bandpass filtering to obtain body motion data.
[0019] A snoring data bandpass filter is constructed using the lowest and highest snoring frequencies as the bandpass filter cutoff frequencies of the digital bandpass filter. The original BCG data is then subjected to digital bandpass filtering to obtain snoring data.
[0020] Bandpass filtering is performed on the signals in each frequency band of the original BCG data, excluding the signal bands for respiration, heart rate, body movement, and snoring, to obtain interference signal data.
[0021] In this embodiment of the invention, analyzing heart rate data to obtain heart rate dispersion values includes:
[0022] A segment of data of a set length L is read from the heart rate signal data. The average difference of this segment of data of length L is processed to obtain the dispersion DtMd of the heart rate data. The set length L of data contains data of at least one respiratory cycle.
[0023] In this embodiment of the invention, respiratory data is analyzed to obtain the respiratory rate, including:
[0024] Perform Fourier transform processing on the respiratory data;
[0025] Find the frequency peak points within the breathing frequency band, locate the first peak point and the second peak point, and eliminate resonant wave frequency points by analyzing the relationship between the first peak point and the second peak point to find the correct breathing frequency;
[0026] Multiple respiratory rates are obtained by extracting multiple data segments using a sliding window method, and the average value is processed to obtain the accurate respiratory rate Fs. The accurate respiratory rate value BrRate is then calculated using BrRate = Fs * 60.
[0027] In this embodiment of the invention, analyzing body movement data to obtain body movement time points includes:
[0028] Body movement events are detected by setting a threshold.
[0029] When the body movement data is greater than the set threshold, it is determined that there is body movement and the time points BTime1 to BTimeN of the body movement are recorded.
[0030] In this embodiment of the invention, the interference data is analyzed to obtain the time points of the interference data, including:
[0031] The dispersion of heart rate data, DtMd, was compared with the dispersion threshold of interference signals, DtMinV, calculated experimentally under normal snoring conditions.
[0032] When DtMd > DtMinV, it is determined as interference data, and the interference data time point DTime is recorded.
[0033] In the embodiment of the present invention, the snoring data is analyzed to obtain the snoring envelope data, including:
[0034] Read a data segment of length L from the snoring data in a sliding window manner, and analyze each data point individually. When the data of a certain point is greater than the snoring signal threshold, start recording the start time SIndex of the snoring envelope, and detect a certain length of multi-point data backward. If all the multi-point data are greater than the threshold, include all the data of these points in the envelope until there is no data greater than the threshold among the backward detected data points, form the current snoring envelope, and record the end time EIndex and the midpoint time ETime of the snoring envelope.
[0035] Save the start times SIndex1 - SIndex1N, midpoint times ETime1 - ETimeN, and end times EIndex1 - EIndexN in all the detected snoring envelopes in the snoring data, where N is the number of envelopes.
[0036] In the embodiment of the present invention, the snoring time points are detected according to the heart rate dispersion value, respiratory rate value, body movement time point, interference data time point, and snoring envelope data, including:
[0037] Abnormal envelope verification: Determine whether the midpoint time of each snoring envelope is the body movement time or the interference data time point. If so, remove the current envelope;
[0038] Envelope rationality verification: Determine whether the envelope time length is within a reasonable time range, and remove the envelopes with unreasonable time lengths; Use the respiratory rate BrRate to verify the envelope rationality. Judge whether the envelope is reasonable through the formula (ETimeN – EtimeN-1) - 60 / BrRate < Dif. If it is unreasonable, remove the envelope where the EtimeN-1 point is located, and continue to check backward to ensure the accuracy of snoring detection, where Dif is the set error range;
[0039] Envelope deduplication processing: Use the data of SIndex1~SIndeN and EIndex1~EIndexN to analyze whether there are envelopes with the same envelope start points after each sliding window, and merge the envelopes with the same start points into one envelope.
[0040] In the embodiment of the present invention, a snoring detection system is further provided, which includes
[0041] A data acquisition module for real-time acquisition of the original BCG data;
[0042] The data preprocessing module is used to analyze the raw BCG data and separate heart rate data, respiratory data, body movement data, interference data, and snoring data from it.
[0043] The heart rate data analysis module is used to analyze heart rate data and obtain heart rate dispersion values;
[0044] The respiratory data analysis module is used to analyze respiratory data and obtain heart rate and respiratory rate values.
[0045] The body movement data analysis module is used to analyze body movement data and obtain body movement time points;
[0046] The interference data analysis module is used to analyze interference data and obtain the time points of the interference data.
[0047] The snoring data analysis module is used to analyze snoring data and obtain snoring envelope data;
[0048] The snoring detection module is used to detect snoring time based on heart rate dispersion value, respiratory rate value, body movement time point, interference data time point, and snoring envelope data.
[0049] In this embodiment of the invention, the data preprocessing module analyzes the raw BCG data and separates heart rate data, respiratory data, body movement data, interference data, and snoring data, including:
[0050] A respiratory data bandpass filter is constructed using the lowest and highest respiratory frequencies as the bandpass filter cutoff points of the digital bandpass filter. The original BCG data is then subjected to digital bandpass filtering to obtain respiratory data.
[0051] A bandpass filter for heart rate data was constructed using the lowest and highest heart rate frequencies as the bandpass filter cutoff frequencies of the digital bandpass filter. The original BCG data was then subjected to digital bandpass filtering to obtain heart rate data.
[0052] A body motion data bandpass filter is constructed using the lowest and highest body motion frequencies as the bandpass filter cutoff frequencies of the digital bandpass filter. The original BCG data is then subjected to digital bandpass filtering to obtain body motion data.
[0053] A snoring data bandpass filter is constructed using the lowest and highest snoring frequencies as the bandpass filter cutoff frequencies of the digital bandpass filter. The original BCG data is then subjected to digital bandpass filtering to obtain snoring data.
[0054] Bandpass filtering is performed on the signals in each frequency band of the original BCG data, excluding the signal bands for respiration, heart rate, body movement, and snoring, to obtain interference signal data.
[0055] In this embodiment of the invention, the heart rate data analysis module analyzes heart rate data to obtain heart rate dispersion values, including:
[0056] A segment of data of a set length L is read from the heart rate signal data. The average difference of this segment of data of length L is processed to obtain the dispersion DtMd of the heart rate data. The set length L of data contains data of at least one respiratory cycle.
[0057] In this embodiment of the invention, the respiratory data analysis module analyzes respiratory data to obtain the respiratory rate, including:
[0058] Perform Fourier transform processing on the respiratory data;
[0059] Find the frequency peak points within the breathing frequency band, locate the first peak point and the second peak point, and eliminate resonant wave frequency points by analyzing the relationship between the first peak point and the second peak point to find the correct breathing frequency;
[0060] Multiple respiratory rates are obtained by extracting multiple data segments using a sliding window method, and the average value is processed to obtain the accurate respiratory rate Fs. The accurate respiratory rate value BrRate is then calculated using BrRate = Fs * 60.
[0061] In this embodiment of the invention, the body motion data analysis module analyzes body motion data to obtain body motion time points, including:
[0062] Body movement events are detected by setting a threshold.
[0063] When the body movement data is greater than the set threshold, it is determined that there is body movement and the time points BTime1 to BTimeN of the body movement are recorded.
[0064] In this embodiment of the invention, the interference data analysis module analyzes the interference data to obtain the interference data time points, including:
[0065] The dispersion of heart rate data, DtMd, was compared with the dispersion threshold of interference signals, DtMinV, calculated experimentally under normal snoring conditions.
[0066] When DtMd>DtMinV, it is determined to be interference data, and the time point DTime of the interference data is recorded.
[0067] In this embodiment of the invention, the snoring data analysis module analyzes snoring data to obtain snoring envelope data, including:
[0068] Read a piece of data with a length of L from the snoring data in a sliding window manner, and analyze each data point individually. When the data of a certain point is greater than the snoring signal threshold, start recording the start time SIndex of the snoring envelope, and detect a certain length of multi-point data backward. If the multi-point data is all greater than the threshold, include all the data of these points in the envelope until there is no data greater than the threshold in the backward detected data points, form the current snoring envelope, and record the end time EIndex and the midpoint time ETime of the snoring envelope.
[0069] Save the start times SIndex1 - SIndex1N, midpoint times ETime1 - ETimeN, and end times EIndex1 - EIndexN in all the snoring envelopes detected in the snoring data, where N is the number of envelopes.
[0070] In the embodiment of the present invention, the snoring detection module detects the snoring time points, including:
[0071] Abnormal envelope verification: Judge whether the midpoint time body movement time of each snoring envelope is the body movement time or the interference data time point. If so, remove the current envelope;
[0072] Envelope rationality verification: Judge whether the envelope time length is within a reasonable time range, and remove the envelopes with unreasonable time lengths; Use the breathing rate BrRate to verify the envelope rationality. Judge whether the envelope is reasonable through the formula (ETimeN – EtimeN-1)-60 / BrRate<Dif. If it is unreasonable, remove the envelope where the EtimeN-1 point is located, and continue to check backward to ensure the accuracy of snoring detection, where Dif is the set error range;
[0073] Envelope deduplication processing: Use the data of SIndex1~SIndeN and EIndex1~EIndexN to analyze whether there are envelopes with the same envelope start points after each sliding window, and merge the envelopes with the same start points into one envelope.
[0074] Compared with the prior art, the snoring detection method and device of the present invention extract signal data such as breathing, heart rate, snoring, body movement, and interference from the BCG signal. At the same time, snoring envelope data is extracted based on the snoring data, and the snoring event is detected through analysis and processing of the envelope data characteristics. Reasonably use a variety of digital filters to process the BCG data, extract characteristic signals such as breathing, heart rate, snoring, body movement, and interference, which can simplify the circuit design of signal acquisition, reduce the circuit design cost, and make the overall function easy to transplant. Use a low-computing-power algorithm to process and analyze the data, which can reduce the performance requirements for hardware. At the same time, without affecting the detection accuracy, the operation speed is quite high, and basically can meet the applications in any scenario, and the implementation process is simple. Attached Figure Description
[0075] Figure 1 This is a flowchart of a snoring detection method according to an embodiment of the present invention.
[0076] Figure 2 This is a schematic diagram of the snoring detection system according to an embodiment of the present invention. Detailed Implementation
[0077] like Figure 1 As shown in the figure, an embodiment of the present invention provides a snoring detection method, which includes the following steps:
[0078] Data Acquisition: Real-time acquisition of raw BCG data;
[0079] Data preprocessing: The raw BCG data is analyzed to separate heart rate data, respiratory data, body movement data, interference data, and snoring data;
[0080] Data analysis: Heart rate data, respiratory data, body movement data, interference data, and snoring data were analyzed to obtain heart rate dispersion values, respiratory rate values, body movement time points, interference data time points, and snoring envelope data.
[0081] Snoring detection: Snoring time is detected based on heart rate dispersion value, respiratory rate value, body movement time point, interference data time point, and snoring envelope data.
[0082] Specifically, in this embodiment of the invention, a highly sensitive piezoelectric thin film (PVDF) sensor that does not directly contact the body is used to collect weak vibration signals of the human body (ballistocardiography (BCG) signals), which can greatly simplify the equipment usage process and reduce the difficulty of use.
[0083] In this embodiment of the invention, the data preprocessing step specifically includes:
[0084] A respiratory data bandpass filter is constructed using the lowest and highest respiratory frequencies as the bandpass filter cutoff points of the digital bandpass filter. The original BCG data is then subjected to digital bandpass filtering to obtain respiratory data.
[0085] A bandpass filter for heart rate data was constructed using the lowest and highest heart rate frequencies as the bandpass filter cutoff frequencies of the digital bandpass filter. The original BCG data was then subjected to digital bandpass filtering to obtain heart rate data.
[0086] A body motion data bandpass filter is constructed using the lowest and highest body motion frequencies as the bandpass filter cutoff frequencies of the digital bandpass filter. The original BCG data is then subjected to digital bandpass filtering to obtain body motion data.
[0087] A snoring data bandpass filter is constructed using the lowest and highest snoring frequencies as the bandpass filter cutoff frequencies of the digital bandpass filter. The original BCG data is then subjected to digital bandpass filtering to obtain snoring data.
[0088] Bandpass filtering is performed on the signals in each frequency band of the original BCG data, excluding the signal bands for respiration, heart rate, body movement, and snoring, to obtain interference signal data.
[0089] In the data analysis step, the heart rate data is analyzed to obtain the heart rate dispersion value, including:
[0090] A segment of heart rate signal data of a set length L is read, and the average difference of this segment of data is processed to obtain the dispersion DtMd of the heart rate data. The calculation formula is as follows:
[0091] x is the value of the data. Let x be the arithmetic mean of variable x, and n be the number of variable values, where n = L, and the data of the set length L includes data of at least one respiratory cycle.
[0092] In the data analysis step, the respiratory data is analyzed to obtain the respiratory rate, including:
[0093] Perform Fourier transform processing on the respiratory data;
[0094] Find the frequency peak points within the breathing frequency band, locate the first peak point and the second peak point, and eliminate resonant wave frequency points by analyzing the relationship between the first peak point and the second peak point to find the correct breathing frequency;
[0095] Multiple respiratory rates are obtained by extracting multiple data segments using a sliding window method, and the average value is processed to obtain the accurate respiratory rate Fs. The accurate respiratory rate value BrRate is then calculated using BrRate = Fs * 60.
[0096] In the data analysis step, the body movement data is analyzed to obtain body movement time points, including:
[0097] Body movement events are detected by setting a threshold.
[0098] When the body movement data is greater than the set threshold, it is determined that there is body movement and the time points BTime1 to BTimeN of the body movement are recorded.
[0099] In the data analysis step, the interference data is analyzed to obtain the time points of the interference data, including:
[0100] Compare the dispersion DtMd of the heart rate data with the interference signal dispersion threshold DtMinV measured through experiments under normal snoring conditions (i.e., without human body micro-motion signals and other interference signals).
[0101] When DtMd > DtMinV, it is determined as interference data, and all interference data time points DTime1 - DTime1N are recorded.
[0102] In the data analysis step, analyze the snoring data to obtain snoring envelope data, including:
[0103] Read a segment of data with a length of L from the snoring data in a sliding window manner, analyze each data point individually. When the data of a certain point is greater than the snoring signal threshold, start recording the start time SIndex of the snoring envelope, and detect a certain length of multi-point data backward. If all the multi-point data are greater than the threshold, include all the data of these points in the envelope until there is no data greater than the threshold among the backward-detected data points, forming the current snoring envelope, and record the end time EIndex and midpoint time ETime of the snoring envelope.
[0104] Save the start times SIndex1 - SIndex1N, midpoint times ETime1 - ETimeN, and end times EIndex1 - EIndexN in all the detected snoring envelopes in the snoring data, where N is the number of envelopes.
[0105] In the embodiments of the present invention, the snoring time points are detected based on the heart rate dispersion value, respiratory rate value, body movement time points, interference data time points, and snoring envelope data, including three processing processes: abnormal envelope verification, envelope rationality verification, and envelope deduplication processing, which are described separately below.
[0106] Abnormal envelope verification: Judge whether the body movement time at the midpoint time of each snoring envelope is the same as the body movement time or interference data time point. If so, remove the current envelope.
[0107] Envelope rationality verification: Judge whether the envelope time length is within a reasonable time range, and剔除 the envelopes with unreasonable time lengths; Use the respiratory rate BrRate to verify the envelope rationality. Determine whether the envelope is reasonable through the formula (ETimeN – EtimeN-1) - 60 / BrRate < Dif. If it is unreasonable,剔除 the envelope where the EtimeN-1 point is located, and continue to check backward to ensure the accuracy of snoring detection, where Dif is the set error range.
[0108] Envelope deduplication processing: Use the data of SIndex1~SIndeN and EIndex1~EIndexN to analyze whether there are envelopes with the same envelope start points after each sliding window, and merge the envelopes with the same start points into one envelope.
[0109] It should be noted that the snoring envelope data obtained from the analysis of snoring data contains some abnormal, unreasonable, or repetitive envelopes. Therefore, these abnormal or unreasonable envelopes can be removed based on the heart rate dispersion value, respiratory rate value, body movement time point, and interference data time point. Furthermore, repetitive envelopes can be merged by using the starting point data of the envelope itself, thereby obtaining the accurate snoring time period.
[0110] like Figure 2 As shown in the figure, this embodiment of the invention also provides a snoring detection system, which includes a data acquisition module, a data preprocessing module, a heart rate data analysis module, a respiratory data analysis module, a body movement data analysis module, an interference data analysis module, a snoring data analysis module, and a snoring detection module. These will be described in detail below.
[0111] The data acquisition module is used to acquire raw BCG data in real time. The data acquisition module includes a piezoelectric sensor, a BCG signal acquisition circuit, which acquires the BCG signal and performs ADC conversion to convert the analog signal into digital raw BCG signal data.
[0112] The data preprocessing module is used to analyze the raw BCG data and separate heart rate data, respiratory data, body movement data, interference data, and snoring data. The preprocessing process of the raw BCG data includes:
[0113] A respiratory data bandpass filter is constructed using the lowest and highest respiratory frequencies as the bandpass filter cutoff points of the digital bandpass filter. The original BCG data is then subjected to digital bandpass filtering to obtain respiratory data.
[0114] A bandpass filter for heart rate data was constructed using the lowest and highest heart rate frequencies as the bandpass filter cutoff frequencies of the digital bandpass filter. The original BCG data was then subjected to digital bandpass filtering to obtain heart rate data.
[0115] A body motion data bandpass filter is constructed using the lowest and highest body motion frequencies as the bandpass filter cutoff frequencies of the digital bandpass filter. The original BCG data is then subjected to digital bandpass filtering to obtain body motion data.
[0116] A snoring data bandpass filter is constructed using the lowest and highest snoring frequencies as the bandpass filter cutoff frequencies of the digital bandpass filter. The original BCG data is then subjected to digital bandpass filtering to obtain snoring data.
[0117] Bandpass filtering is performed on the signals in each frequency band of the original BCG data, excluding the signal bands for respiration, heart rate, body movement, and snoring, to obtain interference signal data.
[0118] The heart rate data analysis module is used to analyze heart rate data and obtain heart rate dispersion values. The process of analyzing heart rate data by the heart rate data analysis module includes:
[0119] A segment of data of a set length L is read from the heart rate signal data. The average difference of this segment of data of length L is processed to obtain the dispersion DtMd of the heart rate data. The set length L of data contains data of at least one respiratory cycle.
[0120] The respiratory data analysis module is used to analyze respiratory data to obtain heart rate and respiratory rate values. The process of analyzing respiratory data by the respiratory data analysis module includes:
[0121] Perform Fourier transform processing on the respiratory data;
[0122] Find the frequency peak points within the breathing frequency band, locate the first peak point and the second peak point, and eliminate resonant wave frequency points by analyzing the relationship between the first peak point and the second peak point to find the correct breathing frequency;
[0123] Multiple respiratory rates are obtained by extracting multiple data segments using a sliding window method, and the average value is processed to obtain the accurate respiratory rate Fs. The accurate respiratory rate value BrRate is then calculated using BrRate = Fs * 60.
[0124] The body movement data analysis module is used to analyze body movement data to obtain body movement time points. The process of analyzing body movement data by the body movement data analysis module includes:
[0125] Body movement events are detected by setting a threshold.
[0126] When the body movement data is greater than the set threshold, it is determined that there is body movement and the time points BTime1 to BTimeN of the body movement are recorded.
[0127] The interference data analysis module is used to analyze interference data and obtain the time points of the interference data. The process of analyzing the interference data by the interference data analysis module includes:
[0128] The dispersion of heart rate data, DtMd, was compared with the dispersion threshold of interference signals, DtMinV, calculated experimentally under normal snoring conditions.
[0129] When DtMd>DtMinV, it is determined to be interference data, and the time point DTime of the interference data is recorded.
[0130] The snoring data analysis module is used to analyze snoring data to obtain snoring envelope data. The process of analyzing snoring data by the snoring data analysis module includes:
[0131] Read a piece of data with a length of L from the snoring data in a sliding window manner, and analyze each data point individually. When the data of a certain point is greater than the snoring signal threshold, start recording the start time SIndex of the snoring envelope, and detect a certain length of multi-point data backward. If all the multi-point data is greater than the threshold, include all the data of these points in the envelope until there is no data greater than the threshold in the backward detected data points, form the current snoring envelope, and record the end time EIndex and the midpoint time ETime of the snoring envelope.
[0132] Save the start times SIndex1 - SIndex1N, midpoint times ETime1 - ETimeN, and end times EIndex1 - EIndexN in all the detected snoring envelopes in the snoring data, where N is the number of envelopes.
[0133] The snoring detection module is used to detect the snoring time according to the heart rate dispersion value, respiration rate value, body movement time point, interference data time point, and snoring envelope data. The snoring detection module detects the snoring time point, including:
[0134] Abnormal envelope verification: Judge whether the midpoint time of each snoring envelope is the body movement time or the interference data time point. If so, remove the current envelope;
[0135] Envelope rationality verification: Judge whether the envelope time length is within a reasonable time range, and remove the envelopes with unreasonable time lengths; Use the respiration rate BrRate to verify the envelope rationality. Judge whether the envelope is reasonable through the formula (ETimeN – EtimeN-1) - 60 / BrRate < Dif. If it is unreasonable, remove the envelope where the EtimeN-1 point is located, and continue to check backward to ensure the accuracy of snoring detection, where Dif is the set error range;
[0136] Envelope deduplication processing: Use the data of SIndex1~SIndeN and EIndex1~EIndexN to analyze whether there are envelopes with the same envelope start point after each sliding window, and merge the envelopes with the same start point into one envelope.
[0137] In summary, the snoring detection method of the present invention extracts signal data such as respiration, heart rate, snoring, body movement, and interference from BCG signals. Simultaneously, it extracts snoring envelope data based on the snoring data and analyzes and processes the envelope data features to achieve snoring event detection. By rationally utilizing various digital filters to process BCG data and extracting characteristic signals such as respiration, heart rate, snoring, body movement, and interference, the circuit design for signal acquisition can be simplified, reducing circuit design costs and making the overall function easily portable. The use of low-computing-power algorithms for data processing and analysis reduces hardware performance requirements, while maintaining high computational speed without affecting detection accuracy. This makes it suitable for applications in virtually any scenario, and the implementation process is simple.
[0138] The above description is only a preferred embodiment of the present invention and is not intended to limit the present invention. Any modifications, equivalent substitutions, and improvements made within the spirit and principles of the present invention should be included within the protection scope of the present invention.
Claims
1. A method for detecting snoring, characterized in that, include: Real-time acquisition of raw BCG data; The raw BCG data was analyzed to separate heart rate data, respiratory data, body movement data, interference data, and snoring data. Heart rate data, respiratory data, body movement data, interference data, and snoring data were analyzed separately to obtain heart rate dispersion value, respiratory rate value, body movement time point, interference data time point, and snoring envelope data. Snoring time was detected based on heart rate dispersion value, respiratory rate value, body movement time point, interference data time point, and snoring envelope data. The analysis of interference data yields the time points of the interference data, including: The dispersion of heart rate data, DtMd, was compared with the dispersion threshold of interference signals, DtMinV, calculated experimentally under normal snoring conditions. When DtMd > DtMinV, it is determined to be interference data, and the interference data time point DTime is recorded; Among them, the snoring envelope data is obtained by analyzing the snoring data, including: A data segment of length L is read from the snoring data using a sliding window method. Individual data points are analyzed. When the data at a certain point is greater than the snoring signal threshold, the start time SIndex of the snoring envelope is recorded. Then, multiple data points of a certain length are probed. If all data points are greater than the threshold, all data points are included in the envelope. This process continues until no data points are greater than the threshold in the probed data points. The current snoring envelope is then formed, and the end time EIndex and midpoint time ETime of the snoring envelope are recorded. Save the start time SIndex1-SIndex1N, midpoint time ETime1-ETimeN, and end time EIndex1-EIndexN of all snoring envelopes detected in the snoring data, where N is the number of envelopes; The snoring time points were detected based on heart rate dispersion values, respiratory rate values, body movement time points, interference data time points, and snoring envelope data, including: Abnormal envelope verification: Determine whether the midpoint time of each snoring envelope is the same as the body movement time or the time point of the interference data. If so, remove the current envelope. Envelope rationality verification: Determine whether the envelope duration is within a reasonable range and remove envelopes with unreasonable durations; use the respiratory rate BrRate to verify the rationality of the envelope, and use the formula (ETimeN – EtimeN-1) - 60 / BrRate < Dif to determine whether the envelope is reasonable. If it is unreasonable, remove the envelope containing the EtimeN-1 point and continue to check to ensure the accuracy of snoring detection, where Dif is the set error range; Envelope deduplication: Using SIndex1~SIndexN and EIndex1~EIndexN data, analyze whether there are envelopes with the same starting point after each window sliding, and merge envelopes with the same starting point into one envelope.
2. The snoring detection method as described in claim 1, characterized in that, The raw BCG data was analyzed to separate heart rate data, respiratory data, body movement data, interference data, and snoring data, including: A respiratory data bandpass filter is constructed using the lowest and highest respiratory frequencies as the bandpass filter cutoff points of the digital bandpass filter. The original BCG data is then subjected to digital bandpass filtering to obtain respiratory data. A bandpass filter for heart rate data was constructed using the lowest and highest heart rate frequencies as the bandpass filter cutoff frequencies of the digital bandpass filter. The original BCG data was then subjected to digital bandpass filtering to obtain heart rate data. A body motion data bandpass filter is constructed using the lowest and highest body motion frequencies as the bandpass filter cutoff frequencies of the digital bandpass filter. The original BCG data is then subjected to digital bandpass filtering to obtain body motion data. A snoring data bandpass filter is constructed using the lowest and highest snoring frequencies as the bandpass filter cutoff frequencies of the digital bandpass filter. The original BCG data is then subjected to digital bandpass filtering to obtain snoring data. Bandpass filtering is performed on the signals in each frequency band of the original BCG data, excluding the signal bands for respiration, heart rate, body movement, and snoring, to obtain interference signal data.
3. The snoring detection method as described in claim 2, characterized in that, Heart rate data is analyzed to obtain heart rate dispersion values, including: A segment of data of a set length L is read from the heart rate signal data. The average difference of this segment of data of length L is processed to obtain the dispersion DtMd of the heart rate data. The set length L of data contains data of at least one respiratory cycle.
4. The snoring detection method as described in claim 3, characterized in that, Analyzing respiratory data yields the respiratory rate, including: Perform Fourier transform processing on the respiratory data; Find the frequency peak points within the breathing frequency band, locate the first peak point and the second peak point, and eliminate resonant wave frequency points by analyzing the relationship between the first peak point and the second peak point to find the correct breathing frequency; Multiple respiratory rates are obtained by extracting multiple data segments using a sliding window method, and the average value is processed to obtain the accurate respiratory rate Fs. The accurate respiratory rate value BrRate is then calculated using BrRate = Fs * 60.
5. The snoring detection method as described in claim 4, characterized in that, Analysis of body movement data yields body movement time points, including: Body movement events are detected by setting a threshold. When the body movement data is greater than the set threshold, it is determined that there is body movement and the time points BTime1~BTimeN of the body movement are recorded.
6. A snoring detection system, characterized in that, include The data acquisition module is used to acquire raw BCG data in real time. The data preprocessing module is used to analyze the raw BCG data and separate heart rate data, respiratory data, body movement data, interference data, and snoring data from it. The heart rate data analysis module is used to analyze heart rate data and obtain heart rate dispersion values; The respiratory data analysis module is used to analyze respiratory data and obtain heart rate and respiratory rate values; The body movement data analysis module is used to analyze body movement data and obtain body movement time points; The interference data analysis module is used to analyze interference data and obtain the time points of the interference data. The snoring data analysis module is used to analyze snoring data and obtain snoring envelope data; The snoring detection module is used to detect snoring time based on heart rate dispersion value, respiratory rate value, body movement time point, interference data time point and snoring envelope data; The interference data analysis module analyzes the interference data to obtain the interference data time points, including: Compare the dispersion DtMd of the heart rate data with the interference signal dispersion threshold DtMinV measured through experiments under the normal snoring state. When DtMd > DtMinV, it is determined as interference data, and the interference data time point DTime is recorded. The snoring data analysis module analyzes the snoring data to obtain snoring envelope data, including: Read a piece of data with a length of L each time from the snoring data in a sliding window manner, and analyze each data point individually. When the data of a certain point is greater than the snoring signal threshold, start recording the start time SIndex of the snoring envelope, and detect a certain length of multi-point data backward. If all the multi-point data are greater than the threshold, include all the data of these points in the envelope until there is no data greater than the threshold among the backward detected data points, form the current snoring envelope, and record the end time EIndex and the midpoint time ETime of the snoring envelope. Save the start times SIndex1 - SIndex1N, midpoint times ETime1 - ETimeN, and end times EIndex1 - EIndexN in all the snoring envelopes detected in the snoring data, where N is the number of envelopes. The snoring detection module detects the snoring time point, including: Abnormal envelope verification: Judge whether the midpoint time of each snoring envelope is the same as the body movement time or the interference data time point. If so, remove the current envelope. Envelope rationality verification: Judge whether the envelope time length is within a reasonable time range, and remove the envelopes with unreasonable time lengths. Use the respiratory rate BrRate to verify the envelope rationality. Judge whether the envelope is reasonable through the formula (ETimeN – EtimeN-1) - 60 / BrRate < Dif. If it is unreasonable, remove the envelope where the point EtimeN-1 is located, and continue to check backward to ensure the accuracy of snoring detection, where Dif is the set error range. Envelope deduplication processing: Use the data of SIndex1~SIndeN and EIndex1~EIndexN to analyze whether there are envelopes with the same envelope start point after each sliding window, and merge the envelopes with the same start point into one envelope.
7. The snoring detection system as described in claim 6, characterized in that, The data preprocessing module analyzes the original BCG data and separates the heart rate data, respiratory data, body movement data, interference data, and snoring data, including: Construct a respiratory data bandpass filter with the lowest respiratory frequency and the highest respiratory frequency as the bandpass filter cut-off frequency points of the digital bandpass filter, and perform digital bandpass filtering on the original BCG data to obtain respiratory data. Construct a heart rate data bandpass filter with the lowest heart beat frequency and the highest heart beat frequency as the bandpass filter cut-off frequency points of the digital bandpass filter, and perform digital bandpass filtering on the original BCG data to obtain heart rate data. Construct a body movement data bandpass filter with the lowest body movement frequency and the highest body movement frequency as the bandpass filter cut-off frequency points of the digital bandpass filter, and perform digital bandpass filtering on the original BCG data to obtain body movement data. A snoring data bandpass filter is constructed using the lowest and highest snoring frequencies as the bandpass filter cutoff frequencies of the digital bandpass filter. The original BCG data is then subjected to digital bandpass filtering to obtain snoring data. Bandpass filtering is performed on the signals in each frequency band of the original BCG data, excluding the signal bands for respiration, heart rate, body movement, and snoring, to obtain interference signal data.
8. The snoring detection system as described in claim 7, characterized in that, The heart rate data analysis module analyzes the heart rate data to obtain heart rate dispersion values, including: A segment of data of a set length L is read from the heart rate signal data. The average difference of this segment of data of length L is processed to obtain the dispersion DtMd of the heart rate data. The set length L of data contains data of at least one respiratory cycle.
9. The snoring detection system as described in claim 8, characterized in that, The respiratory data analysis module analyzes respiratory data to obtain the respiratory rate, including: Perform Fourier transform processing on the respiratory data; Find the frequency peak points within the breathing frequency band, locate the first peak point and the second peak point, and eliminate resonant wave frequency points by analyzing the relationship between the first peak point and the second peak point to find the correct breathing frequency; Multiple respiratory rates are obtained by extracting multiple data segments using a sliding window method, and the average value is processed to obtain the accurate respiratory rate Fs. The accurate respiratory rate value BrRate is then calculated using BrRate = Fs * 60.
10. The snoring detection system as described in claim 9, characterized in that, The body movement data analysis module analyzes the body movement data to obtain body movement time points, including: Body movement events are detected by setting a threshold. When the body movement data is greater than the set threshold, it is determined that there is body movement and the time points BTime1~BTimeN of the body movement are recorded.
Citation Information
Patent Citations
Detection method of vital signs during sleeping
CN109907729A
Apnea detection method and system based on real-time ballistocardiography signals
CN112155560A
Snore detection method, snore detection device, and bed
JP2021171290A