A method may comprise receiving and sampling a signal. The signal may encode a data packet. A slice may be generated and stored comprising a pair of values for each of a selected number of samples of the signal representing a correlation of the signal to reference functions in the receiver. The presence of the data packet may then be detected and the detected packet decoded from the stored slices. The generating and storing slices may be carried out as the received signal is sampled. The sampled values of the signal may be discarded as the slices are generated and stored. The slice representation of the signal can be manipulated to generate filters with flexible bandwidth and center frequency.

Patent
   9270503
Priority
Sep 20 2013
Filed
Sep 19 2014
Issued
Feb 23 2016
Expiry
Sep 19 2034
Assg.orig
Entity
Large
19
948
currently ok
14. A signal receiver, comprising:
an analog front-end configured to receive a signal, the signal encoding a data packet;
an analog-to-digital converter (ADC) configured to sample a received signal;
a memory;
a controller coupled to the memory and configured to:
generate and store, in the memory, a slice comprising a pair of values for each of a selected number of samples of the signal;
detect a presence of and decode the data packet from the stored slices;
combine a number of the slices to form a filter having a predetermined pass-band; and
re-tune a center frequency of the filter by warping the slices from which the filter was formed by rotating the respective pairs of values by a quantity.
1. A method, comprising:
receiving a signal, by an analog front-end of a receiver, the signal encoding a data packet;
sampling, by and analog-to-digital converter, the received signal;
generating, by a controller, and storing, by the controller in a memory coupled to the controller, a plurality of slices comprising pairs of values for each of a selected number of samples of the signal;
detecting, by the controller, a presence of and decoding, by the controller, the data packet from the stored slices;
forming, by the controller, a filter having a predetermined pass-band by combining, by the controller, a number of the plurality of slices; and
re-tuning, by the controller, a center frequency of the filter from a first center frequency to a second center frequency that is different from the first center frequency using the stored slices by warping the stored slices from which the filter was formed by rotating the respective pairs of values by a quantity.
2. The method of claim 1, wherein generating and storing, by the controller, are carried out as the received signal is sampled.
3. The method of claim 1, further comprising discarding, by the controller, the sampled signal as the slice is generated and stored.
4. The method of claim 1, wherein generating and storing, by the controller, are carried out with constituent values of each of the slices being generated using a first reference function and a second reference function that is in quadrature with the first reference function.
5. The method of claim 1, wherein generating, by the controller, each of the plurality of slices comprises:
Correlating, by the controller, samples of the signal with a first reference template;
generating, by the controller, a first value of the pair of values;
correlating, by the controller, the selected number of samples of the signal with a second reference template; and
generating, by the controller, a second value of the pair of values.
6. The method of claim 5, wherein the first reference template comprises a cosine function at a reference frequency and the second reference template comprises a sine function at the reference frequency.
7. The method of claim 6, wherein the first value of the pair of values of the slice comprises a dot product of the sampled signal and the cosine function at the reference frequency and the second value of the pair of values of the slice comprises a dot products of the sampled signal and the sine function at the reference frequency.
8. The method of claim 1, wherein a bandwidth of the filter is related to the number of combined slices.
9. The method of claim 8, wherein when a first number of slices are combined, the filter has a first bandwidth and wherein when a second number, greater than the first number, of slices are combined, the filter has a second bandwidth that is narrower than the first bandwidth.
10. The method of claim 1, wherein detecting, by the controller, the presence of the data packet comprises detecting, by the controller, a carrier frequency within the predetermined pass-band of the filter formed by the plurality of slices.
11. The method of claim 1, wherein detecting, by the controller, further comprises re-tuning, by the controller, the center frequency of the filter from a first center frequency to a second center frequency that is different from the first center frequency using the stored slices.
12. The method of claim 1, wherein the quantity comprises a rotation angle, a scaling factor and indices associated with the slices from which the filter was formed.
13. The method of claim 1, wherein the quantity comprises a sum of a phase angle from a reference frequency and a product of a rotation angle and a slice index.
15. The signal receiver of claim 14, wherein the controller is configured to generate and store the slices as the ADC samples the received signal.
16. The signal receiver of claim 14, wherein the controller is further configured to discard the sampled signal as the slices are generated and stored.
17. The signal receiver of claim 14, wherein the controller is further configured to generate each of the slices such that constituent values thereof are generated using a first reference function and a second reference function that is in quadrature with the first reference function.
18. The signal receiver of claim 14, wherein the memory is configured to store at least a first reference template and a second reference template and wherein the controller is further configured to correlate the selected number of cycles of the sampled signal with the first reference template to generate a first value of the pair of values and to correlate the selected number of samples of the signal with the second reference template to generate a second value of the pair of values.
19. The signal receiver of claim 18, wherein the first reference template comprises a first reference function at a reference frequency and the second reference template comprises a second reference function at the reference frequency.
20. The signal receiver of claim 19, wherein the first reference function is in quadrature with the second reference function.
21. The signal receiver of claim 20, wherein the first reference function comprises a cosine function and the second reference function comprises a sine function.
22. The signal receiver of claim 21, wherein the first value of the pair of values of the slice comprises a dot product of the sampled signal and the cosine function at the reference frequency and the second value of the pair of values of the slice comprises a dot product of the sampled signal and the sine function at the reference frequency.
23. The signal receiver of claim 14, wherein a bandwidth of the filter is related to the number of combined slices.
24. The signal receiver of claim 23, wherein when a first number of slices are combined, the filter has a first bandwidth and wherein when a second number, greater than the first number, of slices are combined, the filter has a second bandwidth that is narrower than the first bandwidth.
25. The signal receiver of claim 14, wherein the controller is further configured to detect the presence of the data packet by detecting a carrier frequency within the pass-band of the filter formed by combining the slices.
26. The signal receiver of claim 14, wherein the controller is further configured to re-tune, using the stored slices, a center frequency of the filter from a first center frequency to a second center frequency that is different from the first center frequency.
27. The signal receiver of claim 14, wherein the quantity comprises a rotation angle, a scaling a factor and respective slice indices associated with the slices from which the filter was formed.
28. The signal receiver of claim 27, wherein the scaling factor is an integer.
29. The signal receiver of claim 27, wherein the scaling factor comprises an algebraic expression.

This application claims the benefit under 35 USC §119(e) of U.S. Provisional Application No. 61/880,786 titled “Methods, Devices and Systems for Receiving and Decoding a Signal in the Presence of Noise Using Slices and Warping,” filed Sep. 20, 2013, the disclosure of which application is herein incorporated by reference.

Ingestible sensors may comprise a low power communicator whose transmissions are received by a receiver that may be worn outside of the body. Conventional ‘body communication systems’ should be capable of processing high-speed raw data in a predetermined amount of time, with considerations to available power consumption and memory size. In a conventional receiver, the incoming signal passes through an ‘analog front-end’ circuit comprising analog filters and analog electronic amplifiers. The analog filter typically has a wide bandwidth, to allow for the detection of all possible transmitted frequencies, as determined by the manufacturing tolerance of the transmitter carrier frequency. The filtering provided in the analog front-end is modest, and allows a significant amount of noise to get through along with the desired signal. After analog amplification and filtering, the signal is digitized by an analog-to-digital converter (ADC). The remainder of the processing of the received signal may be carried out in digital hardware, such as an embedded microprocessor, state machine, logic gate array, among others. The now-digitized signal may pass through one or more narrow-band digital filters to remove as much noise as possible before decoding is attempted.

In cases in which the receiver's estimate of the carrier frequency has a significant amount of uncertainty, the receiver is required to start with a wider-bandwidth digital filter and to, therefore, admit a greater amount of noise. The greater amount of noise means that a weak signal may be missed entirely. To reject the most noise, however, the receiver may apply a digital filter with a narrow bandwidth. But, if the narrow filter is centered on the incorrect carrier frequency, the incoming signal may be missed entirely. For efficient detection and decoding of the incoming signal, therefore, a balance must be achieved between narrow-bandwidth filters to remove as much noise as possible and filters having a greater bandwidth to increase the likelihood that the signal's carrier frequency will be captured when the receiver's knowledge of the incoming carrier frequency is imprecise. The receiver, therefore, may be configured to iteratively adjust the center frequency of the narrow filter, move it to a new center and to thereafter again attempt detection. This process of searching for the carrier with a narrow bandwidth filter is both time consuming and power intensive. Significantly, to re-filter at the new center frequency, the receiver either must retain a copy of the original data record in memory, or, if the original data is not available, capture an entirely new data record. This process not only requires significant memory resources (especially using high resolution ADCs) but also expends a significant amount of device battery life merely to identify the carrier frequency of the incoming signal.

The present invention in its first aspect provides a method as specified in the appended claims.

The present invention in a further aspect provides a program. Such a program can be provided by itself or carried by a carrier medium. The carrier medium may be a recording or other storage medium. The transmission medium may be a signal.

According to one embodiment, a method may comprise receiving and sampling a signal. The signal may encode a data packet. A slice may be generated and stored comprising a pair of values for each of a selected number of samples of the signal. The presence of the data packet may then be detected and the detected packet decoded from the stored slices. The samples of the signal may represent a correlation of the signal to reference functions in the receiver. The generating and storing slices may be carried out as the received signal is sampled. The sampled values of the signal may be discarded as the slices are generated and stored. The slice representation of the signal can be manipulated to generate filters with flexible bandwidth and center frequency.

According to one embodiment, a method of detecting and decoding a signal arriving at a receiver may begin with the receiver receiving an incoming signal, optionally carrying out some analog pre-processing (e.g. amplifying and filtering) at an analog front-end, after which the pre-processed data may be sampled in an ADC. The sampled raw data, according to one embodiment, then may be compared against internal reference templates stored in memory, using, for example, a correlation algorithm. One exemplary technique comprises correlating the sampled incoming signal with predetermined reference templates over a time period.

Embodiments address the problems inherent in capturing and storing a great many high-speed samples, which strains both computational capability and memory size. Embodiments solve both problems by capturing “slices”. The slice data representation, according to one embodiment, contains sufficient information to efficiently and compactly represent the incoming signal and to implement filters of most any bandwidth. According to one embodiment, slices may be subject to a warping operation, by which sets of slices are transformed in useful ways to complete the detection process. Indeed, slices may be combined, according to one embodiment, to create filters having selectably wide or narrow pass-bands. According to embodiments, the warping operation may be configured to transform slices captured at one frequency to slices at another nearby frequency. This warping operation may be carried out by an algorithm configured to find an incoming carrier frequency and to find evidence of data packets in a noisy environment. The slice representation of signal data, coupled with the warping function, according to embodiments, represent a novel and highly efficient way to perform sophisticated detection algorithms with modest hardware and memory resources.

Further features of the present invention will become apparent from the following description of exemplary embodiments with reference to the attached drawings.

FIG. 1 shows various waveforms and an example slice, according to one embodiment. FIG. 1 also shows a system comprising a transmitter and a receiver configured according to one embodiment.

FIG. 2A illustrates correlation of two sampled waveforms.

FIG. 2B illustrates shows the manner in which one term (the sine term, in this case) is calculated, according to one embodiment.

FIG. 3 illustrates aspects of a method of calculating a combined slice term (the cosine term, in this case), according to one embodiment.

FIG. 4 shows aspects of a method of combining sine and cosine slice terms to form a longer correlation, according to one embodiment.

FIG. 5 shows the phase of a signal depicted as a rotating vector in a polar coordinate system.

FIG. 6A shows a rotating vector at a reference frequency in a polar coordinate system.

FIG. 6B shows a rotating vector at a reference frequency and a rotating vector of a signal at a frequency that is greater than the reference frequency, in a polar coordinate system.

FIG. 6C shows a rotating vector at a reference frequency and a rotating vector of a signal at a frequency that is lower than the reference frequency, in a polar coordinate system.

FIG. 7 shows aspects of warping, according to one embodiment.

FIG. 8 shows slices warped, aligned and ready for combination, according to one embodiment.

FIG. 9 shows aspects of a method for searching for a carrier frequency using warping of slices, according to one embodiment.

FIG. 10 shows aspects of Frequency Shift Keying (FSK) carrier detection, according to one embodiment.

FIG. 11 shows aspects of fine tuning FSK carrier detection, according to one embodiment.

FIG. 12 is a logic flow of a method of detecting a signal, according to one embodiment.

FIG. 13 is a logic flow of a method according to one embodiment.

FIG. 1 shows a system comprising a low-power oscillating transmitter 102 and a receiver 104, according to one embodiment. As shown therein, the oscillating transmitter 102 may be separated from the receiver 104 by a communication channel 103. For example, the oscillating transmitter 102 may be disposed within an ingestible sensor whose transmissions 105 are received by a receiver patch comprising the receiver 104 that may be worn outside of the body, such as on the skin 106. In this case, the communication channel 103 may comprise the aqueous environment of the body. The receiver 104 may comprise an analog front-end in which the received signal may be pre-processed, before being input to an ADC 110, which may generate a time-series of raw digital samples. The samples may be represented as binary numbers, from 1 to 24 bits in size, for example. The receiver 104 also may comprise a controller 112, which may be coupled to a memory 114. The memory 114 may be configured to store, as detailed below, slice data, reference templates and other temporary values as needed by controller 112. The receiver may also comprise a communication interface (not shown), to enable decoded payload of packets encoded in the received signal to be communicated to the outside world.

According to one embodiment, a computer-implemented method of detecting and decoding a signal arriving at a receiver 104 may begin with the receiver 104 receiving an incoming signal 105, carrying out some analog pre-processing (e.g. amplifying and filtering) at analog front-end 108, after which the pre-processed data may be sampled in ADC 110. The sampled raw data, according to one embodiment, then may be compared by the controller 112 against internal reference templates stored in memory 114, using a correlation algorithm. One technique comprises correlating the sampled incoming signal with predetermined reference templates over a time period.

Embodiments address the problems inherent in capturing and storing a great many high-speed samples, which strains both computational capability and memory size. Embodiments solve both problems by capturing “slices”. The slice data representation, according to one embodiment, contains sufficient information to efficiently and compactly represent the incoming signal and to implement filters of most any bandwidth. According to one embodiment, slices may be subject to a warping operation, by which sets of slices are transformed in useful ways to complete the detection process. Indeed, slices may be combined, according to one embodiment, to create filters having selectably wide or narrow pass-bands. According to embodiments, the warping operation may be configured to transform slices captured at one frequency to slices at another nearby frequency. This warping operation may be carried out by an algorithm configured to find an incoming carrier frequency and to find evidence of data packets in a noisy environment. The slice representation of signal data, coupled with the warping function, according to embodiments, represent a novel and highly efficient way to perform sophisticated detection algorithms with modest hardware and memory resources. For example, one or more microcontrollers, one or more Field Programmable Gate Arrays (FPGAs) or Application Specific Integrated Circuits (ASICS) may be used to carry out the processing disclosed herein. A Digital Signal Processor (DSP) may also be used to good advantage.

