System and method for detecting signal extremums

By using predefined thresholds and circuit systems to identify local extrema in physiological signals, the problem of accuracy in extrema detection under noise interference is solved, and efficient extrema identification and storage are achieved.

CN121532115APending Publication Date: 2026-02-13BOSTON SCI NEUROMODULATION CORP
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202480047147.8
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2023-07-14
Filing Date
2024-07-09
Publication Date
2026-02-13

AI Technical Summary

Technical Problem

In existing technologies, there are accuracy problems in detecting extreme values ​​(such as local maxima and local minima) in signals, especially in complex physiological signals where noise interference is severe, making it difficult to effectively distinguish between true extreme values ​​and noise in the signal.

Method used

At least one predefined threshold is used to identify signal fluctuations. Local extrema in the signal are identified and recorded through a data acquisition circuit, a local extremum detection circuit, a difference monitoring circuit, and an extremum data recorder circuit. Threshold comparison and storage are performed using a comparator circuit, and the influence of noise is reduced by combining recursive averaging technology.

Benefits of technology

It improves the accuracy and efficiency of signal extremum detection, reduces noise interference, and enables efficient identification and storage of local extrema.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121532115A_ABST
    Figure CN121532115A_ABST
Patent Text Reader

Abstract

A system may include a data acquisition circuit, a local extremum detection circuit, a difference monitoring circuit, a comparator circuit, and an extremum data logger circuit. The data acquisition circuit may be configured to access a series of data samples from the sensor signal. The local extremum detection circuit may be configured to find a local extremum in a series of data samples. The difference monitoring circuit may be configured to determine a difference between a local extremum and a series of data samples following and exiting from the local extremum for a first direction. A comparator circuit may be configured to compare the difference to a predefined threshold. The extremum data logger circuit may be configured to write the extremum data to the storage device when the difference exceeds a predefined threshold.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Cross-reference to related applications

[0002] This application claims the benefit of U.S. Provisional Application No. 63 / 526,950, filed July 14, 2023, which is incorporated herein by reference in its entirety. Technical Field

[0003] This document generally relates to medical systems, and more specifically, but not in a restrictive manner, to systems, devices, and methods for detecting extreme values ​​in signals, such as local maxima and / or minima in sensed physiological signals. Background Technology

[0004] Signals can be analyzed to evaluate and characterize systems. Signal features such as local extrema (e.g., minimum and maximum values) can be used to derive information about the system. As an example, and not a limitation, physiological signals can be used to assess patients. For instance, a patient's state can be sensed by detecting one or more sensed signals. The determined patient state can be used to trigger the initiation, pausing, or alteration of treatment. The detected signals can closely correspond to the expected effects of treatment, allowing information from the detected window to be used to provide closed-loop control of stimulation or to evaluate the efficacy of different stimulation programs. As an example, and not a limitation, neural stimulation has been proposed as a treatment for a variety of conditions. Generally, neural stimulation and neural modulation are used interchangeably to describe excitatory stimuli that elicit action potentials, as well as inhibitory and other effects. Examples of neural modulation include spinal cord stimulation (SCS), deep brain stimulation (DBS), peripheral nerve stimulation (PNS), and functional electrical stimulation (FES). Neural stimulation systems can deliver therapy based on sensed physiological signals.

[0005] Sensed physiological signals, such as, but not limited to, can have complex morphologies. Furthermore, noise can increase the complexity of the signal. Some examples of physiological signals with complex morphologies include local field potentials and evoked compound action potentials (ECAPs) and evoked resonant neural activity (ERNAs). Other examples of sensed physiological signals can include cardiac activity (e.g., electrocardiography (ECG)), muscle activity (e.g., electromyography (EMG)), brain activity (e.g., electroencephalography (EEG)), electroneuronography (ENOG)), and galvanic skin responses (GSR). Other examples of sensed physiological signals include impedance (e.g., respiratory sensor / transthoracic impedance) or motion (e.g., motion detected using an accelerometer or camera). This motion can be directed at the whole person or at a part of the patient, such as limb movement, head movement, or eye movement.

[0006] Extreme values ​​in a signal, including peaks (also known as local maxima) and valleys (also known as local minima), can contain useful information. However, there are challenges associated with accurately detecting extreme values ​​in a signal. For example, a detected extreme value should correspond to multiple extreme values ​​expected to be found within the sampling window size. Furthermore, noise may be present in the signal. Therefore, some fluctuations in the signal should be ignored and should not be classified as local extrema. Summary of the Invention

[0007] As an example and not a limitation, the various embodiments provided herein use at least one threshold to ignore some signal fluctuations and classify other signal fluctuations as local extrema.

[0008] Examples of such systems (e.g., Example 1) may include a data acquisition circuit, a local extremum detection circuit, a difference monitoring circuit, a comparator circuit, and an extremum data logger circuit. The data acquisition circuit may be configured to access a series of data samples from sensor signals. The local extremum detection circuit may be configured to identify local extrema within the series of data samples. A local extremum is a data sample in which at least one data sample immediately preceding the local extremum approaches from a first direction, and at least one data sample immediately following the local extremum recedes from the local extremum relative to the first direction. The difference monitoring circuit may be configured to determine the difference between the local extremum and a series of data samples following the local extremum and receding from the local extremum relative to the first direction. The comparator circuit may be configured to compare the difference with a predefined threshold. The extremum data logger circuit may be configured to write extremum data to a storage device when the difference exceeds the predefined threshold.

[0009] In Example 2, the subject of Example 1 may optionally be configured to also include a sensor configured to sense biometric parameters from a patient and provide sensor signals, and a sensor signal sampler configured to sample the sensor signals to provide a series of data samples.

[0010] In Example 3, the subject of Example 2 can optionally be configured such that the data acquisition circuitry is configured to access the data sample stream.

[0011] In Example 4, any one or more of the subjects in Examples 2-3 may optionally be configured to also include a stimulator configured to deliver electrical stimulation. Data acquisition circuitry may be configured to use sensors to sense the response to the electrical stimulation.

[0012] In Example 5, the subject of Example 4 can optionally be configured such that the data acquisition circuit is configured to access sample data within a window after a stimulation pulse and is timed to avoid stimulation artifacts and capture evoked potentials from the delivered electrical stimulation.

[0013] In Example 6, any one or more of the subjects in Examples 2-5 may optionally be configured such that the sensor includes an evoked compound action potential (ECAP) sensor, a local field potential (LFP) sensor, an evoked resonant neural activity (ERNA) sensor, or a cardiac activity sensor.

[0014] In Example 7, any one or more of the topics in Examples 1-6 can optionally be configured such that the local extremum detection circuit is configured to identify local extrema by determining potential extrema using data points in a series of sample data, and updating the potential extrema when the difference does not reach a predefined threshold and subsequent data points in the series of sample data are more extreme. This potential extremum may be referred to as a candidate extremum, which is classified as a local extremum when the difference reaches the threshold.

