Method for marking data in time/frequency measurement

Information

  • Patent Grant
  • 10481178
  • Patent Number
    10,481,178
  • Date Filed
    Wednesday, October 22, 2014
    9 years ago
  • Date Issued
    Tuesday, November 19, 2019
    4 years ago
Abstract
A method for marking relevant data within an acquired set of data in accordance with an embodiment includes receiving a location of a first synchronization event within a synchronizing time pulse synchronized with the acquired set of data, searching the synchronizing time pulse within a predetermined window for the first synchronization event based on the location, identifying the first synchronization event based on the search, and obtaining data from the acquired set of data within an offset range determined based on the identified first synchronization event. The steps are then iteratively repeated for a number of periods.
Description
TECHNICAL FIELD

The present invention relates to marking data for selective processing.


BACKGROUND

Many high speed measurement systems acquire many gigabytes per second (GB/s) of data and dump the acquired data to local memory for later processing, particularly when that processing is complex and highly reconfigurable. Dumping to local memory can be done, for example, to maintain throughput. In some cases (e.g., transient measurements or pulsed radio frequency (RF) measurements) only localized portions of the data are of interest and only the relevant portions need be processed to improve system throughput. In the case of quasi-periodic or triggered events, data is marked so that the events can later be identified. This is acceptable when the sampling rate is not extremely fast relative to the event rate. However, when the sampling rate is extremely fast, much time is spent looking for the marking events and large amounts of data may be transferred in intermediate stages that waste memory and time. In addition, in complex triggering situations the marking may not be available at the first transient event and important information is lost.


SUMMARY

A method for marking relevant data within an acquired set of data in accordance with an embodiment includes receiving a location of a first synchronization event within a synchronizing time pulse synchronized with the acquired set of data, searching the synchronizing time pulse within a predetermined window for the first synchronization event based on the location, identifying the first synchronization event based on the search, and obtaining data from the acquired set of data within an offset range determined based on the identified first synchronization event.


The location is used as a current location and the method iteratively includes, for a predetermined number of periods, applying an offset delta value to the current location to predict a location of a next synchronization event within the synchronizing time pulse, searching the synchronizing time pulse within a window based on a target period fraction for the next synchronization event based on the current location, and obtaining data from the acquired set of data within an offset range determined based on the identified next synchronization event. The offset delta value is based on an estimate of the period.


Upon failing to identify the next synchronization event, the window for searching can be iteratively widened, and the search repeated within the widened window until identifying the next synchronization event or reaching a predefined maximum width for the window. Once the next synchronization event is identified, the current location is updated for the next iteration based on the offset data value and a location of the identified next synchronization event within the synchronizing time pulse.


In an embodiment, the first synchronization event is received from a register, and a data start time and a data stop time from the register is also received from the register. In an embodiment, the offset delta is modified to be reduced by a number of samples based on a combination of the data start time and the data stop time and the offset range is modified to be reduced by a number of samples based on the data start time.


A system for marking relevant data within an acquired set of data in accordance with an embodiment includes an acquisition component configured to acquire a set of data and a synchronizing time pulse synchronized with the acquired set of data, a register configured to store the location of the first synchronization event, and a processing engine. The acquisition device can be, for example, a field-programmable gate array (FPGA) and is configured to identify a location of a first synchronization event within the synchronizing time pulse and the location is received in the register from the acquisition device. The processing engine is configured to perform the method described above.





BRIEF DESCRIPTION OF THE DRAWINGS

Further details of the present invention are explained with the help of the attached drawings in which:



FIG. 1 illustrates an intermediate frequency (IF) signal from an example pulsed s-parameter measurement.



FIG. 2 is an expanded view of the circled portion of FIG. 1.



FIG. 3 illustrates an example of a processed pulse measurement.



FIG. 4 illustrates a data record including marked timing information.



FIG. 5 illustrates a data flow of a method for data marking in accordance with an embodiment.



FIG. 6 is a flowchart of a portion of the method of FIG. 5.



FIG. 7 illustrates a data flow of a method for data marking in accordance with a further embodiment.



FIG. 8 is a flowchart of a portion of the method of FIG. 7.