SLICE: According to one embodiment, a slice construct is introduced. Short correlations, achieved through correlating a relatively short portion of the incoming signal (e.g. approximately 4-8 cycles), are denoted as slices herein. A slice interval, according to one embodiment, may be defined as a predetermined period of time. FIG. 1 shows various segments of a 20,000 Hz signal. As shown, reference 102 shows a single cycle of such a 20,000 Hz signal, whose period T is 1/20,000 Hz or 50 μsec. Reference 104 shows a single slice interval, defined as a time equal to 4 cycles of the 20,000 Hz signal, or 200 μsec. Herein, a slice interval is arbitrarily defined as 4 cycles of the incoming signal. A slice interval, however, may comprise a different amount of time or number of cycles. For example, a slice interval may comprise the time equal to 8 cycles. Below, unless specifically noted, a slice interval is defined as comprising 4 cycles of the incoming signal, it being understood that other slice intervals may readily be implemented. For example, the slice definition may be expressed in cycles, but is not required to be a multiple of full cycles of any signal or template. A slice may be any defined amount of time. The slice time may be changed in the receiver as needed. For example, the receiver could implement two slice routines to capture two slice streams simultaneously, one at 20 kHz and another at 12.5 kHz, for example. The two slice computations could use different slice times suitable for each channel. As shown at 106 in FIG. 1, four slice intervals may comprise 16 cycles and have a period of 800 μsec. Lastly, 64 cycles of the reference frequency may be divided into 16 slice intervals as shown at 108. The number of samples of the incoming signal included in one slice is governed by the definition of the slice interval and the sampling rate of the ADC:
samples per slice=ADC sample rate·slice interval.

The ADC sampling rate may be at least as often as the Nyquist theorem call for; namely, at least twice the frequency of interest. According to one embodiment, the ADC sample rate may be chosen to be higher, such as five or more times the frequency of interest of the incoming signal. Other sampling rates may be utilized. In one embodiment, the ADC in the receiver (adhered to a patient's abdomen, for example) may be configured to carry out forty or more samples per second. The starting times of consecutive slices may advantageously be selected to be periodic according to some fixed, for example, interval. However, acceptable results may also be obtained even when there are brief periods of time when no sampling is being carried out.

To determine the similarity between digitized samples of an incoming signal and a reference template, a dot product (the sum of the products of corresponding samples) or correlation operation may be carried out. FIG. 2A shows such a correlation operation of a digitized incoming signal with a cosine template. Here, A may represent the digitized incoming signal and B may represent a template of a first reference function such as, for example, a cosine template at the reference frequency (e.g. 20,000 Hz). In other words, the cosine template B, according to one embodiment, is a representation of what the receiver 104 expects the cosine component of the received signal to look like and the correlation operation determines the degree of similarity between signal A and cosine template B. As shown, samples of signal A are multiplied with the corresponding samples of the cosine template B, and the results of these additions summed over the number of samples N. Stated more formally, C is the scalar product of A and B and may be expressed as:

C = A 1 × B 1 + A 2 × B 2 + A 3 × B 3 + + A N × B N C = n = 1 N A n × B n

Similarly, FIG. 2B shows correlation with a sine template. Here, A may represent the digitized incoming signal and D may represent a template of a second reference function in quadrature with the first reference function. For example, the template of the second reference function may be, for example, a sine template at the reference frequency (e.g. 20,000 Hz). As shown, samples of signal A are multiplied with the corresponding samples of the sine template D, and the results of these additions summed over the number of samples N. Stated more formally, S is the scalar product of A and D and may be expressed as:

S = A 1 × D 1 + A 2 × D 2 + + A N × D N S = n = 1 N A n × D n
The orthogonal cosine and sine templates are in a quadrature phase relationship. The two correlation results, C and S, when taken together, represent a slice. In complex polar notation, C+j·S is a vector with an angle indicating the phase between the incoming signal and the receiver's reference templates. In practice, the slice may be thought of as a 1/(slice interval) filter.

According to one embodiment, the scalars C and S may be scaled by a scaling factor. For example, C and S may be scaled such that they may assume a range of values between, for example, 0 and 1. Other scaling factors and ranges may be accommodated.

As shown and discussed herein, the reference templates are sine templates and cosine templates. Other periodic shapes, however, may be used as the reference templates such as, for example, sawtooth, triangle or square signals. Selecting non-sinusoidal waveforms for the reference templates may result in some information being discarded, but the signal of interest may still be extracted from the received signal. Moreover, even though having the reference templates 90 degrees out of phase with one another (in quadrature), reference templates having other phase relationships with one another may be used. For example, the two reference templates could be 89 degrees or 91 degrees out of phase with one another, without substantial ill effect.

According to one embodiment, slice correlations (or, simply, slices) may be calculated from the raw digitized samples generated by the receiver's ADC 110. These raw digitized samples may be correlated against samples of both cosine and sine reference templates at the reference frequency (freqRef) stored in the receiver 104. The cosine term and sine term of a slice, according to one embodiment, may be defined as:

SliceCosTerm = n = 1 N signal n × referenceCos n SliceSinTerm = n = 1 N signal n × referenceSin n
where N is the number of samples in one slice.
The vector magnitude of a slice may be computed in Root Mean Square (RMS) fashion:
Slice Magnitude=√{square root over (Slice Cos Term2+Slice Sin Term2)}
The Slice Magnitude quantity is a scalar indicative of the magnitude of the combined slices.
The vector angle of a slice thereof (Slice Angle), is given by

Slice Angle = arctan ( SliceSinTerm SliceCosTerm )

COMBINING SLICES: FIG. 3 is a diagram showing the scalar dot product of signal A and template B over two slice intervals (where, in this figure, the slice interval encompasses one cycle of the cosine template), and shows the additive nature of the correlation. According to one embodiment, for slices to be combinable, each of the reference signals of each reference template should be coherent, meaning in phase with one another. As shown, the correlation or dot product of A and B over two slice intervals (2N samples, in this case) corresponds to the simple scalar sum (accumulation) of the correlation over the first N cycles with the correlation over the second N cycles of A and B. Or,

C 1 = n = 1 N A n × B n C 2 = n = N + 1 2 N A n × B n C 12 = n = 1 2 N A n × B n C 12 = C 1 + C 2

Moreover, to compute the correlation for a time interval corresponding to 3 slice intervals of A and B, it is not necessary to re-compute C1 and C2. Simply, compute the correlation C3, and add the result to C12 to generate the correlation (dot product of vectors A and B over a signal length of 3 slice intervals) C13. As a slice is equivalent to a 1/(slice interval) filter, as slices are combined into longer correlations, the filter bandwidth is correspondingly reduced, as further detailed below.

According to one embodiment, slices are treated as complex pairs, comprising both a cosine term and a sine term. The cosine term of a slice, according to one embodiment, represents the correlation between the sampled incoming signal and a cosine template stored in the receiver 104 at the reference frequency (freqRef). Similarly, the sine term of a slice, according to one embodiment, represents the correlation between the sampled incoming signal and a sine template stored in the receiver 104 at freqRef. FreqRef can be set to the expected or nominal frequency at which the transmitter is specified to transmit, but which may vary due to manufacturing variations (which may occur in both the transmitter and the receiver), ambient conditions such as the temperature of the transmitter and receiver, distortion through the communication channel (e.g. the aqueous and physiologic environments of the human body such as the salinity of the stomach and surrounding tissues Other factors may include, for example, variations in the frequency calibration process used on the transmitter and receiver, which may not be very accurate, or might have large frequency steps in their adjustment method.

According to embodiments, once the slice calculations have been carried out and the slice terms stored in memory 114, the original raw samples generated by the ADC (and from which the slices were generated) now may be discarded, as all subsequent packet detecting, frequency determination and payload decoding steps may be based on the stored slice data, without the need to ever consult or re-generate the digitized samples generated by the ADC. According to embodiments, the slice calculation and the storage of the slice data in memory 114 may be carried out ‘on-the-fly’ in real time by a suitable controller provided within the receiver 104. According to one embodiment, the slice correlation data may be calculated and stored in memory 114 by the receiver's controller 112 in the controller command execution cycles available between ADC sample times. Accordingly, there may be no need to store the raw digitized sample stream from the ADC 110 in memory 114, which represents a significant efficiency.

According to embodiments, significant reductions in the amount of data stored by the receiver 104 may be achieved. For example, the reference frequency of the carrier may be 20,000 Hz and the sample rate of the ADC may be 3.2 million samples per second (SPS), which corresponds to 160 ADC samples per cycle of the carrier. The sample rate of the ADC, however, may be freely chosen. For example, the sample rate of the ADC may be selected to be in the thousands of samples per second. For example, the sample rate of the ADC may be chosen to be about 200 kSPS, which corresponds to 10 ADC samples per cycle of the carrier. A controller 112 may be configured to execute, for example, 16 million instructions per second. If a slice interval were to be defined as 4 cycles of the reference frequency, at a sample rate of 200 kSPS, there are 10·4 or 40 ADC samples in each slice. There are 16,000,000/20,000 or 80 processor cycles available between each ADC sample, which is generally sufficient to generate and store the slice record. According to one embodiment, each individual new sample may be incorporated into the accumulating slice cosine and sine dot products and stored within these available processor cycles, thereby enabling the controller 112 to generate the slice data while keeping pace with the samples as they are generated by the ADC. The result of the slice correlation calculation is two numbers (a cosine term and a sine term), which represents a compression, per slice (e.g. 4 cycles of the incoming signal) of 40:2 or a compression factor of 20 relative to the raw sample stream. In this particular example, this represents over an order of magnitude reduction in memory requirements. Increasing the slice time or increasing the sampling rate linearly increases this compression rate. In one embodiment, a sampling rate of 760 kSPS allows for 21 processor cycles between samples, which is sufficient computational power to generate slice data while keeping pace with the samples as they arrive. Each cycle is represented by 760/20 or 38 samples, so each slice represents 4·38 or 152 samples of the incoming signal. The resulting compression factor is 152:2 or a compression factor of 71.

ANALOG SLICE PROCESSING—According to one embodiment, the incoming signal may be multiplied by two analog multipliers (e.g. quadrature mixers) with two reference signals. Each of the product signals may then be summed (e.g. by analog integration using a capacitor or an active circuit based on stored capacitor charge) for a period of time and then sampled at a much lower frequency. Each such sample pair represents a slice pair. Such an analog embodiment may enable power consumption advantages to be realized.

COMBINING SLICES, FILTERING—Effectively, the slice correlation calculation represents a filter with a bandwidth of 1/(slice interval) which, in the example case of a reference frequency of 20,000 Hz and 4 cycles per slice, works out to 1/200 μsec or 5,000 Hz, which is a filter having a relatively broad bandwidth. According to one embodiment, the constituent cosine components of the slice pair may be combined and the constituent sine components of the slice pair may be combined, thereby increasing the slice time and creating a filter having a narrower bandwidth. Due to the inverse relationship between slice interval and filter bandwidth, according to one embodiment, a narrower bandwidth filter may be achieved through combining slice terms. Indeed, slice correlations computed over short periods of time may be extended to longer correlations by combining such short periods of time; that is, by combining slices. Combining slice terms, according to one embodiment, may be carried out by summing a number of sequential cosine slice terms, summing the same number of sequential sine slice terms. The resulting two new terms, when paired together form a combined slice representing a longer correlation.

According to embodiments, such a slice combination calculation may be performed at every slice index (i.e., without skipping to every Nth slice index). FIG. 4 is a graphical representation of combining previously-computed and stored slice pairs of cosine and sine components. As shown, the original cosine components of the stored slice data are labeled as “original slice cosine terms” and the original sine components of the slice data are labeled “original slice sine terms”. To combine four slices, the first four cosine terms (i=1, 2, 3, 4) are summed into a “combined slice cosine term” with slice index 1. Likewise, the first four sine components of the slice data are summed into a “combined slice sine term”, starting with the current index 1. Therefore, on the first iteration, i=1 and the previously computed cosine terms indexed at i=1, i=2, i=3 and i=4 are summed to form Slice Cos Term1, and the previously computed sine terms indexed at i=1, i=2, i=3 and i=4 are combined to form Slice Sin Term1, whereupon i is incremented to 2. Slice Cos Term2 may then be formed by the four consecutive slice cosine terms, starting with the current i=2 slice index; namely, i=2, i=3, i=4 and i=5. Likewise, Slice Sin Term2 may then be formed by a similar computation. This operation may be carried out for the entire slice record. By varying the number of slices over which the combining is carried out, the bandwidth of the resultant filter may be selected at will. This ability to rapidly and simply generate different filters is a generally useful capability in a receiver. By way of a simple example, when the receiver 104 is searching for the carrier frequency of the received signal, a small number of slice cosine and sine terms may be combined to generate what is, in effect, a filter having a relatively wide bandwidth, thereby increasing the probability that the carrier will be present somewhere within the frequency range encompassed by the wide bandwidth filter. However, such a wide bandwidth filter also admits a correspondingly large amount of noise, which may render detection of especially weak signals difficult. Alternatively, a larger number of slice terms may be combined to generate what is, in effect, a filter having a correspondingly narrow bandwidth. Such a narrow bandwidth filter, however, does not admit a large amount of noise, which may facilitate the detection of the carrier frequency.

According to embodiments, one result of combining slices is a digital filter having reduced bandwidth, while maintaining the time resolution of the original slices. It is to be noted that such filters may be constructed using only the slice data stored in memory 114, as the original raw ADC data may have already been discarded and may be, therefore unavailable. According to embodiments, slice combinations over a greater number of slices may be implemented. Moreover, slice combinations may be repeatedly performed over different numbers of slices (hence implementing filters of different bandwidths) using the original slice data or using previously combined slice records, without re-referencing the original raw ADC samples (which may have been previously discarded anyway) and without re-acquiring the incoming signal and re-generating new raw ADC samples. Because of the high level of compression represented by slice data (i.e., over an order of magnitude in the example being developed herewith), long recordings of slice data may be stored in, for example, controller memory, even in the face of strict memory size constraints. The memory 114 shown in FIG. 1 may be external to the controller 112 or internal thereto.

According to one embodiment, one need not combine slices if the original slice interval is defined to be as long a period of time as a combined slice would be, had the slices been combined. For example, the slice interval may be defined to be longer than 4 cycles, which is the exemplary implementation discussed herein. This may be desirable in systems in which there is good crystal control of the transmitter and the receiver. In such cases, warping (as discussed herein below) need be carried out over only a narrow frequency range to find the carrier frequency and/or to detect the presence of a packet in a noisy environment. Therefore, according to one embodiment, the originally-captured set of slices may be used to form a filter, without the need to combine slices as described herein.

As the slice combining calculations described and shown herein are largely composed of additions, such combining calculations may be carried out efficiently. Also, as the slice combining operation may operate only on the indexed slice cosine and sine terms stored in memory 114, the combining operation need not be carried out in real time, as the raw samples arrive, as it may be carried out after all slice pairs have been generated from the raw ADC samples of the incoming signal and stored in memory 114. Moreover, as the combining operations do not, according to one embodiment, alter the stored indexed slice pairs, the slice combining operations may be repeated any number of times, depending on the needs of the overall detection and decoding algorithms. That is, the original slice data may be reused many times at will. Alternatively, the slice combining operation may be performed on slices that themselves are the result of a combining operation. For example, a combination of four slices (a ‘4-slice’ slice record) may be achieved either by 1) Combining four original slices to generate a 4-slice slice record, or 2) Combining two original slices into a 2-slice slice record, and then combine two slices from the 2-slice slice record to generate the desired 4-slice record. Such flexibility can be exploited to, for example, conserve memory in the processor.

SUMMARY: SLICE AND SLICE COMBINING—To review the slice representation up to this point in the discussion, an incoming signal can be captured by a sequence of short correlations against reference templates. The templates may comprise a first reference function and a second reference function. According to one embodiment, the first and second reference functions are in quadrature. For example, the first reference function may be or comprise a cosine function and the second reference function may be or comprise a sine function. The length of the correlation may be conveniently selected to be a few periods (or more) of the template functions. The result of a correlation is two scalar terms that can be thought of as representing a complex number: cos term+j·sin term. Each correlation result is herein referred to as a slice, and a number of slices are captured in memory in a slice record. One operation that may be applied to a slice record is slice combination as described above. Combining slices is performed with simple additions of the individual slice terms. Combining slices results in a new slice record representing a filter of narrower bandwidth than the original slice record. This capability is highly useful in receiving and filtering a signal embedded in noise.