[0015] In Example 8, any one or more of the topics in Examples 1-7 can be optionally configured such that when a local extremum is a local maximum, a predefined threshold is a predefined local maximum threshold, a series of sample data points immediately following the local maximum are less than the local maximum, and when a series of sample data points are less than the local maximum by at least the predefined local maximum threshold, the local maximum data is written to the storage device.

[0016] In Example 9, any one or more of the topics in Examples 1-8 can be optionally configured such that when a local extremum is a local minimum, a predefined threshold is a predefined local minimum threshold, a series of sample data points immediately following the local minimum are greater than the local minimum, and when a series of sample data points are greater than the local minimum by the predefined local minimum threshold, the local minimum data is written to the storage device.

[0017] In Example 10, any one or more of the subjects in Examples 1-9 may optionally be configured such that the storage device includes a First In First Out (FIFO) storage device, and the extreme value data logger circuitry is configured to write extreme value data to the storage device by writing extreme value data to the FIFO and then from the FIFO to permanent memory.

[0018] In Example 11, any one or more of the topics in Examples 1-10 can optionally be configured such that the local extremum detection circuit is further configured to perform recursive averaging to reduce noise when finding local extrema.

[0019] In Example 12, any one or more of the topics in Examples 1-11 may optionally be configured to further include a medical device programmer with a user interface configured to receive predefined thresholds.

[0020] In Example 13, any one or more of the topics in Examples 1-12 may optionally be configured such that the extreme data written to the storage device includes at least one of the following: the value for the extreme data; or the length or amplitude of a chord between consecutive local extremes.

[0021] In Example 14, any one or more of the topics in Examples 1-13 may optionally be configured such that the comparator circuitry is further configured to compare local extrema with expected extrema to provide a confidence metric for extremum data written to the storage device.

[0022] In Example 15, any one or more of the subjects in Examples 1-14 may optionally be configured such that the local extremum detection circuit, the difference monitoring circuit, the comparator circuit, and the extremum data recorder circuit are configured to operate on each of the multiple local extrema in a series of sample data points.

[0023] Example 16 includes topics such as methods, means for performing actions, machine-readable media including instructions that cause a machine to perform actions when executed by a machine, or means for performing actions. These topics may include: accessing a series of data samples from sensor signals; identifying local extrema in the series of data samples, wherein at least one data sample immediately preceding the local extrema approaches the local extrema from a first direction, and at least one data sample immediately following the local extrema recedes from the local extrema from the local extrema relative to the first direction; determining the difference between the local extrema and a series of data samples following the local extrema and receding from the local extrema from the local extrema relative to the first direction; comparing the difference with a predefined threshold; and writing the extrema data to a storage device when the difference exceeds the predefined threshold.

[0024] In Example 17, the subject matter of Example 16 may optionally be configured to further include using sensors to sense biometric parameters from a patient and provide sensor signals, as well as sampling the sensor signals to provide a series of data samples.

[0025] In Example 18, any one or more of the topics in Examples 16-17 can optionally be configured to make the series of data samples accessible from the data sample stream.

[0026] In Example 19, any one or more of the subjects in Examples 16-18 may optionally be configured to further include delivering electrical stimulation to a patient and sensing the response to the electrical stimulation by sensing bioparameters.

[0027] In Example 20, the subject of Example 19 can optionally be configured such that the access sample data sequence includes sample data within an access window after the stimulus pulse, and is timed to avoid stimulus artifacts and capture evoked potentials from the delivered electrical stimulation.

[0028] In Example 21, any one or more of the subjects in Examples 17-20 may optionally be configured such that the sensor includes an evoked compound action potential (ECAP) sensor, a local field potential (LFP) sensor, an evoked resonant neural activity (ERNA) sensor, or a cardiac activity sensor.

[0029] In Example 22, any one or more of the topics in Examples 16-21 can optionally be configured such that finding local extrema involves determining potential extrema using data points in a series of sample data and updating the potential extrema when the difference does not reach a predefined threshold and subsequent data points in the series of sample data are more extreme.

[0030] In Example 23, any one or more of the topics in Examples 16-22 can be optionally configured such that when a local extremum is a local maximum, a predefined threshold is a predefined local maximum threshold, a series of sample data points immediately following the local maximum are less than the local maximum, and when a series of sample data points are less than the local maximum by at least the predefined local maximum threshold, the local maximum data is written to the storage device.

[0031] In Example 24, any one or more of the topics in Examples 16-23 can be optionally configured such that when a local extremum is a local minimum, a predefined threshold is a predefined local minimum threshold, a series of sample data points immediately following the local minimum are greater than the local minimum, and when a series of sample data points are greater than the local minimum by the predefined local minimum threshold, the local minimum data is written to the storage device.

[0032] In Example 25, any one or more of the subjects in Examples 16-24 may optionally be configured such that the memory includes a first-in-first-out (FIFO) storage device, and writing extreme value data to the storage device includes writing the extreme value data to the FIFO and then writing it from the FIFO to permanent memory.

[0033] In Example 26, any one or more of the topics in Examples 16-25 may optionally be configured to further include performing recursive averaging to reduce noise when finding local extrema.

[0034] In Example 27, any one or more of the topics in Examples 16-26 may optionally be configured to further include receiving user programming via a medical device programmer to set a predefined threshold.

[0035] In Example 28, any one or more of the topics in Examples 16-27 may optionally be configured such that the extreme data written to the storage device includes at least one of the following: the value for the extreme data; or the length or amplitude of a chord between consecutive local extremes.

[0036] In Example 29, any one or more of the topics in Examples 16-28 may optionally be configured to also include comparing local extrema with expected extrema to provide a confidence metric for extremum data written to the storage device.

[0037] In Example 30, any one or more of the topics in Examples 16-29 can optionally be configured to perform find, determine, compare, and write for each of the multiple local extrema in a series of sample data points.

[0038] Example 31 includes a subject (such as a non-transitory machine-readable medium including instructions that, when executed by a machine, cause the machine to perform a method for identifying the effective placement of at least one lead having multiple electrodes). The machine-executed method may include: accessing a series of data samples from a sensor signal; identifying local extrema in the series of data samples, wherein at least one data sample immediately preceding the local extrema approaches the local extrema from a first direction, and at least one data sample immediately following the local extrema recedes from the local extrema from the local extrema relative to the first direction; determining a difference between the local extrema and a series of data samples following the local extrema and receding from the local extrema from the local extrema relative to the first direction; comparing the difference to a predefined threshold; and writing the extrema data to a storage device if the difference exceeds the predefined threshold. In additional examples, the subject of Examples 17-30 may be machine-executed.