DETAILED DESCRIPTION

The following description is of the best modes presently contemplated for practicing various embodiments of the present invention. The description is not to be taken in a limiting sense but is made merely for the purpose of describing the general principles of the invention. The scope of the invention should be ascertained with reference to the claims. In the description of the invention that follows, like numerals or reference designators will be used to refer to like parts or elements throughout. In addition, the first digit of a reference number identifies the figure in which the part or element is first discussed.



FIG. 1 shows an example of an intermediate (IF) signal from a pulsed S-parameter measurement (e.g., using pulse repetition interval (PRI) transmission and processing). FIG. 2 is an expanded view corresponding to the circled portion of FIG. 1. The periods, duty cycles, and frequencies involved can vary widely with different applications and pulses may not be entirely periodic (due to, for example, unsynchronized clocks or asynchronous triggering being part of the device being measured). The time scale can be anywhere from picoseconds to many seconds depending on the application.


In this type of semi-transient or transient measurement, it can be desirable to process small time intervals separately so that the evolution of some aspect of the signal over the time epoch being measured can be viewed. For example, short-time Fourier transforms (also referred to as limited discrete Fourier transforms) can be applied over small intervals of data to construct an envelope response. An example of a plot of the envelope response is shown in FIG. 3, which is an example of a processed pulse measurement. The magnitude and phase of an S-parameter can be plotted over time, covering one of the pulses similar to that shown in FIG. 1 or, more commonly, averaged over multiple pulses. Characteristics such as rise-time, overshoot, and droop of the envelope may be of interest.