To this point in the discussion, the center frequency of the combined-slice narrow-band filter is the frequency of the reference template functions. This choice of only a single center frequency is a significant limitation to the slice capture and slice combining operations described to this point. The following sections describe a method, according to one embodiment, to move the slice record to any nearby frequency, thereby significantly increasing the utility of the slice representation.

WARP—An important function in any signal processing device is the ability to respond to variations in the transmitted signal frequency. For systems capturing a signal in the slice representation described above, the same need applies. After capturing a signal in slice form using correlation to reference templates, it may be desirable to create filters at a frequency other than the reference frequency, (e. g. at a frequency freqRef plus a frequency delta (freqDelta). The frequency delta may be either a positive or negative offset from freqRef. According to one embodiment, such a new narrow-band filter centered at freqRef+freqDelta may be created by a) capturing slice records at a reference frequency (freqRef), b) transforming (also denoted as “warping” herein) the original slice record into a new warped slice record using a complex vector rotation operation in which the rotation angle is governed or determined by a so-called warping function (WF), and c) combining the warped slices to generate a narrow-band filter now centered at frequency freqRef+freqDelta.

One embodiment, therefore, enables slice data taken at one frequency (e.g. freqRef) to be warped to slice data at another frequency, say freqRef+freqDelta. This may be carried out, according to one embodiment, without acquiring new data and without the need to re-use the original samples generated from the ADC 110 at the analog front end of the receiver 104, as such original data stream may be discarded—or may simply never be stored. According to one embodiment, therefore, a warping method may be configured to shift the center frequency of a digital filter without re-acquiring new data and without re-using the original samples generated by the ADC 110 to which the (processed) incoming signal is input.

POLAR NOTATION—FIG. 5 shows a vector 504 of length 1 in a polar coordinate system 502. As shown, any point in the polar coordinate system 502 may be represented as a complex pair, namely (x, y). Equivalently, any point in the polar coordinate system 502 can be represented by a magnitude 504 and angle, (r, θ) where θ (505) is the angle of the vector 504 relative to the positive x-axis. Points z in the complex plane may be defined as those points satisfying the equation z=r cos θ+j·r sin θ. The coordinates of any point comprises both a cosine term: r cos θ (508) and a sine term: r sin θ (506).

As shown in FIG. 6A, a reference frequency freqRef, such as the frequency of a reference template used in a correlation operation, may be represented as a rotating vector in a polar coordinate system. Ideally, the frequency of a signal received by a receiver would be exactly the same frequency that was transmitted, the reference frequency. Practically, however, such is not often the case. The frequency of the received incoming signal may be higher than that of the reference frequency freqRef. In that case, using the rotating vector representation of FIG. 5, the vector representing the incoming signal would lead (rotate faster than) the vector representing the reference frequency freqRef, as shown in FIG. 6B. Similarly, the frequency of the received incoming signal may be lower than that of the reference frequency freqRef. In that case, the vector representing the incoming signal would lag (rotate slower than) the vector representing the reference frequency freqRef, as shown in FIG. 6C.

In the example of FIG. 7, the incoming signal is shown as a higher frequency than the reference frequency. With reference to FIG. 7, a polar coordinate system is illustrated, with the x-axis corresponding to the cosine term and the y-axis corresponding to the sine term. A reference signal (freqRef, solid line) is shown, by convention, as a vector pointing along the positive x-axis (cosine axis). Slice data generated from an incoming signal are shown as dashed vectors representing slices 1, 2, 3, 4, etc. In this static representation, it can be seen that the vector representing the first slice establishes an arbitrary (0 to 2π radian) phase angle α with respect to the reference frequency vector. In this example, the subsequent slice vectors having slice indices 2, 3, 4, etc., lead (i.e., rotate faster than) the reference vector by an ever-increasing angle. The observation central to the warping concept is that the angle for each successive slice increases by a constant angle for all slices,Φ. That is, the second slice vector is at an angle Φ relative to the first slice vector, the third slice vector is at an angle of Φ relative the second slice vector, or equivalently 2Φ relative to the first slice vector, and the fourth slice is located at an angle Φ relative to the third slice, or equivalently 3Φ relative to the first slice vector. The angle Φ, and multiples thereof, therefore, may be thought of as the amount of lead or lag from slice to slice, and multiples thereof represent the amount of lead or lag with respect to the reference vector. FIG. 7 demonstrates that for an incoming signal frequency that does not perfectly match the reference frequency, the slice data becomes more and more out of phase (leads or lags) with the reference vector as the slice number increases. Even a very small initial angle Φ tends to grow such that the slices become significantly out of phase over time. The angle Φ is proportional to the ratio of freqDelta (the frequency difference between the incoming signal and the reference templates in the receiver) to the frequency of the reference templates, freqRef. The angle Φ is also proportional to the slice interval. According to one embodiment, the angle Φ in radians may be defined as

Φ = 2 π ( freqDelta freqRef ) · cycles per slice
where freqDelta is the difference between the frequency of the incoming signal (freqSignal) and the frequency of the reference signal (freqRef),
freqDelta=freqSignal−freqRef

For a signal with a constant frequency, the angular shift between slices is consistent across slices. As graphically seen in FIG. 7, the amount of rotation for successive slices is not a constant angle with respect to the reference. Rather, the angle by which each successive slice is shifted, relative to the first slice is, in this illustrative example, an integer multiple of the angle Φ.

VECTOR ROTATION—The general form of a complex vector rotation by an angle θ can be represented in matrix form as:

[ x y ] = [ cos θ - sin θ sin θ cos θ ] [ x y ]
Where x and y are the original vector coordinates and θ is the rotation angle, with positive rotation in the counterclockwise direction. The resulting rotated vector coordinates are x′ and y′. In algebraic form, the rotation operation can be expressed by two equations:
x′=x cos θ−y sin θ
y′=x sin θ+y cos θ
The operation may be represented informally as
rotated vector=VectorRotate(input vector,angle)
In slice notation, cos term plays the role of the x value, and sin term plays the role of the y value.

WARP FUNCTION—A complex representation allows slices to be displayed as vectors on a complex polar plane. Complex vector notation is a convenient way to illustrate warping operations in the following description of the so-called warp function (WF). Slices may be represented as complex pairs; namely, cos term+j·sin term. According to one embodiment, the manner in which slice data are operated upon may be characterized as vector rotation where the rotation angle is determined by a Warp Function (WF). Warping of a slice record may be the result of a complex vector rotation operation (say, VectorRotate), which takes two arguments: the input slice data record (denoted Input Slice below) and a rotation angle (determined by the output of a Warp Function) to which each slice in the slice data record is to be rotated. Stated more succinctly, the generalized warping operation may be described as:
Warped Slice(i)=VectorRotate(Input Slice(i),WF(θ,i,other arguments))
Where i runs from 1 to the number of slices in the slice record. The rotation angle is derived from a warp function,
angle(i)=WF(θ,i,other arguments)

In various embodiments, the selection of the warp function WF and the angle θ in the equation determines the properties of the resulting warped slice record.

WARP FUNCTION EXAMPLES— This section describes a number of warp functions, from a simple case to a more complex case from which several useful definitions may be derived.

Beginning with a relatively simple example, the warp function may be defined as WF( )=1·θ. Applying this warp function to the slice record results in the entire slice record being shifted by a constant phase angle θ. In the polar coordinate diagram of FIG. 5, this warp function corresponds to rotating all slice vectors by the same amount, θ. In the time domain, the constant phase shift advances or delays the incoming signal with respect to the receiver's reference templates, without otherwise altering the properties of the signal.

WARPING TO TUNE SLICES TO A NEW CENTER FREQUENCY—In one embodiment, the warp function may be defined as
WF( )=−i·Φ
where the canonical index i is the slice index number (not the complex root “i”) and Φ is the angle between successive slices. Then
Warped Slice(i)=VectorRotate(Input Slice(i),−i·Φ)

The warp operation may be carried out on the original slice terms (cos term, sin term) to generate the warped slice record comprising warped slice terms (warped cos term, warped sin term):
warped cos term(i)=cos term(i)·cos(−i·Φ)−sin term(i)·sin(−i·Φ)
warped sin term(i)=cos term(i)·sin(−i·Φ)+sin term(i)·cos(−i·Φ)

The warp operation immediately above effectively re-tunes the receiver 104, using the stored slices, to a new frequency (freqRef+freqDelta). According to embodiments, this re-tuning is achieved from the stored slice data and not from a re-acquisition of slice data at some other frequency (such as the new frequency) or a re-processing of the original ADC samples—which were may have been discarded or never even stored upon acquisition thereof. Moreover, such an operation is not a straightforward vector rotation, but rather a warping operation on slices, which has the resulting effect of tuning a slice record from one frequency (freqRef) to another (freqRef+freqDelta). As shown in FIG. 8, slices 1, 2, 3 and 4, . . . N become aligned with each other. Performing a slice combining operation, as described earlier, on a set of warped slices produces a peak response at the warped frequency, freqRef+freqDelta. This corresponds to a filter tuned with this center frequency. FIG. 8 illustrates how slice combination (a vector addition), according to one embodiment, combines the aligned slice vectors resulting from the warp operation. If the incoming signal is a frequency equal to freqRef+freqDelta, slices in the warped slice record will be aligned with each other or substantially aligned with each other, and will combine to give the maximum possible filter response.

FINDING CARRIER BY WARPING AND SLICE COMBINATION—According to one embodiment, the warping and slice combining functions shown and described herein may be used to identify the incoming carrier during the initial phase of the detection process by searching for the transmitted carrier over a range of frequencies. As shown in FIG. 9, freqRef is a reference frequency such as, for example, the frequency at which the transmitter was nominally designed to transmit. The actual carrier 904 may be unknown a priori to the receiver 104, which may then search for the actual carrier, armed only with the knowledge of the reference frequency and perhaps some knowledge of the transmitter (for example, that the actual frequency at the receiver is unlikely to deviate from the reference frequency by more than some number of Hertz). According to one embodiment, to find the actual carrier 904 of the incoming signal, the incoming signal may be sampled and converted to digital form (optionally after some analog pre-processing) and converted to slice data (complex cosine, sine pairs). The received incoming data is, therefore, converted to slice data, indexed and stored (the sequential storing of the slice data starting from a known memory location may inherently operate to index the slice data) as the ADC 110 generates samples from the incoming pre-processed (e.g. filtered, amplified and/or normalized among other possible operations) analog data. The sampled incoming data (e.g. samples generated by the ADC 110) need not be stored and if stored, may be discarded after the generation and storage of the slice data. The stored slices may then be combined over a selectable number of slices to achieve a filter 905 having a correspondingly selectable bandwidth. The bandwidth of the filter may be selected by combining fewer (resulting in a broader filter) or a greater number of slices (resulting in a narrower filter). A peak in the filtered slice data may be indicative of the actual carrier. If no peak is detected indicative of the presence of the actual carrier 904 within the pass-band of the filter, the warping function shown and described above may be used to warp the original slices (in exemplary FIG. 9) to a next candidate frequency 906, a shift of freqDelta Hz in FIG. 9. The warped slices may again be combined to form a selectably narrow or broad filter at a new center frequency 907 and the presence of a peak 908 that is indicative of the actual carrier may be checked. This process may be repeated rapidly until the frequency of the actual carrier 904 is encompassed within the pass-band of the filter 909. Increasingly good estimates of the frequency of the actual carrier 904 may then be made by constructing one or more filters having a narrower band-width (by combining a greater number of slices) and checking for the presence of the actual carrier 904. Such narrower filters may aid the detection process, as a great deal of the noise may be attenuated, such that much of the energy within the pass-band of the filter originates from the carrier 904. The carrier hunt strategy described above is one simple strategy for locating the actual carrier. Other strategies may be envisioned that use warping and slice combination functions to achieve the same end.

USING A SINGLE SLICE RECORD TO DETECT FSK—According to one embodiment, the warping function shown and described herein may be used for efficient detection of Frequency Shift Keying (FSK) modulation. It is to be noted that FSK detection may also be carried out by performing two parallel slice computations, one at freq0 and one at freq1. Referring now to FIG. 10, the incoming data may be converted to slice data at one reference frequency (freqRef) 1001 that may be selected, according to one embodiment to be, for example, about mid-way between the known or nominal upper (freq1) 1002 and nominal lower (freq0) 1003 FSK frequencies. If not already, the slice data may then be indexed and stored as the ADC 110 generates digital samples from the incoming pre-processed analog data. The incoming data (e.g. samples from the ADC 110) need not be stored and if stored, may be discarded after the acquisition and storage of the slice data. The stored slices may then be selectably warped over a selectable number of frequencies and combined to achieve a first relatively wide-band filter having a center frequency that is centered on one of the two nominal FSK frequencies, say freq0 1004. Effectively, this re-tunes the receiver 104 from a first frequency (freqRef in this example) to a second frequency freq0 away from the first frequency by an amount (in Hz) equal to the difference between freqRef and freq0. Similarly, the original stored slices may then be selectably warped over a selectable number of frequencies and combined to achieve a second relatively wide-band filter having a center frequency that is centered on the second of the nominal FSK frequencies, freq1 1005 in this example. As was the case with the re-tuning of the receiver 104 to freq0, this effectively retunes the receiver 104 from the first frequency (freqRef in this example) to a second frequency freq1 away from the first frequency by an amount equal to the difference between freq1 and freqRef. When re-tuning the receiver 104 to freq0 and freq1, the pass-band of the first 1004 and second 1005 filters may be configured to be relatively wide (by combining relatively few slices) so as to increase the likelihood that, in each instance, the actual FSK frequencies (presumably in the vicinities of freq0 and freq1) will be located within the pass-band of the respective first and second filters. The warping function may be applied as needed to hunt or fine-tune for the actual FSK frequencies. The detection may be refined by constructing relatively narrower filters (by combining a relatively greater number of slices), which would increase the S/N of the output by attenuating a greater amount of noise.

Indeed, according to one embodiment and with reference to FIG. 11, supposing that an indication of the actual first and second FSK frequencies (actualfreq0 at reference numeral 1104 and actualfreq1 at reference numeral 1110) is detected within the pass-band of the wide-bandwidth filters generated from the slice data, the warping function may be used again for a precise identification of the two actual FSK frequencies actualfreq0 1104 and actualfreq1 1110. As shown, freq0 1102 and actualfreq0 1104 differ by freqDelta0 Hz, as shown at reference numeral 1106. Similarly, freq1 1108 and actualfreq1 1110 differ by freqDelta1 Hz, as shown at reference numeral 1112. The two deltas, namely freqDelta0 1106 and freqDelta1 1112, represent the amount of deviation of the two FSK frequencies away from the nominal FSK frequencies freq0 1102 and freq1 1108 at which the transmitter was designed to transmit. Such deviation may be caused by, for example, a calibration error caused by imperfect tuning of the transmitter at the factory, temperature effects, or other environmental effects such as local conductivity around the transmitter that influence the transmitted frequency. As such, freq0 1102 and freq1 1108 may be thought of as a first order approximation of the location of actualfreq0 1104 and actualfreq1 1110, respectively. To fine tune the receiver 104 to the two actual FSK frequencies actualfreq0 1104 and actualfreq1 1110 and to reject unwanted signal(s) (if any), the warping function may be again applied to the already-warped slice data to iteratively (if required) create suitably narrow bandwidth filters at different center frequencies until strong peaks indicative of the presence of the actual frequencies at 1104 and 1110 appear in the pass-bands of the filters. This process may be iteratively carried out until the actual frequencies at 1104 and 1110 are sufficiently isolated and the frequencies (noise, generally) on either side of the thus-created narrow-band filters are rejected to enable reliable detection and decoding.