[0039] This summary is an overview of some of the teachings of this application and is not intended to be an exclusive or exhaustive treatment of the subject matter. Further details regarding the subject matter are found in the detailed description and the appended claims. Other aspects of this disclosure will be apparent to those skilled in the art upon reading and understanding the following detailed description and examining the accompanying drawings, which form a part of it, and each of the drawings should not be construed as limiting. The scope of this disclosure is defined by the appended claims and their legal equivalents. Attached Figure Description

[0040] Various embodiments are illustrated by way of example in the accompanying drawings. These embodiments are exemplary and are not intended to be exhaustive or exclusive embodiments of the subject matter.

[0041] Figure 1 An embodiment of the neural modulation system is shown by way of example rather than limitation.

[0042] Figure 2 Embodiments of modulation devices are shown, such as those that can be used in modulation devices. Figure 1 The modulation device implemented in the neural modulation system.

[0043] Figure 3 An embodiment of a programming system, such as a programming device, is shown, which can be implemented as... Figure 1 Programming devices in neural modulation systems.

[0044] Figure 4 An implantable neural modulation system and a portion of the environment in which the system can be used are illustrated by way of example.

[0045] Figure 5 An example of an implementation of the SCS system, also known as a Spinal Cord Modulation (SCM) system, is shown.

[0046] Figure 6 Examples of sensed signals are shown by way of illustration rather than limitation, and the application of thresholds to which fluctuations are ignored and which fluctuations are considered to be extreme values ​​(e.g., local minimum or local maximum).

[0047] Figure 7 The data that can be stored for extreme values ​​is shown through examples rather than restrictions.

[0048] Figure 8 A method for evaluating sample data of sensed signals to find local extrema is shown by way of example rather than limitation.

[0049] Figure 9 More specific examples of sample data used to evaluate signals to find local minima and local maxima are shown by way of example rather than limitation.

[0050] Figure 10 A state diagram for identifying and capturing local minimum and local maximum data in sensed signals is shown by way of example rather than limitation.

[0051] Figure 11 A system for evaluating data samples from sensed signals to identify and capture local extremum data is shown by way of example rather than limitation.

[0052] Figure 12 A system for capturing extreme data from a data sample is shown by way of example rather than limitation.

[0053] Figure 13A and Figure 13B An example of recursive averaging of extreme data is shown by way of example rather than limitation. Detailed Implementation

[0054] The following detailed description of this subject matter takes into account the accompanying drawings, which illustrate, by way of example, specific aspects and embodiments in which the subject matter may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the subject matter. Other embodiments may be utilized and structural, logical, and electrical changes may be made without departing from the scope of the subject matter. References to “a,” “an,” or “various” embodiments in this disclosure are not necessarily references to the same embodiment, and such references contemplate more than one embodiment. Therefore, the following detailed description is not restrictive and its scope is defined only by the appended claims and the full scope of their legal equivalents.

[0055] This subject matter provides systems, apparatus, and methods for automatically identifying local minima and / or local maxima in a signal using at least one predefined threshold. The threshold can be used to classify fluctuations within a signal to determine whether a given fluctuation is ignored as a small or insignificant feature (such as noise), or whether a given fluctuation should be considered an extremum (e.g., a local maxima or local minimum) within the signal. Signal data corresponding to the extrema can be stored in a FIFO, and as the FIFO fills, the signal data can be stored in other memory (e.g., non-volatile such as permanent memory) for later analysis or immediate use. Some embodiments may use a recursive average of the sensed data to provide additional resistance to noise. The benefits of this subject matter, compared to a processor processing each sample in the sample data, include, but are not limited to, a more power-efficient process for detecting peaks and troughs in a signal.

[0056] Figure 1Embodiments of a neural modulation system are illustrated by way of example, not limitation. The illustrated system 100 includes electrode contacts 101 (which may also be simply referred to as electrodes), a modulation device 102, and a programming system such as a programming device 103. The programming system may include multiple devices. The electrode contacts 101 are configured to be placed on or near one or more neural targets in a patient. The modulation device 102 is configured to be electrically connected to the electrode contacts 101 and to deliver neurally modulated energy, such as in the form of electrical pulses, to one or more neural targets through the electrode contacts 101. The delivery of neural modulation is controlled by using multiple modulation parameters. The modulation parameters may specify an electrical waveform (e.g., a pulse or pulse pattern or other waveform shape) and the selection of the electrode contacts through which the electrical waveform is delivered. In various embodiments, at least some of the multiple modulation parameters may be programmable by a user, such as a physician or other caregiver. The programming device 103 provides the user with access to user-programmable parameters. In various embodiments, the programming device 103 is configured to be communicatively coupled to the modulation device via a wired or wireless link. In various embodiments, the programming device 103 includes a graphical user interface (GUI) 104 that allows a user to set and / or adjust the values ​​of user-programmable modulation parameters.

[0057] Some embodiments of the programming and / or modulation devices can access the sensed data samples. Programming and / or control of the treatment can be based on the sensed data samples (e.g., extreme values ​​within the sensed data samples). The sensed data samples can be based on at least some sensed electrical signals from the electrodes 101.

[0058] Figure 2 An embodiment of modulation device 202 is shown, such as that which can be used in modulation devices 202. Figure 1The modulation device 202 is implemented in the neural modulation system 100. The modulation device 202 may also be referred to as a neurostimulator. Various embodiments of the neurostimulator can be used to deliver different types of neurotherapy, such as, but not limited to, SCS, DBS, PNS, or FES therapy. An illustrated embodiment of the modulation device 202 includes a modulation output circuit 205 and a modulation control circuit 206. Those skilled in the art will understand that the neural modulation system may include additional components such as sensing circuitry, telemetry circuitry, and power for feedback control of patient monitoring and / or treatment. Some embodiments of the modulation device 202 may include storage devices (e.g., FIFO and / or other storage devices) for storing sensed data samples and / or local extremum data for the signal. The modulation output circuit 205 generates and delivers neural modulation. Neural modulation pulses are provided herein as examples. However, the subject matter is not limited to pulses but may include other electrical waveforms (e.g., waveforms with different waveform shapes, and waveforms with various pulse patterns). The modulation control circuit 206 controls the delivery of the neural modulation pulses using multiple modulation parameters. Lead system 207 includes one or more leads, each configured to be electrically connected to modulation device 202 and a plurality of electrode contacts 201-1 to 201-N distributed in an electrode contact arrangement using the one or more leads. Each lead may have an electrode contact array consisting of two or more electrode contacts (which may also be referred to as electrodes). Multiple leads can provide multiple electrode contact arrays to provide an electrode contact arrangement. Each electrode contact is a single conductive contact that provides an electrical interface between modulation output circuit 205 and patient tissue, where N ≥ 2. Neural modulation pulses are each delivered from modulation output circuit 205 through a set of electrode contacts selected from electrode contacts 201-1 to 201-N. The number of leads and the number of electrode contacts on each lead may depend, for example, the distribution of targets for neural modulation and the need to control the electric field distribution at each target. In one embodiment, by way of example and not limitation, the lead system includes two leads, each with eight electrode contacts. Some embodiments may use a lead system including paddle-type leads.