While other types of processing are possible, typically the time scale of the collected data is referenced to another feature. For example, the time scale may be referenced to a synchronizing time pulse (illustrated in FIG. 4 as TO). In fast data acquisition systems, timing information can be marked in the data record schematically as shown in FIG. 4. As shown, the data string for unratioed parameter B2 is analyzed and some data (denoted by x's) of interest appears at some time after the synchronizing time pulse (denoted by a ‘1’ in the TO record).


Complications can result when analyzing data records that are very long. For example, searching for every mark in the TO record can be time consuming and a specific delay may need to be processed after many pulses are identified. Further, if the data is being transferred continuously, there may be large spans of data that are of no interest. Pre-processing or transmitting this data can be needlessly time consuming and if many GBs of data are involved, this can be problematic. Still further, if a search process is not controlled carefully, the first (or first few) events can be missed in complex triggering situations (e.g., if device behavior on initial power-up or start-up needs to be studied, there may be triggering needed to start bias and stimulus very close in time to the initial measurement). Important transient information in these situations can then be lost. The first two of these complications can become more relevant as the fraction of data that is of interest declines (for example in a pulse measurement, when the duty cycle becomes small).


Systems and methods in accordance with embodiments can be applied to improve the marking and/or processing of regions of interest in long, continuously-acquired data records to keep track of transients of interest while maintaining throughput and reducing memory use by only analyzing regions of importance and not transferring uninteresting data. In embodiments, systems and methods can use register marking of a primary synchronization (synch) event and can use known pseudo-periodicity to project future likely locations of those synch events (at which location a localized search can be done). Further, in embodiments, systems and methods can use a gated transfer process to only move data further down a processing chain when proximal to a synch event or projected synch event.


Register Marking and Predictive Search


The core of data acquisition can identify when an initial trigger occurs. In an embodiment, a system can comprise a field-programmable gate array (FPGA) gating an analog-to-digital converter (ADC) for acquiring data, although in other embodiments, the system can comprise some other implementation or device for acquiring data. In an embodiment, the system can be set up to flag a first synch event after the initial trigger, thereby placing the location of this event in memory in a register for later processing stages to look at. Once all of the data (or a predetermined portion of all of the data) is acquired and processing of the data begins, the register can be used to analyze the first event. The processing stage can then begin a search at later periods for the next synch event based on an approximation of the period of events. In an embodiment, the search can be started, for example, at 0.01% of the period, a value which can be adjusted. If a synch event is not found in a given location, the search can be widened up to some predetermined limit before skipping to the next event. Once the synch event is found for a given period, the delay offset then tells the processing stage where to collect and analyze the data. Since searching through the whole synchronization record is not employed, time is saved. Since the first synch event is captured in the register, no transient information is missed.


A method for marking relevant data for processing in accordance with an embodiment is shown in the sequence of events of FIG. 5 and the flowchart of FIG. 6. As shown, an analog signal is received at an ADC where it is converted to a digital signal and passed to the FPGA (or other device) for data acquisition. The FPGA detects the first synch event after an initial trigger (identified by a “1” in the synchronizing time pulse, TO) and places the location (e.g., ABCD) of the event in the register.


Once all of the data (or a predetermined portion of all of the data) is acquired, the method comprises processing the data via a processing engine. The processing engine receives the location of the first synch event from the register (Step 600) and identifies the first synch event in the synchronizing time pulse string, TO (as shown, the first synch event is “A”)(Step 602). The location received from the register may require additional searching to identify the first synch event within the synchronizing time pulse string. For example, a search can be performed within a certain range, such as the broken circle shown including the A event in FIG. 5. Using the location of the first synch event of the synchronizing time pulse string, the processing engine obtains and processes data from the acquired data string (as shown, from the data string of unratioed parameter B2) in a desired offset range from the first synch event (Step 604). The offset range should be selected to capture data of interest (e.g., xxxxxx in the data string).


Once the first set of data is obtained, an offset ‘delta’ is then applied to the location A of the first synch event to predict the location A+delta of the next synch event based on period estimates, for example (Step 606). The location predicted based on the offset ‘delta’ can be used as a rough estimate, with a search being performed for the next synch event within a range based on a target period fraction (Step 608). For example, the target period fraction is shown as the broken circle including the “A+delta” predicted event location in FIG. 5, wherein the next synch event is identified by a second “1” in the time synchronizing pulse, TO.


If the next synch event is not identified, the period fraction limit can be iteratively widened until either the next synch event is found or until a period fraction limit is reached. If the synch event is not found, processing can be restarted with new period estimates, for example. If the next synch event is found (Step 610), using the location of the synch event of the synchronizing time pulse string, the method further comprises obtaining and processing data from the acquired data string in a desired offset range from the next synch event (Step 612).


Once the second set of data is obtained, the method can iteratively repeat the steps of introducing the offset ‘delta’ to the location of the previous synch event to predict the location of the next synch event based on the period estimates, determining the location of the next synch event, and using the location of the synch event of the synchronizing time pulse string to obtain and process data from the acquired data string. The iterative repetition of steps can continue until data is obtained and processed for a desired number of periods (Step 614).


In other embodiments, the steps can be performed in different order. For example, in an embodiment the processing of the data obtained from the acquired data string can be performed after all of the data is obtained for the desired number of periods. Still further, in other embodiments the data string can be processed in parallel. For example, in an embodiment, once a threshold accuracy of predicting the location of subsequent events is achieved, the acquired data can be processed in parallel so that two or more threads search multiples of a refined “delta” difference to locate events in parallel.


Gated Transfer Process


Register marking and predictive search can reduce search time by roughly the ratio of the period to the sampling rate and avoids losing initial data. In embodiments, gated transfer can provide further improvement. For example, time is lost moving to a processing engine data that will not be used, as moving data can involve transferring data from one memory location to another with some index processing and other overhead. Systems and methods in accordance with embodiments can ignore sections of data during transfer and initial processing steps where a course estimate is available of the data of interest (e.g., a predicted pulse width).



FIG. 7 illustrates a method for marking relevant data for processing in accordance with an embodiment. Two additional register values (as shown labeled K and L) are passed to the processing engine to indicate where holes in the data are likely to be so that time indexing can be corrected. K indicates a data time start following a synch event and L indicates a data time stop following a synch event. As shown, the blocked out portions in the data string B2 are not transferred and are not pre-processed. Timing errors of one or more sampling periods are possible without the additional register values. The time savings with gated transfer varies roughly as 1/(duty cycle).


In addition to the steps described with respect to the method illustrated in FIGS. 5 and 6, a method in accordance with a further embodiment can account for data that are not transferred and are not pre-processed. The method therefore further comprises reducing the search delta for synch events past the first synch event by K+L samples, reducing the offset for obtaining data by K samples, and further constraining a maximum search range to be no more than the estimated period less K+L samples.


A method for marking relevant data and gating transfer of data for processing in accordance with an embodiment is shown in the sequence of events of FIG. 7 and the flowchart of FIG. 8. As shown, an analog signal is received at an ADC where it is converted to a digital signal and passed to the FPGA (or other device) for data acquisition. The FPGA detects the first synch event after an initial trigger (identified by a “1” in the synchronizing time pulse, TO) and places the location (e.g., ABCD) of the event in the register.


Once all of the data (or a predetermined portion of all of the data) is acquired, the method comprises processing the data via a processing engine. The processing engine receives the location of the first synch event from the register and additionally receives the data start time and the data stop time values from the register (Step 800). The processing engine then identifies the first synch event in the synchronizing time pulse string, TO (as shown, the first synch event is “A”)(Step 802). The location received from the register may require additional searching to identify the first synch event within the synchronizing time pulse string. For example, a search can be performed within a certain range, such as the broken circle shown including the A event in FIG. 7. Using the location of the first synch event of the synchronizing time pulse string, the processing engine obtains and processes data from the acquired data string (as shown, from the data string of unratioed parameter B2) based on the first synch event in a desired offset range reduced by the data time start value (Step 804).


Once the first set of data is obtained, a modified offset ‘delta’ is then applied to the location A of the first synch event to predict the location A+delta of the next synch event (Step 806). The offset ‘delta’ is modified by reducing a default delta (based on the period estimate, for example as used in the method of FIG. 6) by a number of samples corresponding to a combination of the data start time and the data stop time values obtained from the register. The location predicted based on the modified offset ‘delta’ can be used as a rough estimate, with a search being performed for the next synch event within a range based on a target period fraction (Step 808). For example, the target period fraction is shown as the broken circle including the “A+delta” predicted event location in FIG. 7, wherein the next synch event is identified by a second “1” in the time synchronizing pulse, TO.


If the next synch event is not identified, the period fraction limit can be iteratively widened until either the next synch event is found or until a period fraction limit is reached. The period fraction limit (i.e., the maximum search range) can be further constrained to be no more than the estimated period less the combination of the data start time and data stop time values. If the next synch event is not found, processing can be restarted with new period estimates, for example. If the next synch event is found (Step 810), the method further comprises obtaining and processing data from the acquired data string from the next synch event in a desired offset range reduced by the data time start value (Step 812).


Once the second set of data is obtained, the method can iteratively repeat the steps of introducing the modified offset ‘delta’ to the location of the previous synch event to predict the location of the next synch event based on the period estimates, determining the location of the next synch event, and using the location of the synch event of the synchronizing time pulse string to obtain and process data from the acquired data string. The iterative repetition of steps can continue until data is obtained and processed for a desired number of periods (Step 814).


The present invention may be conveniently implemented using one or more conventional general purpose or specialized digital computer, computing device, machine, or microprocessor, including one or more processors, memory and/or computer readable storage media programmed according to the teachings of the present disclosure. Appropriate software coding can readily be prepared by skilled programmers based on the teachings of the present disclosure, as will be apparent to those skilled in the software art.


In some embodiments, the present invention includes a computer program product which is a storage medium or computer readable medium (media) having instructions stored thereon/in which can be used to program a computer to perform any of the processes of the present invention. The storage medium can include, but is not limited to, any type of disk including floppy disks, optical discs, DVD, CD-ROMs, microdrive, and magneto-optical disks, ROMs, RAMs, EPROMs, EEPROMs, DRAMs, VRAMs, flash memory devices, magnetic or optical cards, nanosystems (including molecular memory ICs), or any type of media or device suitable for storing instructions and/or data.


The previous description of the preferred embodiments is provided to enable any person skilled in the art to make or use the embodiments of the present invention. While the invention has been particularly shown and described with reference to preferred embodiments thereof, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention.

Claims
  • 1. A method for obtaining data of interest for a device under test (DUT) acquired by a measuring instrument transmitting pulsed radio frequency (RF) test signals to the DUT, the method comprising: receiving an analog signal from the device under test and using an analog to digital converter (ADC) to generate a set of measurement data from the analog signal;receiving, from a register, a location estimated to correspond with a first synchronization event within a synchronizing time pulse separate from and synchronized with the acquired set of measurement data,wherein a synchronization event is associated with timing of a pulsed RF test signal,wherein the location is inserted into the register in response to an initial trigger;searching the synchronizing time pulse within a predetermined window for the first synchronization event based on the location;identifying the first synchronization event based on the search;obtaining particular measurement data from the acquired set of measurement data within an offset range determined based on the identified first synchronization event;wherein a location of the identified first synchronization event within the synchronizing time pulse is designated as a current location; anditeratively performing the following for a predetermined number of periods, wherein a period is an estimate of a length of time from an initiation of a pulsed RF test signal to an initiation of a next pulsed RF test signal: applying an offset delta value to the current location to predict a location of a next synchronization event within the synchronizing time pulse;wherein the offset delta value is based on the period;searching the synchronizing time pulse within a window based on a target period fraction for the next synchronization event based on the current location;iteratively widening the window, upon failing to identify the next synchronization event, and repeating the search within the widened window until identifying the next synchronization event or reaching a predefined maximum width for the window;obtaining particular measurement data from the acquired set of measurement data within the offset range determined based on the identified next synchronization event; andupdating the current location based on a location of the identified next synchronization event within the synchronizing time pulse.
  • 2. The method of claim 1, further comprising processing the obtained particular measurement data.
  • 3. The method of claim 2, further comprising transferring the obtained particular measurement data from one memory location to another prior to processing the obtained particular measurement data.
  • 4. The method of claim 1, further comprising receiving a data start time and a data stop time from the register; wherein the offset delta is modified to be reduced by a number of samples based on a combination of the data start time and the data stop time;wherein the offset range is modified to be reduced by a number of samples based on the data start time.
  • 5. A system for obtaining data of interest for a device under test (DUT) acquired by a measuring instrument transmitting pulsed radio frequency (RF) test signals to the DUT, the system comprising: an analog to digital converter (ADC) which receives an analog signal from the device under test and generates a set of measurement data;an acquisition component configured to acquire the set of measurement data from the ADC and a synchronizing time pulse separate from and synchronized with the acquired set of data,wherein the synchronizing time pulse includes synchronization events associated with timing of the pulsed RF test signals;wherein the acquisition component is further configured to identify a location estimated to correspond with a first synchronization event within the synchronizing time pulse in response to an initial trigger;a register configured to store the location, the location being received from the acquisition device, wherein the location is inserted into the register in response to the initial trigger; anda processing engine configured to perform the steps of receiving the location estimated to correspond with the first synchronization event from the register;searching the synchronizing time pulse within a predetermined window for the first synchronization event based on the location;identifying the first synchronization event based on the search;obtaining particular measurement data from the acquired set of measurement data within an offset range determined based on the identified first synchronization event;wherein a location of the identified first synchronization event within the synchronizing time pulse is designated as a current location;iteratively performing the following for a predetermined number of periods, wherein a period is an estimate of a length of time from an initiation of a pulsed RF test signal to an initiation of a next pulsed RF test signal: applying an offset delta value to the current location to predict a location of a next synchronization event within the synchronizing time pulse;wherein the offset delta value is based on the period;searching the synchronizing time pulse within a window based on a target period fraction for the next synchronization event based on the current location;iteratively widening the window, upon failing to identify the next synchronization event, and repeating the search within the widened window until identifying the next synchronization event or reaching a predefined maximum width for the window;obtaining particular measurement data from the acquired set of measurement data within the offset range determined based on the identified next synchronization event; andupdating the current location based on a location of the identified next synchronization event within the synchronizing time pulse.
  • 6. The system of claim 5, wherein the acquisition component is a field-programmable gate array (FPGA).
  • 7. The system of claim 5, wherein the processing engine is configured to perform the further step of processing the obtained particular measurement data.
  • 8. The system of claim 7, wherein the processing engine is configured to perform the further step of transferring the obtained particular measurement data from one memory location to another prior to processing the obtained particular measurement data.
  • 9. The system of claim 5, wherein the register configured to store a data start time and a data stop time; and wherein the process engine is configured to reduce the offset delta by a number of samples based on a combination of the data start time and the data stop time, andreduce the offset range by a number of samples based on the data start time.
  • 10. A non-transitory machine readable storage medium having instructions thereon that when executed cause a system to: receive an analog signal from the device under test and using an analog to digital converter (ADC) to generate a set of measurement data from the analog signal;receive, from a register, a location estimated to correspond with a first synchronization event within a synchronizing time pulse separate from and synchronized with the set of measurement data for a device under test (DUT) acquired by a measuring instrument transmitting pulsed radio frequency (RF) test signals to the DUT,wherein a synchronization event is associated with timing of a pulsed RF test signal,wherein the location is inserted into the register after an initial trigger;search the synchronizing time pulse within a predetermined window for the first synchronization event based on the location;identify the first synchronization event based on the search;obtain particular measurement data from the acquired set of measurement data within an offset range determined based on the identified first synchronization event;wherein a location of the identified first synchronization event within the synchronizing time pulse is designated as a current location; anditeratively perform the following for a predetermined number of periods, wherein a period is an estimate of a length of time from an initiation of a pulsed RF test signal to an initiation of a next pulsed RF test signal: apply an offset delta value to the current location to predict a location of a next synchronization event within the synchronizing time pulse;wherein the offset delta value is based on the period;search the synchronizing time pulse within a window based on a target period fraction for the next synchronization event based on the current location;iteratively widen the window, upon failing to identify the next synchronization event, and repeating the search within the widened window until identifying the next synchronization event or reaching a predefined maximum width for the window;obtain particular measurement data from the acquired set of measurement data within an offset range determined based on the identified next synchronization event; andupdate the current location based on a location of the identified next synchronization event within the synchronizing time pulse.
  • 11. The non-transitory machine readable storage medium of claim 10, further comprising instructions thereon that when executed cause a system to: process the obtained particular measurement data.
  • 12. The non-transitory machine readable storage medium of claim 11, further comprising instructions thereon that when executed cause a system to: transfer the obtained particular measurement data from one memory location to another prior to processing the obtained particular measurement data.
  • 13. The non-transitory machine readable storage medium of claim 10, further comprising instructions thereon that when executed cause a system to: receive a data start time and a data stop time from the register;wherein the offset delta is modified to be reduced by a number of samples based on a combination of the data start time and the data stop time;wherein the offset range is modified to be reduced by a number of samples based on the data start time.
US Referenced Citations (120)
Number Name Date Kind
5801525 Oldfield Sep 1998 A
5812039 Oldfield Sep 1998 A
5909192 Finch Jun 1999 A
5977779 Bradley Nov 1999 A
6049212 Oldfield Apr 2000 A
6291984 Wong Sep 2001 B1
6316945 Kapetanic Nov 2001 B1
6331769 Wong Dec 2001 B1
6496353 Chio Dec 2002 B1
6504449 Constantine Jan 2003 B2
6509821 Oldfield Jan 2003 B2
6525631 Oldfield Feb 2003 B1
6529844 Kapetanic Mar 2003 B1
6548999 Wong Apr 2003 B2
6650123 Martens Nov 2003 B2
6665628 Martens Dec 2003 B2
6670796 Mori Dec 2003 B2
6680679 Stickle Jan 2004 B2
6700366 Truesdale Mar 2004 B2
6700531 Abou-Jaoude Mar 2004 B2
6711225 Sutardja Mar 2004 B1
6714898 Kapetanic Mar 2004 B1
6766262 Martens Jul 2004 B2
6826245 Brown Nov 2004 B1
6832170 Martens Dec 2004 B2
6839030 Noujeim Jan 2005 B2
6882160 Martens Apr 2005 B2
6888342 Bradley May 2005 B2
6894581 Noujeim May 2005 B2
6917892 Bradley Jul 2005 B2
6928373 Martens Aug 2005 B2
6943563 Martens Sep 2005 B2
7002517 Noujeim Feb 2006 B2
7011529 Oldfield Mar 2006 B2
7016024 Bridge Mar 2006 B2
7019510 Bradley Mar 2006 B1
7054776 Bradley May 2006 B2
7068046 Martens Jun 2006 B2
7088111 Noujeim Aug 2006 B2
7108527 Oldfield Sep 2006 B2
7126347 Bradley Oct 2006 B1
7284141 Stickle Oct 2007 B2
7304469 Bradley Dec 2007 B1
7307493 Feldman Dec 2007 B2
7509107 Bradley Mar 2009 B2
7511496 Schiano Mar 2009 B2
7511577 Bradley Mar 2009 B2
7521939 Bradley Apr 2009 B2
7545151 Martens Jun 2009 B2
7683602 Bradley Mar 2010 B2
7683633 Noujeim Mar 2010 B2
7705582 Noujeim Apr 2010 B2
7746052 Noujeim Jun 2010 B2
7764141 Noujeim Jul 2010 B2
7792230 Gallagher Sep 2010 B1
7795230 Michelet Sep 2010 B2
7872467 Bradley Jan 2011 B2
7924024 Martens Apr 2011 B2
7957462 Aboujaoude Jun 2011 B2
7983668 Tiernan Jul 2011 B2
8027390 Noujeim Sep 2011 B2
8058880 Bradley Nov 2011 B2
8145166 Barber Mar 2012 B2
8156167 Bradley Apr 2012 B2
8159208 Brown Apr 2012 B2
8169993 Huang May 2012 B2
8185078 Martens May 2012 B2
8278944 Noujeim Oct 2012 B1
8294469 Bradley Oct 2012 B2
8305115 Bradley Nov 2012 B2
8306134 Martens Nov 2012 B2
8410786 Bradley Apr 2013 B1
8417189 Noujeim Apr 2013 B2
8457187 Aboujaoude Jun 2013 B1
8493111 Bradley Jul 2013 B1
8498582 Bradley Jul 2013 B1
8593158 Bradley Nov 2013 B1
8629671 Bradley Jan 2014 B1
8630591 Martens Jan 2014 B1
8666322 Bradley Mar 2014 B1
8718586 Martens May 2014 B2
8760148 Bradley Jun 2014 B1
8816672 Bradley Aug 2014 B1
8816673 Barber Aug 2014 B1
8884664 Bradley Nov 2014 B1
8903149 Noujeim Dec 2014 B1
8903324 Bradley Dec 2014 B1
8942109 Dorenbosch Jan 2015 B2
9103856 Brown Aug 2015 B2
9103873 Martens Aug 2015 B1
9176174 Bradley Nov 2015 B1
9176180 Bradley Nov 2015 B1
9210598 Bradley Dec 2015 B1
9239371 Bradley Jan 2016 B1
9287604 Noujeim Mar 2016 B1
9331633 Robertson May 2016 B1
9366707 Bradley Jun 2016 B1
9455792 Truesdale Sep 2016 B1
9560537 Lundquist Jan 2017 B1
9571142 Huang Feb 2017 B2
9588212 Bradley Mar 2017 B1
9594370 Bradley Mar 2017 B1
9606212 Martens Mar 2017 B1
9696403 Elder-Groebe Jul 2017 B1
9733289 Bradley Aug 2017 B1
9753071 Martens Sep 2017 B1
9768892 Bradley Sep 2017 B1
9860054 Bradley Jan 2018 B1
9964585 Bradley May 2018 B1
9967085 Bradley May 2018 B1
9977068 Bradley May 2018 B1
10003453 Bradley Jun 2018 B1
10006952 Bradley Jun 2018 B1
10064317 Bradley Aug 2018 B1
10116432 Bradley Oct 2018 B1
20040076246 Vanderperren Apr 2004 A1
20060250135 Buchwald Nov 2006 A1
20110037667 Varjonen Feb 2011 A1
20110050995 Ozawa Mar 2011 A1
20160050032 Emerson Feb 2016 A1
Provisional Applications (1)
Number Date Country
61894185 Oct 2013 US