Referring again to FIG. 11, after having detected the actual FSK signals around nominal frequencies freq0 1102 and freq1 1108, the warping function may be applied to re-tune the receiver 104 (if not already re-tuned as a result of searching for the two actual FSK frequencies) from freq0 1102 to actualfreq0 1104, by warping the filter by a few Hz, shown in FIG. 11 at freqDelta0 1106. Similarly, the warping function also may be applied to re-tune the receiver 104 from freq1 1108 to actualfreq1 1110, by again warping the filter by a few Hz, shown in FIG. 11 at freqDelta1 1112. The result of this fine tuning, therefore, is a receiver 104 that utilizes slice data acquired at freqRef and that has been re-tuned to the first and second actual FSK frequencies; namely, freqwarp0 1114 (equal to freq0−freqRef+freqDelta0) and freqwarp1 1116 (equal to freq1−freqRef+freqDelta1). As the relationship between the two FSK frequencies is known a priori to the receiver (such as a known ratio relationship), such relationship may be exploited by the receiver as it tunes the two separate FSK frequencies.

According to one embodiment, therefore, an FSK receiver 104 may be configured to be tuned at a frequency freqRef that is neither the first FSK frequency freq0 nor the second FSK frequency freq1. The receiver 104 may then be re-tuned, using warp and slice combining functions, to each of the first and second FSK frequencies freq0 and freq1 and, thereafter, to the actual FSK frequencies through fine-tuning without, however, re-acquiring data at either of these frequencies; that is, without re-acquiring new raw ADC data at the re-tuned frequency or without reading previously stored sampled raw data from memory 114. Moreover, such re-tuning according to embodiments may be carried out by processing vastly less data (by, e.g. orders of magnitude or more) than would otherwise be required had new ADC data been acquired or had the original data been maintained in memory 114 and re-processed to detect the freq0 and freq1 FSK frequencies. That is, according to one embodiment, the re-tuning of the receiver 104 may be effected solely by carrying out what are, for the most part, addition operations with some multiplication operations on a limited store of previously-acquired slice data.

WARPING TO REDUCE NOISE, ALIGN SLICES TO AN AXIS—Referring to FIG. 8, the aligned slice vectors have a non-zero cosine component along the x-axis and a non-zero sine component along the y-axis. Each of these components may include some signal component and some noise. According to one embodiment, if the aligned slice vectors of FIG. 8 were forced to align with, for example, the x-axis (thereby driving the sine component thereof to zero), the sine components thereof would include zero signal and only noise. This noise may be safely ignored, as all of the energy of the slice (and thus of the signal) is now aligned with the x-axis. Accordingly, one embodiment changes the warping function WF in the detection to put all the slice energy into one of the two dimensions. For instance, if all slices were to be pointed along the real axis (cosine, x-axis), then no signal would be left in the imaginary (sine, y-axis) axis, leaving only noise therein. According to one embodiment, therefore, aligning the warped slices to either the x, or y axis may be carried out by adding a constant angle (Θ) to the warped slices:
WF(Φ)=(i·Φ)+Θ;

Accordingly, this implementation of the warping function adds a constant angle after scaling Φ by i, the slice index number. The addition of the constant angle, Θ (which may be positive or negative in sign) causes the output slices to be aligned in a selected (and preferred) direction, for example, aligned with the real axis (cosine component or x-axis) or the imaginary axis (sine component or y-axis). The warped slices, however, may be aligned by warping to any angle though judicious selection of the constant angle.

WARPING TO CORRECT FREQUENCY DEFECT—According to further embodiments, warping functions may be devised based on more sophisticated patterns or sequences of the slice index number. For example, the scaling factor need not be an integer. For example, if a transmitter transmits packets whose frequency falls (or rises) towards the end of a packet, the warping function may be adapted to track that falling frequency toward the end of the packet. For example, assuming the receiver has identified the starting slice index of a packet, the following warp function could be applied to the slice record for the purpose of aligning all slices in a packet.
WF( )=(Scaling Factor·i·Φ)
where, for example, Scaling Factor=[1 1 1 1 1 1 1 1 0.9 0.9 0.8 0.8 0.7 0.6 0.5 0.3 etc.] The scaling factor may be an algebraic expression or may be read from a table stored in memory 114 with suitable values stored therein. The warping function, in this manner, may be configured to track any quantifiable change in the frequency profile of the received packets, thereby allowing for, for example, non-constant and/or non-integer sequential adjustments of warping angle Φ from slice to slice.

WARPING TO DETECT CHIRP—Warping, according to one embodiment, also may be applied to any incoming signal having a non-constant frequency, such an intentional chirp-type signal, or a transmitter with poor frequency control where the frequency of the transmitted signal increases or decreases as the transmitter battery depletes.

For example, if the incoming signal is a rising chirp, the slice data may be warped by an angle that increases faster than the integer pattern shown and described relative to FIGS. 7 and 8. For example, the first slice may be warped by 1·φ, the second slice may be warped by 2.2·Φ, the third slice may be warped by 3.3·Φ, and so on. According to embodiments, therefore, the computation of the warping angle may comprise any function that reflects the frequency structure of the expected incoming signal. The use of slices, according to embodiments, enables efficient use of resources, in that a high degree of data compression may be achieved by converting the raw sample stream from the ADC 110 to slice data and discarding (or failing to store) the raw sample data. This is significant not only in terms of the size of the memory 114 required, but also in terms of the amount of calculations to be carried out later in the detection and decoding processes. The use of slices, warping functions, and slice combining functions, according to embodiments, also affords the receiver 104 a high degree of flexibility at multiple places in the detection algorithm. Because the original slices can be designed to have a relatively wide bandwidth, they can be re-tuned/warped over great number of Hz in either direction. For example, a slice with a 5000 Hz bandwidth, according to embodiments, may be warped 1000-2000 Hertz or more, up or down, without significant loss of signal strength. SLICE CORRELATION: FINDING A KNOWN PATTERN—According to one embodiment, a detection procedure may be carried out, to determine the presence of one or more data packets in the slice record. According to one embodiment, it is not the original raw ADC sampled data stream that is analyzed (which may have been previously discarded anyway), but the indexed and stored slice data. According to one embodiment, a function (for example, a real or complex correlation function) may be applied to the slice data, to compare the slice data with one or more pre-stored slice patterns corresponding to a known slice pattern in the signal. According to one embodiment, the data packets sought to be detected (and framed, to determine the boundaries thereof) may comprise a preamble of known length and configuration, followed by a payload of known length from which useful information may be extracted by a decoding process. For example, each data packet sought to be detected may comprise a preamble comprising 11 bits. For example, the preamble may comprise a known sequence such as, for example, a sequence of 7 zeros, followed by 1010 (00000001010). To determine the presence of a packet, therefore, a real or complex correlation function may be applied, according to one embodiment, to cross-correlate slice data to a slice pattern corresponding to the known preamble. To the extent that the slice data encodes data corresponding to one or more preambles of one or more data packets, the correlation function will return higher results when the preamble(s) of the input slice data and that of the template are aligned with one another, correspondingly lower results as the preambles in the input slice data and the template are only partially aligned with one another and lowest results when the preambles in the input slice data and the template are not aligned with one another or the input slices do not comprise any packets. This cross-correlation operation represents a very narrow-band filter, with bandwidth proportional to the reciprocal of the number of slices in the known preamble.

In one embodiment, slice correlation and warping may be used together to provide a fair estimate of the actual carrier frequency of the received signal, as the receiver 104 is iteratively re-tuned through warping and the resultant warped slices correlated with, for example, the expected slice pattern used to determine the presence and boundaries of the preamble. In this manner, a high correlation value may be associated with the actual carrier frequency of the received signal.

SLICE CORRELATION: FINDING EVIDENCE OF A PACKET—According to one embodiment, a detection procedure may be carried out to determine the presence of one or more data packets in the slice record prior to determining the frequency(ies) of the carrier(s). As in the discussion of cross-correlation with a pre-stored template above, only the indexed and stored slice data need be analyzed. According to one embodiment, a function (for example, a real or complex correlation function) may be applied to the slice data, to compare the slice data with itself (auto-correlation). Often, it is useful to perform correlation calculations at just a few different lags. For example, is the energy for an entire slice record, A, can be estimated by slice correlation with lag=0:

Corr ( 0 ) = n = 1 N A n × A n

AutoCorr(0) represents the baseline energy level for the slice record, against which other autocorrelations can be compared.

For a slice record containing no packets, slice auto-correlation with lag=1:

Corr ( 1 ) = n = 1 N - 1 A n × A n + 1

According to one embodiment, prior to determining the frequency(ies) of the carrier(s), an autocorrelation may be performed on the slice record A to determine if a packet is present therein. For a case where the slice record contains one or more packets, Corr(1) will have a higher value relative to Corr(0). This is an indication that a packet exists somewhere in the slice record. For a slice record containing no packets, slice auto-correlation with lag=1 will have a very low value relative to AutoCorr(0) if the slice record contains only uncorrelated noise. According to one embodiment, a packet may be considered to have been detected when the autocorrelation term Corr(1)/Corr(0) is determined to be above a predetermined threshold.

Confirmatory evidence for the presence of a packet can be developed if multiple packets exist in the slice record at a known packet separation m (measured in slices). Correlating the slice record with a lag=m (lag equal to the packet spacing) produces a high correlation result if packets are present at the anticipated spacing:

Corr ( m ) = n = 1 N - m A n × A n + m

According to one embodiment, a packet may be considered to have been detected when the correlation terms computed multiple times over a range of anticipated packet separations, Corr(m±range), are determined to be above a predetermined threshold relative to Corr(0). The expected range of packet separations arises due to variations in the as-yet to be determined packet frequency. In this manner, using slice data, packet detection may be carried out by correlating a delayed version of the slice record A with the slice record A and monitoring the magnitude of the resulting correlation terms.

OVERLAPPING PACKETS—According to one embodiment, the greater the number of packets in a slice data record, the better the auto-correlation results may be. Slices representing multiple suspected packets may be added to one another, to increase the likelihood of correct packet detection. Moreover, the packet boundaries may be determined by adding two or more suspected packets with one another. The result of the addition will be highest when the respective packets are perfectly aligned. The suspected packets may be shifted by one or more slices (according to one embodiment, by the number of slices between packets) and the addition operation may be applied to the shifted packets in this manner to determine the boundaries of the packets. It is to be understood, however, that there is more than one method of packet detection and framing. All such methods are understood to be encompassed by the present embodiments. It is also to be understood that, having identified the boundaries of packets, the signal to noise ratio is increased when only the packet is observed, as the only noise present is that within the packet and as all noise outside of the packet boundaries may be excluded or greatly attenuated.

MODULATION SCHEME: BPSK—The packet need not be encoded and decoded using FSK modulation. According to one embodiment, another forms of digital modulation may be used such as, for example, binary phase shift keying (BPSK). In such an encoding scheme, the symbol 0 may be encoded using a sine waveform of a certain number of cycles and the symbol 1 may be encoded using a −sine waveform out of phase by π radians of the same number of cycles. For example, a packet encoded using BPSK may comprise a preamble and a payload. The preamble may comprise, for example, seven 0s, followed by 1, 0, 1 and 0, in the form (000000001010). Real or complex correlation methods may be utilized, as described above, to determine the presence of one or more packets by comparing the slice record to a predetermined slice pattern representing the preamble. This operation serves to identify the presence of a packet and to synchronize the receiver 104 with the starting bit of the preamble. As noted above, the correlation function may additionally provide an estimate of the actual carrier frequency of the signal.

ITERATIVE DECODING—According to one embodiment, the bits of the packet payload may be decoded in the receiver one at a time in succession. To determine whether a bit is a logic zero or a logic one, successive correlations against a “zero template” and a “one template” may be used, with the larger of the two correlation results indicating the value of the bit. Such a method may, according to one embodiment, be used to decode the payload of a packet that appears after the preamble thereof, as the bit sequence in the payload is most often unknown a-priori by the receiver.

ARCTANGENT—According to one embodiment, in cases in which the signal to noise ratio is reasonable (e.g. around 0 dB or above), taking the arctangent of slices containing suspected packets may be revealing, and may identify the presence or absence of a packet.

CARRIER HUNT STRATEGY—According to one embodiment, once the presence of one or more packets in the slice data is determined, to determine the frequency(ies) with which the packets were modulated, whether encoded using FSK or PSK (for example) or however encoded, if a rough estimate of the actual frequency of the signal is known (say within 20 Hz, for example for an exemplary 20 kHz signal), the magnitudes of the correlations of the preamble, for example, may be determined at each of 20 different frequencies, at 1 Hz (or less) increments. According to one embodiment, the rough estimate of the carrier frequency(ies) may be the nominal frequency(ies) with which the transmitter is designed to transmit. Some knowledge of the communication channel may enable such an educated guess as to the frequency range within which the actual signal is likely to be found. In such a case, after having computed the correlation for each frequency within the frequency range, the frequency associated with the largest correlation magnitude may be safely assumed to be the (or one of the) carrier frequencies.

FIX DETECTION BY FLATTENING PHASE—It is to be understood that other methods of determining the frequency of a detected packet may be employed, without departing from the scope of the embodiments described in the present disclosure. For example, for each bit of a packet, the phase angles of the bit's constituent slices may be determined. The phase angles may, according to one embodiment, be determined by taking the arctangent (the ratio of the sine component of the slice to the cosine component) of each slice. Such a method may be best implemented when the signal to noise ratio is above a predetermined threshold such as, for example, about 0 dB. For BPSK modulation, such a phase angle, may swing between 0 and 2π, in a saw-tooth like fashion. The presence of such a saw-tooth pattern is suggestive that the constituent slices making up the bits being examined are, using the polar representation of FIG. 7, misaligned, as are slices 1, 2, 3 and 4 in that figure. With reference to FIG. 8, when the frequency being tested results in warping angles that form more or less a straight line (as opposed to a saw-tooth pattern), that frequency may be the or close to the actual frequency of the signal of interest. For PSK, for example, the warping angles will shift from one warping angle to another warping angle that is indicative of the PSK frequency at which the data was encoded. The resultant pattern may then resemble a square wave, from which the data may be readily apparent.

MODULATION SCHEME: MSK—Using methods similar to those previously described, data encoded using other modulation formats may be detected and decoded using only the stored slices and the warping function described herein. For example, the data in the slices may have been encoded using, for example, Multiple Shift Keying (MSK) using, for example, 4 frequencies or, for example, 16 frequencies to represent different symbols. In this case, each symbol may comprise information bits encoded with one or more frequencies (e.g. one or two) out of a plurality (e.g. 16) of frequencies, with each symbol potentially representing more than one bit. Other modulation formats that encode data may be decoded using only the slice information (and not the original data from the ADC 110, which has since been discarded) and the warping and slice combining functions described herein. Moreover, data encoded using combinations of modulation formats also may be detected and decoded, again using only slice information, warping, and slice combination. For example, data encoded with a combination of MSK and PSK may be decoded from the retained slice data.

In each case, the computational load on the controller 112 portion of the receiver 104 is lighter than it otherwise would be if the controller 112 were obliged to re-process the original raw data stream. For similar reasons, the memory requirements of the receiver's controller 112 are orders of magnitude less than would be the case had it been necessary to store the original raw incoming data in order to operate thereon later, during detection and decoding.

ONE-BIT ADC—For situations exhibiting an especially low signal to noise ratio, it may be advantageous for the receiver 104 to use an analog comparator or a 1-bit ADC to quantize the signal as being above or below a predetermined threshold (encoded as two values: +1 and −1). In this manner, the amount of data that is stored in the slice construct, according to embodiments, greatly decreases compared to storing multi-bit representations of the signal. A comparator or a 1-bit ADC may be used to good advantage in situations exhibiting low signal to noise ratio, as it enables samples to be gathered at a very high sample rate while still computing slices in a fast real-time loop on an ordinary processor. Inside the real-time loop, multiply operations are greatly simplified because one of the operands is either +1 or −1.

