Methods, devices and systems for receiving and decoding a signal in the presence of noise using slices and warping

Information

  • Patent Grant
  • 10498572
  • Patent Number
    10,498,572
  • Date Filed
    Wednesday, September 5, 2018
    6 years ago
  • Date Issued
    Tuesday, December 3, 2019
    5 years ago
Abstract
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.
Description
INTRODUCTION

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.


SUMMARY

The present invention in its first aspect provides a method as specified in claims 1 to 16.


The present invention in its second aspect provides a signal receiver as specified in claims 17 to 34.


The present invention in its third aspect provides a method as specified in claims 35 to 39.


The present invention in its fourth aspect provides a receiver as specified in claims 40 to 44.


The present invention in its fifth aspect provides a method as specified in claims 45 to 52.


The present invention in its sixth aspect provides a method as specified in claims 53 to 61.


The present invention in its seventh aspect provides a method as specified in claims 62 to 65.


The present invention in its eighth aspect provides a method as specified in claims 66 and 67.


The present invention in its ninth aspect provides a method as specified in claims 68 to 72.


The present invention in its tenth aspect provides a method as specified in claims 73 to 79.


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.





BRIEF DESCRIPTION OF THE 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.





DETAILED DESCRIPTION


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

=



SliceCosTerm
2

+

SliceSinTerm
2








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

=

arc






tan


