PRECISE PROXIMITY OBJECT DETECTION FOR CAPACITIVE SENSING
By employing an advanced low-pass filter with dynamic filter selection based on approximation distance changes, the precision of object detection in wireless devices is enhanced, addressing issues of signal-to-noise ratio and temperature fluctuations.
Patent Information
- Application Number
- DE102024124699
- Authority / Receiving Office
- DE · DE
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-09-08
- Filing Date
- 2024-08-29
- Publication Date
- 2025-03-13
AI Technical Summary
Existing wireless devices face challenges in precisely detecting the proximity of objects, particularly human bodies, due to poor signal-to-noise ratios, large parasitic capacity, and temperature fluctuations, which affect the accuracy of capacitive recording.
The implementation of an advanced low-pass filter (ALP filter) with a combination of first and second low-pass filters (LPFs) coupled in parallel with a capacitive detection circuit, along with a logic that dynamically selects between the filters based on detected changes in approximation distance, enhances the precision of object detection.
This solution improves the signal-to-noise ratio, allows for fast reactive filtering during significant changes, and maintains precision during periods of less intensive changes, effectively addressing the challenges of temperature fluctuations and noisy environments.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
TECHNICAL FIELD
[0001] This disclosure relates to wireless devices and, in particular, to precise proximity object detection for capacitive sensing. GENERAL STATE OF THE ART
[0002] The specific absorption rate (SAR) is the rate at which energy is absorbed by the human body when exposed to a high-frequency electromagnetic field (radio-frequency, RF field). Leukemia, brain cancer, infertility, altered immune function, and neurological and developmental damage are effects of RF radiation. Controlling the RF emission power in the presence of the human body is used for electronic devices with electromagnetic radiation sources (such as mobile phones, tablets, laptops, wearables, monitors, and other computing devices) to meet strict emission regulations and SAR standards.
[0003] In some cases, an actual antenna is used as a capacitive sensor, and a proximity detection algorithm is employed to detect the proximity of an object, particularly a human body. In the presence of a human body, the electromagnetic RF fields can be reduced to meet emission regulations and SAR standards. Some challenges with proximity detection include a poor signal-to-noise ratio (SNR) due to small antennas, high parasitic capacitance, and significant temperature variations, leading to unpredictability in the ability to accurately detect the presence of an object, such as a part of the human body. BRIEF DESCRIPTION OF THE CHARACTERS Fig. Figure 1 is a schematic block representation of an exemplary wireless device configured for precise proximity object detection according to an exemplary embodiment. Fig. Figure 2 is a block diagram of an exemplary operational flow diagram of the processing of SAR signals according to an exemplary embodiment. Fig. Figure 3 is a flowchart of a method for detecting objects using an advanced low pass (ALP) filter and associated logic according to one embodiment. Fig. Figure 4 is a flowchart of a method for detecting objects using an advanced low pass (ALP) filter and associated logic according to additional embodiments. Fig. Figure 5 is a flowchart of a method for detecting objects using a combination of a second-order Bessel filter and an infinite impulse response (IIR) filter and associated logic according to some embodiments. Fig. Figure 6 is a schematic block representation depicting a recursive filter according to some embodiments. Fig. Figure 7 is a block representation of an exemplary recurrent neural network (RNN) according to some embodiments, which can be trained to model the recursive filter. Fig. Figure 8 is a flowchart of a method for object detection using the ALP filter and for optionally training the RNN according to different embodiments. Fig. Figure 9 is a graph illustrating an example of RNN model training as part of the implementation of precise object proximity detection according to some embodiments. DETAILED DESCRIPTION
[0004] The following description presents numerous specific details, such as examples of specific systems, devices, components, methods, and so on, to provide a good understanding of various implementations for high-frequency (RF) sensing, particularly with regard to precise proximity object detection for capacitive sensing. Certain wireless devices employ an analog-to-digital converter (ADC) to convert signal data from a capacitive sensor into digital signal values. These digital signal values are then typically filtered by a single low-pass filter (LPF) to remove high-frequency components, which include system noise and electromagnetic interference, thereby enabling the extraction of user activity and slower environmental changes.While these approaches allow a degree of proximity detection, they do not enable a high level of precision in terms of proximity distance detection due to antennas (or other capacitive sensors) that are small, large parasitic capacitance, and significant temperature fluctuations of small form factor devices that heat up and cool down over large temperature ranges.
[0005] To overcome these and other shortcomings of known approaches to proximity object detection, the present disclosure teaches the use of an advanced LPF filter, e.g., an ALP filter, comprising a pair of LPFs. In various embodiments, the pair of LPFs is coupled in parallel to a capacitive sensing circuit that receives raw data signal values from a capacitive sensor, which in some embodiments is an antenna and / or other switching technology within a transceiver of the wireless device. In some embodiments, the pair of LPFs comprises a first LPF having a low filter rate and a second LPF having a normal (e.g., high) filter rate that is higher than the low filter rate. In some embodiments, the first and second LPFs are infinite impulse response (IIR) filters.In some embodiments, the low filter rate includes no filtering or zero filtering, also referred to herein as bypass filtering.
[0006] Furthermore, in at least some embodiments, logic is coupled to the ALP filter and configured to selectively choose which of the first LPF or the second LPF to use, depending on the detected changes (or rates of change) in the proximity distance. For example, in some embodiments, the logic causes the second LPF to filter the signal values while the proximity distance remains unchanged. The logic can also detect a change in the proximity distance that exceeds a threshold, such as a sufficiently large change in the proximity distance. The logic can also cause the first LPF to filter a subsequent signal value received by the capacitive sensing circuit based on the detection of the change, such as detecting a proximity distance change that exceeds the threshold.In this way, when the proximity distance changes rapidly, the filtering is less precise to accommodate the rapid changes without being slowed down by high-rate filtering. Once the logic estimates that the rate of proximity distance change has fallen below the threshold and is thus flattening out, it can switch the ALP filter back to filtering the signal values with the second LPF, which has the higher filter rate. In some embodiments, a recurrent neural network (RNN) model can be trained to act as a recurrent filter, allowing the second LPF to optimize (e.g., increase) the signal-to-noise ratio (SNR) when the rate of proximity distance change is less than the threshold.
[0007] The present disclosure encompasses a number of advantages, including rapid reactive filtering in response to significant changes in the detected proximity distance, improved signal-to-noise ratio (SNR) when exposed to additional noise, and improved performance during periods of less intense proximity distance changes. These and other techniques discussed also enhance the ability to accurately estimate the proximity distance, even in noisy environments and under exposure to temperature fluctuations. Additional advantages of the disclosure below will be apparent to those skilled in the art in the field of wireless proximity object detection.
[0008] Fig. Figure 1 is a schematic block diagram of an exemplary wireless device 100 configured for precise proximity object detection according to an exemplary embodiment. In various embodiments, the wireless device comprises a system-on-a-chip (SoC) 102 (e.g., an integrated circuit that may be on a single chip or an integrated set of chips), a host processor 105, and an antenna 160. As discussed, the antenna 160 may be configured to act as a detection capacitor, or the wireless device 100 may include one or more capacitive sensors 162, e.g., coupled between the SoC 102 and the antenna 160.In some embodiments, a sensing capacitor and the antenna 160 are combined to function as a capacitive sensor for sensing raw data signal values that indicate a proximity distance between an object (such as a person) and the wireless device 100. In various embodiments, the SoC 102 may further comprise a processing device 110, a capacitive sensing circuit 150, and an antenna tuner 140 coupled between the processing device 110 and the antenna 160, a set of input / output (I / O) ports 130, and a memory and / or storage device 120.
[0009] In various embodiments, the processing device 110 comprises logic 112 (including control logic 114 and / or processing logic 118) that performs the signal processing operations discussed herein. For example, the logic 112 may comprise hardware, such as discrete gates and components, programmable logic, such as application-specific integrated circuits (ASICs) or field-programmable gate arrays (FPGAs), firmware, or a combination thereof, capable of performing the signal processing operations discussed herein on the raw signal values acquired by the capacitive sensing circuit 150. In some embodiments, the host processor 105 may execute software capable of processing the raw signal values (including filtering discussed herein) when they are received from the SoC 102.In some embodiments, a combination of the processing device 110 and the host processor 105 can perform the control and filtering operations discussed herein.
[0010] Fig. Figure 2 is a block diagram of an exemplary operational flow representation of the processing of SAR signals, e.g., by the processing device 110 and / or the host processor 105, according to an exemplary embodiment. The operational flow can be carried out by processing logic, which may include hardware (e.g., processing device, switching technology, purpose-built logic, programmable logic, microcode, hardware of a device, integrated circuit, etc.), software (e.g., instructions running or executed on a processing device), or a combination thereof. In some embodiments, the logic 112 and / or the software of the host processor 105 includes an ALP filter 205, a first mixer 212, a second mixer 218, a baseliner circuit 215, and a set of comparators 225.
[0011] In some embodiments, the ALP filter 205 comprises a first LPF 207 with a low filter coefficient (FilterCoeff_Low) and a second LPF 209 with a high filter coefficient (FilterCoeff_High), e.g., compared to the low filter coefficient of the first LPF 207. A high filter coefficient can be understood as correlating with a high filter rate, while a lower filter coefficient can be understood as correlating with a low filter rate, particularly in comparison to the higher filter rate. A lower filter rate, for example, requires less processing power and can be performed faster, e.g., to respond more quickly to a larger change in proximity distance without introducing control undershoot during signal processing.
[0012] In at least some embodiments, the filtered signal values leave the ALP filter 205 and continue along two separate paths before being combined. In some embodiments (for at least part of a processing period), the filtered signal values are sent to the baseliner circuit 215 to undergo at least one baseline processing operation to produce at least one baseline signal value. In these embodiments, the baseliner circuit 215 is configured to detect slow changes in the filtered signal values, which are output as one or more baseline signal values from one or more filtered signal values. In various embodiments, one or more known baselining algorithms are used by the baseliner circuit 215 to set, reset, and update the baseline signal value(s) over time.In some embodiments, a single baseline signal value is available at a given time, which can be updated based on processing a continuously changing stream of filtered signal values detected by the capacitive sensing circuit.
[0013] In some embodiments, the second mixer 218 generates differential signal values by removing the at least one baseline signal value from the one or more filtered signal values (that have exited the ALP filter 205). In this way, the differential signal values exiting the second mixer 218 essentially comprise only the faster changes in the filtered signal values that are more relevant for comparison with a set of threshold signal values to determine the proximity distance to a human object. For example, in some embodiments, the set of comparators 225 is coupled to the second mixer 218 and configured to determine the proximity distance by comparing a magnitude of the differential signal values with a set of threshold signal levels, e.g., ApproachValue1, ApproachValue2, ApproachValueN.
[0014] In some embodiments, at least some of the baseline signal value(s) are fed back to the first mixer 212 and combined by it (see dashed line 213), e.g., to remove already detected baseline signal values so that the baseliner circuit 215 can continue to detect new or different baseline signal values due to the changing noise environment of the user. Furthermore, in at least some embodiments, at least some of the filtered signal values are fed back to the ALP filter 205 (see dashed line 210) to assist the first LPF 207 and second LPF 209 in further processing the raw data signal values into new filtered signal values.
[0015] Fig. Figure 3 is a flowchart of a method 300 for detecting objects using the ALP filter 205 and associated logic according to one embodiment. The method 300 can be performed by processing logic that may include hardware (e.g., processing device, switching technology, purpose-built logic, programmable logic, microcode, hardware of a device, integrated circuit, etc.), software (e.g., instructions running or executed on a processing device), or a combination thereof. In some embodiments, the method 300 is performed by the wireless device 100, which includes the processing device 110 and / or the host processor 105 ( Fig. 1) Although shown in a specific sequence or order, the order of the processes can be modified unless otherwise specified. The illustrated embodiments should be understood as examples only, and the illustrated processes can be performed in a different order, and some processes can be performed in parallel. Additionally, one or more processes may be omitted in different embodiments. Therefore, not all processes are required in every embodiment. Other process flows are possible.
[0016] In Operation 310, the processing logic applies the set of LPFs (e.g., the ALP filter 205) to the raw data signal values (e.g., "signal values") received by the capacitive sensing circuit 150 to generate filtered signal values. The signal values may be received, for example, by the capacitive sensors 162 and / or the antenna 160 and indicate the proximity of an object, such as a human finger or part. In various embodiments, the method 300 employs either the first LPF 207 or the second LPF 209 (or a combination thereof) to initialize the filtering of the signal values to generate an initial estimate of the proximity distance.
[0017] In operation 320, the processing logic estimates the proximity distance to the object based on one or more filtered signal values received from the set of LPFs.
[0018] In Operation 330, the processing logic instructs the second LPF 209 of the set of LPFs to filter the signal values while the proximity distance remains unchanged. In other words, if the initial estimate of the proximity distance indicates a small change in the proximity distance, the processing logic can resume filtering with the second LPF 209, which is configured with the higher filter rate. In some embodiments, the second LPF 209 is the default filter used to begin the initial approximation, and Operation 340 can then be performed quickly, if necessary.
[0019] In Operation 340, the processing logic determines (e.g., detects) whether the proximity distance has changed beyond a threshold, e.g., a change of 5, 10, 15, 20 percent or the like (depending on the application of the wireless device 100 or user preference).
[0020] In operation 350, in response to the detection that the proximity distance does not change beyond the threshold (e.g., remains essentially unchanged), the processing device continues to apply the second LPF 209.
[0021] In Operation 360, the processing logic, in response to the detection that the proximity distance is changing beyond the threshold, causes the first LPF 207 to filter a subsequent signal value received by the capacitive sensing circuit 150. In this way, the processing logic can monitor the filtering and switch between the LPFs of the ALP filters 205 depending on the extent of the change in proximity distance, thus enabling efficient, highly reactive filtering and improving the signal-to-noise ratio (SNR) for proximity distance tracking.
[0022] In operation 370, the processing logic determines (e.g., detects) whether the change in proximity distance falls below the threshold. If not, the processing logic continues to filter the signal values using the first LFP 207 with the lower filter rate. If so, when the change in proximity distance falls below the threshold, the processing logic instructs the second LFP 209 to again filter the signal values received by the capacitive sensing circuit 150, e.g., by looping back to operation 330 of procedure 300.
[0023] Fig. Figure 4 is a flowchart of a method 400 for detecting objects using the ALP and associated logic according to additional embodiments. The method 400 can be performed by processing logic that may include hardware (e.g., processing device, switching technology, purpose-built logic, programmable logic, microcode, hardware of a device, integrated circuit, etc.), software (e.g., instructions running or executed on a processing device), or a combination thereof. In some embodiments, the method 400 is performed by the wireless device 100, which includes the processing device 110 and / or the host processor 105 ( Fig. 1) Although shown in a specific sequence or order, the order of the processes can be modified unless otherwise specified. The illustrated embodiments should be understood as examples only, and the illustrated processes can be performed in a different order, and some processes can be performed in parallel. Additionally, one or more processes may be omitted in different embodiments. Therefore, not all processes are required in every embodiment. Other process flows are possible.
[0024] In Operation 405, the processing logic causes the capacitive sensing circuit 150 to scan for signal values received via a sensing capacitor of a capacitive sensing system. In some embodiments, the signal values are associated with a proximity distance to an object. Scanning results include raw data signal values, referred to herein simply as "signal values." In various embodiments, each path through different possible operations of Procedure 400 is applied to a current signal value and repeated for each subsequent signal value as the signal values are scanned for and detected by the capacitive sensing circuit 150.
[0025] In operation 410, the processing logic determines whether the absolute amplitude difference between a given signal value (i) and a signal value (ij) detected from a set immediately earlier is greater than a threshold. As indicated, j can be selected to be one, two, or three, primarily to keep the "immediately earlier detected signal values" up-to-date, but it is conceivable that j could also extend to four or five.
[0026] In Operation 415, the processing logic determines, in response to the absolute amplitude difference being less than or equal to the threshold, whether an enabling positive indicator has been activated. In embodiments, the enabling positive indicator is a marker (such as a register value or the like) that indicates that the proximity distance is trending positively (e.g., the object is moving closer) and that can be set in Operation 465.
[0027] In operation 420, the processing logic, in response to the determination in operation 415 that the enabling positive indicator has been activated, determines whether the amplitude of the present signal value (i) is greater than that of an immediately previously detected signal value (i-1).
[0028] In operation 425, the processing logic, in response to the determination in operation 420 that the amplitude of the current signal value is greater than that of an immediately previously detected signal value, bypasses the filtering of the current signal value (e.g., RawALPi = RawData). i As discussed, bypass filtering means that the signal values are not filtered and are simply passed to the set comparator 225 ( Fig. 2).
[0029] In operation 430, the processing logic, in response to the determination in operation 420 that the amplitude of the present signal value is less than or equal to that of an immediately previously detected signal value, initiates the filtering of the present signal value. In some embodiments, initiating the filtering in operation 430 involves applying the second LPF 209 with the higher filter rate. In one embodiment, the second LPF 209 is expressed as equation (1), although other known or yet-to-be-developed filters are also conceivable. ALPi=((irrCoeff−1)*RawALPi−1+RawDatai) / irrCoeff
[0030] In operation 435, the processing logic, in response to the determination in operation 415 that the enabling positive indicator is not active, determines whether an enabling negative indicator is active. In embodiments, the enabling negative indicator is a marker (such as a register value or the like) that indicates that the proximity distance is decreasing (e.g., the object is moving away) and that can be set in operation 470.
[0031] In operation 440, the processing logic, in response to the determination in operation 435 that the enabling negative indicator has been made effective, determines whether the amplitude of the present signal value (i) is smaller than that of an immediately previously detected signal value (i-1).
[0032] In operation 450, the processing logic, in response to the determination in operation 440 that the enabling negative indicator has been made effective, initiates the bypass of filtering the present signal value (e.g., RawALP). i = RawData i ).
[0033] Furthermore, in operation 430, the processing logic, in response to the determination in operation 435 that the enabling negative indicator is not active, or in response to the determination in operation 440 that the amplitude of the present signal value (i) is greater than or equal to that of an immediately previously detected signal value (i-1), initiates the filtering of the present signal value. In some embodiments, initiating the filtering in operation 430 includes applying the second LPF 209 with the higher filter rate.
[0034] In Operation 455, the processing logic, in response to the determination in Operation 410 that the absolute amplitude difference between a present signal value (i) and a signal value (ij) detected by a set of immediately preceding signals is greater than the threshold, bypasses the filtering of the present signal value, for example, to pass an unfiltered present signal value. In at least some embodiments, also in Operation 455, the processing logic uses the unfiltered present signal value together with one or more filtered signal values to track the proximity distance to the object, for example, by using the comparator set 225 for these unfiltered and filtered signal values.
[0035] In operation 460, the processing logic determines whether the amplitude of the current signal value (i) is greater than that of one of the immediately previously detected signal values (ij). This comparison can be performed to determine whether the approach distance is trending positively (approach increasing) or negatively (approach decreasing).
[0036] In Operation 465, the processing logic activates an enabling positive indicator in response to the fact that the amplitude of the current signal value is greater than that of one of the immediately preceding set of detected signal values. The activated positive indicator can be detected during a subsequent pass of Procedure 400 in Operation 415.
[0037] In Operation 470, the processing signal activates an enabling negative indicator in response to the fact that the amplitude of the current signal value is less than or equal to that of one of the immediately preceding set of detected signal values. The activated negative indicator can be detected during a subsequent pass of Procedure 400 in Operation 435.
[0038] Fig. Figure 5 is a flowchart of a method 500 for detecting objects using a combination of a second-order Bessel filter and an unlimited impulse response (IIR) filter, and associated logic according to some embodiments. The method 500 can be performed by processing logic that may include hardware (e.g., processing device, switching technology, purpose-built logic, programmable logic, microcode, hardware of a device, integrated circuit, etc.), software (e.g., instructions running or executed on a processing device), or a combination thereof. In some embodiments, the method 500 is performed by the wireless device 100, which includes the processing device 110 and / or the host processor 105 ( Fig. 1) Although shown in a specific sequence or order, the order of the processes can be modified unless otherwise specified. The illustrated embodiments should be understood as examples only, and the illustrated processes can be performed in a different order, and some processes can be performed in parallel. Additionally, one or more processes may be omitted in different embodiments. Therefore, not all processes are required in every embodiment. Other process flows are possible.
[0039] In Operation 505, the processing logic causes the capacitive sensing circuit 150 to scan for signal values received via a sensing capacitor of a capacitive sensing system, the signal values being associated with a proximity distance to an object. Results of the scanning include raw data signal values, referred to herein simply as "signal values." In various embodiments, each path is applied to a current signal value by various possible operations of the procedure 500 and is repeated for each subsequent signal value as the signal values are scanned for and detected by the capacitive sensing circuit 150.
[0040] In operation 510A, the processing logic filters the signal values through a second-order Bessel filter to generate first filtered signal values (Bessel i and sequence).
[0041] In operation 510B, the processing logic filters the signal values through an unlimited impulse response filter (IIR filter) to generate second filtered signal values (IIR). i and sequence).
[0042] Through operations 515-545, which are discussed in detail, the processing logic selects between the first and second filtered values of the output signal values, depending on whether the absolute amplitude difference between each first filtered signal value and a corresponding second filtered signal value is less than a threshold (deltaThreshold). The processing logic can then use the output signal values to track the proximity distance to the object. By performing this check (in operation 515) and selecting the best output signal value relative to the "threshold," an overall best filtered signal can be generated that reacts most quickly to changes in proximity distance and reverts to constant filtering when the rate of change of proximity distance decreases.
[0043] With greater specificity, the processing logic, in operation 515, determines whether an absolute amplitude difference between each first filtered signal value and a corresponding second filtered signal value is less than a threshold value.
[0044] In Operation 520, the processing logic, in response to the determination in Operation 515 that the absolute amplitude difference between each first filtered signal value and a corresponding second filtered signal value is less than the threshold, determines whether a memory marker has been activated to indicate that an immediately earlier signal value is stored (see Operation 545).
[0045] In operation 525, the processing logic, in response to the determination in operation 520 that the memory marker has been activated, calls the immediately previous signal value (e.g., RawALP). i-1) and renders the memory marker ineffective. The memory marker can, for example, be rendered ineffective by indicating that the previous signal value has been retrieved and used in processing, so that it is no longer needed.
[0046] In operation 530, the processing logic determines, after operation 525 or as a reaction to the determination in operation 520 that the memory marker has been deactivated, a given signal value (ALP). i ) as the first filtered signal value (Bessel) i ) minus the corresponding second filtered signal value (IIR) i ) plus the immediately preceding signal value (Stored1). In operation 545, the processing logic stores the corresponding second filtered value (e.g., as Stored2).
[0047] In operation 540, the processing logic, in response to the determination in operation 515 that the absolute amplitude difference between a first filtered signal value and the corresponding second filtered signal value is greater than or equal to the threshold, determines a given signal value (ALP). i ) as the first filtered signal value (Bessel) i ) minus the corresponding second filtered signal value (Stored2) plus an immediately earlier signal value (Stored1). In operation 545, the processing logic activates a memory marker to indicate that the current memory value (ALP) i ) has been stored, which then becomes the immediately previous signal value (Stored1) for a subsequent pass through procedure 500.
[0048] Therefore, if operations 515, 540, and 545 are performed again after operations 520 through 535 have been performed, these operations can be articulated similarly. For example, in operation 515, the processing logic determines that the absolute amplitude difference between a subsequent first filtered signal value and a corresponding subsequent second filtered signal value is greater than or equal to the threshold (e.g., subsequent to the "present" signal value). In operation 540, the processing logic determines a subsequent signal value (e.g., ALP). i+1 ) as the subsequent first filtered signal value (Bessel) i+1 ) minus the corresponding subsequent second filtered value (Stored2) plus the current signal value (Stored1 or ALP) i In operation 545, the processing logic activates the memory marker to indicate that the subsequent signal value (ALP) i+1) has been stored, e.g., as a new Stored1 value. In this way, the processing logic can iterate through filtered values and store immediate previous outputs of the first and second filtered values.
[0049] Fig. Figure 6 is a schematic block diagram representing a recursive filter 600 according to some embodiments. In various embodiments, the recursive filter 600 is mathematically described as yk=∑i=0mbi⋅xk−i+∑i=1nai⋅yk−i represented, where at least one output (y) k - y k-n ), e.g., previously filtered signal values and input together with one or more new inputs (x k - x k-m ), e.g., unfiltered signal values, is / are used. The summing block in the middle indicates, at a general level, how the one or more outputs are combined into the current output (y). k) of the recursive filter 600. In various embodiments, the inputs and outputs therefore retain maximum flexibility in value and can change during the recursive iteration through the recursive filter 600 in order to generate filtered outputs of the input signal value(s).
[0050] Fig. Figure 7 is a block representation of an exemplary recurrent neural network (RNN) 700 according to some embodiments, which can be trained to model the recursive filter 600. In various embodiments, the RNN 700 acts on one or more input values 705, processes the one or more inputs 705 through a set of hidden layers 710, and produces one or more outputs 760. The set of hidden layers 710 can, for example, represent a neuron of the RNN 700. Although the RNN 700 is of Fig. Figure 7 illustrates the modeling of a recursive filter with m of three (“3”) previously unfiltered signal values and n of three (“3”) previously filtered signal values. This can be modified (made smaller or larger) to model recursive filters from different measured inputs. It has been shown that increasing the values of m and n does not significantly improve the results.
[0051] In at least some embodiments, the hidden layers 710 comprise registers 715 that detect and hold the input values 705 (e.g., whether "0" or "1"), a weight (w) applied to the respective input values 705, a summer 725 that combines the weighted input values, and an identity activation function 730 that decides an intermediate output value from the set of hidden layers 710 to be further processed, e.g., by an output layer 740. In some embodiments, the intermediate output value is fed back into an input of the set of hidden layers 710 (see path 735) to become another weighted input, which is combined by the summer 725, thus providing recursive feedback aspects of the recursive filter 600.In some embodiments, the intermediate output value, which is fed back into the set of hidden layers 710, is first multiplied before being weighted. For example, the intermediate output value may be multiplied as a 1:2 multiplication, a 1:3 multiplication, or the like before applying a weight 720. In some embodiments, a scalar value (e.g., a "b" value) is also optionally combined with the other weighted input values by the summer 725.
[0052] The output layer 740 can include a further weight 742, which is applied to the intermediate output value, a summer 744, which combines the optional scalar value (e.g., the "b" value) into a weighted intermediate output value, followed by a second activation layer 746, which generates a final output value 760 for the RNN 700. If the RNN 700 is trained over time, the final output value 760 can be updated depending on how the proximity distance changes. In this way, the logic 112 can use the RNN 700 (e.g., by training the RNN 700) to automatically configure the ALP filter 205 to use variably different filter parameters depending on recent proximity distance detection conditions in order to maximize the SNR of the proximity distance value.
[0053] For example, with applicability to earlier figures, according to some embodiments, the logic 112 models the recursive filter 600, which includes at least the pair of LPFs (e.g., the first LPF 207 and the second LPF 209), using a recurrent neural network (RNN) model, such as the RNN 700. In these embodiments, the processing logic outputs an existing unfiltered signal value (e.g., x). k ) and zero or more previous unfiltered signal values (e.g., one of x k-1 up to x k-m The variables stored in memory are fed into the RNN model. In these embodiments, the processing logic also inputs one or more outputs (e.g., one of y). k up to y k-n) an identity activation function of the RNN model into the RNN model. In these embodiments, the processing logic trains the RNN model to fine-tune at least one parameter of the recursive filter 600, for example, to maximize the signal-to-noise ratio (SNR) of the proximity distance. Fig. Section 9 will discuss at least one tunable parameter, but others are conceivable.
[0054] Fig. Figure 8 is a flowchart of a method 800 for object detection using the ALP filter 205 and for optionally training the RNN according to various embodiments. The method 800 can be performed by processing logic that may include hardware (e.g., processing device, switching technology, purpose-built logic, programmable logic, microcode, hardware of a device, integrated circuit, etc.), software (e.g., instructions running or executed on a processing device), or a combination thereof. In some embodiments, the method 800 is performed by the wireless device 100, which includes the processing device 110 and / or the host processor 105 ( Fig. 1) Although shown in a specific sequence or order, the order of the processes can be modified unless otherwise specified. The illustrated embodiments should be understood as examples only, and the illustrated processes can be performed in a different order, and some processes can be performed in parallel. Additionally, one or more processes may be omitted in different embodiments. Therefore, not all processes are required in every embodiment. Other process flows are possible.
[0055] In Operation 810, the processing logic retrieves stored signal values, such as the raw data signal values discussed earlier. These raw data signal values can represent sampled capacitive detection data from a capacitive sensor over time, associated with a proximity distance to an object, such as a human finger or part.
[0056] In operation 820, the processing logic determines whether the absolute amplitude difference between a given signal value (i) and a signal value (ij) detected from a set immediately earlier is greater than a threshold. As indicated, j can be selected to be one, two, or three, primarily to keep the "immediately earlier detected signal values" up-to-date, but it is conceivable that j could also extend to four or five.
[0057] In operation 830, the processing logic, in response to the determination in operation 820 that the absolute amplitude difference between the current signal value and a signal value detected by the set immediately earlier is greater than the threshold, bypasses the filtering of the current signal value (e.g., RawALP). i = RawData iAs discussed, bypass filters can specify that the signal values are not filtered and are simply passed to the comparator set 225 ( Fig. 2).
[0058] In operation 840, the processing logic determines whether any stored signal values remain to be processed. If any signal values remain, procedure 800 loops back to operation 810 to re-execute the operations of procedure 800. Otherwise, the procedure terminates the signal filtering for the stored signal values.
[0059] In operation 850, the processing logic, in response to the determination in operation 820 that the absolute amplitude difference between the current signal value and a signal value detected by the set immediately earlier is less than or equal to the threshold, trains the RNN 700 to optimize the recursive filter 600. As with respect to Fig. As discussed in section 7, the optimization of the recursive filter involves maximizing the SNR of the proximity distance values output by the recursive filter 600 over time. In some embodiments, the RNN is initialized with the last bypassed signal values received by the ALP filter 205, as performed in operation 830.
[0060] Fig.Figure 9 is a graph illustrating an example of RNN model training as part of implementing precise object proximity detection according to some embodiments. An upper portion 910 of the graph illustrates an example of a SAR signal and SNR for different proximity distances, generally starting at 16 millimeters (mm) near a 3.2 SAR signal count down to 1 mm at a 5.5 SAR signal count. With such data, the SNR can be calculated for each step of a proximity distance change (e.g., 16 mm to 15 mm, 15 mm to 14 mm, etc.). In some embodiments, the noise in each proximity detection range can also be calculated, and then a signal size difference (e.g., between 15 and 16 mm) can be calculated. From these calculations, the SNR can be determined for different proximity detection distances and for each proximity distance change.Furthermore, using these calculations, the ALP filter 205 can be designed to improve the SNR for long distances (e.g. 12 mm+ or the like) of the capacitive sensor 162 and / or 160.
[0061] A lower portion 920 of the graph illustrates a mapping of flat zones from the data collected in the upper portion 910 of the graph. In some embodiments, the RNN model filters SAR data only when the approach distance does not change, e.g., in these “flat zones.” By collecting data for the “flat zones” and subtracting the average value from each “flat zone,” a signal with varying noise levels close to zero amplitude (“0” amplitude) remains, as illustrated in the first third 922 of the curve in the lower portion 920.
[0062] In at least some embodiments, the RNN 700 filters out signal drift due to temperature changes and other external factors. Accordingly, in these embodiments, a tunable drift parameter (measured in counts / scan) is added to the RNN 700, which is responsible for signal changes based on temperature changes and external factors. A second third 924 of the curve in the lower part 920 is the same as the first third 922, but with the added signal drift, which in this specific exemplary embodiment is 0.3. A final third 926 of the curve in the lower part 920 emulates drift in the opposite direction, e.g., due to opposite temperature changes or opposite external factors. In this way, the RNN 700 emulates a desired output together with this tunable drift parameter, which is incorporated into the trained RNN model.
[0063] In an exemplary embodiment, taken from experiments, Table 1 illustrates SNRs for a step in the approach distance of an object from 16 mm to 15 mm for different RNN configurations when the drift parameter value and 0.3 are selected. As can be seen, the SNR can be maximized at 2.87 with m selected as one ("1") and n selected as two ("2"). Table 1 n 1 2 3 4 m 0 2,18 2,34 2,35 - 1 2,65 2,87 - - 2 2,7 2,69 - - 3 2,57 2,66 0,65 -
[0064] In an exemplary embodiment, taken from experiments, Table 2 illustrates SNRs for a step in the approach distance of an object from 16 mm to 15 mm for different RNN configurations when the drift parameter value and 1.0 are selected. As can be seen, the SNR can be maximized at 1.91 with m selected as one ("1") and n also selected as one ("1"). Table 2 n 1 2 3 4 m 0 1,8 1,83 1,87 - 1 1,91 1,89 - - 2 1,91 1,84 - - 3 1,9 1,4 0,25 -
[0065] It will be clear to a person skilled in the art that at least some embodiments can be implemented without these specific details. In other cases, well-known components, elements, or methods are not described in detail or are presented in a simple block diagram format so as not to unnecessarily complicate the understanding of the subject matter described herein. The specific details set forth below are therefore merely exemplary. Actual implementations may differ from these exemplary details and yet still be provided in the essence and scope of the present embodiments.
[0066] References in the description to "an embodiment," "a single embodiment," "an exemplary embodiment," "some embodiments," and "various embodiments" mean that a specific function, structure, step, operation, or property described in connection with the embodiment(s) is included in at least one single embodiment of the invention. Furthermore, the appearance of the terms "an embodiment," "a single embodiment," "an exemplary embodiment," "some embodiments," and "various embodiments" at different points in the description does not necessarily all refer to the same embodiment(s).
[0067] The description includes references to the accompanying drawings, which form part of the detailed description. The drawings show illustrations in accordance with exemplary embodiments. These embodiments, which may also be referred to herein as "examples," are described in sufficient detail to enable those skilled in the field to carry out the embodiments of the claimed subject matter described herein. The embodiments may be combined, other embodiments may be used, or structural, logical, and electrical modifications may be made without departing from the scope and nature of the claimed subject matter. It is understood that the embodiments described herein are not intended to limit the scope of the claimed subject matter, but rather to enable those skilled in the field to carry out, manufacture, and / or use the claimed subject matter.
[0068] The description includes references to the accompanying drawings, which form part of the detailed description. The drawings show illustrations in accordance with exemplary embodiments. These embodiments, which may also be referred to herein as "examples," are described in sufficient detail to enable those skilled in the field to carry out the embodiments of the claimed subject matter described herein. The embodiments may be combined, other embodiments may be used, or structural, logical, and electrical modifications may be made without departing from the scope and nature of the claimed subject matter. It is understood that the embodiments described herein are not intended to limit the scope of the claimed subject matter, but rather to enable those skilled in the field to carry out, manufacture, and / or use the claimed subject matter.
[0069] Certain embodiments can be implemented as firmware instructions stored on a non-transient, computer-readable medium, such as volatile and / or non-volatile memory. These instructions can be used to program and / or configure one or more devices comprising one or more processors (e.g., CPUs) or equivalents thereof (such as processing cores, processing machines, microcontrollers, and the like), such that when executed by the processor(s) or equivalents thereof, the instructions cause the device(s) to perform the object proximity detection operations described herein. The non-transient, computer-readable storage medium may include, but is not limited to, electromagnetic storage, read-only memory (ROM), random-access memory (RAM), erasable programmable memory (e.g.,EPROM and EEPROM), a flash memory or another non-transient type of medium, already known or subsequently developed, suitable for storing information.
[0070] Although the operations of the circuit(s) and block(s) are shown and described herein in a specific order, in some embodiments the order of operations of each circuit / block may be changed so that certain operations may be performed in reverse order or certain operations may be performed, at least partially, simultaneously and / or in parallel with other operations. In other embodiments, instructions or sub-operations of separate operations may be performed in an intermittent and / or alternating manner.
[0071] In the preceding patent specification, the disclosure was described with reference to specific exemplary embodiments thereof. However, it is obvious that various modifications and changes can be made to these without deviating from the more comprehensive nature and scope of the disclosure described in the accompanying claims. Accordingly, the patent specification and drawings are to be understood as illustrative and not limiting.
Claims
[1] An integrated circuit that includes: a capacitive sensing circuit for receiving signal values associated with a proximity distance to an object; a pair of low-pass filters (LPFs) coupled in parallel with the capacitive sensing circuit, the LPFs including: a first LPF configured with a low filter rate; and a second LPF configured with a high filter rate that is higher than the low filter rate; and Logic coupled to the pair of LPFs, where the logic serves to: Estimating the approach distance based on one or more filtered signal values received from the pair of LPFs; Causing the second LPF to filter the signal values while keeping the approach distance unchanged; Detecting a change in the approach distance that exceeds a threshold; and Causing the first LPF to filter a subsequent signal value received from the capacitive sensing circuit based on detecting the change. [2] The integrated circuit of claim 1, wherein each of the first LPF and the second LPF is an infinite impulse response (IIR) filter. [3] The integrated circuit of claim 1, wherein the low filter rate is zero filtering. [4] The integrated circuit of claim 1, wherein the logic further serves to: Estimate that the approach distance has fallen below the threshold; and Causing the second LPF to re-filter the signal values received from the capacitive sensing circuit. [5] The integrated circuit of claim 1, further including an antenna coupled to the capacitive sensing circuit, the antenna configured to act as a capacitor for capacitive sensing. [6] The integrated circuit of claim 1, wherein the logic includes: a baseliner circuit coupled to the pair of LPFs, the baseliner circuit operable to determine at least one baseline signal value of the one or more filtered signal values; a mixer for generating difference signal values by removing the at least one baseline signal value from the one or more filtered signal values; and a set of comparators coupled to the mixer, the set of comparators being operable to determine the approach distance by comparing a magnitude of the difference signal values with a set of threshold signal levels. [7] The integrated circuit of claim 1, wherein the logic further serves to: Modeling a recursive filter comprising at least the pair of LPFs using a recurrent neural network (RNN) model; Inputting, into the RNN model, a present unfiltered signal value and zero or more previous unfiltered signal values stored in memory; Inputting, into the RNN model, one or more outputs of an identity activation function of the RNN model; and Training the RNN model to tune at least one parameter of the recursive filter, for example, to maximize a signal-to-noise ratio (SNR) of the approach distance. [8] A procedure that includes: Causing a capacitive sensing circuit to scan for signal values received across a sensing capacitor of a capacitive sensing system, the signal values associated with a proximity distance to an object; Determining, by means of processing logic of the capacitive sensing system, whether an absolute amplitude difference between a present signal value and one of a set of immediately previously detected signal values is greater than a threshold value; In response to the absolute amplitude difference being greater than the threshold, bypassing the filtering of the present signal value to pass an unfiltered present signal value; and Using the unfiltered present signal value together with one or more filtered signal values to track the approach distance to the object. [9] A method according to claim 8, further comprising, after causing the filtering to be bypassed: Determining whether an amplitude of the present signal value is greater than that of one of the set of immediately previously detected signal values; activating an enabling positive indicator in response to the amplitude of the present signal value being greater than that of one of the set of immediately previously detected signal values; and Enabling a negative enabling indicator in response to the amplitude of the present signal value being less than or equal to that of one of the set of immediately previously detected signal values. [10] The method of claim 8, wherein, in response to the absolute amplitude difference being less than or equal to the threshold, the method further comprises: Determining that an enabling positive indicator has been made effective; Determining that an amplitude of the present signal value is greater than that of an immediately previously detected signal value; and Bypass the filtering of the present signal value. [11] The method of claim 8, wherein, in response to the absolute amplitude difference being less than or equal to the threshold, the method further comprises: Determining that an enabling positive indicator has been made effective; Determining that an amplitude of the present signal value is less than or equal to that of an immediately previously detected signal value; and Initiate filtering of the present signal value. [12] The method of claim 8, wherein, in response to the absolute amplitude difference being less than or equal to the threshold, the method further comprises: Determining that an enabling positive indicator has not been made effective; Determining that an enabling negative indicator has been made effective; Determining that an amplitude of the present signal value is smaller than that of an immediately previously detected signal value; and Bypass the filtering of the present signal value. [13] The method of claim 8, wherein, in response to the absolute amplitude difference being less than or equal to the threshold, the method further comprises: Determining that an enabling positive indicator has not been made effective; Determining that an enabling negative indicator has been made effective; Determining that an amplitude of the present signal value is greater than or equal to that of an immediately previously detected signal value; and Initiate filtering of the present signal value. [14] The method of claim 8, wherein, in response to the absolute amplitude difference being less than or equal to the threshold, the method further comprises: Determining that an enabling positive indicator has not been made effective; Determine that an enabling negative indicator has not been made effective; and Initiate filtering of the present signal value. [15] The method of claim 8, wherein, in response to the absolute amplitude difference being less than or equal to the threshold, the method further comprises: Modeling a recursive filter comprising one or more low-pass filters (LPFs) using a recurrent neural network (RNN) model; Inputting into the RNN model an existing unfiltered signal value and zero or more previous unfiltered signal values stored in memory; Inputting, into the recursive filter, one or more outputs of an identity activation function of the RNN model; and Training the RNN model to tune at least one parameter of the recursive filter, for example, to maximize a signal-to-noise ratio (SNR) of the approach distance. [16] A procedure that includes: Causing a capacitive sensing circuit to scan for signal values received across a sensing capacitor of a capacitive sensing system, the signal values associated with a proximity distance to an object; Filtering the signal values using a second-order Bessel filter to generate first filtered signal values; Filtering the signal values using an infinite impulse response (IIR) filter to generate second filtered signal values; Select, for output signal values, between the respective first and second filtered values depending on whether an absolute amplitude difference between each first filtered signal value and a corresponding second filtered signal value is less than a threshold value; and Use the output signal values to track the proximity distance to the object. [17] The method of claim 16, further comprising: Determining that the absolute amplitude difference between a first filtered signal value and the corresponding second filtered signal value is greater than or equal to the threshold value; Determining a present signal value as the first filtered signal value minus the corresponding second filtered value plus an immediately previous signal value; and Enabling a memory flag to indicate that the current signal value has been stored. [18] A method according to claim 16, further comprising: Determining that the absolute amplitude difference between a first filtered signal value and the corresponding second filtered signal value is less than the threshold value; determining that a memory flag is enabled to indicate that an immediately previous signal value is stored; Retrieve the immediately previous signal value; deactivate the memory flag; Determining a present signal value as the first filtered signal value minus the corresponding second filtered signal value plus the immediately previous signal value; and Save the corresponding second filtered value. [19] A method according to claim 18, further comprising: Determining that the absolute amplitude difference between a subsequent first filtered signal value and a corresponding subsequent second filtered signal value is greater than or equal to the threshold value; Determining a subsequent signal value as the subsequent first filtered signal value minus the corresponding subsequent second filtered value plus the present signal value; and Enabling the memory flag to indicate that the subsequent signal value has been stored. [20] A method according to claim 16, further comprising: Determining that the absolute amplitude difference between a first filtered signal value and the corresponding second filtered signal value is less than the threshold value; determining that a memory flag is disabled to indicate that an immediately previous signal value is not stored; Determining a present signal value as the first filtered signal value minus the corresponding second filtered signal value plus the immediately previous signal value; and Save the corresponding second filtered value.