FIG. 12 is a logic flow of a method according to one embodiment. As shown therein, at B121 a signal that encodes one or more data packets is received. At B122, the received signal then may be sampled in an ADC to generate sampled values. At B123, a slice then may be generated and stored in memory, where each slice comprises a pair of values representing a selected slice interval of time. At B124, data packets are detected and decoded from the stored slices using various combinations of warp and slice combination operations.

FIG. 13 is a logic flow of a method according to one embodiment. As shown therein, at B131, a signal may be received that encodes a data packet at a first frequency. The received signal, as shown at B132, may then be sampled in an ADC to generate sampled values. The sampled values, as called for at B133, may then be correlated with first and second templates of values obtained at a second frequency that may be different from the first frequency to generate slices at the second frequency. According to one embodiment and as described and shown herein, the first template may be generated using a first reference function and the second template may be generated using a second reference function that is in quadrature with the first reference function. Some or all of the slices at the second frequency may be transformed (also denoted as “warped” herein) to slices at the second frequency (also denoted as “freqRef” herein), plus or minus an offset (denoted as “freqDelta” herein), as shown at B134. As shown at B135, a filter having a center frequency at the second frequency plus or minus the offset may be generated by combining the transformed (warped) slices.

According to one embodiment, a determination may then be made, as suggested at B136, whether the first frequency (the frequency of interest at which the data packet(s) is/are encoded) is within the pass-band of the generated filter. If the first frequency is indeed within the pass-band of the thus-generated filter, further steps may be carried out such as, for example, detection and decoding steps, as detailed herein. If the first frequency is not present within the pass-band of the generated filter, the slice transforming (warping) and filter generating (slice combining) steps may be iteratively repeated using respectively different offsets until the first frequency is indeed within the pass-band of the filter, as indicated by the NO branch of B136.

While certain embodiments of the disclosure have been described, these embodiments have been presented by way of example only, and are not intended to limit the scope of the disclosure. Indeed, the novel methods, devices and systems described herein may be embodied in a variety of other forms. Furthermore, various omissions, substitutions and changes in the form of the methods and systems described herein may be made without departing from the spirit of the disclosure. The accompanying claims and their equivalents are intended to cover such forms or modifications as would fall within the scope and spirit of the disclosure. For example, those skilled in the art will appreciate that in various embodiments, the actual physical and logical structures may differ from those shown in the figures. Depending on the embodiment, certain steps described in the example above may be removed, others may be added. Also, the features and attributes of the specific embodiments disclosed above may be combined in different ways to form additional embodiments, all of which fall within the scope of the present disclosure. Although the present disclosure provides certain preferred embodiments and applications, other embodiments that are apparent to those of ordinary skill in the art, including embodiments which do not provide all of the features and advantages set forth herein, are also within the scope of this disclosure. Accordingly, the scope of the present disclosure is intended to be defined only by reference to the appended claims.

Embodiments of the present invention have been described above. Further embodiments of the present invention can also be realized by systems or apparatuses that read out and execute programs recorded on a memory device to perform the functions of the above-described embodiment(s), and by a method, the steps of which are performed by, for example, reading out and executing a program recorded on a memory device to perform the functions of the above-described embodiment(s). For this purpose, the program may be provided to the system or apparatus (e.g. receiver), for example via a network or from a recording medium of various types serving as the memory device (e.g. computer-readable medium).

The present invention may be defined by way of the following clauses. It will be understood that the features recited are interchangeable defined by the following clauses and their dependencies. That is, the features of the clauses may be combined to define the present invention.

Clauses

1. A method, comprising:

receiving a signal, the signal encoding a data packet;

sampling the received signal;

generating and storing a plurality of slices comprising pairs of values for each of a selected number of samples of the signal; and

detecting a presence of and decoding the data packet from the stored slices.

2. The method of clause 1, wherein generating each of the plurality of slices comprises:

correlating samples of the signal with a first reference template;

generating a first value of the pair of values;

correlating the selected number of samples of the signal with a second reference template; and

generating a second value of the pair of values.

3. The method of clause 2, wherein the first reference template comprises a cosine function at a reference frequency and the second reference template comprises a sine function at the reference frequency.

4. The method of any of clauses 1 to 3, further comprising forming a filter by combining a number of the plurality of slices.

5. The method of any of clauses 1 to 4, wherein detecting the presence of the packet comprises detecting a carrier frequency within a pass-band of a filter formed by the plurality of slices.

6. The method of any of clauses 1 to 4, wherein detecting the presence of the packet comprises detecting a carrier frequency within a pass-band of a filter formed by combining slices.

7. The method of any of clauses 4 to 6, wherein detecting further comprises re-tuning a center frequency of the filter from a first center frequency to a second center frequency that is different from the first center frequency using the stored slices.

8. The method of clause 7, wherein re-tuning the center frequency of the filter comprises warping the slices from which the filter was formed by rotating the respective pairs of values thereof by a quantity.

9. The method of clause 8, wherein the quantity comprises a rotation angle, a scaling factor and indices associated with the slices from which the filter was formed.

10. The method of clause 8, wherein the quantity comprises a sum of a phase angle from a reference frequency and a product of a rotation angle and a slice index.

11. A signal receiver, comprising:

analog-to-digital converter means (ADC) configured to sample a received signal;

memory means;

controller means coupled to the memory means and configured to:

12. The signal receiver of clause 11, wherein the memory means is configured to store at least a first reference template and a second reference template and wherein the controller means is further configured to correlate the selected number of cycles of the sampled signal with the first reference template to generate a first value of the pair of values and to correlate the selected number of samples of the signal with the second reference template to generate a second value of the pair of values.

13. The signal receiver of clause 11 or clause 12, wherein the controller means is further configured to combine a number of slices to form a filter.

14. The signal receiver of clause 13, wherein a bandwidth of the filter is related to the number of combined slices.

15. The signal receiver of any of clauses 11 to 14, wherein the controller means is further configured to detect the presence of the packet by detecting a carrier frequency within a pass-band of a filter formed by combining the slices.

16. The signal receiver of any of clauses 13 to 15, wherein the controller means is further configured to re-tune, using the stored slices, a center frequency of the filter from a first center frequency to a second center frequency that is different from the first center frequency.

17. The signal receiver of any of clauses 11 to 16, wherein the signal encodes data packets at a first frequency and wherein controller means is further configured to:

correlate the samples with first and second templates of values obtained at a second frequency that is different from the first frequency to generate a plurality of slices that each comprise a pair of values;

transform at least some of the plurality of slices at the second frequency to slices at the second frequency plus or minus an offset, and

generate a filter having a center frequency at the second frequency plus or minus the offset by combining the transformed slices.

18. A method, comprising:

receiving a signal, the signal encoding a data packet at a first frequency;

sampling the signal to generate sampled values;

correlating the sampled values with first and second templates of values obtained at a second frequency that is different from the first frequency to generate a plurality of slices at the second frequency, each of the slices comprising a pair of values;

transforming at least some of the plurality of slices at the second frequency to slices at the second frequency plus or minus an offset, and

generating a filter having a center frequency at the second frequency plus or minus the offset by combining the transformed slices.

19. The method of clause 18, further comprising determining whether the first frequency is within a pass-band of the generated filter

20. The method of clause 19, further comprising iteratively transforming, generating and determining using respectively different offsets until the first frequency is within the pass-band of the filter.

21. A method, comprising:

receiving a signal, the signal encoding a data packet;

sampling the signal to generate sampled values;

generating a slice record comprising a plurality of slices by correlating the sampled values with first and second reference templates, the first reference template comprising a first reference function and the second reference template comprising a second reference function in quadrature with the first reference function;

auto-correlating a portion of the slice record with a delayed version of the portion of the slice record to generate auto-correlation terms; and

determining when magnitudes of auto-correlation terms exceed a predetermined threshold for a predetermined number of auto-correlation terms.

22. The method of clause 21, further comprising determining a carrier frequency of the received signal.

23. The method of clause 22, wherein determining comprises:

warping at least some of the plurality of slices by a frequency offset, and

generating a filter from the warped slices and,

determining whether the carrier frequency is within a pass-band of the generated filter.

24. A method, comprising:

receiving a signal, the signal encoding a data packet;

sampling the signal to generate sampled values;

generating a slice record comprising a plurality of slices from the sampled values by correlating the sampled values with first and second reference templates, the first reference template comprising a first reference function and the second reference template comprising a second reference function in quadrature with the first reference function;

cross-correlating the slice record with a stored template to generate cross-correlation terms; and

determining when a magnitude of the cross-correlation terms exceeds a predetermined threshold for a width of the stored template.

25. The method of clause 24, wherein the first reference template comprises a cosine function and wherein the second template function comprises a sine function.

26. The method of clause 24, further comprising determining a carrier frequency of the received signal.

27. A method, comprising:

receiving a signal;

sampling the signal to generate sampled values;

correlating the sampled values with predetermined first and second templates of values obtained at a first frequency to generate a plurality of slices at the first frequency;

transforming at least some of the generated plurality of slices at the first frequency to slices at a second frequency that is different from the first frequency;

generating a first filter having from the slices at the second frequency;

transforming at least some of the generated plurality of slices at the first frequency to slices at a third frequency that is different from the first and second frequencies, and

generating a second filter from the slices at the third frequency.

28. The method of clause 27, further comprising discarding the generated sampled values of the received signal after generating the plurality of slices at the first frequency.

29. The method of clause 27 or clause 28, further comprising detecting a first carrier frequency within a pass-band of the first filter and detecting a second carrier frequency within a pass-band of the second filter.

30. A method, comprising:

receiving a signal, the signal encoding data packets;

sampling the signal to generate sampled values;

generating a slice record comprising a plurality of slices from the sampled values by correlating the sampled values with first and second reference templates, the first reference template comprising a first reference function and the second reference template comprising a second reference function in quadrature with the first reference function;

auto-correlating a portion of the slice record spanning at least two preambles of the encoded data packets with a delayed version thereof to generate auto-correlation terms; and

determining when magnitudes of auto-correlation terms exceed a predetermined threshold for a predetermined number of auto-correlation terms.

31. The method of clause 30, further comprising determining boundaries of the data packets from magnitudes of the auto-correlation terms.

32. The method of clause 30 or clause 31, wherein the carrier frequency of the signal is detected when successive phase angles, across bits of the data packet, least resemble a first predetermined pattern and most resemble a second predetermined pattern.

33. A program, which when executed by a computer, causes the computer to carry out the method of any of clauses 1 to 10 and 18 to 32.

34. A program which, when executed by a computer, causes the computer to function as the signal receiver of any of clauses 11 to 17.

35. A storage medium storing the program according to clause 33 or clause 34.

Accordingly, the preceding merely illustrates the principles of the invention. It will be appreciated that those skilled in the art will be able to devise various arrangements which, although not explicitly described or shown herein, embody the principles of the invention and are included within its spirit and scope. Furthermore, all examples and conditional language recited herein are principally intended to aid the reader in understanding the principles of the invention and the concepts contributed by the inventors to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions. Moreover, all statements herein reciting principles, aspects, and aspects of the invention as well as specific examples thereof, are intended to encompass both structural and functional equivalents thereof. Additionally, it is intended that such equivalents include both currently known equivalents and equivalents developed in the future, i.e., any elements developed that perform the same function, regardless of structure. The scope of the present invention, therefore, is not intended to be limited to the exemplary aspects shown and described herein. Rather, the scope and spirit of present invention is embodied by the appended claims.

Fleming, Robert, McAllister, William H., Zdeblick, Mark, Kushner, Cherie