(

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 SliceCosTerm1, and the previously computed sine terms indexed at i=1, i=2, i=3 and i=4 are combined to form SliceSinTerm1, whereupon i is incremented to 2. SliceCosTerm2 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, SliceSinTerm2 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 al 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:

    • generate and store, in the memory means, a slice comprising a pair of values for each of a selected number of samples of the signal; and
    • detect a presence of and decode the data packet from the stored slices.


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.

Claims
  • 1. A method for decoding a signal, the method comprising: sampling a signal with an analog to digital converter over a time interval to generate a set of samples;multiplying the set of samples by a set of values representative of a first reference function at a first frequency and a first phase to generate a first set of first values;multiplying the set of samples by a set of values representative of a second reference function at the first frequency and the first phase to generate a first set of second values, wherein the second reference function is different from the first reference function;combining the first set of first values to generate a first component of a first slice;combining the first set of second values to generate a second component of the first slice;multiplying the set of samples by a set of values representative of the first reference function at a second frequency and a second phase to generate a second set of first values, wherein the second frequency and the second phase is different from the first frequency and the first phase, and wherein the second set of first values is different from first set of first values;multiplying the set of samples by a set of values representative of the second reference function at the second frequency and the second phase to generate a second set of second values;combining the second set of first values to generate a first component of a second slice;combining the second set of second values to generate a second component of the second slice;sampling the signal with the analog to digital converter over a new time interval to generate a new set of samples; andrepeating multiplying and combining for the new set of samples and generating a set of first slices comprising the first slice and a set of second slices comprising the second slice.
  • 2. The method of claim 1, further comprising: determining at least one vector of autocorrelation values using the set of first slices;determining at least one vector of autocorrelation values using the set of second slices; andcomparing metrics derived from combined elements of each of the at least one vector of autocorrelation values to a threshold value.
  • 3. The method of claim 2, further comprising: determining a first correlation value between a first set of template values and a first subset of the set of first slices beginning with a slice index of the set of first slices;determining a second correlation value between a second set of template values and a first subset of the set of second slices beginning with a slice index of the set of second slices; androtating each set of the first and second slices by a rotation angle that varies an effective starting phase of the signal and a warping angle that varies an effective frequency of the signal.
  • 4. The method of claim 3, further comprising repeating: determining the first correlation value beginning with a subsequent slice index of the set of first slices;determining the second correlation value beginning with a subsequent slice index of the set of second slices; androtating each set of the first and second slices by a rotation angle that varies an effective starting phase of the signal and a warping angle that varies an effective frequency of the signal.
  • 5. The method of claim 4, wherein for each slice index of the set of first slices and the set of second slices, the method further comprising: comparing correlation values at each slice index and each of the rotation angles;determining a maximum correlation value for each slice; anddetermining the slice index and each of the rotation angles corresponding to the maximum correlation value.
  • 6. The method of claim 5, further comprising: determining an optimal rotation angle;determining an optimal warping angle; androtating each slice by the optimal rotation angle and the optimal warping angle.
  • 7. The method of claim 6, further comprising: determining an optimal starting slice;starting with the optimal starting slice, combining a bit-length number of first reference function values to generate combined first reference function values that correspond to a bit and combining a bit-length number of second reference function values to generate combined second reference function values that correspond to the bit;determining a first bit of a packet using a sign of a sum;rotating a subsequent bit length of slices by a rotation angle that maximizes a magnitude of the combined first reference function values and minimizes a magnitude of the combined second reference function values; anddetermining a subsequent bit using a sign of the combined first reference function values.
  • 8. The method of claim 1, wherein the first reference function is any one of a sine wave, sawtooth wave, triangle wave, or square wave function or a combination thereof.
  • 9. The method of claim 1, wherein the second reference function is any one of a cosine wave, sawtooth wave, triangle wave, or square wave function or a combination thereof.
  • 10. The method of claim 1, wherein the time interval is greater than a length of a packet at a minimum frequency.
  • 11. The method of claim 1, wherein the time interval is greater than a length of two packets at a minimum frequency.
  • 12. A signal receiver, comprising: an analog to digital converter (ADC) configured to sample a signal over a time interval to generate a set of samples;a memory;a controller coupled to the memory and configured to:multiply the set of samples by a set of values representative of a first reference function at a first frequency and a first phase to generate a first set of first values;multiply the set of samples by a set of values representative of a second reference function at the first frequency and the first phase to generate a first set of second values, wherein the second reference function is different from the first reference function;combine the first set of first values to generate a first component of a first slice;combine the first set of second values to generate a second component of the first slice;multiply the set of samples by a set of values representative of the first reference function at a second frequency and a second phase to generate a second set of first values;multiply the set of samples by a set of values representative of the second reference function at the second frequency and the second phase to generate a second set of second values, wherein the second frequency and the second phase is different from the first frequency and the first phase, and wherein the second set of first values is different from first set of first value;combine the second set of first values to generate a first component of a second slice;combine the second set of second values to generate a second component of the second slice;sample the signal with the analog to digital converter over a new time interval to generate a new set of samples; andcontinue to multiply and combine for the new set of samples and generate a set of first slices comprising the first slice and a set of second slices comprising the second slice.
  • 13. The signal receiver of claim 12, wherein the controller is further configured to: determine at least one vector of autocorrelation values using the set of first slices;determine at least one vector of autocorrelation values using the set of second slices; andcompare metrics derived from combined elements of each of the at least one vector of autocorrelation values to a threshold value.
  • 14. The signal receiver of claim 13, wherein the controller is further configured to: determine a first correlation value between a first set of template values and a first subset of the set of first slices beginning with a slice index of the set of first slices;determine a second correlation value between a second set of template values and a first subset of the set of second slices beginning with a slice index of the set of second slices; androtate each set of the first and second slices by a rotation angle that varies an effective starting phase of the signal and a warping angle that varies an effective frequency of the signal.
  • 15. The signal receiver of claim 14, wherein the controller is further configured to continue to: determine the first correlation value beginning with a subsequent slice index of the set of first slices;determine the second correlation value beginning with a subsequent slice index of the set of second slices; androtate each set of the first and second slices by a rotation angle that varies an effective starting phase of the signal and a warping angle that varies an effective frequency of the signal.
  • 16. The signal receiver of claim 15, wherein for each slice index of the set of first slices and the set of second slices, the controller is further configured to: compare correlation values at each slice index and each of the rotation angles;determine a maximum correlation value for each slice; anddetermine the slice index and each of the rotation angles corresponding to the maximum correlation value.
  • 17. The signal receiver of claim 16, wherein the controller is further configured to: determine an optimal rotation angle;determine an optimal warping angle; androtate each slice by the optimal rotation angle and the optimal warping angle.
  • 18. The signal receiver of claim 17, wherein the controller is further configured to: determine an optimal starting slice;start with the optimal starting slice, combine a bit-length number of first reference function values to generate combined first reference function values that correspond to a bit and combining a bit-length number of second reference function values to generate combined second reference function values that correspond to the bit;determine a first bit of a packet using a sign of a sum;
  • 19. The signal receiver of claim 12, wherein the first reference function is any one of a sine wave, sawtooth wave, triangle wave, or square wave function or a combination thereof.
  • 20. The signal receiver of claim 12, wherein the second reference function is any one of a cosine wave, sawtooth wave, triangle wave, or square wave function or a combination thereof.
  • 21. The signal receiver of claim 12, wherein the time interval is greater than a length of a packet at a minimum frequency.
  • 22. The signal receiver of claim 12, wherein the time interval is greater than a length of two packets at a minimum frequency.
CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation application claiming priority under 35 U.S.C. § 120 to U.S. patent application Ser. No. 15/678,349, titled METHODS, DEVICES AND SYSTEMS FOR RECEIVING AND DECODING A SIGNAL IN THE PRESENCE OF NOISE USING SLICES AND WARPING, filed on Aug. 16, 2017, now U.S. Pat. No. 10,097,388, which application is a continuation application claiming priority under 35 U.S.C. § 120 to U.S. patent application Ser. No. 14/989,409, titled METHODS, DEVICES AND SYSTEMS FOR RECEIVING AND DECODING A SIGNAL IN THE PRESENCE OF NOISE USING SLICES AND WARPING, filed on Jan. 6, 2016, now U.S. Pat. No. 9,787,511, which application is a continuation application claiming priority under 35 U.S.C. § 120 to U.S. patent application Ser. No. 14/491,447, titled METHODS, DEVICES AND SYSTEMS FOR RECEIVING AND DECODING A SIGNAL IN THE PRESENCE OF NOISE USING SLICES AND WARPING, filed on Sep. 19, 2014, now U.S. Pat. No. 9,270,503, which application claims the benefit under 35 USC § 119(e) of 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 entire disclosures of which are hereby incorporated by reference herein.

US Referenced Citations (902)
Number Name Date Kind
3340866 Noller Sep 1967 A
3607788 Adolph Sep 1971 A
3642008 Bolduc Feb 1972 A
3679480 Brown et al. Jul 1972 A
3682160 Murata Aug 1972 A
3719183 Schwartz Mar 1973 A
3828766 Krasnow Aug 1974 A
3837339 Aisenberg et al. Sep 1974 A
3989050 Buchalter Nov 1976 A
4067014 Wheeler Jan 1978 A
4077397 Ellis Mar 1978 A
4077398 Ellis Mar 1978 A
4082087 Howson Apr 1978 A
4090752 Long May 1978 A
4106348 Auphan Aug 1978 A
4121573 Crovella et al. Oct 1978 A
4129125 Lester Dec 1978 A
4149168 Hose Apr 1979 A
4166453 McClelland Sep 1979 A
4185172 Melindo et al. Jan 1980 A
4185175 Kondo Jan 1980 A
4239046 Ong Dec 1980 A
4269189 Abraham May 1981 A
4331654 Morris May 1982 A
4333150 Matty Jun 1982 A
4345588 Widder et al. Aug 1982 A
4418697 Tama Dec 1983 A
4425117 Hugemann Jan 1984 A
4494950 Fischell Jan 1985 A
4513385 Muri Apr 1985 A
4559950 Vaughan Dec 1985 A
4578061 Lemelson Mar 1986 A
4635641 Hoffman Jan 1987 A
4654165 Eisenber Mar 1987 A
4669479 Dunseath Jun 1987 A
4725997 Urquhart et al. Feb 1988 A
4749575 Rotman et al. Jun 1988 A
4763659 Dunseath Aug 1988 A
4784162 Ricks Nov 1988 A
4793825 Benjamin et al. Dec 1988 A
4809705 Ascher Mar 1989 A
4844076 Lesho Jul 1989 A
4858617 Sanders Aug 1989 A
4896261 Nolan Jan 1990 A
4975230 Pinkhasov Dec 1990 A
4987897 Funke Jan 1991 A
5016634 Vock et al. May 1991 A
5079006 Urguhart Jan 1992 A
5113859 Funke May 1992 A
5167626 Casper Dec 1992 A
5176626 Soehendra Jan 1993 A
5232383 Barnick Aug 1993 A
5245332 Katzenstein et al. Sep 1993 A
5261402 DiSabito Nov 1993 A
5263481 Axelgaard et al. Nov 1993 A
5281287 Lloyd Jan 1994 A
5283136 Peled et al. Feb 1994 A
5288564 Klein Feb 1994 A
5318557 Gross Jun 1994 A
5394882 Mawhinney Mar 1995 A
5458141 Neil et al. Oct 1995 A
5473612 Dehner, Jr. Dec 1995 A
5485841 Watkin et al. Jan 1996 A
5511548 Riazzi et al. Apr 1996 A
5551020 Flax et al. Aug 1996 A
5596302 Mastrocola et al. Jan 1997 A
D377983 Sabri et al. Feb 1997 S
5623520 Kaiser Apr 1997 A
5634466 Gruner Jun 1997 A
5634468 Platt Jun 1997 A
5645063 Straka et al. Jul 1997 A
5720771 Snell Feb 1998 A
5724432 Bouvet et al. Mar 1998 A
5740811 Hedberg Apr 1998 A
5792048 Schaefer Aug 1998 A
5802467 Salazar Sep 1998 A
5833716 Bar-Or Nov 1998 A
5845265 Woolston Dec 1998 A
5862803 Besson Jan 1999 A
5862808 Albarello Jan 1999 A
5868136 Fox Feb 1999 A
5921925 Cartmell et al. Jul 1999 A
5925030 Gross et al. Jul 1999 A
5925066 Kroll et al. Jul 1999 A
5957854 Besson et al. Sep 1999 A
5974124 Schlueter, Jr. et al. Oct 1999 A
5981166 Mandecki Nov 1999 A
5999846 Pardey et al. Dec 1999 A
6023631 Cartmell et al. Feb 2000 A
6038464 Axelgaard et al. Mar 2000 A
6042710 Dubrow Mar 2000 A
6047203 Sackner Apr 2000 A
6076016 Feierbach Jun 2000 A
6081734 Batz Jun 2000 A
6095985 Raymond et al. Aug 2000 A
6115636 Ryan Sep 2000 A
6117077 Del Mar et al. Sep 2000 A
6122351 Schlueter, Jr. et al. Sep 2000 A
6141592 Pauly Oct 2000 A
6151353 Harrison et al. Nov 2000 A
6200265 Walsh et al. Mar 2001 B1
6200625 Beckett Mar 2001 B1
6204764 Maloney Mar 2001 B1
6206702 Hayden et al. Mar 2001 B1
6217744 Crosby Apr 2001 B1
6231593 Meserol May 2001 B1
6238338 DeLuca et al. May 2001 B1
6245057 Sieben et al. Jun 2001 B1
6275476 Wood Aug 2001 B1
6285897 Kilcoyne et al. Sep 2001 B1
6287252 Lugo Sep 2001 B1
6289238 Besson et al. Sep 2001 B1
6301298 Kuntz et al. Oct 2001 B1
6315719 Rode et al. Nov 2001 B1
6317714 Del Castillo Nov 2001 B1
6358202 Arent Mar 2002 B1
6364834 Reuss Apr 2002 B1
6366206 Ishikawa et al. Apr 2002 B1
6371927 Brune Apr 2002 B1
6374670 Spelman Apr 2002 B1
6380858 Yarin et al. Apr 2002 B1
6394953 Devlin et al. May 2002 B1
6394997 Lemelson May 2002 B1
6409674 Brockway et al. Jun 2002 B1
6426863 Munshi Jul 2002 B1
6432292 Pinto et al. Aug 2002 B1
6440069 Raymond et al. Aug 2002 B1
6441747 Khair Aug 2002 B1
6477424 Thompson et al. Nov 2002 B1
6482156 Lliff Nov 2002 B2
6494829 New et al. Dec 2002 B1
6496705 Ng et al. Dec 2002 B1
6526315 Inagawa Feb 2003 B1
6544174 West Apr 2003 B2
6564079 Cory May 2003 B1
6577893 Besson et al. Jun 2003 B1
6579231 Phipps Jun 2003 B1
6605038 Teller et al. Aug 2003 B1
6605046 Del Mar Aug 2003 B1
6609018 Cory Aug 2003 B2
6612984 Kerr Sep 2003 B1
6632175 Marshall Oct 2003 B1
6632216 Houzego et al. Oct 2003 B2
6643541 Mok et al. Nov 2003 B2
6654638 Sweeney Nov 2003 B1
6663846 McCombs Dec 2003 B1
6673474 Yamamoto Jan 2004 B2
6680923 Leon Jan 2004 B1
6689117 Sweeney et al. Feb 2004 B2
6694161 Mehrotra Feb 2004 B2
6704602 Berg et al. Mar 2004 B2
6720923 Hayward et al. Apr 2004 B1
6738671 Christophersom et al. May 2004 B2
6740033 Olejniczak et al. May 2004 B1
6745082 Axelgaard et al. Jun 2004 B2
6755783 Cosentino Jun 2004 B2
6757523 Fry Jun 2004 B2
6800060 Marshall Oct 2004 B2
6801137 Eggers et al. Oct 2004 B2
6807438 Brun Del Re et al. Oct 2004 B1
6814706 Barton et al. Nov 2004 B2
6822554 Vrijens et al. Nov 2004 B2
6836862 Erekson et al. Dec 2004 B1
6839659 Tarassenko et al. Jan 2005 B2
6840904 Goldberg Jan 2005 B2
6842636 Perrault Jan 2005 B2
6845272 Thomsen Jan 2005 B1
6856832 Matsumura et al. Feb 2005 B1
6864780 Doi Mar 2005 B2
6879810 Bouet Apr 2005 B2
6882881 Lesser et al. Apr 2005 B1
6889165 Lind et al. May 2005 B2
6897788 Khair et al. May 2005 B2
6909878 Haller Jun 2005 B2
6922592 Thompson et al. Jul 2005 B2
6928370 Anuzis et al. Aug 2005 B2
6929636 Von Alten Aug 2005 B1
6937150 Medema Aug 2005 B2
6942616 Kerr Sep 2005 B2
6951536 Yokoi Oct 2005 B2
6956917 Lenosky Oct 2005 B2
6957107 Rogers et al. Oct 2005 B2
6959929 Pugnet et al. Nov 2005 B2
6961601 Mathews et al. Nov 2005 B2
6968153 Heinonen Nov 2005 B1
6987965 Ng et al. Jan 2006 B2
6990082 Zehavi et al. Jan 2006 B1
7002476 Rapchak Feb 2006 B2
7004395 Koenck Feb 2006 B2
7009634 Iddan et al. Mar 2006 B2
7009946 Kardach Mar 2006 B1
7013162 Gorsuch Mar 2006 B2
7016648 Haller Mar 2006 B2
7020508 Stivoric Mar 2006 B2
7024248 Penner et al. Apr 2006 B2
7031745 Shen Apr 2006 B2
7031857 Tarassenko et al. Apr 2006 B2
7039453 Mullick May 2006 B2
7046649 Awater et al. May 2006 B2
7076437 Levy Jul 2006 B1
7116252 Teraguchi Oct 2006 B2
7118531 Krill Oct 2006 B2
7127300 Mazar et al. Oct 2006 B2
7139332 Yu et al. Nov 2006 B2
7146228 Nielsen Dec 2006 B2
7146449 Do et al. Dec 2006 B2
7149581 Goedeke et al. Dec 2006 B2
7154071 Sattler et al. Dec 2006 B2
7154916 Soloff Dec 2006 B2
7155232 Godfrey et al. Dec 2006 B2
7160258 Imran Jan 2007 B2
7161484 Tsoukalis Jan 2007 B2
7164942 Avrahami Jan 2007 B2
7171166 Ng et al. Jan 2007 B2
7171177 Park et al. Jan 2007 B2
7171259 Rytky Jan 2007 B2
7187960 Abreu Mar 2007 B2
7188199 Leung et al. Mar 2007 B2
7188767 Penuela Mar 2007 B2
7194038 Inkinen Mar 2007 B1
7206630 Tarler Apr 2007 B1
7209790 Thompson et al. Apr 2007 B2
7215660 Perlman May 2007 B2
7215991 Besson May 2007 B2
7218967 Bergelson May 2007 B2
7231451 Law Jun 2007 B2
7243118 Lou Jul 2007 B2
7246521 Kim Jul 2007 B2
7249212 Do Jul 2007 B2
7252792 Perrault Aug 2007 B2
7253716 Lovoi et al. Aug 2007 B2
7261690 Teller Aug 2007 B2
7270633 Goscha Sep 2007 B1
7273454 Raymond et al. Sep 2007 B2
7283867 Strother et al. Oct 2007 B2
7285090 Stivoric et al. Oct 2007 B2
7289855 Nghiem Oct 2007 B2
7291497 Holmes Nov 2007 B2
7292139 Mazar et al. Nov 2007 B2
7294105 Islam Nov 2007 B1
7311665 Hawthorne Dec 2007 B2
7313163 Liu Dec 2007 B2
7317378 Jarvis et al. Jan 2008 B2
7318808 Tarassenko et al. Jan 2008 B2
7336929 Yasuda Feb 2008 B2
7342895 Serpa Mar 2008 B2
7346380 Axelgaard et al. Mar 2008 B2
7349722 Witkowski et al. Mar 2008 B2
7352998 Palin Apr 2008 B2
7353258 Washburn Apr 2008 B2
7357891 Yang et al. Apr 2008 B2
7359674 Markki Apr 2008 B2
7366558 Virtanen et al. Apr 2008 B2
7373196 Ryu et al. May 2008 B2
7375739 Robbins May 2008 B2
7376435 McGowan May 2008 B2
7382247 Welch et al. Jun 2008 B2
7382263 Danowski et al. Jun 2008 B2
7387607 Holt Jun 2008 B2
7388903 Godfrey et al. Jun 2008 B2
7389088 Kim Jun 2008 B2
7392015 Farlow Jun 2008 B1
7395105 Schmidt et al. Jul 2008 B2
7395106 Ryu et al. Jul 2008 B2
7396330 Banet Jul 2008 B2
7404968 Abrams et al. Jul 2008 B2
7413544 Kerr Aug 2008 B2
7414534 Kroll et al. Aug 2008 B1
7415242 Ngan Aug 2008 B1
7424268 Diener Sep 2008 B2
7424319 Muehlsteff Sep 2008 B2
7427266 Ayer et al. Sep 2008 B2
7471665 Perlman Dec 2008 B2
7476104 Marmaropoulos et al. Jan 2009 B2
7499674 Salokannel Mar 2009 B2
7502643 Farringdon et al. Mar 2009 B2
7505795 Lim et al. Mar 2009 B1
7510121 Koenck Mar 2009 B2
7512448 Malick Mar 2009 B2
7515043 Welch Apr 2009 B2
7523756 Minai Apr 2009 B2
7525426 Edelstein Apr 2009 B2
7539533 Tran May 2009 B2
7542878 Nanikashvili Jun 2009 B2
7547278 Miyazaki et al. Jun 2009 B2
7551590 Haller Jun 2009 B2
7554452 Cole Jun 2009 B2
7575005 Mumford Aug 2009 B2
7599003 Suzuki et al. Oct 2009 B2
7616111 Covannon Nov 2009 B2
7616710 Kim et al. Nov 2009 B2
7617001 Penner et al. Nov 2009 B2
7626387 Adachi Dec 2009 B2
7640802 King et al. Jan 2010 B2
7647112 Tracey Jan 2010 B2
7647185 Tarassenko et al. Jan 2010 B2
7653031 Godfrey et al. Jan 2010 B2
7668437 Yamada et al. Feb 2010 B1
7672703 Yeo et al. Mar 2010 B2
7672714 Kuo Mar 2010 B2
7673679 Harrison et al. Mar 2010 B2
7678043 Gilad Mar 2010 B2
7688204 Yamanaka et al. Mar 2010 B2
7689437 Teller et al. Mar 2010 B1
7697994 VanDanacker et al. Apr 2010 B2
7720036 Sadri May 2010 B2
7729776 Von Arx et al. Jun 2010 B2
7733224 Tran Jun 2010 B2
7736318 Costentino Jun 2010 B2
7750790 Yang et al. Jul 2010 B2
7756587 Penner et al. Jul 2010 B2
7782991 Sobchak et al. Aug 2010 B2
7797033 D'Andrea et al. Sep 2010 B2
7809399 Lu Oct 2010 B2
7844341 Von Arx et al. Nov 2010 B2
7874993 Bardy Jan 2011 B2
7885700 Clark et al. Feb 2011 B2
7904133 Gehman et al. Mar 2011 B2
7940933 Corndorf May 2011 B2
D639437 Bishay et al. Jun 2011 S
7978064 Zdeblick et al. Jul 2011 B2
7983189 Bugenhagen Jul 2011 B2
8036748 Zdeblick et al. Oct 2011 B2
8055334 Savage et al. Nov 2011 B2
8073707 Teller et al. Dec 2011 B2
8083128 Dembo et al. Dec 2011 B2
8094807 Ishibashi et al. Jan 2012 B2
8114021 Robertson et al. Feb 2012 B2
8123576 Kim Feb 2012 B2
8140143 Picard et al. Mar 2012 B2
8160672 Kim et al. Apr 2012 B2
8170515 Le Reverend et al. May 2012 B2
8177611 Kang May 2012 B2
8180425 Selvitelli et al. May 2012 B2
8184854 Bartsch May 2012 B2
8185191 Shapiro et al. May 2012 B1
8185646 Headley May 2012 B2
8190230 Rytky May 2012 B2
8193821 Mueller Jun 2012 B2
8200320 Kovacs Jun 2012 B2
8214007 Baker et al. Jul 2012 B2
8238998 Park Aug 2012 B2
8249686 Libbus et al. Aug 2012 B2
8253586 Matak Aug 2012 B1
8254853 Rofougaran Aug 2012 B2
8285356 Bly et al. Oct 2012 B2
8290574 Felid et al. Oct 2012 B2
8301232 Albert et al. Oct 2012 B2
8308640 Baldus et al. Nov 2012 B2
8315687 Cross et al. Nov 2012 B2
8321672 Asano Nov 2012 B2
8332009 McLaughlin et al. Dec 2012 B2
8360976 Imran Jan 2013 B2
8369936 Farringdon et al. Feb 2013 B2
8386009 Lindberg et al. Feb 2013 B2
8404275 Habboushe Mar 2013 B2
8440274 Wang May 2013 B2
8454528 Yuen et al. Jun 2013 B2
8471960 Lin et al. Jun 2013 B2
8514979 Laporte Aug 2013 B2
8515559 Roberts et al. Aug 2013 B2
8538544 Sivard Sep 2013 B2
8545436 Robertson et al. Oct 2013 B2
8548033 Nemeth et al. Oct 2013 B2
8604974 Ganeshan Dec 2013 B2
8615290 Lin et al. Dec 2013 B2
8620402 Parker, III et al. Dec 2013 B2
8634838 Hellwig et al. Jan 2014 B2
8660645 Stevenson et al. Feb 2014 B2
8668643 Kinast Mar 2014 B2
8725243 Dilorenzo et al. May 2014 B2
8730031 Thompson et al. May 2014 B2
8754799 Coln et al. Jun 2014 B2
8773258 Vosch et al. Jul 2014 B2
8776198 Tsitkova et al. Jul 2014 B2
8836513 Hafezi et al. Sep 2014 B2
8838217 Myr Sep 2014 B2
8858432 Robertson Oct 2014 B2
8886281 Pernu et al. Nov 2014 B2
8892194 Balji et al. Nov 2014 B2
8908943 Berry et al. Dec 2014 B2
8920345 Greenberg Dec 2014 B2
8923956 Clark et al. Dec 2014 B2
8926509 Magar et al. Jan 2015 B2
8932221 Colliou et al. Jan 2015 B2
8945005 Hafezi et al. Feb 2015 B2
8945328 Longinotti et al. Feb 2015 B2
8989837 Weinstein et al. Mar 2015 B2
9014779 Zdeblick et al. Apr 2015 B2
9031658 Chiao et al. May 2015 B2
9149577 Robertson et al. Oct 2015 B2
9158890 Meredith et al. Oct 2015 B2
9189941 Eschelman et al. Nov 2015 B2
9211069 Larson et al. Dec 2015 B2
9226663 Fei Jan 2016 B2
9226679 Balda Jan 2016 B2
9270025 Robertson et al. Feb 2016 B2
9270503 Kushner et al. Feb 2016 B2
9277864 Yang et al. Mar 2016 B2
9439566 Arne et al. Sep 2016 B2
9439582 Berkman et al. Sep 2016 B2
9439599 Thompson et al. Sep 2016 B2
9517012 Lane et al. Dec 2016 B2
9577864 Kushner et al. Feb 2017 B2
9597010 Thompson et al. Mar 2017 B2
9659423 Robertson et al. May 2017 B2
9756874 Arne et al. Sep 2017 B2
9787511 Fleming et al. Oct 2017 B2
9820658 Tran Nov 2017 B2
9946297 Nazzaro et al. Apr 2018 B2
1009738 Fleming et al. Oct 2018 A1
20010027331 Thompson Oct 2001 A1
20010031071 Nichols et al. Oct 2001 A1
20010044588 Mault Nov 2001 A1
20010051766 Gazdinski Dec 2001 A1
20010056262 Cabiri et al. Dec 2001 A1
20020002326 Causey et al. Jan 2002 A1
20020026111 Ackerman Feb 2002 A1
20020040278 Anuzis et al. Apr 2002 A1
20020077620 Sweeney et al. Jun 2002 A1
20020128934 Shaer Sep 2002 A1
20020132226 Nair Sep 2002 A1
20020169696 Zara Nov 2002 A1
20020192159 Reitberg Dec 2002 A1
20020193669 Glukhovsky Dec 2002 A1
20020198470 Imran et al. Dec 2002 A1
20030017826 Fishman Jan 2003 A1
20030023150 Yokoi et al. Jan 2003 A1
20030028226 Thompson Feb 2003 A1
20030065536 Hansen Apr 2003 A1
20030076179 Branch et al. Apr 2003 A1
20030083559 Thompson May 2003 A1
20030091121 Kenmochi May 2003 A1
20030126593 Mault Jul 2003 A1
20030130714 Nielsen et al. Jul 2003 A1
20030135128 Suffin et al. Jul 2003 A1
20030135392 Vrijens et al. Jul 2003 A1
20030152622 Louie-Helm et al. Aug 2003 A1
20030158466 Lynn et al. Aug 2003 A1
20030158756 Abramson Aug 2003 A1
20030162556 Libes Aug 2003 A1
20030164401 Andreasson et al. Sep 2003 A1
20030167000 Mullick et al. Sep 2003 A1
20030171791 KenKnight Sep 2003 A1
20030171898 Tarassenko et al. Sep 2003 A1
20030181788 Yokoi et al. Sep 2003 A1
20030181815 Ebner et al. Sep 2003 A1
20030185286 Yuen Oct 2003 A1
20030187337 Tarassenko et al. Oct 2003 A1
20030187338 Say et al. Oct 2003 A1
20030195403 Berner et al. Oct 2003 A1
20030208113 Mault et al. Nov 2003 A1
20030213495 Fujita et al. Nov 2003 A1
20030214579 Iddan Nov 2003 A1
20030216622 Meron et al. Nov 2003 A1
20030216625 Phipps Nov 2003 A1
20030216666 Ericson et al. Nov 2003 A1
20030216729 Marchitto Nov 2003 A1
20030229382 Sun et al. Dec 2003 A1
20040008123 Carrender et al. Jan 2004 A1
20040018476 LaDue Jan 2004 A1
20040019172 Yang et al. Jan 2004 A1
20040034295 Salganicoff Feb 2004 A1
20040049245 Gass Mar 2004 A1
20040073095 Causey et al. Apr 2004 A1
20040073454 Urquhart et al. Apr 2004 A1
20040077995 Ferek-Petric Apr 2004 A1
20040082982 Gord et al. Apr 2004 A1
20040087839 Raymond et al. May 2004 A1
20040092801 Drakulic May 2004 A1
20040106859 Say et al. Jun 2004 A1
20040115507 Potter et al. Jun 2004 A1
20040115517 Fukada et al. Jun 2004 A1
20040121015 Chidlaw et al. Jun 2004 A1
20040122297 Stahmann et al. Jun 2004 A1
20040148140 Tarassenko et al. Jul 2004 A1
20040153007 Harris Aug 2004 A1
20040165686 Siwiak Aug 2004 A1
20040167226 Serafini Aug 2004 A1
20040167801 Say et al. Aug 2004 A1
20040193020 Chiba Sep 2004 A1
20040193029 Gluhovsky Sep 2004 A1
20040193446 Mayer et al. Sep 2004 A1
20040199222 Sun et al. Oct 2004 A1
20040215084 Shimizu et al. Oct 2004 A1
20040218683 Batra Nov 2004 A1
20040220643 Schmidt Nov 2004 A1
20040224644 Wu Nov 2004 A1
20040225199 Evanyk Nov 2004 A1
20040240481 Matsumoto Dec 2004 A1
20040253304 Gross et al. Dec 2004 A1
20040260154 Sidelnik Dec 2004 A1
20050010338 Kraeling et al. Jan 2005 A1
20050017841 Doi Jan 2005 A1
20050020887 Goldberg Jan 2005 A1
20050021103 DiLorenzo Jan 2005 A1
20050021370 Riff Jan 2005 A1
20050024198 Ward Feb 2005 A1
20050027205 Tarassenko et al. Feb 2005 A1
20050038321 Fujita et al. Feb 2005 A1
20050041752 Rosen Feb 2005 A1
20050043634 Yokoi et al. Feb 2005 A1
20050055014 Coppeta et al. Mar 2005 A1
20050062644 Leci Mar 2005 A1
20050065407 Nakamura et al. Mar 2005 A1
20050070778 Lackey Mar 2005 A1
20050092108 Andermo May 2005 A1
20050096514 Starkebaum May 2005 A1
20050096562 Delalic et al. May 2005 A1
20050101843 Quinn May 2005 A1
20050101872 Sattler May 2005 A1
20050115561 Stahmann et al. Jun 2005 A1
20050116820 Goldreich Jun 2005 A1
20050117389 Worledge Jun 2005 A1
20050121322 Say et al. Jun 2005 A1
20050131281 Ayer et al. Jun 2005 A1
20050137480 Alt et al. Jun 2005 A1
20050143623 Kojima Jun 2005 A1
20050148883 Boesen Jul 2005 A1
20050154428 Bruinsma Jul 2005 A1
20050165323 Montgomery Jul 2005 A1
20050177069 Takizawa Aug 2005 A1
20050182389 LaPorte Aug 2005 A1
20050187789 Hatlestad et al. Aug 2005 A1
20050192489 Marshall Sep 2005 A1
20050197680 DelMain et al. Sep 2005 A1
20050228268 Cole Oct 2005 A1
20050234307 Heinonen Oct 2005 A1
20050240305 Bogash et al. Oct 2005 A1
20050245794 Dinsmoor Nov 2005 A1
20050259768 Yang et al. Nov 2005 A1
20050261559 Mumford Nov 2005 A1
20050267556 Shuros et al. Dec 2005 A1
20050267756 Schultz et al. Dec 2005 A1
20050277912 John Dec 2005 A1
20050277999 Strother et al. Dec 2005 A1
20050285746 Sengupta Dec 2005 A1
20050288594 Lewkowicz et al. Dec 2005 A1
20060001496 Abrosimov et al. Jan 2006 A1
20060036134 Tarassenko et al. Feb 2006 A1
20060061472 Lovoi et al. Mar 2006 A1
20060065713 Kingery Mar 2006 A1
20060074283 Henderson Apr 2006 A1
20060078765 Yang et al. Apr 2006 A1
20060095091 Drew May 2006 A1
20060095093 Bettesh et al. May 2006 A1
20060100533 Han May 2006 A1
20060109058 Keating May 2006 A1
20060110962 Powell May 2006 A1
20060122474 Teller et al. Jun 2006 A1
20060122667 Chavan et al. Jun 2006 A1
20060129060 Lee et al. Jun 2006 A1
20060136266 Tarassenko et al. Jun 2006 A1
20060136744 Lange Jun 2006 A1
20060142648 Banet Jun 2006 A1
20060145876 Kimura Jul 2006 A1
20060148254 McLean Jul 2006 A1
20060149339 Burnes Jul 2006 A1
20060155174 Glukhovsky et al. Jul 2006 A1
20060155183 Kroecker Jul 2006 A1
20060158820 Takiguchi Jul 2006 A1
20060161225 Sormann et al. Jul 2006 A1
20060179949 Kim Aug 2006 A1
20060183993 Horn Aug 2006 A1
20060184092 Atanasoska et al. Aug 2006 A1
20060204738 Dubrow et al. Sep 2006 A1
20060210626 Spaeder Sep 2006 A1
20060216603 Choi Sep 2006 A1
20060218011 Walker Sep 2006 A1
20060235489 Drew Oct 2006 A1
20060247505 Siddiqui Nov 2006 A1
20060253005 Drinan Nov 2006 A1
20060255064 Donaldson Nov 2006 A1
20060265246 Hoag Nov 2006 A1
20060269019 Simmons Nov 2006 A1
20060270346 Ibrahim Nov 2006 A1
20060277097 Shafron et al. Dec 2006 A1
20060280227 Pinkney Dec 2006 A1
20060282001 Noel Dec 2006 A1
20060289640 Mercure Dec 2006 A1
20060293607 Alt Dec 2006 A1
20070002038 Suzuki Jan 2007 A1
20070006636 King et al. Jan 2007 A1
20070008113 Spoonhower et al. Jan 2007 A1
20070016089 Fischell et al. Jan 2007 A1
20070027386 Such Feb 2007 A1
20070027388 Chou Feb 2007 A1
20070038054 Zhou Feb 2007 A1
20070049339 Barak et al. Mar 2007 A1
20070055098 Shimizu et al. Mar 2007 A1
20070060797 Ball Mar 2007 A1
20070073353 Rooney et al. Mar 2007 A1
20070096765 Kagan May 2007 A1
20070106346 Bergelson May 2007 A1
20070123772 Euliano May 2007 A1
20070129622 Bourget Jun 2007 A1
20070130287 Kumar Jun 2007 A1
20070135803 Belson Jun 2007 A1
20070142721 Berner et al. Jun 2007 A1
20070156016 Betesh Jul 2007 A1
20070162089 Mosesov Jul 2007 A1
20070162090 Penner Jul 2007 A1
20070164752 Kato Jul 2007 A1
20070167495 Brown et al. Jul 2007 A1
20070167848 Kuo et al. Jul 2007 A1
20070173701 Al-Ali Jul 2007 A1
20070179347 Tarassenko et al. Aug 2007 A1
20070180047 Dong et al. Aug 2007 A1
20070185393 Zhou Aug 2007 A1
20070191002 Ge Aug 2007 A1
20070196456 Stevens Aug 2007 A1
20070207793 Myer Sep 2007 A1
20070213659 Trovato et al. Sep 2007 A1
20070237719 Jones Oct 2007 A1
20070244370 Kuo et al. Oct 2007 A1
20070249946 Kumar et al. Oct 2007 A1
20070255198 Leong et al. Nov 2007 A1
20070255330 Lee Nov 2007 A1
20070270672 Hayter Nov 2007 A1
20070279217 Venkatraman Dec 2007 A1
20070282174 Sabatino Dec 2007 A1
20070282177 Pilz Dec 2007 A1
20070291715 Laroia et al. Dec 2007 A1
20070299480 Hill Dec 2007 A1
20080014866 Lipowshi Jan 2008 A1
20080015421 Penner Jan 2008 A1
20080015494 Santini et al. Jan 2008 A1
20080020037 Robertson et al. Jan 2008 A1
20080021519 DeGeest Jan 2008 A1
20080021521 Shah Jan 2008 A1
20080027679 Shklarski Jan 2008 A1
20080033273 Zhou Feb 2008 A1
20080045843 Tsuji et al. Feb 2008 A1
20080046038 Hill Feb 2008 A1
20080051667 Goldreich Feb 2008 A1
20080051767 Rossing et al. Feb 2008 A1
20080058614 Banet Mar 2008 A1
20080062856 Feher Mar 2008 A1
20080065168 Bitton et al. Mar 2008 A1
20080074307 Boric-Lubecke Mar 2008 A1
20080077015 Botic-Lubecke Mar 2008 A1
20080077028 Schaldach et al. Mar 2008 A1
20080077188 Denker et al. Mar 2008 A1
20080091089 Guillory et al. Apr 2008 A1
20080091114 Min Apr 2008 A1
20080097549 Colbaugh Apr 2008 A1
20080097917 Dicks Apr 2008 A1
20080099366 Niemic et al. May 2008 A1
20080103440 Ferren et al. May 2008 A1
20080112885 Okunev et al. May 2008 A1
20080114224 Bandy et al. May 2008 A1
20080119705 Patel May 2008 A1
20080119716 Boric-Lubecke May 2008 A1
20080137566 Marholev Jun 2008 A1
20080139907 Rao et al. Jun 2008 A1
20080140403 Hughes et al. Jun 2008 A1
20080146871 Arneson et al. Jun 2008 A1
20080146889 Young Jun 2008 A1
20080146892 LeBeouf Jun 2008 A1
20080154104 Lamego Jun 2008 A1
20080166992 Ricordi Jul 2008 A1
20080183245 Van Oort Jul 2008 A1
20080188837 Belsky et al. Aug 2008 A1
20080194912 Trovato et al. Aug 2008 A1
20080208009 Shklarski Aug 2008 A1
20080214901 Gehman Sep 2008 A1
20080214985 Yanaki Sep 2008 A1
20080243020 Chou Oct 2008 A1
20080249360 Li Oct 2008 A1
20080262320 Schaefer et al. Oct 2008 A1
20080262336 Ryu Oct 2008 A1
20080269664 Trovato et al. Oct 2008 A1
20080275312 Mosesov Nov 2008 A1
20080284599 Zdeblick et al. Nov 2008 A1
20080288026 Cross et al. Nov 2008 A1
20080288027 Kroll Nov 2008 A1
20080294020 Sapounas Nov 2008 A1
20080300572 Rankers Dec 2008 A1
20080303638 Nguyen Dec 2008 A1
20080306357 Korman Dec 2008 A1
20080306359 Zdeblick et al. Dec 2008 A1
20080306360 Robertson et al. Dec 2008 A1
20080306362 Davis Dec 2008 A1
20080311852 Hansen Dec 2008 A1
20080312522 Rowlandson Dec 2008 A1
20080316020 Robertson Dec 2008 A1
20090009332 Nunez et al. Jan 2009 A1
20090018409 Banet et al. Jan 2009 A1
20090024045 Prakash Jan 2009 A1
20090030293 Cooper et al. Jan 2009 A1
20090030297 Miller Jan 2009 A1
20090034209 Joo Feb 2009 A1
20090043171 Rule Feb 2009 A1
20090048498 Riskey Feb 2009 A1
20090062634 Say et al. Mar 2009 A1
20090062670 Sterling Mar 2009 A1
20090062730 Woo Mar 2009 A1
20090069642 Gao Mar 2009 A1
20090069655 Say et al. Mar 2009 A1
20090069656 Say et al. Mar 2009 A1
20090069657 Say et al. Mar 2009 A1
20090069658 Say et al. Mar 2009 A1
20090069724 Otto et al. Mar 2009 A1
20090076340 Libbus et al. Mar 2009 A1
20090076343 James Mar 2009 A1
20090076350 Bly et al. Mar 2009 A1
20090076397 Libbus et al. Mar 2009 A1
20090082645 Hafezi et al. Mar 2009 A1
20090088618 Ameson Apr 2009 A1
20090099435 Say et al. Apr 2009 A1
20090110148 Zhang Apr 2009 A1
20090112626 Talbot Apr 2009 A1
20090124871 Arshak May 2009 A1
20090131774 Sweitzer May 2009 A1
20090135886 Robertson et al. May 2009 A1
20090153397 Li et al. Jun 2009 A1
20090157113 Marcotte Jun 2009 A1
20090157358 Kim Jun 2009 A1
20090161602 Matsumoto Jun 2009 A1
20090163789 Say et al. Jun 2009 A1
20090171180 Pering Jul 2009 A1
20090173628 Say et al. Jul 2009 A1
20090177055 Say et al. Jul 2009 A1
20090177056 Say et al. Jul 2009 A1
20090177057 Say et al. Jul 2009 A1
20090177058 Say et al. Jul 2009 A1
20090177059 Say et al. Jul 2009 A1
20090177060 Say et al. Jul 2009 A1
20090177061 Say et al. Jul 2009 A1
20090177062 Say et al. Jul 2009 A1
20090177063 Say et al. Jul 2009 A1
20090177064 Say et al. Jul 2009 A1
20090177065 Say et al. Jul 2009 A1
20090177066 Say et al. Jul 2009 A1
20090182206 Najafi Jul 2009 A1
20090182212 Say et al. Jul 2009 A1
20090182213 Say et al. Jul 2009 A1
20090182214 Say et al. Jul 2009 A1
20090182215 Say et al. Jul 2009 A1
20090182388 Von Arx Jul 2009 A1
20090187088 Say et al. Jul 2009 A1
20090187089 Say et al. Jul 2009 A1
20090187090 Say et al. Jul 2009 A1
20090187091 Say et al. Jul 2009 A1
20090187092 Say et al. Jul 2009 A1
20090187093 Say et al. Jul 2009 A1
20090187094 Say et al. Jul 2009 A1
20090187095 Say et al. Jul 2009 A1
20090187381 King et al. Jul 2009 A1
20090192351 Nishino Jul 2009 A1
20090192368 Say et al. Jul 2009 A1
20090192369 Say et al. Jul 2009 A1
20090192370 Say et al. Jul 2009 A1
20090192371 Say et al. Jul 2009 A1
20090192372 Say et al. Jul 2009 A1
20090192373 Say et al. Jul 2009 A1
20090192374 Say et al. Jul 2009 A1
20090192375 Say et al. Jul 2009 A1
20090192376 Say et al. Jul 2009 A1
20090192377 Say et al. Jul 2009 A1
20090192378 Say et al. Jul 2009 A1
20090192379 Say et al. Jul 2009 A1
20090198115 Say et al. Aug 2009 A1
20090198116 Say et al. Aug 2009 A1
20090198175 Say et al. Aug 2009 A1
20090203964 Shimizu et al. Aug 2009 A1
20090203971 Sciarappa Aug 2009 A1
20090203972 Heneghan Aug 2009 A1
20090203978 Say et al. Aug 2009 A1
20090204265 Hackett Aug 2009 A1
20090210164 Say et al. Aug 2009 A1
20090216101 Say et al. Aug 2009 A1
20090216102 Say et al. Aug 2009 A1
20090227204 Robertson et al. Sep 2009 A1
20090227876 Tran Sep 2009 A1
20090227940 Say et al. Sep 2009 A1
20090227941 Say et al. Sep 2009 A1
20090228214 Say et al. Sep 2009 A1
20090231125 Baldus Sep 2009 A1
20090234200 Husheer Sep 2009 A1
20090243833 Huang Oct 2009 A1
20090253960 Takenaka et al. Oct 2009 A1
20090256702 Robertson Oct 2009 A1
20090264714 Chou Oct 2009 A1
20090264964 Abrahamson Oct 2009 A1
20090265186 Tarassenko et al. Oct 2009 A1
20090273467 Elixmann Nov 2009 A1
20090281539 Selig Nov 2009 A1
20090287109 Ferren et al. Nov 2009 A1
20090292194 Libbus et al. Nov 2009 A1
20090295548 Ronkka Dec 2009 A1
20090296677 Mahany Dec 2009 A1
20090301925 Alloro et al. Dec 2009 A1
20090303920 Mahany Dec 2009 A1
20090312619 Say et al. Dec 2009 A1
20090318761 Rabinovitz Dec 2009 A1
20090318779 Tran Dec 2009 A1
20090318783 Rohde Dec 2009 A1
20090318793 Datta Dec 2009 A1
20100010330 Rankers Jan 2010 A1
20100033324 Shimizu et al. Feb 2010 A1
20100036269 Ferren et al. Feb 2010 A1
20100049006 Magar Feb 2010 A1
20100049012 Dijksman et al. Feb 2010 A1
20100049069 Tarassenko et al. Feb 2010 A1
20100049263 Reeve Feb 2010 A1
20100056878 Partin Mar 2010 A1
20100056891 Say et al. Mar 2010 A1
20100056939 Tarassenko et al. Mar 2010 A1
20100057041 Hayter Mar 2010 A1
20100062709 Kato Mar 2010 A1
20100063438 Bengtsson Mar 2010 A1
20100063841 D'Ambrosia et al. Mar 2010 A1
20100069002 Rong Mar 2010 A1
20100069717 Hafezi et al. Mar 2010 A1
20100099967 Say et al. Apr 2010 A1
20100099968 Say et al. Apr 2010 A1
20100099969 Say et al. Apr 2010 A1
20100100077 Rush Apr 2010 A1
20100100078 Say et al. Apr 2010 A1
20100106001 Say et al. Apr 2010 A1
20100118853 Godfrey May 2010 A1
20100139672 Kroll et al. Jun 2010 A1
20100160742 Seidl et al. Jun 2010 A1
20100168659 Say et al. Jul 2010 A1
20100179398 Say et al. Jul 2010 A1
20100191073 Tarassenko et al. Jul 2010 A1
20100210299 Gorbachov Aug 2010 A1
20100222652 Cho Sep 2010 A1
20100228113 Solosko Sep 2010 A1
20100234706 Gilland Sep 2010 A1
20100234715 Shin Sep 2010 A1
20100234914 Shen Sep 2010 A1
20100245091 Singh Sep 2010 A1
20100249541 Geva et al. Sep 2010 A1
20100249881 Corndorf Sep 2010 A1
20100256461 Mohamedali Oct 2010 A1
20100259543 Tarassenko et al. Oct 2010 A1
20100268048 Say et al. Oct 2010 A1
20100268049 Say et al. Oct 2010 A1
20100268050 Say et al. Oct 2010 A1
20100274111 Say et al. Oct 2010 A1
20100280345 Say et al. Nov 2010 A1
20100280346 Say et al. Nov 2010 A1
20100298650 Moon et al. Nov 2010 A1
20100298730 Tarassenko et al. Nov 2010 A1
20100311482 Lange Dec 2010 A1
20100312580 Tarassenko et al. Dec 2010 A1
20110004079 Al Ali et al. Jan 2011 A1
20110065983 Hafezi et al. Mar 2011 A1
20110081860 Brown et al. Apr 2011 A1
20110124983 Kroll et al. May 2011 A1
20110134906 Garudadri et al. Jun 2011 A1
20110144470 Mazar et al. Jun 2011 A1
20110160549 Saroka et al. Jun 2011 A1
20110166937 Bangera et al. Jul 2011 A1
20110196454 Strand et al. Aug 2011 A1
20110208013 Phan et al. Aug 2011 A1
20110237924 McGusty et al. Sep 2011 A1
20110270135 Dooley et al. Nov 2011 A1
20110279963 Kumar et al. Nov 2011 A1
20120016231 Westmoreland Jan 2012 A1
20120029307 Paquet et al. Feb 2012 A1
20120029309 Paquet et al. Feb 2012 A1
20120032816 Cho et al. Feb 2012 A1
20120071743 Todorov et al. Mar 2012 A1
20120083715 Yuen et al. Apr 2012 A1
20120086550 LeBlanc Apr 2012 A1
20120089000 Bishay et al. Apr 2012 A1
20120101396 Solosko et al. Apr 2012 A1
20120179004 Roesicke et al. Jul 2012 A1
20120197144 Christ et al. Aug 2012 A1
20120299723 Hafezi et al. Nov 2012 A1
20120310070 Kumar et al. Dec 2012 A1
20120316413 Liu et al. Dec 2012 A1
20130030259 Thomsen et al. Jan 2013 A1
20130057385 Murakami et al. Mar 2013 A1
20130060115 Gehman et al. Mar 2013 A1
20130171596 French Jul 2013 A1
20130185228 Dresner Jul 2013 A1
20130196012 Dill Aug 2013 A1
20130231188 Berberich et al. Sep 2013 A1
20130238647 Thompson Sep 2013 A1
20130275296 Tietzen et al. Oct 2013 A1
20140066726 Costello Mar 2014 A1
20140280125 Bhardwaj et al. Sep 2014 A1
20140300490 Kotz et al. Oct 2014 A1
20140308930 Tran Oct 2014 A1
20140349256 Connor Nov 2014 A1
20140374276 Guthrie et al. Dec 2014 A1
20150080678 Frank et al. Mar 2015 A1
20150080679 Frank et al. Mar 2015 A1
20150080680 Zdeblick et al. Mar 2015 A1
20150080681 Hafezi et al. Mar 2015 A1
20150127737 Thompson et al. May 2015 A1
20150127738 Thompson et al. May 2015 A1
20150149375 Thompson et al. May 2015 A1
20150182170 Zdeblick et al. Jul 2015 A1
20150248833 Arne et al. Sep 2015 A1
20160324442 Zdeblick et al. Nov 2016 A1
20180096547 Robertson et al. Apr 2018 A1
20180184698 Arne et al. Jul 2018 A1
Foreign Referenced Citations (177)
Number Date Country
1588649 Mar 2005 CN
1991868 Jul 2007 CN
101005470 Jul 2007 CN
101032396 Sep 2007 CN
201076456 Jun 2008 CN
10313005 Oct 2004 DE
0526166 Feb 1993 EP
1246356 Oct 2002 EP
1530224 May 2005 EP
1789128 May 2007 EP
2063535 May 2009 EP
2143369 Jan 2010 EP
61072712 Apr 1986 JP
S62112529 May 1987 JP
05228128 Sep 1993 JP
1014898 Jan 1998 JP
H11195415 Jul 1999 JP
2000506410 May 2000 JP
2001070267 Mar 2001 JP
2001198096 Jul 2001 JP
2002224053 Aug 2002 JP
2002282219 Oct 2002 JP
2002291684 Oct 2002 JP
2003050867 Feb 2003 JP
2004007187 Jan 2004 JP
2004313242 Nov 2004 JP
2005073886 Mar 2005 JP
2005102959 Apr 2005 JP
2005137683 Jun 2005 JP
2005304880 Nov 2005 JP
2005532841 Nov 2005 JP
2005532849 Nov 2005 JP
2006508752 Mar 2006 JP
2006509574 Mar 2006 JP
2006136405 Jun 2006 JP
2006177699 Jul 2006 JP
2007167448 Jul 2007 JP
2007200739 Aug 2007 JP
2007313340 Dec 2007 JP
2008011865 Jan 2008 JP
2008501415 Jan 2008 JP
2008086390 Apr 2008 JP
2008191110 Aug 2008 JP
2008212488 Sep 2008 JP
2009528909 Aug 2009 JP
2010049490 Mar 2010 JP
2011086027 Apr 2011 JP
2012200309 Oct 2012 JP
2012212362 Nov 2012 JP
927471 Nov 2009 KR
10-2012-099995 Sep 2012 KR
553735 Sep 2003 TW
200724094 Jul 2007 TW
WO1988002237 Apr 1988 WO
WO1993008734 May 1993 WO
WO1993019667 Oct 1993 WO
WO1997014112 Apr 1997 WO
WO1998043537 Oct 1998 WO
WO1999059465 Nov 1999 WO
WO2000033246 Jun 2000 WO
WO2001000085 Jan 2001 WO
WO2001047466 Jul 2001 WO
WO2001074011 Oct 2001 WO
WO2001080731 Nov 2001 WO
WO2002045489 Jun 2002 WO
WO2002058330 Jul 2002 WO
WO2002062276 Aug 2002 WO
WO2002087681 Nov 2002 WO
WO2003050643 Jun 2003 WO
WO2003056491 Jul 2003 WO
WO2004014225 Feb 2004 WO
WO2004039256 May 2004 WO
WO2004059551 Jul 2004 WO
WO2004066834 Aug 2004 WO
WO2004068748 Aug 2004 WO
WO2004068881 Aug 2004 WO
WO2004075751 Sep 2004 WO
WO2004109316 Dec 2004 WO
WO2005011237 Feb 2005 WO
WO2005013503 Feb 2005 WO
WO2005020023 Mar 2005 WO
WO2005024687 Mar 2005 WO
WO2005041767 May 2005 WO
WO2005046575 May 2005 WO
WO2005047837 May 2005 WO
WO2005051166 Jun 2005 WO
WO2005055448 Jun 2005 WO
WO2005082436 Sep 2005 WO
WO2005084533 Sep 2005 WO
WO2005110238 Nov 2005 WO
WO2006027586 Mar 2006 WO
WO2006035351 Apr 2006 WO
WO2006046648 May 2006 WO
WO2006055892 May 2006 WO
WO2006055956 May 2006 WO
WO2006066566 Jun 2006 WO
WO2006075016 Jul 2006 WO
WO2006094513 Sep 2006 WO
WO2006100620 Sep 2006 WO
WO2006104843 Oct 2006 WO
WO2006109072 Oct 2006 WO
WO2006116718 Nov 2006 WO
WO2006119345 Nov 2006 WO
WO2006127355 Nov 2006 WO
WO2007001724 Jan 2007 WO
WO2007001742 Jan 2007 WO
WO2007013952 Feb 2007 WO
WO2007014084 Feb 2007 WO
WO2007014527 Feb 2007 WO
WO2007021496 Feb 2007 WO
WO2007027660 Mar 2007 WO
WO2007028035 Mar 2007 WO
WO2007036687 Apr 2007 WO
WO2007036741 Apr 2007 WO
WO2007036746 Apr 2007 WO
WO2007040878 Apr 2007 WO
WO2007071180 Jun 2007 WO
WO2007096810 Aug 2007 WO
WO2007101141 Sep 2007 WO
WO2007120946 Oct 2007 WO
WO2007127316 Nov 2007 WO
WO2007127455 Nov 2007 WO
WO2007127879 Nov 2007 WO
WO2007128165 Nov 2007 WO
WO2007130491 Nov 2007 WO
WO2007143535 Dec 2007 WO
WO2007149546 Dec 2007 WO
WO2008002239 Jan 2008 WO
WO2008008281 Jan 2008 WO
WO2008030482 Mar 2008 WO
WO2008052136 May 2008 WO
WO2008063626 May 2008 WO
WO2008066617 Jun 2008 WO
WO2008068695 Jun 2008 WO
WO2008076464 Jun 2008 WO
WO2008089232 Jul 2008 WO
WO2008091683 Jul 2008 WO
WO2008095183 Aug 2008 WO
WO2008097652 Aug 2008 WO
WO2008101107 Aug 2008 WO
WO2008112577 Sep 2008 WO
WO2008112578 Sep 2008 WO
WO2008120156 Oct 2008 WO
WO2008133394 Nov 2008 WO
WO2008134185 Nov 2008 WO
WO2008150633 Dec 2008 WO
WO2009001108 Dec 2008 WO
WO2009006615 Jan 2009 WO
WO2009029453 Mar 2009 WO
WO2009031149 Mar 2009 WO
WO2009035773 Mar 2009 WO
WO2009036334 Mar 2009 WO
WO2009051829 Apr 2009 WO
WO2009051830 Apr 2009 WO
WO2009063377 May 2009 WO
WO2009081348 Jul 2009 WO
WO2009111664 Sep 2009 WO
WO2009146082 Dec 2009 WO
WO2010003175 Jan 2010 WO
WO2010009100 Jan 2010 WO
WO2010011833 Jan 2010 WO
WO2010019778 Feb 2010 WO
WO2010057049 May 2010 WO
WO2010075115 Jul 2010 WO
WO2010080843 Jul 2010 WO
WO2010105053 Sep 2010 WO
WO2010107563 Sep 2010 WO
WO2010115194 Oct 2010 WO
WO2010132331 Nov 2010 WO
WO2010135516 Nov 2010 WO
WO2012104657 Aug 2012 WO
WO2012112561 Aug 2012 WO
WO2012158190 Nov 2012 WO
WO2013012869 Jan 2013 WO
WO2015042411 Mar 2015 WO
WO2015044722 Apr 2015 WO
WO2015112603 Jul 2015 WO
Non-Patent Literature Citations (69)
Entry
AADE, “AADE 37th Annual Meeting San Antonio Aug. 4-7, 2010” American Association of Diabetes Educators (2010); http://www.diabeteseducator.org/annualmeeting/2010/index.html; 2 pp.
Arshak et al., A Review and Adaptation of Methods of Object Tracking to Telemetry Capsules IC-Med (2007) vol. 1, No. 1, Issue 1, 12 pp.
“ASGE Technology Status Evaluation Report: wireless capsule endoscopy” American Soc. for Gastrointestinal Endoscopy (2006) vol. 63, No. 4; 7 pp.
Au-Yeung, K., et al., “A Networked System for Self-Management of Drug Therapy and Wellness”, Wireless Health '10, Oct. 5-7, 2010, San Diego, 9 pp.
Aydin et al., “Design and implementation considerations for an advanced wireless interface in miniaturized integrated sensor Microsystems” Sch. of Eng. & Electron., Edinburgh Univ., UK; (2003); abstract.
Barrie, Heidelberg pH capsule gastric analysis. Texbook of Natural Medicine, (1992), Pizzorno, Murray & Barrie.
Baskiyar, S. “A Real-time Fault Tolerant Intra-body Network” Dept. of Comp. Sci & Soft Eng; Auburn University; Proceedings of the 27th Annual IEEE Conference; 0742-1303/02 (2002) IEEE; 6 pp.
Bergogne C., et al., “A new frequency estimator applied to burst transmission”, IEEE International Conference on Acoustics, Speech and Signal Processing, Apr. 21, 1997, vol. 1, pp. 267-270.
Brock, “Smart Medicine: The Application of Auto-ID Technology to Healthcare” Auto-ID Labs (2002) http://www.autoidlabs.org/uploads/media/MIT-AUTOID-WH-010.pdf.
Carlson et al., “Evaluation of a non-invasive respiratory monitoring system for sleeping subjects” Physiological Measurement (1999) 20(1): 53.
Delvaux et al., “Capsule endoscopy: Technique and indications” Clinical Gastoenterology (2008) vol. 22, Issue 5, pp. 813-837.
Description of ePatch Technology Platform for ECG and EMG, located it http://www.madebydelta.com/imported/images/DELTA_Web/documents/ME/ePatch_ECG_EMG.pdf, Dated Sep. 2, 2010.
Evanczuk, S., “PIC MCU software library uses human body for secure communications link” EDN Network; edn.com; Feb. 26, 2013 Retrieved from internet Jun. 19, 2013 at http://www.edn.com/electronics-products/other/4407842/PIC-MCU-software-library-uses-human-body-for-secure-communications-link; 5 pp.
Fawaz et al., “Enhanced Telemetry System using CP-QPSK Band-Pass Modulation Technique Suitable for Smart Pill Medical Application” IFIP IEEE Dubai Conference (2008); http://www.asic.fh-offenburg.de/downloads/ePille/IFIP_IEEE_Dubai_Conference.pdf.
Gilson, D.R. “Molecular dynamics simulation of dipole interactions”, Department of Physics, Hull University, Dec. 2002, p. 1-43.
Given Imaging, “Agile Patency Brochure” (2006) http://www.inclino.no/documents/AgilePatencyBrochure_Global_GMB-0118-01.pdf; 4pp.
Gonzalez-Guillaumin et al., “Ingestible capsule for impedance and pH monitoring in the esophagus” IEEE Trans Biomed Eng. (2007) 54(12: 2231-6; abstract.
Greene, “Edible RFID microchip monitor can tell if you take your medicine” Bloomberg Businessweek (2010) 2 pp.; http://www.businessweek.com/idg/2010-03-31/edible-rfid-microchip-monitor-can-tell-if-you-take-your-medicine.html.
Halthion Medical Technologies “Providing Ambulatory Medical Devices Which Monitor, Measure and Record” webpage. Online website: http://www.halthion.com/; downloaded May 30, 2012.
Heydari et al., “Analysis of the PLL jitter due to power/ground and substrate noise”; IEEE Transactions on Circuits and Systems (2004) 51(12): 2404-16.
Hoover et al., “Rx for health: Engineers design pill that signals it has been swallowed” University of Florida News (2010) 2pp.; http://news.ufl.edu/2010/03/31/antenna-pill-2/.
Hotz “The Really Smart Phone” The Wall Street Journal, What They Know (2011); 6 pp.; http://online.wsj.com/article/SB10001424052748704547604576263261679848814.html?mod=djemTECH_t.
Intromedic, MicroCam Innovative Capsule Endoscope Pamphlet. (2006) 8 pp (http://www.intromedic.com/en/product/productinfo.asp).
ISFET—Ion Sensitive Field-Effect Transistor; MICROSENS S.A. pdf document. First cited by Examiner in Office Action dated Jun. 13, 2011 for U.S. Appl. No. 12/238,345; 4pp.
Jung, S. “Dissolvable ‘Transient Electronics’ Will Be Good for Your Body and the Environment” MedGadget; Oct. 1, 2012; Onlne website: http://medgadget.com/2012/10/dissolvable-transient-electronics-will-be-good-for-your-body-and-the-environment.html; downloaded Oct. 24, 2012; 4 pp.
Juvenile Diabetes Research Foundation International (JDRF), “Artificial Pancreas Project” (2010); http://www.artificialpancreasproject.com/; 3 pp.
Kang et al., “Nonwoven Fabric Active Electrodes for Biopotential Measurement During Normal Daily Activity,” IEEE Trans Biomed Eng. Jan. 2008; vol. 55, No. 1, pp. 188-195.
Li, P-Y, et al. “An electrochemical intraocular drug delivery device”, Sensors and Actuators A 143 (2008) p. 41-48.
Lifescan, “OneTouch UltraLink™”http://www.lifescan.com/products/meters/ultralink (2010) 2 pp.
Mackay et al., “Radio Telemetering from within the Body Inside Information is Revealed by Tiny Transmitters that can be Swallowed or Implanted in Man or Animal Science” (1991) 1196-1202; 134; American Association for the Advancement of Science, Washington D.C.
Mackay et al., “Endoradiosonde” Nature, (1957) 1239-1240, 179 Nature Publishing Group.
McKenzie et al., “Validation of a new telemetric core temperature monitor” J. Therm. Biol. (2004) 29(7-8):605-11.
Medtronic, “CareLink Therapy Management Software for Diabetes” (2010); https://carelink.minimed.com/patient/entry.jsp?bhcp=1; 1 pp.
Medtronic, “Carelink198 USB” (2008) http://www.medtronicdiabetes.com/pdf/carelink_usb_factsheet.pdf 2pp.
Medtronic “The New MiniMed Paradigm® Real-Time Revel™ System” (2010) http://www.medtronicdiabetes.com/products/index.html; 2 pp.
Medtronic, “Mini Med Paradigm® Revel™ Insulin Pump” (2010) http://www.medtronicdiabetes.com/products/insulinpumps/index.html; 2 pp.
Medtronic, Mini Med Paradigm™ Veo™ System: Factsheet (2010). http://www.medtronic-diabetes.com.au/downloads/Paradigm%20Veo%20Factsheet.pdf ; 4 pp.
Melanson, “Walkers swallow RFID pills for science” Engadget (2008); http://www.engadget.com/2008/07/29/walkers-swallow-rfid-pills-for-science/.
Minimitter Co. Inc. “Actiheart” Traditional 510(k) Summary. Sep. 27, 2005.
Minimitter Co. Inc. Noninvasive technology to help your studies succeed. Mini Mitter.com Mar. 31, 2009.
Mini Mitter Co, Inc. 510(k) Premarket Notification Mini-Logger for Diagnostic Spirometer. 9-21 (1999).
Mini Mitter Co, Inc. 510(k) Premarket Notification for VitalSense. Apr. 22, 2004.
Minimitter Co. Inc. VitalSense Integrated Physiological Monitoring System. Product Description. (2005).
Minimitter Co. Inc. VitalSense Wireless Vital Signs Monitoring. Temperatures.com Mar. 31, 2009.
Mojaverian et al., “Estimation of gastric residence time of the Heidelberg capsule in humans: effect of varying food composition” Gastroenterology (1985) 89:(2): 392-7.
“New ‘smart pill’ to track adherence” E-Health-Insider (2010) http://www.e-health-insider.com/news/5910/new_‘smart_pill’_monitors_medicines.
Owano, N., “Study proposes smart sutures with sensors for wounds” phys.org. Aug. 2012. http://phys.org/news/2012-08-smart-sutures-sensors-wounds.html.
Park, “Medtronic to Buy MiniMed for $3.7 Billion” (2001) HomeCare; http://homecaremag.com/mag/medical_medtronic_buy_minimed/; 2 pp.
Radio Antennae, http://www.erikdeman.de/html/sail018h.htm; (2008) 5 pages.
“RFID “pill” monitors marchers” RFID News (2008) http://www.rfidnews.org/2008/07/23/rfid-pill-monitors-marchers/.
Sanduleanu et al., “Octave tunable, highly linear, RC-ring oscillator with differential fine-coarse tuning, quadrature outputs and amplitude control for fiber optic transceivers” (2002) IEEE MTT-S International Microwave Symposium Digest 545-8.
Santini, J.T. et al, “Microchips as controlled drug delivery-devices”, Agnew. Chem. Int. Ed. (2000), vol. 39, p. 2396-2407.
“SensiVida minimally invasive clinical systems” Investor Presentation Oct. 2009 28pp; http://www.sensividamedtech.com/SensiVidaGeneralOctober09.pdf.
Shawgo, R.S. et al. “BioMEMS from drug delivery”, Current Opinion in Solid State and Material Science 6 (2002), p. 329-334.
Shrivas et al., “A New Platform for Bioelectronics-Electronic Pill”, Cummins College, (2010).; http://www.cumminscollege.org/downloads/electronics_and_telecommunication/Newsletters/Current%20Newsletters.pdf; First cited in third party client search conducted by Patent Eagle Search May 18, 2010 (2010).
“Smartlife awarded patent for knitted transducer” Innovation in Textiles News: http://www.innovationintextiles.com/articles/208.php; 2pp. (2009).
“The SmartPill Wireless Motility Capsule” SmartPill, The Measure of GI Health; (2010) http://www.smartpillcorp.com/index.cfm?pagepath=Products/The_SmartPill_Capsule&id=17814.
Solanas et al., “RFID Technology for the Health Care Sector” Recent Patents on Electrical Engineering (2008) 1, 22-31.
Soper, S.A. et al. “Bio-Mems Technologies and Applications”, Chapter 12, “MEMS for Drug Delivery”, p. 325-346 (2007).
Swedberg, “University Team Sees Ingestible RFID Tag as a Boon to Clinical Trials” RFID Journal Apr. 27, 2010; http://www.rfidjournal.com/article/view/7560/1.
Tajalli et al., “Improving the power-delay performance in subthreshold source-coupled logic circuits” Integrated Circuit and System Design. Power and Timing Modeling, Optimization and Simulation, Springer Berlin Heidelberg (2008) 21-30.
Tatbul et al., “Confidence-based data management for personal area sensor networks” ACM International Conference Proceeding Series (2004) 72.
Tierney, M.J. et al “Electroreleasing Composite Membranes for Delivery of Insulin and other Biomacromolecules”, J. Electrochem. Soc., vol. 137, No. 6, Jun. 1990, p. 2005-2006.
Walkey, “MOSFET Structure and Processing”; 97.398* Physical Electronics Lecture 20, 24 pages, First cited by Examiner in Office Action dated Jun. 13, 2011 for U.S. Appl. No. 12/238,345.
Xiaoming et al., “A telemedicine system for wireless home healthcare based on bluetooth and the internet” Telemedicine Journal and e-health (2004) 10(S2): S110-6.
Yang et al., “Fast-switching frequency synthesizer with a discriminator-aided phase detector” IEEE Journal of Solid-State Circuits (2000) 35(10): 1445-52.
Yao et al., “Low Power Digital Communication in Implantable Devices Using Volume Conduction of Biological Tissues” Proceedings of the 28th IEEE, EMBS Annual International Conference, Aug. 30-Sep. 3, 2006.
Zimmerman, “Personal Area Networks: Near-field intrabody communication” IBM Systems Journal (1996) 35 (3-4):609-17.
Zworykin, “A Radio Pill” Nature, (1957) 898, 179 Nature Publishing Group.
Related Publications (1)
Number Date Country
20190260618 A1 Aug 2019 US
Provisional Applications (1)
Number Date Country
61880786 Sep 2013 US
Continuations (3)
Number Date Country
Parent 15678349 Aug 2017 US
Child 16121736 US
Parent 14989409 Jan 2016 US
Child 15678349 US
Parent 14491449 Sep 2014 US
Child 14989409 US