[0059] The actual number and shape of the leads and electrode contacts can vary depending on the intended application. An implantable waveform generator may include a housing for housing electronics and other components. The housing may be made of a conductive, biocompatible material, such as titanium, forming a sealed compartment in which the internal electronics are protected from body tissue and fluids. In some cases, the housing may serve as electrode contacts (e.g., shell electrodes). The waveform generator may include electronic components such as a controller / processor (e.g., a microcontroller), memory, a battery, telemetry circuitry, monitoring circuitry, modulation output circuitry, and other suitable components known to those skilled in the art. The microcontroller executes a suitable program stored in memory to guide and control the neural modulation performed by the waveform generator. Electrically modulated energy is provided to the electrode contacts according to a set of modulation parameters programmed into the pulse generator. By way of example, but not limitation, the electrically modulated energy may be in the form of a pulsed electrical waveform. These modulation parameters may include electrode contact combinations that define which electrode contacts are activated as anode (positive), cathode (negative), and off (zero), the percentage of modulation energy allocated to each electrode contact (subdividing the electrode contact configuration), and electrical pulse parameters that define the pulse amplitude (measured in milliamperes or volts, depending on whether the pulse generator supplies a constant current or a constant voltage to the electrode contact array), pulse width (measured in microseconds), pulse rate (measured in pulses per second), and burst rate (measured as modulation on duration X and modulation off duration Y). Electrode contacts selected for transmitting or receiving electrical energy are referred to herein as “active,” while electrode contacts not selected for transmitting or receiving electrical energy are referred to herein as “inactive.”

[0060] Electrical modulation occurs between or within multiple activated electrode contacts, one of which may be a waveform generator. The system may be able to deliver modulated energy to tissue in unipolar or multipolar (e.g., bipolar, tripolar, etc.) modes. Unipolar modulation occurs when a selected lead electrode contact is activated along with the housing of the waveform generator, causing modulated energy to be transferred between the selected electrode contact and the housing. Any of the electrode contacts E1-E16 and the housing electrode contacts may be assigned up to k possible groups or timing “channels.” In one embodiment, k may be equal to four. The timing channels identify which electrode contacts are selected to synchronously sink or pull current to create an electric field in the tissue to be stimulated. The amplitude and polarity of the electrode contacts on the channels may differ. In particular, in any of the k timing channels, the electrode contacts may be selected as positive (anode, sink current), negative (cathode, pull current), or off (no current) polarity. The waveform generator can operate in a mode that delivers electrically modulated energy, which is therapeutically effective and causes the patient to perceive the energy delivery (e.g., therapeutically effective pain relief in the presence of perceived sensory abnormalities), and in a sub-sensory mode that delivers electrically modulated energy, which is therapeutically effective and does not cause the patient to perceive the energy delivery (e.g., therapeutically effective pain relief in the presence of unperceived sensory abnormalities). The waveform generator can also be configured to deliver waveforms or pulses that are not therapeutically effective but are useful for intermittent charge balancing.

[0061] Waveform generators can be configured to individually control the amplitude of the current flowing through each electrode contact. For example, a current generator can be configured to selectively generate individual current-regulated amplitudes from independent current sources for each electrode contact. In some embodiments, the pulse generator can have a voltage-regulated output. While individually programmable electrode contact amplitudes are desirable for fine control, a single output source that switches across electrode contacts can also be used, although with less fine control in programming. Neural modulators can be designed with hybrid current and voltage regulation devices.

[0062] Neuromodulation systems can be configured to modulate target tissue in the spine or other neural tissue. The configuration of electrode contacts used to deliver electrical pulses to the target tissue constitutes an electrode contact configuration, wherein the electrode contacts can be selectively programmed to act as anode (positive), cathode (negative), or off (zero). In other words, an electrode contact configuration represents polarity as positive, negative, or zero. Electrode contact configurations can be used to control or alter electrical waveforms. Electrical waveforms can be analog or digital signals. In some embodiments, electrical waveforms include pulses. Pulses can be delivered in a regular, repetitive pattern, or pulses can be delivered using complex, seemingly irregular patterns. Other parameters that can be controlled or altered include the amplitude, pulse width, and rate (or frequency) of the electrical pulses. Each electrode contact configuration, along with the electrical pulse parameters, can be referred to as a "modulation parameter set." Each modulation parameter set, including a detailed current distribution to the electrode contacts (as a percentage cathode current, a percentage anode current, or off), can be stored and combined into a modulation program that can then be used to modulate multiple areas within the patient.

[0063] The number of available electrode contacts, combined with the ability to generate a wide variety of complex electrical waveforms (e.g., pulses), presents clinicians or patients with a vast selection of modulation parameter sets. For example, if a neural modulation system to be programmed has sixteen electrode contacts, millions of modulation parameter sets are available for programming into the system. Furthermore, an SCS system, for instance, can have thirty-two electrode contacts, which exponentially increases the number of modulation parameter sets available for programming. To facilitate such selection, clinicians typically program the modulation parameter sets using computerized programming systems, allowing the determination of optimal modulation parameters based on patient feedback, sensor feedback, or other means, and subsequently programming the desired modulation parameter set.

[0064] Figure 3 An embodiment of a programming system, such as programming device 303, is shown, which can be implemented as... Figure 1Programming device 103 in a neural modulation system. Programming device 303 includes storage device 308, programming control circuitry 309, and graphical user interface (GUI) 304. Programming control circuitry 309 generates multiple modulation parameters controlling the delivery of neural modulation pulses based on the pattern of the neural modulation pulses. In various embodiments, GUI 304 includes any type of presentation device, such as an interactive or non-interactive screen, and any type of user input device that allows a user to program the modulation parameters, such as a touchscreen, keyboard, keypad, touchpad, trackball, joystick, and mouse. Storage device 308 may store, among other things, modulation parameters to be programmed into the modulation device. Some embodiments may store samples of sensed data and / or local extremum data for a signal in storage device 308. Programming device 303 may transmit multiple modulation parameters to the modulation device. In some embodiments, programming device 303 may transmit power to the modulation device. Programming control circuitry 309 may generate multiple modulation parameters. In various embodiments, programming control circuitry 309 may check the values ​​of the multiple modulation parameters against safety rules to limit these values ​​within the constraints of the safety rules.