Patent Priority Assignee Title
10097388, Sep 20 2013 Proteus Digital Health, Inc. Methods, devices and systems for receiving and decoding a signal in the presence of noise using slices and warping
10398161, Jan 21 2014 OTSUKA PHARMACEUTICAL CO , LTD Masticable ingestible product and communication system therefor
10498572, Sep 20 2013 Proteus Digital Health, Inc. Methods, devices and systems for receiving and decoding a signal in the presence of noise using slices and warping
11102038, Sep 20 2013 OTSUKA PHARMACEUTICAL CO , LTD Methods, devices and systems for receiving and decoding a signal in the presence of noise using slices and warping
11158149, Mar 15 2013 OTSUKA PHARMACEUTICAL CO , LTD Personal authentication apparatus system and method
11741771, Mar 15 2013 Otsuka Pharmaceutical Co., Ltd. Personal authentication apparatus system and method
9442065, Sep 29 2014 ZYOMED HOLDINGS, INC Systems and methods for synthesis of zyotons for use in collision computing for noninvasive blood glucose and other measurements
9448164, Sep 29 2014 ZYOMED HOLDINGS, INC Systems and methods for noninvasive blood glucose and other analyte detection and measurement using collision computing
9448165, Sep 29 2014 ZYOMED HOLDINGS, INC Systems and methods for control of illumination or radiation collection for blood glucose and other analyte detection and measurement using collision computing
9453794, Sep 29 2014 ZYOMED HOLDINGS, INC Systems and methods for blood glucose and other analyte detection and measurement using collision computing
9459201, Sep 29 2014 ZYOMED HOLDINGS, INC Systems and methods for noninvasive blood glucose and other analyte detection and measurement using collision computing
9459202, Sep 29 2014 ZYOMED HOLDINGS, INC Systems and methods for collision computing for detection and noninvasive measurement of blood glucose and other substances and events
9459203, Sep 29 2014 ZYOMED HOLDINGS, INC Systems and methods for generating and using projector curve sets for universal calibration for noninvasive blood glucose and other measurements
9554738, Mar 30 2016 ZYOMED HOLDINGS, INC Spectroscopic tomography systems and methods for noninvasive detection and measurement of analytes using collision computing
9577864, Sep 24 2013 PROTEUS DIGITAL HEALTH, INC Method and apparatus for use with received electromagnetic signal at a frequency not known exactly in advance
9597010, Jul 11 2011 Proteus Digital Health, Inc. Communication system using an implantable device
9610018, Sep 29 2014 ZYOMED HOLDINGS, INC Systems and methods for measurement of heart rate and other heart-related characteristics from photoplethysmographic (PPG) signals using collision computing
9756874, Jan 21 2014 OTSUKA PHARMACEUTICAL CO , LTD Masticable ingestible product and communication system therefor
9787511, Sep 20 2013 Proteus Digital Health, Inc. Methods, devices and systems for receiving and decoding a signal in the presence of noise using slices and warping
Patent Priority Assignee Title
3607788,
3642008,
3679480,
3682160,
3719183,
3828766,
3837339,
3989050, Sep 29 1970 Process for utilizing certain gel compositions for electrical stimulation
4067014, Oct 04 1976 Hazeltine Corporation Correlation receiver for doppler microwave landing system
4077397, Oct 07 1974 Baxter Travenol Laboratories, Inc. Diagnostic electrode assembly
4077398, Oct 07 1974 Baxter Travenol Laboratories, Inc. Diagnostic electrode assembly
4082087, Feb 07 1977 NEUROMEDICS, INC , A CORP OF TX Body contact electrode structure for deriving electrical signals due to physiological activity
4090752, Oct 07 1974 Baxter Travenol Laboratories, Inc. Diagnostic electrode assembly
4106348, Feb 20 1974 U.S. Philips Corporation Device for examination by means of ultrasonic vibrations
4121573, Jun 14 1971 Goebel Fixture Co. Wireless cardiac monitoring system and electrode-transmitter therefor
4129125, Dec 27 1976 FERTILACHRON CORPORATION Patient monitoring system
4166453, Jan 21 1977 Cardio Technology Limited Body electrodes
4185172, Dec 17 1976 CSELT - Centro Studi e Laboratori Telecomunicazioni S.p.A. Method of and means for detecting digitized multi frequency-coded signals
4239046, Sep 21 1978 LECTEC CORPORATION, A CORP OF MN Medical electrode
4269189, Jul 09 1979 Consolidated Medical Equipment Inc. Skin conducting electrode assembly
4331654, Jun 13 1980 ELI LILLY AND COMPANY, A CORP OF INDIANA Magnetically-localizable, biodegradable lipid microspheres
4333150, Jan 28 1980 ABB DAIMLER-BENZ TRANSPORTATION NORTH AMERICA INC ; ABB DAIMLER-BENZ TRANSPORATION NORTH AMERICA INC Signal receiving apparatus and method
4345588, Aug 01 1977 Northwestern University Method of delivering a therapeutic agent to a target capillary bed
4418697, Aug 17 1981 Electrode attachment method
4425117, Jul 14 1979 HUGEMANN, BERHHARD; SCHUSTER, OTTO Device for the release of substances at defined locations in the alimentary tract
4494950, Jan 19 1982 The Johns Hopkins University Plural module medication delivery system
4512385, Jan 06 1982 FMC Corporation Mold registration apparatus
4559950, Nov 25 1983 Graphic Controls Corporation Disposable biomedical and diagnostic electrode
4578061, Oct 28 1980 Injection catheter and method
4635641, Oct 16 1985 Murray Electronics Associates Limited Multi-element electrode
4654165, Apr 16 1985 Micro Tracers, Inc. Microingredient containing tracer
4669479, Aug 21 1985 TECHNOLOGY 21, INC , Dry electrode system for detection of biopotentials
4725997, Aug 22 1986 Aprex Corporation Contingent dosing device
4749575, Oct 03 1983 Bio-Dar Ltd. Microencapsulated medicament in sweet matrix
4763659, Aug 21 1985 TECHNOLOGY 21, INC , Dry electrode system for detection of biopotentials
4784162, Sep 23 1986 Advanced Medical Technologies Portable, multi-channel, physiological data monitoring system
4793825, Sep 11 1984 The Secretary of State for Defence in Her Britannic Majesty's Government Active silicon implant devices
4809705, Oct 11 1984 Portable electrocardiogram monitor
4844076, Aug 26 1988 The Johns Hopkins University Ingestible size continuously transmitting temperature monitoring pill
4858617, Sep 10 1987 ITH, Inc. Cardiac probe enabling use of personal computer for monitoring heart activity or the like
4896261, Nov 24 1986 Motorola Inc. System for scheduling serial message transmission on a bus which is adoptable for rescheduling prioritized messages using a doubly-linked list
4975230, Jun 17 1988 MASCO VT, INC Method of making an open pore structure
4987897, Sep 18 1989 Medtronic, Inc. Body bus medical device communication system
5016634, Apr 18 1989 Pacesetter AB Implantable medical device with means for telemetric transmission of data
5079006, Jul 15 1987 Aprex Corporation Pharmaceutical compositions containing a magnetically detectable material
5113859, Sep 19 1988 Medtronic, Inc. Acoustic body bus medical device communication system
5167626, Oct 02 1990 CASPER, ROBERT A Medical capsule device actuated by radio-frequency (RF) signal
5176626, Jan 15 1992 Cook Medical Technologies LLC Indwelling stent
5232383, Oct 21 1992 Medical snap connector
5245332, Jun 22 1988 IDESCO OY, A CORP OF FINLAND Programmable memory for an encoding system
5261402, Jul 20 1992 Graphic Controls Corporation Snapless, tabless, disposable medical electrode with low profile
5263481, May 21 1992 Electrode system with disposable gel
5281287, Jul 21 1989 IOMED, LLC; ENCORE MEDICAL ASSET CORORATION Method of making a hydratable bioelectrode
5283136, Jun 03 1992 Ramot University Authority for Applied Research and Industrial Development LTD Rechargeable batteries
5318557, Jul 13 1992 Elan Corporation, PLC Medication administering device
5394882, Jul 21 1993 RIC Investments, LLC Physiological monitoring system
5458141, Aug 04 1993 MORTARA INSTRUMENT, INC Abrasive skin electrode
5485841, Feb 14 1995 McGill University Ultrasonic lung tissue assessment
5511548, May 24 1993 NDM, INC Biomedical electrode having a secured one-piece conductive terminal
5551020, Mar 28 1994 FLEXTECH SYSTEMS, INC System for the compacting and logical linking of data blocks in files to optimize available physical storage
5596302, Jan 17 1996 AVAGO TECHNOLOGIES GENERAL IP SINGAPORE PTE LTD Ring oscillator using even numbers of differential stages with current mirrors
5634466, Nov 19 1993 Advanced Technology Laboratories, Inc. Ultrasonic transesophageal probe with detachable transducer tip
5634468, Apr 03 1992 VECTRACOR, INC Sensor patch and system for physiological monitoring
5645063, Jun 05 1995 QUINTON INC Skin electrode having multiple conductive center members
5720771, Aug 02 1995 Pacesetter, Inc.; Pacesetter, Inc Method and apparatus for monitoring physiological data from an implantable medical device
5724432, May 06 1993 Centre Scientifique et Technique du Batiment Acoustic attenuation device with active double wall
5740811, Nov 28 1995 Pacesetter AB Device and method for generating a synthesized ECG
5792048, Sep 03 1996 Indentification pill with integrated microchip: smartpill, smartpill with integrated microchip and microprocessor for medical analyses and a smartpill, smartbox, smartplague, smartbadge or smartplate for luggage control on commercial airliners
5802467, Sep 28 1995 Innovative Intelcom Industries Wireless and wired communications, command, control and sensing system for sound and/or data transmission and reception
5833716, Oct 25 1994 BIONESS NEUROMODULATION LTD Electrode structure and system
5845265, Apr 26 1995 EBAY, INC Consignment nodes
5862803, Sep 04 1993 Body Science LLC Wireless medical diagnosis and monitoring equipment
5862808, Aug 26 1997 Consolidated Cigar Corporation Cigar punch
5868136, Feb 20 1996 Axelgaard Manufacturing Co. Ltd. Medical electrode
5921925, May 30 1997 Conmed Corporation Biomedical electrode having a disposable electrode and a reusable leadwire adapter that interfaces with a standard leadwire connector
5925030, Aug 15 1994 Elan Pharma International Limited Orally administrable delivery device
5925066, Oct 26 1995 Galvani, Ltd. Atrial arrythmia sensor with drug and electrical therapy control apparatus
5957854, Sep 04 1993 Body Science LLC Wireless medical diagnosis and monitoring equipment
5974124, Jan 21 1997 MED GRAPH, INC Method and system aiding medical diagnosis and treatment
5981166, Apr 23 1997 PHARMASEQ, INC Screening of soluble chemical compounds for their pharmacological properties utilizing transponders
5999846, Nov 08 1995 Oxford Biosignals Limited Physiological monitoring
6023631, Dec 17 1996 Conmed Corporation Biomedical electrode having a disposable electrode and a reusable leadwire adapter that interfaces with a standard leadwire connector
6038464, Feb 09 1998 Axelgaard Manufacturing Co., Ltd. Medical electrode
6042710, Dec 17 1997 Caliper Life Sciences, Inc Methods and compositions for performing molecular separations
6047203, Mar 17 1997 adidas AG Physiologic signs feedback system
6076016, Oct 19 1995 TELECOM MEDICAL, INC Galvanic transdermal conduction communication system and method
6081734, Aug 16 1996 Roche Diagnostics GmbH Monitoring system for the regular intake of a medicament
6095985, Feb 24 1995 Brigham and Women's Hospital Health monitoring system
6115636, Dec 22 1998 Medtronic, Inc Telemetry for implantable devices using the body as an antenna
6117077, Jan 22 1999 Spacelabs Healthcare, LLC Long-term, ambulatory physiological recorder
6122351, Jan 21 1997 MED GRAPH, INC Method and system aiding medical diagnosis and treatment
6141592, Mar 06 1998 Intermedics Inc Data transmission using a varying electric field
6200265, Apr 16 1999 Medtronic, Inc.; Medtronic, Inc Peripheral memory patch and access method for use with an implantable medical device
6200625, Jul 24 1997 Nestec S.A. Preparation of chocolate products with limonene to reduce fat content
6204764, Sep 11 1998 KEY CONTROL HOLDING, INC , A DELAWARE CORPORATION Object tracking system with non-contact object detection and identification
6206702, Aug 24 1999 Methods and devices for treating unilateral neglect
6217744, Dec 18 1998 Devices for testing fluid
6231593, Mar 21 1994 DUSA PHARMACEUTICALS, INC. Patch, controller, and method for the photodynamic therapy of a dermal lesion
6238338, Jul 19 1999 ALTEC, INC Biosignal monitoring system and method
6245057, Apr 23 1997 Micronas GmbH Device for treating malignant, tumorous tissue areas
6275476, Feb 19 1998 Round Rock Research, LLC Method of addressing messages and communications system
6285897, Apr 07 1999 Given Imaging LTD Remote physiological monitoring system
6287252, Jun 30 1999 Cardiac Pacemakers, Inc Patient monitor
6289238, Sep 04 1993 Body Science LLC Wireless medical diagnosis and monitoring equipment
6315719, Jun 26 1999 ZUERICH MEDTECH AG System for long-term remote medical monitoring
6317714, Feb 04 1997 MUSICQUBED INNOVATIONS, LLC Controller and associated mechanical characters operable for continuously performing received control data while engaging in bidirectional communications over a single communications channel
6358202, Jan 25 1999 Oracle America, Inc Network for implanted computer devices
6364834, Nov 13 1996 INDUSIND BANK LIMITED Method and system for remotely monitoring multiple medical parameters in an integrated medical monitoring system
6366206, Jun 02 1999 Ball Semiconductor, Inc.; BALL SEMICONDUCTOR, INC Method and apparatus for attaching tags to medical and non-medical devices
6371927, Aug 22 1997 THE BANK OF NEW YORK MELLON TRUST COMPANY, N A Ingestible animal temperature sensor
6374670, Mar 13 1995 EMERALD MEDICAL PRODUCTS Non-invasive gut motility monitor
6380858, Dec 29 1999 Becton, Dickinson and Company Systems and methods for monitoring patient compliance with medication regimens
6394953, Feb 25 2000 Nellcor Puritan Bennett LLC Electrode array system for measuring electrophysiological signals
6394997, Jun 12 1996 Medical devices using electrosensitive gels
6409674, Sep 24 1998 Pacesetter, Inc Implantable sensor with wireless communication
6426863, Nov 25 1999 LITHIUM POWER TECHNOLOGIES, INC Electrochemical capacitor
6432292, May 16 2000 ZINCNYX ENERGY SOLUTIONS INC Method of electrodepositing metal on electrically conducting particles
6440069, Feb 24 1995 Pacesetter, Inc Health monitoring system
6441747, Apr 18 2000 Lifesync Corporation Wireless system protocol for telemetry monitoring
6477424, Jun 19 1998 Medtronic, Inc Medical management system integrated programming apparatus for communication with an implantable medical device
6482156, Jul 12 1996 Clinical Decision Support, LLC Computerized medical diagnostic and treatment advice system including network access
6494829, Apr 15 1999 CLEARPATH PARTNERS, LLC Physiological sensor array
6496705, Apr 18 2000 Lifesync Corporation Programmable wireless electrode system for medical monitoring
6526315, Mar 17 2000 Tanita Corporation Portable bioelectrical impedance measuring instrument
6544174, May 19 2000 WELCH ALLYN PROTOCOL, INC Patient monitoring system
6564079, Jul 27 2000 NERVONIX, INC Electrode array and skin attachment system for noninvasive nerve location and imaging device
6577893, Sep 04 1993 Body Science LLC Wireless medical diagnosis and monitoring equipment
6579231, Mar 27 1998 Apple Inc Personal medical monitoring unit and system
6605038, Jun 16 2000 JB IP ACQUISTION LLC; JB IP ACQUISITION LLC System for monitoring health, wellness and fitness
6605046, Jun 03 1991 Spacelabs Healthcare, LLC Ambulatory physio-kinetic monitor with envelope enclosure
6609018, Jul 27 2000 NERVONIX, INC Electrode array and sensor attachment system for noninvasive nerve location and imaging device
6612984, Dec 03 1999 System and method for collecting and transmitting medical data
6632175, Nov 08 2000 HEWLETT-PACKARD DEVELOPMENT COMPANY, L P Swallowable data recorder capsule medical device
6632216, Dec 21 1999 PHAETON RESEARCH LTD Ingestible device
6643541, Dec 07 2001 Google Technology Holdings LLC Wireless electromyography sensor and system
6654638, Apr 06 2000 Cardiac Pacemakers, Inc Ultrasonically activated electrodes
6663846, Dec 21 1998 University of Maryland, Baltimore Devices and methods for monitoring drug therapy compliance
6673474, Aug 09 2000 Showa Denko K K Medium substrate, production method thereof and magnetic disk device
6680923, May 23 2000 FRAZIER, L SCOTT, PH D Communication system and method
6689117, Dec 18 2000 Cardiac Pacemakers, Inc Drug delivery system for implantable medical device
6694161, Apr 20 2001 MONSANTO TECHNOLOGY LLC Apparatus and method for monitoring rumen pH
6704602, Jul 02 1998 Medtronic, Inc. Implanted medical device/external medical instrument communication utilizing surface electrodes
6720923, Sep 14 2000 TRAXSIS, INC Antenna design utilizing a cavity architecture for global positioning system (GPS) applications
6738671, Oct 26 2000 Medtronic, Inc Externally worn transceiver for use with an implantable medical device
6740033, Jun 18 1999 Agilent Technologies, Inc Multi-parameter capability transmitter for wireless telemetry systems
6745082, Oct 22 2001 Current-controlling electrode with adjustable contact area
6755783, Apr 16 1999 Cardiocom Apparatus and method for two-way communication in a device for monitoring and communicating wellness parameters of ambulatory patients
6757523, Mar 31 2000 GOOGLE LLC Configuration of transmit/receive switching in a transceiver
6800060, Nov 08 2000 Hewlett-Packard Development Company, L.P. Swallowable data recorder capsule medical device
6801137, Apr 23 2001 HEALTHCARE FINANCIAL SOLUTIONS, LLC, AS SUCCESSOR AGENT Bidirectional communication between a sensor unit and a monitor unit in patient monitoring
6814706, Feb 08 2001 Mini Mitter Co., Inc. Skin patch including a temperature sensor
6822554, Jan 11 2002 AARDEX Group Systems and methods for medication monitoring
6836862, Apr 24 2000 Hewlett Packard Enterprise Development LP Method of indicating wireless connection integrity
6839659, Jun 16 2000 Isis Innovation Limited System and method for acquiring data
6840904, Oct 11 2001 IDEAL LIFE INC Medical monitoring device and system
6842636, Sep 27 2002 Axelgaard Manufacturing Co., Ltd. Medical electrode
6845272, May 25 1999 MEDICOTEST A S Skin electrode
6856832, Dec 25 1997 NIHON KOHDEN CORPORATION Biological signal detection apparatus Holter electrocardiograph and communication system of biological signals
6864780, Sep 08 2000 PANASONIC ELECTRIC WORKS CO , LTD Data transmission system using a human body as a signal transmission path
6879810, Dec 20 2000 Nokia Siemens Networks Oy Control of short range RF communication
6882881, Oct 19 1999 Johns Hopkins University, The Techniques using heat flow management, stimulation, and signal analysis to treat medical disorders
6897788, Apr 18 2000 Lifesync Corporation Wireless system protocol for telemetry monitoring
6909878, Aug 20 2002 IXI MOBILE ISRAEL LTD Method, system and computer readable medium for providing an output signal having a theme to a device in a short distance wireless network
6922592, Apr 04 2000 Medtronic, Inc Implantable medical device controlled by a non-invasive physiological data measurement device
6928370, Jul 05 2000 Rolls-Royce plc Health monitoring
6929636, Nov 08 2000 HEWLETT-PACKARD DEVELOPMENT COMPANY L P Internal drug dispenser capsule medical device
6937150, Jul 31 2001 PHYSIO-CONTROL, INC Method and system for locating a portable medical device
6942616, Dec 03 1999 System and method for collecting and transmitting medical data
6951536, Jul 30 2001 Olympus Corporation Capsule-type medical device and medical system
6957107, Mar 13 2002 HEALTHCARE FINANCIAL SOLUTIONS, LLC, AS SUCCESSOR AGENT Method and apparatus for monitoring and communicating with an implanted medical device
6959929, Jul 26 2001 THERMODYN Seal for a compressor and centrifugal compressor equipped with such a seal
6961601, Jun 11 2003 Quantum Applied Science & Research, Inc. Sensor system for measuring biopotentials
6968153, Mar 13 2002 Nokia Corporation Apparatus, method and system for a Bluetooth repeater
6987965, Apr 18 2000 Lifesync Corporation Programmable wireless electrode system for medical monitoring
6990082, Nov 08 1999 Intel Corporation Wireless apparatus having a transceiver equipped to support multiple wireless communication protocols
7002476, Jan 30 2003 LOF LLC Medication compliance system
7004395, May 25 1990 AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED Multi-level hierarchical radio-frequency communication system
7009634, Mar 08 2000 Given Imaging LTD Device for in-vivo imaging
7009946, Jun 22 2000 Intel Corporation Method and apparatus for multi-access wireless communication
7013162, Sep 21 1999 IPR LICENSING, INC Dual mode unit for short range, high rate and long range, lower rate data communications
7016648, Dec 18 2001 FCO V CLO TRANSFEROR LLC Method, system and computer readable medium for downloading a software component to a device in a short distance wireless network
7020508, Aug 22 2002 JB IP ACQUISITION LLC Apparatus for detecting human physiological and contextual information
7024248, Oct 16 2000 Remon Medical Technologies LTD Systems and methods for communicating with implantable devices
7031745, May 12 2003 Hong Kong Technologies Group Limited Cellular phone combined physiological condition examination and processing device
7031857, May 31 2001 OXFORD UNIVERSITY INNOVATION LIMITED Patient condition display
7039453, Feb 08 2000 MICROGIZZMOS, LLC Miniature ingestible capsule
7046649, Jan 20 2000 AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED Interoperability for bluetooth/IEEE 802.11
7076437, Oct 29 1999 Process for consumer-directed diagnostic and health care information
7116252, Jun 21 2004 Mitutoyo Corporation Encoder and signal adjustment method for the same
7118531, Sep 24 2002 JOHNS HOKINS UNIVERSITY, THE Ingestible medical payload carrying capsule with wireless communication
7127300, Dec 23 2002 Cardiac Pacemakers, Inc. Method and apparatus for enabling data communication between an implantable medical device and a patient management system
7139332, May 17 2002 AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED Quadrature receiver sampling architecture
7146228, Jul 19 2000 MEDICOTEST A S Skin electrode with a by-pass element
7146449, Dec 22 2004 Toshiba Global Commerce Solutions Holdings Corporation Bluetooth association with simple power connection
7149581, Jan 31 2003 Medtronic, Inc.; Medtronic, Inc Patient monitoring device with multi-antenna receiver
7154071, Dec 07 2004 Dräger Safety AG & co. KGaA Device for transmitting an electric signal detected by contact with the skin surface
7154916, Jul 26 2001 The DIRECTV Group, Inc. Method for real-time insertion of auxiliary data packets into DSS bitstream in the presence of one or more service channels
7155232, Mar 05 2003 Intellectual Ventures I LLC Transmit request signaling between transceivers
7160258, Jun 26 2001 ENTRACK, INC Capsule and method for treating or diagnosing the intestinal tract
7161484, Apr 17 2001 MIRCEL MEDICAL DEVICES S A System for monitoring medical parameters
7164942, Nov 09 1998 TRANSPHARMA MEDICAL LTD Handheld apparatus and method for transdermal drug delivery and analyte extraction
7171166, Apr 18 2000 Lifesync Corporation Programmable wireless electrode system for medical monitoring
7171177, Sep 07 2004 Electronics and Telecommunications Research Institute Communication apparatus and method using human body as medium
7171259, Apr 17 2003 Polar Electro Oy Method and device for measuring heart rate, and method for manufacturing the device
7187960, Apr 22 2002 BRAIN TUNNELGENIX Apparatus and method for measuring biologic parameters
7188199, Jun 03 2003 Silicon Laboratories Inc DMA controller that restricts ADC from memory without interrupting generation of digital words when CPU accesses memory
7188767, Mar 18 2002 Precision Dynamics Corporation Physical condition or environmental threat detection appliance system
7194038, Oct 29 1998 Memory Technologies LLC Method for data communication between a wireless device and an electric device, and a data communication device
7206630, Jun 29 2004 Orbital Research Inc Electrode patch and wireless physiological measurement system and method
7209790, Sep 30 2002 Medtronic, Inc Multi-mode programmer for medical device communication
7215660, Feb 14 2003 Sony Interactive Entertainment LLC Single transceiver architecture for a wireless network
7215991, Sep 04 1993 Body Science LLC Wireless medical diagnosis and monitoring equipment
7218967, Sep 26 2003 Medtronic, Inc System and method for real-time remote monitoring of implantable medical devices
7231451, May 08 2000 CSR TECHNOLOGY INC Transmit-only and receive-only Bluetooth apparatus and method
7243118, Jul 30 2003 AVAGO TECHNOLOGIES GENERAL IP SINGAPORE PTE LTD Method and apparatus for efficient derivation of modulo arithmetic for frequency selection
7246521, Sep 22 2003 Diagnostic system for monitoring structural health conditions
7249212, Dec 22 2004 Toshiba Global Commerce Solutions Holdings Corporation Bluetooth association based on docking connection
7252792, Sep 27 2002 Axelgaard Manufacturing Company, Ltd. Medical electrode
7253716, Aug 17 2004 Tagent Corporation Trackable pills with electronic ID tags
7261690, Jun 16 2000 JB IP ACQUISITION LLC Apparatus for monitoring health, wellness and fitness
7270633, Apr 22 2005 Cardiac Pacemakers, Inc. Ambulatory repeater for use in automated patient care and method thereof
7273454, Feb 24 1995 Brigham and Women's Hospital Health monitoring system
7285090, Jun 16 2000 JB IP ACQUISITION LLC Apparatus for detecting, receiving, deriving and displaying human physiological and contextual information
7289855, Jun 09 2004 Medtronic, Inc Implantable medical device package antenna
7291497, Sep 11 2003 Labrador Diagnostics LLC Medical device for analyte monitoring and drug delivery
7292139, Dec 17 2002 Cardiac Pacemakers, Inc. Repeater device for communications with an implantable medical device
7294105, Sep 03 2002 CALLAHAN CELLULAR L L C System and method for a wireless medical communication system
7313163, Jun 17 2003 Google Technology Holdings LLC Fast synchronization for half duplex digital communications
7317378, Aug 17 2004 Tagent Corporation Product identification tag device and reader
7318808, Dec 14 2001 OXFORD UNIVERSITY INNOVATION LIMITED Combining measurements from breathing rate sensors
7336929, Jul 05 2004 Sony Corporation Short range wireless communication system, portable terminal apparatus, and wireless communication apparatus
7342895, Jan 30 2004 Mark, Serpa Method and system for peer-to-peer wireless communication over unlicensed communication spectrum
7346380, Jun 16 2006 Axelgaard Manufacturing Co., Ltd. Medical electrode
7349722, May 26 1999 Visteon Global Technologies, Inc Wireless communications system and method
7352998, Sep 12 2003 Nokia Technologies Oy Method and system for establishing a wireless communications link
7353258, Apr 11 2005 IMAGEWARE SYSTEMS, INC Interactive messaging system
7357891, Oct 12 2001 AQUESTIVE THERAPEUTICS, INC Process for making an ingestible film
7359674, May 10 2005 Nokia Technologies Oy Content distribution & communication system for enhancing service distribution in short range radio environment
7366558, Jun 30 2005 General Electric Company Electrode for obtaining a biopotential signal
7373196, Jun 22 2004 Electronics and Telecommunications Research Institute Physiological signal detection module, multi-channel connector module and physiological signal detection apparatus using the same
7375739, May 17 2005 Vardex Laser Corporation Image management system operable to manage the formation of dynamically variable images in objects in single shot events
7376435, Apr 01 2002 Apple Inc Transferring multiple data units over a wireless communication link
7382263, May 20 2005 The Dow Chemical Company; Dow Global Technologies LLC Oral drug compliance monitoring using radio frequency identification tags
7387607, Jun 06 2005 TAHOE RESEARCH, LTD Wireless medical sensor system
7388903, Sep 18 2002 Citrix Systems, Inc Adaptive transmission rate and fragmentation threshold mechanism for local area networks
7389088, Jun 02 2003 Samsung Electronics Co., Ltd. Method of controlling signal power level and a Bluetooth device for performing the same
7392015, Feb 14 2003 CALLAHAN CELLULAR L L C Calibration methods and structures in wireless communications systems
7395105, Dec 10 2002 KONINKLIJKE PHILIPS ELECTRONICS, N V Wearable device for bioelectrical interaction with motion artifact correction means
7395106, May 21 2004 Electronics and Telecommunications Research Institute Wearable physiological signal detection module and measurement apparatus having the same
7396330, Jan 07 2003 SOTERA WIRELESS, INC Wireless, internet-based medical-diagnostic system
7404968, Aug 18 1999 MICRODOSE THERAPEUTX, INC Metering and packaging of controlled release medication
7413544, Dec 03 1999 System and method for collecting and transmitting medical data
7414534, Nov 09 2004 Pacesetter, Inc Method and apparatus for monitoring ingestion of medications using an implantable medical device
7415242, Nov 10 2003 Sprint Spectrum LLC Method and system for proximity detection for an in-building wireless repeater
7424268, Apr 22 2002 Cisco Technology, Inc System and method for management of a shared frequency band
7424319, Dec 19 2002 KONINKLIJKE PHILIPS ELECTRONICS, N V Electrode assembly and a system with impedance control
7427266, Dec 15 2003 Hewlett-Packard Development Company, L.P. Method and apparatus for verification of ingestion
7471665, Feb 14 2003 Sony Interactive Entertainment LLC Single transceiver architecture for a wireless network
7499674, Sep 12 2003 Nokia Corporation Method and system for repeat request in hybrid ultra wideband-bluetooth radio
7502643, Sep 12 2003 JB IP ACQUISITION LLC Method and apparatus for measuring heart related parameters
7505795, Jul 07 2004 Advanced Micro Devices, Inc. Power save management with customized range for user configuration and tuning value based upon recent usage
7510121, May 25 1990 AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED Multi-level hierarchical radio-frequency communication system
7512448, Jan 10 2003 Sonova AG Electrode placement for wireless intrabody communication between components of a hearing system
7515043, Mar 21 2003 Welch Allyn, Inc. Personal status physiologic monitor system and architecture and related monitoring methods
7523756, Dec 25 2003 Olympus Corporation System for detecting position of capsule endoscope in subject
7525426, Sep 09 2002 Persephone, Inc. Method and apparatus for location and tracking persons
7539533, May 16 2006 KONINKLIJKE PHILIPS N V Mesh network monitoring appliance
7542878, Mar 03 1999 LIFEWATCH TECHNOLOGIES LTD Personal health monitor and a method for health monitoring
7551590, May 07 2001 FCO V CLO TRANSFEROR LLC Wireless device having a single processor in a short-range radio network
7554452, Jul 18 2003 Ingestible tracking and locating device
7575005, May 18 2004 Natus Medical Incorporated Mask assembly with integrated sensors
7599003, Jul 02 2002 PANASONIC SEMICONDUCTOR SOLUTIONS CO , LTD Data slicer, data slicing method, and amplitude evaluation value setting method
7616111, Jun 20 2005 CARESTREAM HEALTH, INC System to monitor the ingestion of medicines
7616710, Dec 08 2004 Electronics and Telecommunications Research Institute Frequency offset estimating method and receiver employing the same
7617001, Oct 16 2000 Remon Medical Technologies, Ltd Systems and method for communicating with implantable devices
7626387, Apr 05 2007 Toshiba Medical Systems Corporation MRI apparatus and method using sample filtering based on time shifts caused by temporal variations in magnetic field strength
7640802, Apr 11 2003 Rolls-Royce plc Method and system for analysing tachometer and vibration data from an apparatus having one or more rotary components
7647112, Feb 11 2004 Ethicon, Inc System and method for selectively stimulating different body parts
7647185, Jun 16 2000 OXFORD UNIVERSITY INNOVATION LIMITED Combining measurements from different sensors
7653031, Mar 05 2003 Intellectual Ventures I LLC Advance notification of transmit opportunities on a shared-communications channel
7668437, Sep 30 1999 Sony Corporation Recording apparatus, recording method, and record medium
7672703, Jun 07 2005 Samsung Electronics Co., Ltd. Electrode for measuring electrocardiogram and electrocardiogram device including the same
7672714, Nov 28 2005 Terry B. J., Kuo; Cheryl C. H., Yang; Enjoy Research Inc. Miniature wireless apparatus for collecting physiological signals
7673679, Sep 19 2005 Schlumberger Technology Corporation Protective barriers for small devices
7678043, Dec 29 2005 Given Imaging LTD Device, system and method for in-vivo sensing of a body lumen
7688204, Feb 07 2007 Denso Corporation Double-electrode capacitive sensor, passenger detector, and passenger protection system
7689437, Jun 16 2000 JB IP ACQUISITION LLC System for monitoring health, wellness and fitness
7697994, Jun 18 2004 Medtronic, Inc Remote scheduling for management of an implantable medical device
7720036, Oct 26 2005 Apple Inc Communication within a wireless network using multiple frequency bands
7729776, Dec 19 2001 3M Innovative Properties Company Implantable medical device with two or more telemetry systems
7733224, Jun 30 2006 BT WEARABLES LLC Mesh network personal emergency response appliance
7736318, Apr 16 1999 Cardiocom, LLC Apparatus and method for monitoring and communicating wellness parameters of ambulatory patients
7756587, Oct 16 2000 Cardiac Pacemakers, Inc. Systems and methods for communicating with implantable devices
7797033, Apr 08 2002 GIVEN IMAGING, INC Method of using, and determining location of, an ingestible capsule
7809399, Feb 10 2006 SYNTEK INTERNATIONAL HOLDING LTD Method and device for providing multiple communication protocols with a single transceiver
7844341, Jan 15 2008 Cardiac Pacemakers, Inc. Implantable medical device with antenna
7904133, Feb 02 2005 Koninklijke Philips Electronics N.V. Wearable wireless device for monitoring, analyzing and communicating physiological status
7978064, Apr 28 2005 OTSUKA PHARMACEUTICAL CO , LTD Communication system with partial power source
7983189, Mar 12 2008 CenturyLink Intellectual Property LLC System and method for tracking performance and service level agreement compliance for multipoint packet services
8036748, Nov 13 2008 PROTEUS DIGITAL HEALTH, INC Ingestible therapy activator system and method
8055334, Dec 11 2008 PROTEUS DIGITAL HEALTH, INC Evaluation of gastrointestinal function using portable electroviscerography systems and methods of using the same
8073707, Jun 16 2000 JB IP ACQUISITION LLC System for detecting, monitoring, and reporting an individual's physiological or contextual status
8083128, Dec 02 2005 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device
8114021, Apr 28 2006 OTSUKA PHARMACEUTICAL CO , LTD Body-associated receiver and method
8123576, Feb 18 2010 Daehan Medical Systems Co., Ltd. Connecting structure of snap electrode and electric wire
8140143, Apr 16 2009 Massachusetts Institute of Technology Washable wearable biosensor
8170515, May 21 2008 Medtronic, Inc Method and apparatus for the phased detection of a signal including a frequency deviation detection phase
8180425, Dec 05 2006 KPR U S , LLC ECG lead wire organizer and dispenser
8184854, Sep 14 2006 Siemens Healthcare GmbH Method and system for evaluation of the behavior of users of a digital image information system
8193821, Dec 23 2004 LEICA GEOSYSTEMS PTY LTD Sensor system and methods for the capacitive measurement of electromagnetic signals having a biological origin
8200320, Mar 03 2006 Physiowave, Inc.; PHYSIOWAVE INC Integrated physiologic monitoring systems and methods
8214007, Nov 01 2006 FITLINXX, INC Body worn physiological sensor device having a disposable electrode module
8238998, Aug 27 2008 PARK, IK RO Tab electrode
8249686, Sep 14 2007 MEDTRONIC MONITORING, INC Adherent device for sleep disordered breathing
8285356, Sep 14 2007 MEDTRONIC MONITORING, INC Adherent device with multiple physiological sensors
8290574, Mar 10 2008 Koninklijke Philips Electronics N.V. ECG monitoring system with configurable alarm limits
8301232, Jun 08 2010 ALIVECOR, INC Wireless, ultrasonic personal health monitoring system
8308640, Sep 30 2004 Koninklijke Philips Electronics N.V. System for automatic continuous and reliable patient identification for association of wireless medical devices to patients
8315687, Dec 07 2006 Koninklijke Philips Electronics N.V. Handheld, repositionable ECG detector
8332009, May 18 2007 INTELESENS LIMITED Sensors
8360976, Jun 26 2001 ENTRACK, INC Optical capsule and spectroscopic method for treating or diagnosing the intestinal tract
8369936, Sep 12 2003 JB IP ACQUISITION LLC Wearable apparatus for measuring heart-related parameters and deriving human status parameters from sensed physiological and contextual parameters
8386009, Jun 08 2006 Suunto Oy Sensor arrangement
8404275, Jul 01 2007 Vitalis LLC Combination tablet with chewable outer layer
8440274, May 26 2009 Apple Inc.; Apple Inc Electronic device moisture indicators
8471960, Nov 24 2008 MEDIATEK INC. Method capable of avoiding data error from incorrect sampling points
8514979, Dec 16 2010 Telefonaktiebolaget LM Ericsson (publ) Integrated demodulator, filter and decimator (DFD) for a radio receiver
8604974, Jul 27 2010 Texas Instruments Incorporated Glonass/GPS de-rotation and filtering with ADC sampling at 60-80 MSPS
8615290, Nov 05 2008 Apple Inc. Seamlessly embedded heart rate monitor
8620402, Oct 30 2003 HALTHION MEDICAL TECHNOLOGIES, INC , Physiological sensor device
8754799, Jan 27 2012 Analog Devices, Inc. Correlated double-sample differencing within an ADC
8773258, Jun 06 2011 HALTHION MEDICAL TECHNOLOGIES, INC Data collection module for a physiological data collection system
8836513, Apr 28 2005 PROTEUS DIGITAL HEALTH, INC Communication system incorporated in an ingestible product
8858432, Feb 01 2007 PROTEUS DIGITAL HEALTH, INC Ingestible event marker systems
8932221, Mar 09 2007 PROTEUS DIGITAL HEALTH, INC In-body device having a multi-directional transmitter
8945005, Oct 25 2006 OTSUKA PHARMACEUTICAL CO , LTD Controlled activation ingestible identifier
9014779, Feb 01 2010 PROTEUS DIGITAL HEALTH, INC Data gathering system
9149577, Dec 15 2008 OTSUKA PHARMACEUTICAL CO , LTD Body-associated receiver and method
20010027331,
20010031071,
20010044588,
20010051766,
20010056262,
20020002326,
20020026111,
20020040278,
20020077620,
20020132226,
20020192159,
20020193669,
20020198470,
20030017826,
20030023150,
20030028226,
20030065536,
20030076179,
20030083559,
20030126593,
20030130714,
20030135128,
20030135392,
20030152622,
20030158466,
20030158756,
20030162556,
20030164401,
20030167000,
20030171791,
20030171898,
20030181788,
20030181815,
20030185286,
20030187337,
20030187338,
20030195403,
20030213495,
20030214579,
20030216622,
20030216625,
20030216666,
20030216729,
20030229382,
20040008123,
20040018476,
20040019172,
20040034295,
20040049245,
20040073095,
20040073454,
20040077995,
20040082982,
20040087839,
20040092801,
20040106859,
20040115507,
20040115517,
20040121015,
20040122297,
20040148140,
20040153007,
20040167226,
20040167801,
20040193020,
20040193029,
20040193446,
20040199222,
20040215084,
20040218683,
20040220643,
20040224644,
20040225199,
20040253304,
20040260154,
20050017841,
20050020887,
20050021103,
20050021370,
20050024198,
20050027205,
20050038321,
20050043634,
20050055014,
20050062644,
20050065407,
20050070778,
20050092108,
20050096514,
20050096562,
20050101843,
20050101872,
20050115561,
20050116820,
20050117389,
20050121322,
20050131281,
20050137480,
20050143623,
20050148883,
20050154428,
20050165323,
20050177069,
20050182389,
20050187789,
20050192489,
20050197680,
20050228268,
20050234307,
20050240305,
20050245794,
20050259768,
20050261559,
20050267556,
20050267756,
20050277912,
20050277999,
20050285746,
20050288594,
20060001496,
20060036134,
20060061472,
20060065713,
20060074283,
20060078765,
20060095091,
20060095093,
20060100533,
20060109058,
20060110962,
20060122474,
20060122667,
20060136266,
20060136744,
20060142648,
20060145876,
20060148254,
20060149339,
20060155174,
20060155183,
20060158820,
20060161225,
20060179949,
20060183993,
20060184092,
20060204738,
20060210626,
20060216603,
20060218011,
20060235489,
20060243288,
20060247505,
20060253005,
20060255064,
20060265246,
20060270346,
20060277097,
20060280227,
20060282001,
20060289640,
20060293607,
20070002038,
20070006636,
20070008113,
20070016089,
20070027386,
20070027388,
20070038054,
20070049339,
20070055098,
20070060797,
20070073353,
20070096765,
20070106346,
20070123772,
20070129622,
20070130287,
20070135803,
20070142721,
20070156016,
20070162089,
20070162090,
20070167495,
20070167848,
20070173701,
20070179347,
20070180047,
20070185393,
20070191002,
20070196456,
20070207793,
20070213659,
20070237719,
20070244370,
20070249946,
20070255198,
20070255330,
20070270672,
20070279217,
20070282174,
20070282177,
20070291715,
20070299480,
20080014866,
20080015421,
20080015494,
20080020037,
20080021519,
20080021521,
20080027679,
20080033273,
20080045843,
20080046038,
20080051667,
20080051767,
20080058614,
20080062856,
20080065168,
20080074307,
20080077015,
20080077028,
20080077188,
20080091089,
20080091114,
20080097549,
20080097917,
20080099366,
20080103440,
20080112885,
20080114224,
20080119705,
20080119716,
20080137566,
20080139907,
20080140403,
20080146871,
20080146889,
20080146892,
20080154104,
20080166992,
20080183245,
20080188837,
20080194912,
20080208009,
20080214901,
20080214985,
20080243020,
20080249360,
20080262320,
20080262336,
20080269664,
20080275312,
20080284599,
20080288026,
20080288027,
20080294020,
20080300572,
20080303638,
20080306357,
20080306359,
20080306360,
20080306362,
20080311852,
20080312522,
20080316020,
20090009332,
20090024045,
20090030293,
20090030297,
20090034209,
20090043171,
20090048498,
20090062634,
20090062670,
20090069642,
20090069655,
20090069656,
20090069657,
20090069658,
20090069724,
20090076340,
20090076343,
20090076350,
20090076397,
20090082645,
20090088618,
20090099435,
20090110148,
20090112626,
20090124871,
20090131774,
20090135886,
20090157113,
20090157358,
20090161602,
20090163789,
20090171180,
20090173628,
20090177055,
20090177056,
20090177057,
20090177058,
20090177059,
20090177060,
20090177061,
20090177062,
20090177063,
20090177064,
20090177065,
20090177066,
20090182206,
20090182212,
20090182213,
20090182214,
20090182215,
20090182388,
20090187088,
20090187089,
20090187090,
20090187091,
20090187092,
20090187093,
20090187094,
20090187095,
20090187381,
20090192351,
20090192368,
20090192369,
20090192370,
20090192371,
20090192372,
20090192373,
20090192374,
20090192375,
20090192376,
20090192377,
20090192378,
20090192379,
20090198115,
20090198116,
20090198175,
20090203964,
20090203971,
20090203972,
20090203978,
20090204265,
20090210164,
20090216101,
20090216102,
20090227204,
20090227876,
20090227940,
20090227941,
20090228214,
20090231125,
20090234200,
20090243833,
20090253960,
20090256702,
20090264714,
20090264964,
20090265186,
20090273467,
20090281539,
20090292194,
20090295548,
20090296677,
20090301925,
20090303920,
20090312619,
20090318761,
20090318779,
20090318783,
20090318793,
20100010330,
20100033324,
20100049006,
20100049012,
20100049069,
20100049263,
20100056878,
20100056891,
20100056939,
20100057041,
20100062709,
20100063438,
20100063841,
20100069002,
20100069717,
20100099967,
20100099968,
20100099969,
20100100077,
20100100078,
20100106001,
20100118853,
20100139672,
20100160742,
20100168659,
20100179398,
20100191073,
20100210299,
20100222652,
20100228113,
20100234706,
20100234715,
20100234914,
20100245091,
20100249881,
20100256461,
20100259543,
20100268048,
20100268049,
20100268050,
20100274111,
20100280345,
20100280346,
20100298650,
20100298730,
20100311482,
20100312580,
20110004079,
20110065983,
20110081860,
20110124983,
20110144470,
20110166937,
20110237924,
20110279963,
20120016231,
20120029307,
20120029309,
20120071743,
20120083715,
20120089000,
20120101396,
20120197144,
20120299723,
20120310070,
20120316413,
20130030259,
20130057385,
20130060115,
20140300490,
20150080677,
20150080678,
20150080679,
20150080680,
20150080681,
20150127737,
20150127738,
20150131764,
20150182170,
20150248833,
CN101005470,
CN101032396,
CN1588649,
CN1991868,
CN201076456,
D377983, Sep 13 1995 CARD GUARD TECHNOLOGIES, INC Cardiac monitor
D639437, Oct 08 2010 ZOLL Medical Corporation Wearable ambulatory electrocardiographic monitor
DE10313005,
EP1246356,
EP1789128,
EP2063535,
EP2143369,
JP1014898,
JP2000506410,
JP2002224053,
JP2002282219,
JP2002291684,
JP2003050867,
JP2004007187,
JP2004313242,
JP2005073886,
JP2005137683,
JP2005304880,
JP2005532841,
JP2005532849,
JP2006177699,
JP2006508752,
JP2006509574,
JP2007313340,
JP2008011865,
JP2008086390,
JP2008191110,
JP2008501415,
JP2009528909,
JP5228128,
JP61072712,
JP62112529,
KR10201209995,
KR927471,
TW200724094,
TW553735,
WO33246,
WO100085,
WO147466,
WO174011,
WO180731,
WO2058330,
WO2062276,
WO2087681,
WO245489,
WO3050643,
WO2004014225,
WO2004039256,
WO2004059551,
WO2004066834,
WO2004068748,
WO2004068881,
WO2004075751,
WO2004109316,
WO2005011237,
WO2005013503,
WO2005020023,
WO2005024687,
WO2005041767,
WO2005047837,
WO2005051166,
WO2005055448,
WO2005082436,
WO2005110238,
WO2006027586,
WO2006035351,
WO2006046648,
WO2006055892,
WO2006055956,
WO2006066566,
WO2006075016,
WO2006100620,
WO2006104843,
WO2006109072,
WO2006116718,
WO2006119345,
WO2006127355,
WO2007001724,
WO2007001742,
WO2007013952,
WO2007014084,
WO2007014527,
WO2007021496,
WO2007027660,
WO2007028035,
WO2007036687,
WO2007036741,
WO2007036746,
WO2007040878,
WO2007071180,
WO2007096810,
WO2007101141,
WO2007120946,
WO2007127316,
WO2007127455,
WO2007127879,
WO2007128165,
WO2007130491,
WO2007143535,
WO2007149546,
WO2008002239,
WO2008008281,
WO2008030482,
WO2008052136,
WO2008063626,
WO2008066617,
WO2008076464,
WO2008089232,
WO2008091683,
WO2008095183,
WO2008097652,
WO2008101107,
WO2008112577,
WO2008112578,
WO2008120156,
WO2008133394,
WO2008134185,
WO2008150633,
WO2009001108,
WO2009006615,
WO2009029453,
WO2009031149,
WO2009036334,
WO2009051829,
WO2009051830,
WO2009063377,
WO2009081348,
WO2009111664,
WO2009146082,
WO2010009100,
WO2010011833,
WO2010019778,
WO2010057049,
WO2010075115,
WO2010080843,
WO2010107563,
WO2010115194,
WO2010132331,
WO2010135516,
WO2012104657,
WO2012158190,
WO2013012869,
WO2015042411,
WO2015044722,
WO2015112603,
WO8802237,
WO9308734,
WO9319667,
WO9714112,
WO9843537,
WO9959465,
/////
Executed onAssignorAssigneeConveyanceFrameReelDoc
Sep 24 2013MCALLISTER, WILLIAMPROTEUS DIGITAL HEALTH, INC ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0347380062 pdf
Sep 25 2013ZDEBLICK, MARKPROTEUS DIGITAL HEALTH, INC ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0347380062 pdf
Feb 11 2014KUSHNER, CHERIEPROTEUS DIGITAL HEALTH, INC ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0347380062 pdf
Feb 11 2014FLEMING, ROBERTPROTEUS DIGITAL HEALTH, INC ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0347380062 pdf
Sep 19 2014Proteus Digital Health, Inc.(assignment on the face of the patent)
Date Maintenance Fee Events
Oct 08 2019M1551: Payment of Maintenance Fee, 4th Year, Large Entity.
Oct 08 2019M1554: Surcharge for Late Payment, Large Entity.
Jul 21 2023M1552: Payment of Maintenance Fee, 8th Year, Large Entity.


Date Maintenance Schedule
Feb 23 20194 years fee payment window open
Aug 23 20196 months grace period start (w surcharge)
Feb 23 2020patent expiry (for year 4)
Feb 23 20222 years to revive unintentionally abandoned end. (for year 4)
Feb 23 20238 years fee payment window open
Aug 23 20236 months grace period start (w surcharge)
Feb 23 2024patent expiry (for year 8)
Feb 23 20262 years to revive unintentionally abandoned end. (for year 8)
Feb 23 202712 years fee payment window open
Aug 23 20276 months grace period start (w surcharge)
Feb 23 2028patent expiry (for year 12)
Feb 23 20302 years to revive unintentionally abandoned end. (for year 12)