Patent Publication Number: US-2016226697-A1

Title: Method and apparatus for use with received electromagnetic signal at a frequency not known exactly in advance

Description:
BACKGROUND 
     Some real-life situations involving reception of electromagnetic signals are relatively easy, for example where the transmitted signal is known to be at a particular exact frequency due to its being crystal controlled. As another example a signal that lasts a long time is relatively easy to receive and analyze. A signal that is repeated as often as necessary, for example in a system where packets are acknowledged and an unacknowledged packet is retransmitted, can be relatively easily received. As another example if a transmitter has the luxury of a high power level and the further luxury of an optimally sized antenna, this makes the signal easier to receive relative to ambient noise. Another thing that can make reception of an electromagnetic signal easier is if the designer is able to assume that the receiver has plenty of storage and high computational bandwidth as well as a generous power source. 
     Some real-life situations, however, do not offer any of these factors that would make reception of signals easy. Suppose, for example, that the transmitter is not crystal controlled and thus the designer of the receiver is not permitted to assume that the transmitted signal is at any particular exact frequency. Suppose that the transmitter is required to be physically small in form factor and thus that any antenna elements are severely constrained in size. Suppose the transmitter has a power source that does not last very long, so that any transmitted signal lasts only for a limited duration. Suppose further that the power source is not very strong, so that the transmitted signal is of only very limited strength. Suppose that the transmitter is not also a receiver, so that there is no prospect of defining a packet acknowledgment protocol that would permit selective retransmission of particular packets only when needed. 
     Suppose that the designer is not able to assume that the receiver has arbitrarily large data storage and is not able to assume that the receiver has arbitrarily high computational bandwidth. Suppose further that the receiver cannot be assumed to have an arbitrarily generous power source. 
     In such circumstances, few if any prior-art approaches turn out to provide suitable reception of the transmitted signals. 
     These circumstances do present themselves in real life, for example if a pill contains an IEM (ingestible event marker) and if the would-be receiver is a patch or other detector affixed to or nearby to the body of a subject that is to ingest the IEM. Such IEMs are not crystal controlled and so their transmitted signal cannot be assumed to be at any particular exact frequency. Such IEMs are powered by contact with gastric juices or other fluids within the body of the subject, and the contact-powered power source only lasts for a limited duration. 
     In recent times it has become commonplace to carry out reception of electromagnetic signals in what might be termed a “software receiver”. As shown in  FIG. 2 , an input signal  201  is received (for example by an antenna) and the signal is amplified at  202 . The amplified signal is passed through a bandpass filter  204  which eliminates most or all noise at frequencies above and below the edges of the filter. The filtered signal is again amplified at  205  and is digitized in an analog-to-digital converter  206 , yielding a digital sample stream  207  about which more will be said. 
     The signal-to-noise ratio is one of the strongest predictors of success in reception of any transmitted signal. One way to improve the signal-to-noise ratio is to sharpen the bandpass filter shown in  FIG. 1  as filter  203 . Narrowing the filter  203  (as compared with the filter  204  of  FIG. 2 ) has the advantage that noise that is outside of the limits of filter  203  (but that was inside of the limits of filter  204 ) is noise that will not clutter up the analyzed signal in  FIG. 1  even though such noise would have cluttered up the analyzed signal in  FIG. 2 . 
     But if the filter  203  is narrowed, there is the risk that the actual transmitted signal is outside of the limits of filter  203 , in which case the receiver of  FIG. 1  will miss the signal completely and will never pick it up. 
     In situations (such as the IEM situation mentioned above) where one does not have the luxury of being able to assume that the signal to be detected is at some particular exact frequency, the narrower filter  203  cannot be employed. Instead there is no choice but to leave filter  204  ( FIG. 2 ) so very broad as to be able to pass the signal-to-be-detected at any of its possible frequencies. Any application of a narrower bandpass filter will have to be relegated to a controllable filter that is able to be adjusted upwards and downwards in frequency (“hunting”) until the actual frequency of the signal is determined. In a typical present-day software receiver, such a controllable filter is accomplished in software. 
     Only when the frequency (or frequencies, in the case of frequency-shift keying) has been discovered can further analysis be carried out for example to extract data from the signal. Such data might be phase-shift keyed, or amplitude keyed, or frequency-shift keyed, or communicated by some other more complex modulation. 
     The alert reader may be familiar with some of the ways that a present-day software receiver gets programmed to carry out digital filtering and further analysis.  FIG. 3  shows one approach, namely storage in mass storage  208  of the entirety of the digital sample stream  207 . Analysis at block  209  is carried out on the data stored at  208 . It will be appreciated that depending on the sample rate of the ADC  206 , and the resolution (number of bits per sample) of the ADC  206 , even just a few minutes of storage of raw data can require an enormous storage device  208 . But in situations (such as described above) where the receiver has limited memory resources, the storage of the entirety of the digital sample stream (raw data) is just not possible. 
     The alert reader may also be familiar with some of the design decisions made by designers of analysis  209 . Such designers may, for example, assume that multiple analyses can be carried out one after the other (or may be run in parallel with suitable parallel hardware) on the entirety of the data in mass storage  208 . One analysis tries to pick out one would-be signal frequency, a subsequent analysis tries another frequency, until (hopefully) the hunt succeeds and the actual transmitted frequency is determined. Such analyses require substantial computational bandwidth and corresponding amounts of power for the analytical hardware. But in situations (such as described above) where the receiver has limited computational bandwidth or limited power or both, it is just not possible to proceed in this way. 
     A further big challenge presents itself when the sought-after transmitted signal is ephemeral, that is, it does not persist for very long after it has started. Prior-art approaches that attempt to pick out the signal by means of a “hunting” process are approaches that run the risk of taking so long to succeed at the hunt that the signal may have come and gone. Some prior-art systems when faced with an ephemeral signal of frequency that is not known in advance will run a massively parallel set of relatively narrow-band receivers so that no matter which frequency turns out to be the transmitted frequency, one or another of the receivers will have picked up the entire transmission. Other prior-art systems when faced with an ephemeral signal of frequency that is not known in advance will run a single relatively broad-band receiver and will attempt to store absolutely everything that was received (digitally) and then to conduct post-receipt analysis over and over again until some digital filter happens to have picked out the signal from the noise. These approaches require lots of hardware, and lots of power. These approaches are expensive and cannot be reduced in size to desirably small form factors. 
     It would be very helpful if an approach could be devised which would permit picking out a signal even when one is not able to know in advance exactly what frequency the signal will be at, and to do this in a way that does not require prodigious data storage capacity, and that does not require prodigious computational bandwidth. 
     SUMMARY OF THE INVENTION 
     In a software receiver, a received electromagnetic signal is sampled in “slices”, each having a duration of some multiple of a reference frequency. The samples of each slice are correlated with values in a pair of reference signals, such as sine and cosine, at the reference frequency. This yields a two-tuple for each slice, which two-tuples may be stored. The stored two-tuples can be simply added to arrive at a correlation value of narrower bandwidth than that of any slice taken alone. The stored two-tuples can be taken in sequence, each rotated by some predetermined angle relative to its predecessor in sequence, and the rotated two-tuples summed to arrive at a correlation value with respect to a frequency that is offset from the reference frequency to an extent that relates to the predetermined angle. In this way, the receiver is able to proceed despite the transmitted frequency not being known exactly in advance and does not require prodigious storage or computational resources. 
    
    
     
       DESCRIPTION OF THE DRAWING 
       The invention is described with respect to a drawing in several figures, of which: 
         FIG. 1  shows a software receiver with a relatively narrow-band filter; 
         FIG. 2  shows a software receiver with a relatively broad-band filter; 
         FIG. 3  shows a prior-art approach using mass storage of the entirety of a digital sample stream; 
         FIG. 4  shows a prior-art approach using prior-art analysis approaches; 
         FIG. 5  shows an approach according to the invention in which “slicing” is carried out and two-tuples are stored indicative of a correlation calculation relative to a reference frequency; 
         FIG. 6  shows an approach according to the invention in which two-tuples corresponding to a number of slices are simply added up, the result being a narrower bandwidth result than that of any single slice taken alone; 
         FIG. 7  shows an approach according to the invention in which two-tuples corresponding to a number of slices are rotated, each more than its predecessor, and then the rotated two-tuples are added, the result being a correlation with respect to a different frequency than the reference frequency; 
         FIG. 8  shows a sample received signal and “sine” and “cosine” reference waveforms for a “slice”; and 
         FIG. 9  shows a time sequence of several slices. 
     
    
    
     Where possible, like reference numerals have been employed to denote like items. 
     SPECIFICATION 
     As mentioned above, according to the invention, in a software receiver, a received electromagnetic signal is sampled in “slices”, each having a duration of some multiple of a reference frequency. The samples of each slice are correlated with values in a pair of reference signals, such as sine and cosine, at the reference frequency. This yields a two-tuple for each slice, which two-tuples may be stored. The stored two-tuples can be simply added to arrive at a correlation value of narrower bandwidth than that of any slice taken alone. The stored two-tuples can be taken in sequence, each rotated by some predetermined angle relative to its predecessor in sequence, and the rotated two-tuples summed to arrive at a correlation value with respect to a frequency that is offset from the reference frequency to an extent that relates to the predetermined angle. In this way, the receiver is able to proceed despite the transmitted frequency not being known exactly in advance and does not require prodigious storage or computational resources. 
       FIG. 5  shows an approach according to the invention in which “slicing” is carried out and two-tuples are stored indicative of a correlation calculation relative to a reference frequency. The digital sample stream  207  is subjected to a “slice” analysis  211  which will be discussed in greater detail below in connection with  FIG. 8 . The result of the slicing is the development of a two-tuple (an ordered pair of two scalar values) for each slice, and the the two-tuples are stored at step  212 . 
       FIG. 6  shows an approach according to the invention in which two-tuples (stored at  212 ) corresponding to a number of slices are simply added up (step  213 ), the result being a narrower bandwidth result  214  than that of any single slice taken alone. This will be discussed in more detail below. 
       FIG. 7  shows an approach according to the invention in which two-tuples (stored at  212 ) corresponding to a number of slices are rotated, each more than its predecessor (part of step  215 ), and then the rotated two-tuples are added (also part of step  215 ), the result being a correlation with respect to a different frequency than the reference frequency (result  216 ). This will be discussed in more detail below. 
       FIG. 8  shows a sample received signal  102  and “sine” and “cosine” reference waveforms,  103  and  104  respectively, for a “slice”. This portrayal shows what happens in box  211  of  FIG. 5 . The received signal  102  is, in this case, shown as a sinusoidal waveform correlating strongly with waveform  103 , but this is shown simply as an example. In this case the unaided eye can readily pick out that the waveform  102  is fundamentally sinusoidal at very nearly the same frequency of reference waveforms  103  and  104 , and that it is very nearly in phase with reference waveform  103 . Although a modest amount of noise is portrayed for signal  102  in  FIG. 8 , the noise does not keep the unaided eye from readily discerning the waveform. In real-life situations of course the invention has the goal of dealing with received signals  102  that may not yield to the unaided eye at all, that may not be of any particular readily discerned frequency, and that may at least at first glance have noise that overwhelms any supposed signal. 
     The system makes use of reference waveforms  103  and  104 . In  FIG. 8  these are sinusoidal waveforms one of which lags the other by 90 degrees. It is convenient to define a term “slice” which represents some period of time, perhaps four or eight cycle times of the reference frequency. In  FIG. 8  we can see five cycle times of the reference frequency as shown in waveforms  103  and  104 , extending from the left side of the figure to the right side of the figure. Line  105  is intended to portray a number of sampling moments in time during the slice. In this figure what is shown is N sampling moments between the start of the first cycle (at the reference frequency) and the end of the fifth cycle (at the reference frequency). For example at the tenth sampling moment (shown by dotted line  106 ) the instantaneous magnitude of the waveform  102  is multiplied by the instantaneous magnitude of the waveform  103 . (This may be termed a “dot product”.) The scalar result of this multiplication associated with the tenth sampling moment is indicative to some limited extent of the degree of correlation between the waveform  102  and the waveform  103 . At this same tenth sampling moment (shown by dotted line  106 ) the instantaneous magnitude of the waveform  102  is multiplied by the instantaneous magnitude of the waveform  104 . (This may likewise be termed a “dot product”.) The scalar result of this multiplication associated with the tenth sampling moment is indicative to some limited extent of the degree of correlation between the waveform  102  and the waveform  104 . 
     The dot-product or multiplication is carried out not only for sampling moment ten (at line  106 ) but also at N−1 other sampling moments, developing N dot products associated with the sine wave (waveform  103 ) and the cosine wave (waveform  104 ). As shown by the summation formulas at the bottom of  FIG. 8 , the dot products associated with waveform  103  are summed to yield a single scalar number “s” and the dot products associated with waveform  104  are summed to yield a single scalar number “c”. These two scalar values form a two-tuple associated with the particular slice portrayed in this  FIG. 8 . 
     In the very artificial example shown here, with received signal  102  being shaped so that the unaided eye has no problem picking out that it correlates very strongly with waveform  103 , the value “s” will be a big number. Assuming that waveforms  102  and  103  have been normalized so that the peaks are at a value of unity, then the value “s” will be about N. It may be convenient likewise to scale the result of the summation with a scaling factor 1/N so that the maximum value for “s” is approximately unity. But the normalization or scaling is merely a matter of computational convenience and is not required for the invention to deliver its benefits, as will be better understood as the explanation herein continues. 
     The alert reader will appreciate that in the case (a case thought to be optimal) where the waveforms  103  and  104  are 90 degrees out of phase, any similar set of samples and dot products between waveforms  103  and  104  would sum to a value very chose to zero. Said differently, in such a case waveforms  103  and  104  are orthogonal to each other. From this we can see that in the very artificial example shown here, where received signal  102  correlates strongly with reference waveform  103 , we can guess what value “c” would turn out to have. Value “c” would turn out to be close to zero. 
     In the more general case, s and c would assume any of a range of values rather than the artificial “1” and “0” values that follow from the waveforms shown in  FIG. 8 . 
     In any event, after the slice of  FIG. 8  is analyzed (box  211  in  FIG. 5 ) to yield a two-tuple (s, c) that is stored (box  212  in  FIG. 5 ), then successive slices can be analyzed to yield more two-tuples that may be stored. The result can be a large number of two-tuples. Later we will discuss in some detail the things that can be done with the stored two-tuples. 
     The alert reader will appreciate that even if it is thought to be optimal for the reference waveforms to be sinusoidal, the invention can be made to work with reference waveforms of other periodic shapes such as sawtooth, triangle, or square waves. (This might simplify computations for some choices of hardware.) The correlations that permit working out the frequency of the received signal, and that permit working out its phase if needed, can be correlations between the received signal and almost any periodic shape. One is probably discarding some information by correlating to a non-sinusoidal periodic waveform rather than to a sinusoidal waveform, but even if some information is discarded it may be possible to extract the desired frequency and phase information from the received signal. 
     The alert reader will also appreciate that even if it is thought to be optimal for the reference waveforms to be 90 degrees out of phase with each other, the teachings of the invention offer their benefits for other possible phase relationships. For example the two reference waveforms could be 89 degrees or 91 degrees out of phase with very little loss of analytical power. 
     It may be helpful to return briefly to the receiver of  FIG. 2  to say more about the hardware. First the analog-to-digital converter  206  might have any of a range of resolutions—from as much as 16-bit or 10-bit resolution down to a mere one bit of resolution. (In the latter case the A/D converter is simply a comparator.) The digital sample stream passes to a processor  402  by a general-purpose parallel data bus  401 , and is slice-analyzed and the two-tuples stored in memory  403 . Results of the frequency and phase analysis get communicated at I/O  404  to points that are external to the receiver. The processor  402  carries out the steps of the method according to the invention by executing instructions stored in memory  403 . 
     But the reader will immediately appreciate that many types of hardware could deliver the benefits of the invention. The hardware designer might pick a microcontroller that contains both the processor  402  and the memory  403  as well as I/O  404 . The hardware designer might relegate some of the steps of the method to one or more field-programmable gate arrays or to one or more application-specific integrated circuits. As yet another example the designer might make use of a DSP (digital signal processor) to carry out some or all of the described functions. Any of these hardware choices, or others not mentioned, could be employed without departing from the invention itself. 
     The sampling rate at the A/D converter (box  206  in  FIG. 2 ) may for simplicity of operation be the same as the sampling rate for the “slice” analysis (line  105  in  FIG. 8 ). Generally one would wish to pick a sampling rate that is at least as often as Nyquist would suggest (twice the frequency of interest) and it is thought that a higher sampling rate (perhaps five or more times the frequency of interest) may be preferable. In one embodiment the receiver system (located in a path affixed to the abdomen of the subject) carries out about forty or more samples per slice. 
     In one embodiment the signal emitted by the IEM may last for a few minutes (perhaps 4 or 7 or 10 minutes) but will likely not last longer than that. The signal emitted by the IEM might be around 12 kHz or around 20 kHz, in which case a slice duration might be around 400 microseconds. 
     In one implementation example the carrier frequency emitted by the IEM is around 20 kHz. The reference frequency is 20 kHz. The ADS samples 160 samples per cycle of the carrier, which is 3.2 million samples per second. The microcontroller in this example is able to execute 16 million instructions per second. A slice, in this implementation, is defined as four cycles of the reference frequency. This means there are 640 samples per slice. There are thus about 21 processor cycles available between each cycle. 
     In a prior-art analysis such as that of box  4  of  FIG. 4 , the 21 processor cycles would be completely inadequate to keep up with the digital sample stream  207 . But it is within grasp to carry out the dot products and the two summations of  FIG. 8  within the 21 processor cycles. 
     The amount of data storage required is also worthy of discussion. The prior-art approach of  FIG. 3  might require storing 640 digital words per slice. The approach of  FIG. 8  might require a mere two digital words. The compression benefit of the slice analysis might be 640 to 2 or 320 to 1, which is two orders of magnitude of reduction in memory requirements. 
       FIG. 3  reminds us that in some applications (where memory, computational bandwidth, and power are all plentiful and cost-free) one might in the first instance store in bulk all of the data developed by the ADS  206  ( FIG. 1 or 2 ). Such storage at  208  could easily add up to millions of samples and tens of millions of bits for just a second or two of captured signal. Stored digital data for several minutes could add up to gigabits of data to be stored and later analyzed. Such analysis at box  209  ( FIG. 3 ) requires much computation. 
       FIG. 4  proposes that the prior-art analysis (at box  210 ) be done in real time, and with respect to a digital sample stream of some millions or tens of millions of bits per second. 
     Returning briefly to the subject of digital filter bandwidth, the slice correlation calculation represents a filter with a bandwidth of something like 1 over the slice time, which is 20000/4 or about 5 kHz. This is relatively broad bandwidth, when compared with the carrier of perhaps 20 kHz. 
     But when several slices are combined (by adding up the respective two-tuples of the slices) the bandwidth gets narrower. Combining five slices means the effective slice time is five times as long, so that the bandwidth is closer to 1 kHz, a relatively narrow bandwidth when compared with the same carrier of perhaps 20 kHz. 
     The reader will appreciate that this permits “hunting” for a frequency that is offset by some amount from the reference frequency. If the reference frequency is 20 kHz and if the one-slice bandwidth is 5 kHz then one has a chance of picking up a carrier (in a received signal) that is in the range of perhaps 18-22 kHz. (Depending on ambient noise and other factors the range might be even more forgiving.) Once the carrier has been picked up, then the slices can be combined, thus applying a narrower filter to the identified frequency. 
     The teaching of the invention is, once again, a powerful one. If we collect some data in five slices, we can start with a broad bandwidth filter and then go back into the past (the data already collected) and nearly effortlessly apply a much narrower filter to the data already collected, just by adding up two sets of five numbers. 
       FIG. 8  provides a visual sense of the prior-art data storage needs and the data storage needs for the present invention. The prior-art storage approach would call for storing the entirety of waveform  102 . Depending on the sample rate and the A/D resolution this might add up to 40 bits or 600 bits of data, or more. In contrast according to the invention one might store only the two scalars “s” and “c”. This might be 16 bits. 
       FIG. 9  shows a time sequence of several slices  1 ,  2 ,  3 , and  4 . Suppose that we wish that we had done a single slice that lasts as long as the four slices when laid out in time sequence? Because the calculations (the summation formulas in  FIG. 8 ) are simply additive, then we can simply add together the four two-tuples (one for each of the four slices) and we end up with a two-tuple that is just what we would have gotten if we had done a single slice that had lasted as long as the four slices. 
     The adding-up of the four slices (that is, the adding-up of the four two-tuples) yields a result that represents a narrower filter (narrower bandwidth) as compared with the filter (or bandwidth) associated with any one of the four original slices. In this way one may arrive at a narrower-band filter result by simply manipulating information that was already in memory. 
     This discussion helps to show one of the advantages of the inventive slice-based approach as compared with some prior-art approaches. In the prior-art approach of  FIG. 3 , if we were first to do some wide-band filtering and analysis, and if later we were to determine that we wish to do some narrow-band filtering and analysis, this might well require substantial computation (including operations such as multiplication that consume more computational resources as compared with mere addition) and might require manipulating much more data (for example some or all of the x and y data points of the waveform  102  in  FIG. 8 ). The computation  209  might not lend itself to being done in real time, but might lag behind the flow of the digital data stream  207 . 
     In contrast the approach of the invention might only require adding up a few simple numbers. This might be accomplished at real time or much faster than real time. 
     It is helpful to say a few more words about the sequence of slices suggested by  FIG. 9 . For the slices to be combinable as discussed here, the reference signals  103 - 1 ,  103 - 2 , and so on need to be coherent, meaning that they are in phase with each other. The same is required of the reference signals  104 - 1 ,  104 - 2  and so on. 
     For convenience of hardware design and convenience of calculation, the starting times of the slices  1 ,  2 ,  3 , and  4  and so on will probably be selected to be periodic according to some fixed interval. The slices might be contiguous in time (slice  2  starting the instant that slice  1  ended). But many of the teachings of the invention offer their benefits even if (as suggested in  FIG. 9 ) there are brief periods of time between slices when no sampling is going on and no data being captured. 
     The discussion up to this point in connection with  FIGS. 8 and 9  treats the idealized case where through some good luck the received signal (at  102 ) happened to be at the same frequency as the reference frequency (at  103  and  104 ). As has been mentioned above, however, the teachings of the invention are intended to address situations where the frequency of the received signal is not known accurately in advance but is only known very approximately or roughly. It will now be helpful to discuss how the approach of the invention permits detecting a frequency that is not the same as the reference frequency. This rather remarkable result turns out to be achievable without requiring storing large amounts of data, and turns out to be achievable without requiring enormous computational bandwidth or large amounts of power. 
     To understand how this approach can detect a frequency that is not the same as the reference frequency, it may be helpful to review the notion of how we rotate a vector. To rotate a vector by an angle θ, we multiply it by a rotation matrix 
     
       
         
           
             R 
             = 
             
               [ 
               
                 
                   
                     
                       cos 
                        
                       
                           
                       
                        
                       θ 
                     
                   
                   
                     
                       
                         - 
                         sin 
                       
                        
                       
                           
                       
                        
                       θ 
                     
                   
                 
                 
                   
                     
                       sin 
                        
                       
                           
                       
                        
                       θ 
                     
                   
                   
                     
                       cos 
                        
                       
                           
                       
                        
                       θ 
                     
                   
                 
               
               ] 
             
           
         
       
     
     So for example suppose the incoming signal is a 12600 Hz. Of course we do not yet know that it is at that frequency. Our goal will be to figure out what its frequency is. Suppose further that the reference frequency that was employed in the slice analysis was 12500 Hz. This means we hope to “retune” our data by 100 Hz. 
     We can then apply the rotation matrix to the two-tuples, one after the next. The two-tuple for the first slice is left unchanged (no rotation). We take the two-tuple for the second slice and we rotate it by some angle θ. We take the two-tuple for the third slice and we rotate it by 2θ. We take the two-tuple for the fourth slice and we rotate it by 3θ. We then add up all the first two-tuple and we add up the rotated two-tuples (the second through fourth two-tuples in this case). This yields a narrow-band filter of the incoming data that is narrowly focused on some other frequency (perhaps the 12600 Hz frequency). 
     The mathematical relationship between θ and the desired offset (here, 100 Hz) is straightforward and depends upon depends for example upon such things as the size of the gaps in  FIG. 9  between the end of one slice and the start of the next slice. 
     Again suppose the reference frequency used in the slice analysis was 12500 Hz, but suppose we wish to go hunting to try to see if the incoming signal is actually at 12400 Hz. If previously we had worked out which angle θ was the correct angle to retune the filter to 12600 Hz, then this tells us that we can use −θ (the opposite of the previous angle) to retune the filter to 12400 Hz. 
     Repeating a point made earlier, this permits the system to go hunting around for the actual frequency of the incoming signal by trying out various values for θ until a value is found that yields a high correlation value (the sum of the rotated two-tuples turns out to be high). When this value has been found, then we have succeeded at the hunt—we have determined the frequency of the incoming signal. 
     Such hunting can be easily done, based upon an astonishingly small amount of stored data. A half a dozen or a dozen two-tuples (memorializing what was extracted from the data of half a dozen or a dozen slices) might permit hunting up and down in frequency until the actual incoming frequency has been found. All of this can be done with quite modest data storage and fairly undemanding calculations Importantly there is no need to go back to the original raw data stream (for example data  102  in  FIG. 8 ) nor is there any need to wait for a new raw data stream to arrive. 
     The alert reader will now appreciate one of the some of the very interesting of the invention. Suppose the incoming data is modulated with an FSK (frequency shift keying) modulation with two frequencies, one representing a “0” and the other representing a “1”. The approach just described can permit hunting for and locating the two frequencies, and can then permit easy detection of the presence of the one frequency or the other so as to detect Os and is in a data stream. All of this can be done with only modest computational resources and can be done based upon mere stored two-tuples. Again there is no need to go back to the original raw data stream (for example data  102  in  FIG. 8 ) nor is there any need to wait for a new raw data stream to arrive. 
     It will be recalled that where IEMs are involved, the signal of interest may last only a few minutes such as four or seven or ten minutes. It may turn out to be possible to capture and store slice data for several minutes, and then even if the signal ends, it may be possible to go back and analyze and re-analyze the stored slice data at a later time after the signal has ended. Such analyzing and re-analyzing may permit detecting the frequencies involved even though the signal has ended. The stored data to permit going back and analyzing and re-analyzing will be modest in size (as mentioned above, maybe 1/320 th  of the data that would have needed to be stored using prior-art approaches) and the analysis and re-analysis will require only modest computational bandwidth as compared with that required for prior-art approaches that direct themselves to the raw data. 
     It is interesting to consider the detection of a data stream that has been phase-shift-keyed (“PSK”). Once the carrier frequency for a PSK signal has been determined using the hunting approach discussed above, it will then be desired to detect the phase shifts. This can be done by closely following the magnitudes of the first elements of each two-tuple and comparing them with the magnitudes of the second elements of each two-tuple. These comparisons may permit working out when the phase has shifted to one keying value and when it has shifted to the other keying value. 
     A related approach is to use the phase angle (defined by the two elements of each two-tuple) detected during one interval to define an initial phase in the received signal. Then during some later interval the phase angle (again defined by the two elements of each two-tuple) might be about the same, in which case we will say that the keying is the same as during the initial interval. Then during some third interval the phase angle (yet again defined by the two elements of each two-tuple) might be notably different (perhaps advanced or lagged by some phase angle such as 90 degrees) in which case we will say that the keying has changed to a different keyed value.