[0065] In various embodiments, a combination of hardware, software, and firmware can be used to implement neural modulation circuitry, including the various embodiments discussed herein. For example, GUI circuitry, modulation control circuitry, and programmable control circuitry can be implemented using dedicated circuitry configured to perform one or more specific functions or general-purpose circuitry programmed to perform such functions, including the various embodiments discussed herein. Such general-purpose circuitry includes, but is not limited to, microprocessors or portions thereof, microcontrollers or portions thereof, and programmable logic circuitry or portions thereof.

[0066] Figure 4An implantable neural modulation system and portions of an environment in which the system can be used are illustrated by way of example. The system is shown for implantation near the spinal cord. However, the neural modulation system can be configured to modulate other neural targets, including but not limited to SBS, PNS, or FES targets. System 410 includes an implantable system 411, an external system 412, and a telemetry link 413 providing wireless communication between the implantable system 411 and the external system 412. The implantable system is shown as being implanted in a patient. The implantable system 411 includes an implantable modulation device (also referred to as an implantable pulse generator, or IPG) 402, a lead system 407, and electrode contacts 401. The lead system 407 includes one or more leads, each configured to be electrically connected to the modulation device 402 and a plurality of electrode contacts 401 distributed in the one or more leads. In various embodiments, the external system 412 includes one or more external (non-implantable) devices, each external device allowing a user (e.g., a clinician or other caregiver and / or patient) to communicate with the implantable system 411. In some embodiments, external system 412 includes a programming device designed for initialization and adjustment of settings for implantable system 411 by a clinician or other caregiver, and a remote control device designed for use by a patient. For example, the remote control device may allow the patient to turn treatment on and off and / or adjust certain patient-programmable parameters among a plurality of modulation parameters. External system 412 may include personal devices such as telephones and tablets. External systems may include other processing and / or storage devices. Some examples of external devices include device programmers, remote controls, telephones or tablets, local systems (e.g., local computers, computer networks, network attached storage (NAS), or portable data storage devices such as flash drives), or remote systems (e.g., cloud-based systems).

[0067] The neuromodulation lead of the lead system 407 can be placed adjacent to, i.e., resting near or on the dura mater, adjacent to the spinal cord region to be stimulated. For example, the neuromodulation lead can be implanted along the longitudinal axis of the patient's spinal cord. Due to the lack of space near the exit point of the neuromodulation lead from the spine, the implantable modulation device 402 can be implanted in a surgically created pouch, in the abdomen, above the buttocks, or in other locations on the patient's body. Lead extensions can be used to facilitate implantation of the implantable modulation device 402 away from the exit point of the neuromodulation lead.

[0068] Figure 5An embodiment of an SCS system, also known as a spinal cord modulation (SCM) system, is illustrated by way of example. Similar systems with DBS leads can be used to provide a DBS system. An SCS system 514 typically includes one or more (two illustrated) implantable neural modulation leads 515, an electrical waveform generator 516 (such as an implantable pulse generator), an external remote controller (RC) 517, a clinician's programmer (CP) 518, and an external trial modulator (ETM) 519. An IPG is used herein as an example of a waveform generator. However, it is important to note that the waveform generator can be configured to deliver regular, repetitive pulse patterns or complex patterns that appear to be irregular pulse patterns, where the pulses have different amplitudes, pulse widths, pulse intervals, and bursts with different numbers of pulses. It is also important to note that the waveform generator can be configured to deliver electrical waveforms other than pulses. The waveform generator 516 may include pulse generation circuitry that delivers electrically modulated energy to electrode contacts in the form of pulsed electrical waveforms (i.e., a time sequence of electrical pulses) according to a set of modulation parameters. The electrical waveform may include a first phase of a first polarity and a second phase of a second polarity opposite to the first polarity. Nerve tissue can be therapeutically stimulated using both the first and second phases of the electrical waveform. The electrical waveform includes multiple phase intervals, each of which separates a single first phase from a single second phase. The second phase can be used to reduce the accumulated charge from at least one electrode contact caused by the first phase, and the first phase can be used to reduce the accumulated charge from at least one electrode contact caused by the second phase. The waveform generator 516 may be physically connected to a neural modulation lead 515 via one or more percutaneous lead extensions 520, which carries multiple electrode contacts 521. As shown, the neural modulation lead 515 may be a percutaneous lead in which the electrode contacts are arranged in a line along the neural modulation lead. Any suitable number of neural modulation leads may be provided, including only one, as long as the number of electrode contacts is greater than two (including the waveform generator housing used as housing electrode contacts) to allow lateral current conduction. Alternatively, surgical paddle leads may be used instead of one or more of the percutaneous leads.

[0069] The ETM 519 can also be physically connected to the neural modulation lead 515 via a percutaneous lead extension 522 and an external cable 523. The ETM 519 may have waveform generation circuitry similar to that of the waveform generator 516 to deliver electrically modulated energy to the electrode contacts according to a set of modulation parameters. The ETM 519 is a non-implantable device used experimentally after the neural modulation lead 515 has been implanted and before the waveform generator 516 has been implanted to test the responsiveness of the modulation to be provided. The functionality described herein with respect to the waveform generator 516 can also be performed with respect to the ETM 519.

[0070] RC 517 can be used to telemetry control ETM 519 via bidirectional RF communication link 524. RC 517 can also be used to telemetry control waveform generator 516 via bidirectional RF communication link 525. This type of control allows waveform generator 516 to be turned on or off and programmed with different sets of modulation parameters. Waveform generator 516 can also be operated to modify the programmed modulation parameters to actively control the characteristics of the electrically modulated energy output by waveform generator 516. Clinicians can use CP 518 to program modulation parameters into waveform generator 516 and ETM 519 in the operating room and subsequent sessions. Waveform generator 516 can be implantable. Implantable waveform generator 516 and ETM 519 can have [specific features related to] [the specific ... Figure 2 The features discussed in the described modulation device 202 are similar to those of the features discussed in the original text.

[0071] CP 518 can communicate indirectly with waveform generator 516 or ETM 519 via IR communication link 526 or other links through RC 517. CP 518 can also communicate directly with waveform generator 516 or ETM 519 via RF communication link or other links (not shown). Detailed modulation parameters provided by CP 518 for clinicians can also be used to program RC 517, allowing the modulation parameters to be subsequently modified by operating RC 517 in stand-alone mode (i.e., without the assistance of CP 518). Various devices can be used as CP 518. Such devices can include portable devices such as laptops, minicomputers, personal digital assistants (PDAs), tablets, telephones, or remote controls (RC) with extended functionality. Therefore, programming can be performed by executing software instructions contained within CP 518. Alternatively, such programming can be performed using firmware or hardware. In any event, CP 518 can actively control the characteristics of the electrical modulation generated by waveform generator 516 to allow the determination of desired parameters based on patient feedback, sensor feedback, or other feedback, and to subsequently program waveform generator 516 using the desired modulation parameters. To allow the user to perform these functions, CP 518 may include user input devices (e.g., a mouse and keyboard) and a programming display screen housed within a housing. In addition to or in place of a mouse, other directional programming devices may be used, such as a trackball, touchpad, joystick, touchscreen, or directional keys included as part of the keys associated with the keyboard. External devices (e.g., CP) can be programmed to provide a display screen that, among other functions, allows clinicians to select or enter patient profile information (e.g., name, date of birth, patient identifier, physician, diagnosis, and address), enter surgical information (e.g., programming / follow-up, implantation of experimental systems, implantation of waveform generators, implantation of waveform generators and leads, replacement of waveform generators, replacement of waveform generators and leads, replacement or modification of leads, transplantation, etc.), generate a patient pain map, define lead configuration and orientation, initiate and control the electrically modulated energy output from the neuromodulation leads, and select and program the IPG using modulation parameters in both surgical and clinical settings.

[0072] The external charger 527 can be a portable device for percutaneous charging of the waveform generator via a wireless link (such as an inductive link 528). Once the waveform generator has been programmed and its power supply has been charged by the external charger or otherwise supplemented, the waveform generator can operate as programmed in the absence of RC or CP.

[0073] Neural stimulation can be based on sensed physiological signals. Examples of such signals may include, but are not limited to, local field potentials, evoked compound action potentials (ECAPs), evoked resonant neural activity (ERNAs), cardiac activity (e.g., electrocardiogram (ECG)), muscle activity (e.g., electromyography (EMG)), brain activity (e.g., electroencephalogram (EEG), electroneurography (ENOG)), skin conductance response (GSR), impedance, or motion (e.g., motion detected using an accelerometer or camera). For example, signals can be used to program desired neural stimulation parameters and / or to control the timing of treatment (e.g., when to initiate treatment, when to pause treatment, and / or when and / or how to change treatment). Extrema in a signal, including peaks (e.g., also known as local maxima) and troughs (e.g., local minima), can contain useful information. Various embodiments of this subject provide systems and methods for identifying local extrema (e.g., peaks and / or troughs) in a signal (e.g., a series of data samples). These systems and methods can continuously examine local minima and maxima within streaming data or within a time window. Thresholds for identifying extrema can be predefined. For example, the threshold can be entered or controlled by a user or otherwise predefined and stored in a system-accessible manner. Some embodiments may use different thresholds for finding local maxima (peaks) and for finding local minima (valleys). When a local extremum is detected, the extremum information can be stored in a first-in, first-out (FIFO) storage device. When the FIFO is full, the information can be stored in another memory for later analysis or immediate use. Such another memory may be within an implantable device such as a neural modulator, or in an external device such as a device programmer, remote control, telephone or tablet, local system (e.g., a local computer, computer network, network-attached storage device (NAS), or portable data storage device such as a flash drive), or remote system (e.g., a cloud-based system). The memory may be non-volatile memory, such as, but not limited to, permanent memory (non-volatile, low-latency memory that provides fast access to data for the processor). The movement of the signal away from the candidate local extremum is compared with the threshold to determine that the candidate local extremum is classified and written as a local extremum to the storage device (e.g., written to the FIFO). For example, a candidate local extremum has the following characteristics: one or more data samples immediately preceding the candidate local extremum approach it from a first direction, and one or more data samples immediately following the local extremum recede from it in the first direction. The difference between the local extremum and a series of data samples following it and receding from it in the first direction can be determined, compared to a predefined threshold, and the extremum data is written to storage when the difference exceeds the predefined threshold. The threshold can be predefined to effectively filter out small, insignificant peaks and noise. Peak detection can operate within a window or using continuous data.Unrestricted extreme value data can be detected and written to the FIFO as long as the data can be cleared when the FIFO is full. Extreme value data can include values ​​for extreme values ​​(e.g., peaks or valleys); or the length or amplitude of a chord between consecutive local extremes.

[0074] Figure 6 Examples of sensed signals and the application of thresholds to which fluctuations are ignored and which fluctuations are considered extrema (e.g., local minima or local maxima) are illustrated by way of example, not limitation. The illustrated signal 629 includes multiple fluctuations 630A-630G in which the signal changes direction. Each of these fluctuations can be considered a candidate for a local extremum (e.g., a potential local extremum). However, only some fluctuations should be classified as local extrema (631A-631C). Embodiments of this subject use predefined thresholds to provide this classification. For example, the signal movement before fluctuation 630A is greater than threshold 632A, and the signal movement after fluctuation 630A is greater than threshold 632A. Therefore, fluctuation 630A is classified as a local extremum (local maxima or peak) 631A. The signal movement before fluctuation 630B is greater than threshold 632B, but the signal movement after fluctuation 630B is less than threshold 632B, such that fluctuation 630B is not classified as a local extremum. The signal shift before fluctuation 630C is less than the threshold 632B, and the signal shift after fluctuation 630C is less than the threshold 632C, so this fluctuation is not classified as a local extremum. The signal shift before fluctuation 630D is less than the threshold 632C, and the signal shift after fluctuation 630D is less than the threshold 632D, so this fluctuation is not classified as a local extremum. The signal shift after fluctuation 630E is greater than the threshold 632E, but the signal shift before fluctuation 630E is less than the threshold 632D, so this fluctuation is not classified as a local extremum. The signal shift after fluctuation 630F is greater than the threshold 632E, and the signal shift after fluctuation 630F is greater than the threshold 632F, so fluctuation 630F is classified as a local extremum. The signal shift after fluctuation 630G is greater than the threshold 632F, and the signal shift after fluctuation 630G is greater than the threshold 632G, so fluctuation 632G is classified as a local extremum.

[0075] Figure 7 This illustrates, rather than restrictively, the data that can be stored for extreme values. The figure shows signal 729, similar to... Figure 6 The signal 629 in the data has extrema 731A, 731B, and 731C. The data may include values ​​for the extrema 731A, 731B, and 731C. The data may also include the length 733 or amplitude 734 of a chord (e.g., string 735) between consecutive local extrema (e.g., between 731A and 731B).

[0076] Figure 8 A method for evaluating sample data of a sensed signal to identify local extrema is illustrated by way of example, not limitation. The illustrated method may include accessing one or more thresholds at 836 for classifying fluctuations in the signal. These thresholds may be user-programmable or otherwise predefined (e.g., pre-programmed within the system). The method may include accessing a series of data samples from the sensor signal at 837 and identifying and classifying the local extrema at 838. Identifying local extrema may include identifying fluctuations 839 that could be candidate local extrema in the series of sample data, determining the difference between the fluctuation and the series of sample data at 840, comparing the difference to a predefined threshold at 841, and writing the local extrema data for that fluctuation to a FIFO storage device at 842 to indicate that the fluctuation is not merely a candidate but is classified as a local extrema. At least one data sample immediately preceding the fluctuation (local extrema) approaches the local extrema from a first direction, and at least one data sample immediately following the local extrema recedes away from the local extrema from the local extrema in the first direction. The difference between a local extremum and a series of data samples that follow and move away from the local extremum in a first direction is determined, the difference is compared with a predefined threshold, and the extremum data is written to a storage device when the difference exceeds the predefined threshold.

[0077] Figure 9More specific examples of using sample data to evaluate a signal to find local minima and local maxima are shown, rather than as limitations. The left side of the figure shows finding a local minimum, and the right side shows finding a local maximum. Once a local minimum is found, if the signal continues to decline without an intermediate local maximum, the current local minimum can be updated. Similarly, once a local maximum is found, if the signal continues to rise without an intermediate local minimum, the current local maximum can be updated. At 943, fluctuations within the signal are identified as candidate local minima. For example, a previous or subsequent sample or two is greater than the current sample. Other methods can be used to identify fluctuations in the signal. At 944, the difference between the candidate local minimum and subsequent data points in a series of sample data increasing from the local minimum is determined. At 945, this difference is compared to a predefined local minimum threshold. At 946, it is determined whether the distance is greater than the minimum threshold. If not, the process can return to 944 to examine subsequent sample data. If the distance is greater than the minimum threshold, the candidate local minimum is classified as a local minimum at 947 and the candidate local minimum information is written to the FIFO storage device. Subsequent data samples may decrease before the next local maximum is found. In this case, the local minimum is updated based on the lower subsequent data samples. At 948, fluctuations within the signal are identified as candidate local maximums. For example, one or more previous samples and one or more subsequent samples are less than the current sample. Other methods can be used to identify fluctuations in the signal. At 949, the difference between the candidate local maximum and subsequent data points in a series of sample data reduced from the local maximum is determined. At 950, this difference is compared with a predefined local maximum threshold. At 951, it is determined whether the distance is greater than the maximum threshold. If not, the process can return to 949 to check subsequent sample data. If the distance is greater than the maximum threshold, the candidate local maximum is classified as a local maximum at 950 and the candidate local maximum information is written to the FIFO storage device. Subsequent data samples may increase before the next local minimum is found. In this case, the local maximum is updated based on the higher subsequent data samples.

[0078] Figure 10A state diagram for identifying and capturing local minimum and maximum values ​​in sensed signals is shown by way of example, not limitation. In initial state 1053, the system waits for a first data sample. Upon receiving a sample, the system can reset the FIFO storage device and enter orientation state 1054, where the system determines that the sample's orientation has changed. The system can enter upward state 1055 when a subsequent signal sample is higher than the first sample by a threshold, or downward state 1056 when a subsequent signal sample is lower than the first sample by a threshold. When in upward state 1055, if the signal sample is greater than the current local maximum value, the system updates the local maximum value. When the current signal sample is less than the local maximum value by a threshold, the system moves from upward state 1055 to downward state 1056 and writes the local maximum value to the FIFO storage device. When in downward state 1056, if the signal sample is less than the current local minimum value, the system updates the local minimum value. When the current signal sample is less than the local minimum value by a threshold, the system moves from downward state 1056 to upward state 1055 and writes the local minimum value to the FIFO memory. The system can alternate between the upward state 1055 and the downward state 1056 until the system resets to the initial state 1053.

[0079] Figure 11A system for evaluating data samples from sensed signals to identify and capture local extremum data is illustrated by way of example, not limitation. The system may include a stimulator 1157 configured to stimulate a subject, as indicated by the physiological cloud 1158 in the figure. The system may include a sensor 1159 configured to sense physiological signals from the patient 1158. For example, the stimulator 1157 may deliver neurostimulation therapy, such as, but not limited to, SCS, DBS, or PNS therapy. The physiological signals sensed by the sensor 1159 may be used to program the stimulator and / or control the timing of neurostimulation using stimulation parameters. The system may include a sampler 1560 configured to sample the physiological signals sensed by the sensor 1559 to provide a series of data samples 1561, which may be stored in a data sample storage device or streaming storage 1562. The system may include a controller 1563 operably connected to a stimulator 1157 for programming and / or controlling the stimulator, operably connected to a sensor 1559 for controlling sensor operation, operably connected to a sampler 1560 for controlling when and how signals are sampled, and connected to a storage device or stream 1562 for accessing a data sample series 1561. The system may also include an extreme value detection system 1564 operably connected to the controller 1563 and used to detect local maxima and / or local minima in the data sample series. The extreme value detection system 1564 may include: a data acquisition circuit 1565 configured to access a series of data samples from sensor signals; a local extreme value detection circuit 1566 configured to find local extreme values ​​in the series of data samples; a difference monitoring circuit 1567 configured to determine the difference between the local extreme value and a series of data samples that follow and move away from the local extreme value in a first direction; a comparator circuit 1568 configured to compare the difference with a predefined threshold; and an extreme value data logger circuit 1569 configured to write extreme value data to storage device 1570 when the difference exceeds the predefined threshold. Extreme value data (e.g., extreme values, string amplitude, string length, etc.) may first be written to FIFO storage device 1571 and then moved from FIFO storage device 1571 to other storage device 1572 (e.g., when the FIFO storage device is full or nearly full). For example, other storage device 1572 may be a permanent storage device that provides a processing system with fast access to the data stored therein for data analysis and / or data manipulation. The system can manipulate data by controlling the stimulator, modulating the parameters used by the stimulator, and / or providing communication or other alerts to users, clinicians, nurses, and / or equipment representatives.

[0080] Figure 12 A system for capturing extreme values ​​from a data sample is illustrated by way of example, not limitation. The illustrated system can typically correspond to... Figure 12 The diagram illustrates an extreme value detection system 1164 and a storage device 1170. In the illustration, a peak detection system 1264 receives sample data and determines when peaks (maximum and / or minimum values) are identified. One or more thresholds can be used to classify fluctuations as extreme values. The peak detection system 1264 can extract extreme value data from peaks and store the extreme value data in a FIFO storage device 1270. The FIFO storage device 1270 can provide extreme value data and can further provide the system with FIFO status, which can indicate when information should be moved from the FIFO storage device to other storage devices.

[0081] Figure 13A and Figure 13B An example of recursive averaging for extreme data is shown by way of example, not limitation. Recursive averaging can be used with relatively predictable signals, such as ECAP. Similar data epochs can be averaged together to further remove noise. While recursive averaging is useful for predictable / similar signals, it is not suitable for more random data, such as local field potentials. Recursive averaging is unlikely to be used with streaming data signals. Recursive averaging helps filter signal noise from data derived from a signal. The sensed data for the current data epoch 1373 is multiplied by a first constant 1374 to provide a first addend 1375. Filtered data 1376 for a set of previous data epochs (see averaging memory 1377) can be multiplied by a second constant 1378 to provide a second addend 1379. The first addend 1375 and the second addend 1379 can be added together to provide a value 1380 for the current data epoch. For example, the first constant 1374 for sampled data could be 1 / 8 and the second constant 1378 for feedback data (averaged data epochs from averaging memory 1377) could be 7 / 8. Figure 13B It shows Figure 13A This is an example of a recursive average, but with additional rounding to accommodate differences in the number of bits used in the sampled data and the number of bits stored with each previous epoch 1377. For example, the first addend 1375 could have 28 bits, the sum of the first addend 1375 and the second addend 1379 could have 29 bits, and each stored epoch has 20 bits. The system could include a first rounder 1380 that reduces the number of bits used for the first addend from 20 bits to 16 bits, and a second rounder 1381 that reduces the number of bits used for the first addend from 20 bits to 12 bits. The recursive average can be used with automatic peak detection if the sample window is smaller than or equal to the size of the averaging memory. FIFO allows for the detection of unlimited peaks, as long as the data can be cleared when the FIFO is full. The peak data stored in the FIFO can include the peak value of the current peak and the previous peak, the chord length, the sample index, or the distance between sample indices.

[0082] Automated peak detection can operate within a data window or using continuous data. The window can be placed at a set time point following a stimulation pulse that necessarily includes artifacts and evoked potentials. The window can be shifted back in time to eliminate artifacts and / or center the window on the evoked potential. Boundaries can be placed on the expected amplitude and time range of the evoked potential to ensure that the "found" peak / trough is the desired evoked potential. This allows sensing to be enabled for treatment protocols without requiring the user to calibrate the precise location of the sensing window. The sensing window can be sensitive to changes in impedance, lead placement / migration, and other physiological variations. Patients may have many sensing-enabled treatment protocols, and some of these protocols may not run for a relatively long time after initial programming.

[0083] The above detailed description includes references to the accompanying drawings, which form part of the detailed description. The drawings illustrate, by way of illustration, specific embodiments in which the invention may be practiced. These embodiments are also referred to herein as “examples.” Such examples may include elements other than those shown or described. However, the inventors also contemplate examples in which only those elements shown or described are provided. Furthermore, the inventors also contemplate examples using combinations or arrangements of those elements shown or described.

[0084] The methods described herein may be implemented, at least in part, by a machine or computer. Some examples may include a computer-readable or machine-readable medium encoded with instructions operable to configure an electronic device to perform the methods described in the examples above. Implementations of this method may include code, such as microcode, assembly language code, high-level language code, or the like. This code may include computer-readable instructions for performing various methods. The code may form part of a computer program product. Furthermore, in the examples, the code may be tangibly stored on one or more volatile, non-transitory, or non-volatile tangible computer-readable media, such as during execution or at other times. Examples of such tangible computer-readable media may include, but are not limited to, hard disks, removable disks or magnetic tapes, removable optical discs (e.g., optical discs and digital video discs), memory cards or sticks, random access memories (RAM), read-only memories (ROM), and the like.

[0085] The above description is intended to be illustrative and not restrictive. For example, the above examples (or one or more aspects thereof) may be used in combination with each other. Other embodiments may be used by those skilled in the art upon review of the above description. The scope of the invention should be determined by reference to the appended claims, together with the full scope of their legally claimed equivalents.

Claims

1. A system comprising: A data acquisition circuit configured to access a series of data samples from sensor signals; A local extremum detection circuit is configured to find local extrema in a series of data samples, wherein at least one data sample immediately preceding the local extremum approaches the local extremum from a first direction, and at least one data sample immediately following the local extremum recedes from the local extremum from the first direction. A difference monitoring circuit, configured to: determine the difference between the local extremum and a series of data samples that follow and recede from the local extremum in the first direction; A comparator circuit configured to compare the difference with a predefined threshold; as well as An extreme value data logger circuit is configured to write extreme value data to a storage device when the difference exceeds the predefined threshold.

2. The system according to claim 1, further comprising: A sensor configured to sense biological parameters from a patient and provide the sensor signal, and a sensor signal sampler configured to sample the sensor signal to provide the series of data samples.

3. The system according to claim 2, wherein, The data acquisition circuit is configured to access a data sample stream.

4. The system according to any one of claims 2-3, further comprising a stimulator configured to deliver electrical stimulation, wherein, The data acquisition circuit is configured to use the sensor to sense the response to the electrical stimulation.

5. The system according to claim 4, wherein, The data acquisition circuit is configured to access sample data within a window after a stimulation pulse and is timed to avoid stimulation artifacts and capture evoked potentials from the delivered electrical stimulation.

6. The system according to any one of claims 2-5, wherein, The sensors include evoked compound action potential (ECAP) sensors, local field potential (LFP) sensors, evoked resonant neural activity (ERNA) sensors, or cardiac activity sensors.

7. The system according to any one of claims 1-6, wherein, The local extremum detection circuit is configured to: identify potential extrema by using data points in the series of sample data, and update the potential extrema when the difference does not reach the predefined threshold and subsequent data points in the series of sample data are more extreme, in order to find the local extrema.

8. The system according to any one of claims 1-7, wherein, When the local extremum is a local maximum, the predefined threshold is a predefined local maximum threshold. A series of sample data points immediately following the local maximum are less than the local maximum. When the series of sample data points are less than the local maximum by at least the predefined local maximum threshold, the local maximum data is written to the storage device.

9. The system according to any one of claims 1-8, wherein, When the local extremum is a local minimum, the predefined threshold is a predefined local minimum threshold. A series of sample data points immediately following the local minimum are greater than the local minimum. When the series of sample data points are greater than the local minimum by the predefined local minimum threshold, the local minimum data is written to the storage device.

10. The system according to any one of claims 1-9, wherein, The storage device includes a first-in, first-out (FIFO) storage device, and the extreme value data recorder circuit is configured to write extreme value data into the storage device by writing extreme value data into the FIFO and then writing it from the FIFO into permanent memory.

11. The system according to any one of claims 1-10, wherein, The local extremum detection circuit is further configured to perform recursive averaging to reduce noise when finding the local extremum.

12. The system according to any one of claims 1-11, further comprising a medical device programmer having a user interface configured to receive the predefined threshold.

13. The system according to any one of claims 1-12, wherein, The extreme value data written to the storage device includes: The value of the extreme value data; or The length or amplitude of a chord between consecutive local extrema.

14. The system according to any one of claims 1-13, wherein, The comparator circuit is further configured to compare the local extrema with the expected extrema to provide a confidence index for the extrema data written to the storage device.

15. The system according to any one of claims 1-14, wherein, The local extremum detection circuit, the difference monitoring circuit, the comparator circuit, and the extremum data recorder circuit are configured to operate on each of the plurality of local extrema in the series of sample data points.