noise suppression is achieved by averaging a sequence of repetitive waveforms with correction of frequency distortions, establishing a real time processing of signals. First, the waveforms are processed seriatim, and saved in partitioned memory. Then, the memory contents are merged to form an output digital signal. Initially, an input repetitive signal is sampled with a sampling period t, and divided into K sections along the sampling period so that a kth section, where 0≤k<K, coincides with segment [k·T/K, (k−1)·T/K]. time displacement detection determines relative positions of trigger pulses and edges of the sampling clock, and the number k of a sampling period section where the trigger pulse appears, keeping k unchanged thereafter. A resultant stream of N·K samples is transmitted through a lowpass filter, followed by decimation by K, to complete the averaging.
|
1. A method for suppressing noise in an analog signal characterized by a sequence of repetitive waveforms, comprising the steps of:
in a first step:
A. waveform processing the waveforms one after another, wherein the waveform processing step includes the sub-steps of:
a. analyzing a mutual disposition of a trigger pulse marking a start of each waveform in the sequence and a sampling clock period t to determine a number k, where 0≤k<K, indicating a section [k·T/K, (k−1)·T/K] of the sampling period where a trigger pulse marking the start of the waveform, has appeared, wherein the number K and the sampling clock period t are parameters of the method;
b. converting the analog signal into a stream of digital samples at an adc sampling frequency characterized by a period t, whereby the stream is representative of the analog signal,
c. numbering the samples in the stream in the order of their appearance by a number n, where 0≤n<N, and where N is a projected number of samples in the digital representation of the analog signal,
d. storing the results of the waveform processing in a memory consisting of K·N cells, wherein cells of the memory are reset the to zero at the start of processing of a waveform, while each appearing sample is added to contents of a memory cell with an address produced by concatenation of the numbers k and n, and
in a second step:
B. outputting the stored results of the waveform processing, to form an output signal, wherein the outputting step includes the sub-steps of:
a. generating memory cell addresses (k, n) one after another, with a memory output samples frequency equal to a product of the adc sampling frequency and the number K;
b. beginning the memory cell address generation from an address (0, 0) and by iteration forming a next address according to rules:
i. increasing k by one, if k<K−1, while equating k to zero otherwise;
ii. keeping n unchanged, if k<K−1, and increasing n by one otherwise;
c. reading the contents of a memory cell with a next address (k, n) and putting the read value in the first auxiliary digital signal in a position K·n+k;
d. converting the first auxiliary digital signal into a second auxiliary digital signal by transmitting it through an anti-aliasing lowpass filter with a cutoff frequency which is less than a half of the adc sampling frequency,
e. converting the second auxiliary digital signal into an output signal by way of decimation by a factor K.
2. An apparatus for suppressing noise in an analog signal characterized by a sequence of repetitive waveforms, comprising:
A. a trigger pulse counter having a trigger counter input and a trigger count output, wherein the trigger pulse counter is responsive to system trigger pulses applied to the trigger counter input to provide a trigger count signal at the trigger count output representative of the number of system trigger pulses applied to the trigger counter input up to and including M system trigger pulses, where M is an integer, applied since a reset to zero of the trigger pulse counter, and being non-responsive to system trigger pulses applied to the trigger counter input after the Mth system trigger pulse,
B. a time displacement detector having
i. a time displacement trigger input adapted to receive the system trigger pulses applied to the trigger count input,
ii. a time displacement clock input adapted to receive a system clock signal including a succession of system clock pulses characterized by a sampling period t, and
iii. a time displacement output,
wherein the time displacement detector after receiving an applied trigger pulse, is responsive to the trigger pulse and the system clock signal, to produce at the time displacement output, a number k representative of a [t/K·k, t/K·(k+1)]th section of a sampling period t in which the trigger pulse occurred, and maintains the number k unchanged up to the occurrence of a next trigger pulse,
C. an analog to digital converter (adc) characterized by an adc cutoff frequency and having
i. an adc input adapted to receive an applied analog signal,
ii. an adc clock input adapted to receive the succession of system clock pulses as an adc sampling signal, and
iii. an adc output,
wherein the adc is responsive to an analog signal applied to the adc input, and the adc sampling signal, to convert the applied analog signal to an adc output digital signal representative of the applied analog signal and apply the adc output digital signal to the adc output, where the adc output digital signal is a stream of samples of the applied analog signal,
D. an adder having a first adder input adapted to receive the adc output digital signal, a second adder input and an adder output, wherein the adder is responsive digital signals at its first adder input and second adder input, to provide at its adder output a sum signal representative of a sum of values associated with the digital signals at its first adder input and second adder input,
E. an address counter including:
i. an address counter clock input adapted to receive the succession of system clock pulses, wherein the address counter is adapted to increment upon receipt of each clock pulse in the succession;
ii. a reset input adapted to receive the system trigger pulses, wherein the address counter is adapted to reset the address counter to zero upon receipt of each system trigger pulse, and
iii. an address counter output providing a number n signal representative of the number of clock pulses n which have occurred since the last reset to zero of the address counter;
F. a concatenation unit including:
i. a k input connected to the output of the time displacement detector, wherein the k input is adapted to receive the trigger count signal k;
ii. a n input, wherein the n input is adapted to receive the number n signal;
iii. a concatenation output, wherein the concatenation unit is operative in response to the successively generated trigger count signal k and the number n signal, to apply corresponding succession of accumulator address signals representative of successive concatenated values (k,n) at the a concatenation output;
G. an accumulator system including
i. a plurality of accumulator memory cells characterized by distinct cell addresses,
ii. a cell address input connected to the concatenation output;
iii. a read/write control input,
iv. an accumulator signal input coupled to the adder output, and
v. an accumulator output, wherein the accumulator output is coupled by way of a register clocked by the system clock signal, to the second adder input, whereby a succession of values from the accumulator output are applied to the second adder input, and
for the succession of clock pulses, the accumulator is responsive to the successive concatenated values (k,n) applied from the concatenation output to the cell address input, to access content of memory cells addressed by cell addresses corresponding to the successive concatenated values (k,n) and under control of a control signal at the read/write control input:
(a) write into the addressed memory cells, values represented by the sum signals applied from the adder output by way of the accumulator signal input into the same memory cells, when the number k at the output of the trigger pulse counter is less than M, and then read the content of the addressed memory cells to the accumulator output, and
(b) only read the content of the addressed memory cells to the accumulator output when the number k at the output of the trigger pulse counter is M,
H. a modulus K bins counter having a bins counter input adapted to receive the succession of system clock pulses when the bins counter output is connected to its associated input of the concatenation unit when the number at the output of the trigger pulse counter equals M,
I. an anti-aliasing lowpass filter and a decimator by K are coupled in cascade from the accumulator output, wherein an output of the decimator by K provides a system output.
3. An apparatus according to
4. An apparatus according to
|
This application claims priority to and the benefit of U.S. Provisional Patent Application No. 62/934,680, filed on Nov. 13, 2019 and titled “REAL-TIME DIGITAL WAVEFORM AVERAGING WITH SUB-SAMPLING RESOLUTION”, the contents of which are incorporated herein by reference as though fully set forth herein.
The present disclosure relates to high speed analog-to-digital converters (ADC) and, more particularly, to improvement of converter accuracy by digital waveforms averaging.
Digital averaging is used as a method of repetitive waveforms detection and/or measurement in low signal-to-noise (SNR) environments typical for high speed digitizers and digital oscilloscopes. Digital averaging is also used in wide bandwidth radio frequency communications, radar, signal processing, scientific research and other applications.
Digital waveform averaging improves signal to noise ratio proportionally to square root of a number of averages. Depending on a required SNR gain, a large number of averaging cycles may be required (e.g., 106 averages can result in 60 dB SNR improvement). A block diagram of a conventional device 10 for repetitive waveforms averaging is shown in
In the block diagram of
In addition to ADC 12 and address counter 14, device 10 comprises an accumulator 16 (typically in the form of a memory unit having a signal input 16A, a control read/write input 16B and an address input 16C) and a register 18. The read/write (R/W) input 16B receives the sampling clock signal, so that in the first half of a sampling interval, the accumulator 16 is in a “read” mode, while in the second half of that sampling interval, the accumulator 16 is in a “write” mode. The number at the address input 16C of the accumulator 16 equals the number produced by the address counter 14 and shows the serial number of the current sample. An output 16D of the accumulator 16 is connected to a signal input 18A of the register 18 while the clock input 10C receives the sampling clock. A falling edge of the sampling clock writes by way of an input 18A, into the register 18, an amount/value which has been read from the accumulator (memory) 16 in the previous half of sampling period (it is the amount/value which has been saved in a memory cell of accumulator (memory) 16 with the number equal to the number of the then-current sample). That amount/value appears at an output 18B of register 18 and is applied to a first input 20A of an adder 20 and, by adder 20, is added to a then-current sample value applied from an output of ADC 12 to a second input 20B of adder 20. Since, in the second half of the sampling interval, the accumulator 16 is in a writing mode, the sum is written into the memory cell of accumulator (memory) 16 with a number equal to the number of the current sample. In this way, the samples representing the current wave form of the applied sequence are added to the contents of the accumulator 16.
After the number of the waveforms saved in the accumulator reaches a specified value, the accumulated sum is read from the memory of accumulator 16, producing at the accumulator output 16D, the result of waveforms averaging. In this manner, the problem of repetitive waveforms averaging becomes solved, however the procedure which has been described, has a serious disadvantage.
In particular, the stream of waveforms at the signal input 10A and the sampling clock 10C, are unbound; those signals are asynchronous. However, the start of a waveform may appear at any arbitrary point inside a sampling interval. The distance between the instant of the waveform start (i.e., the instant of trigger pulse appearance) and the next sample is a random variable which lies in a range from zero to T, where T is the sampling period. As a consequence, the assembly of samples representing a waveform, is shifted in time in relation to the waveform start by this random value.
The mutual disposal of the ADC samples and the trigger pulse, with indication of the sampling interval and delay of the samples assembly from waveform start, are shown in
A Fourier transform of an average signal equals the average of Fourier transforms of the individual waveforms. A reasonably close approximation of the statistics of the time displacements εi is obtained by a uniform distribution within the interval [0,T], where T is the sampling period. The Fourier transform of a uniform distribution (characteristic function) has a frequency response given by:
This frequency response is shown in
Equation (1) and
A method and apparatus for improving the accuracy of measurement instruments by minimizing effects, such as higher frequency components attenuation in the process of increasing signal to noise ratio through averaging repetitive waveforms, were proposed in U.S. patent Ser. No. 10/345,339. According to that patent, the phase of the averaged signal <f (t)> is computed by performing a Fast Fourier Transform (FFT). In a similar way, phases of the individual waveforms are calculated and then phase differences between each individual waveform, and the phase of the averaged signal, are determined. The phase differences are used to find time shifts εi for each waveform. To compensate the encountered time shifts, the result of the FFT which was performed on each individual waveform, is multiplied by exp(j·2π·f·εi). The compensated FFT results are averaged and converted to the time domain, in order to obtain averaged time domain result.
The method and apparatus of the U.S. patent Ser. No. 10/345,339 (the “'339 patent”) provide for an accurate correction of frequency distortions which appear during averaging of a sequence of repetitive waveforms. However, the necessity to perform a pair of direct and inverse FFTs of each waveform (which may be done only at the sampling frequency of the ADC) requires a great quantity of computing recourses, which, in turn, prevents real time realization of the proposed approach. Another serious disadvantage of the proposed method and apparatus of the '339 patent, consists of the use of the concept of signal phase. This concept is applicable to signals with high signal to noise ratio only. It is impossible to speak about phase of an arbitrary signal. This fact significantly narrows the possible areas of application of the proposed problem solution of the '339 patent.
The goal of the present disclosure is to provide a method and apparatus of noise suppression by averaging a sequence of repetitive waveforms with correction of frequency distortions, thereby establishing a real time realization and processing of all kinds of signals.
According to the current disclosure, during the averaging of a sequence of repetitive waveforms, the processing of the next waveform begins with the operation of time displacement detection. For this purpose, a sampling period T is divided into K sections of equal length. The sections are arranged uniformly along the sampling period, so that a section with the number k, where 0≤k<K, coincides with the segment [k·T/K, (k−1)·T/K]. The time displacement detection is performed through an analysis of relative positions of the trigger pulse and the edges of the sampling clock. The time displacement detection determines the number k of a sampling period section where the trigger pulse appear and keeps it unchanged up to the end of the waveform processing.
The intermediate averaging results are saved in a memory. At the start of a measurement, all memory cells are reset to zero. The coming analog values of the waveform are converted into digital samples. The samples are numbered in sequence, beginning with the zero sample, which has appeared immediately or on a specified ADC samples number after the trigger pulse, and finishing with the sample number N−1, where N is the number of samples in a waveform, where the number N is known beforehand as a parameter of the arrangement.
The memory is divided into K bins. If a waveform is being processed for which the time displacement detection produced the number k, then the samples produced by the waveform analog to digital conversion, are used to renew the contents of the memory cells belonging to the k-th bin. If the analog to digital conversion produced a sample with the serial number n, then the address of the memory cell to be refreshed, is obtained by concatenation of the numbers k and n: address=(k, n). The renewal of memory cell contents consists of the reading the contents of the cell, followed by an addition of the new sample with the number n to the contents which just have been read, and then writing the sum back to the same call.
When the preliminary specified number of waveforms have been processed, the step of data acquisition is finished. At this point of time, the memory contains K sets of samples, with each set consisting of N samples. The set with the number k is the result of averaging of all waveforms with the time displacement k.
The next step of processing the input sequence of waveforms, consists of forming an output data stream. At this step, the memory contents are read, where the address (k, n) of the memory cell to be read is formed in the following manner: reading starts from the address (0, 0), and at each cycle of the sampling clock, the number k is increased by one starting from zero and extending up to K−1 inclusively. Then the number n is increased by one, after which the number k is reset to zero and the sequence of K+1 readings is repeated. The reading stops when the address (K−1, N−1) is reached.
The process of reading just described, produces stream of N·K samples. This stream is transmitted through a low pass filter with the cutoff frequency determined by the Nyquist frequency of the processed waveforms. A decimation by K of the filter output signal is performed. The thereby-obtained signal is used as the result of the desired averaging.
A block diagram of an exemplary embodiment of a waveform averaging apparatus 50 of the disclosure, for averaging a sequence of repetitive waveforms, is shown in
In the block diagram of
In operation of the configuration of
Accumulator 54 is employed to save intermediate results of averaging the samples, which represent the input signal. Accumulator 54 constitutes a memory, which has signal input 54A connected to the output of the adder 53, a control read/write input 54C, address input 54D, and an output. When in a “write” mode, accumulator/memory 54 saves a sample coming from adder 53 in a memory cell with an address equal to a number coming to the address input 54D. In a “read” mode, accumulator/memory 54 produces at its output 54B, a value, which has been kept in the addressed memory cell.
Accumulator 54 receives the read/write signal at input 54C and the address signal at input 54D, from the accumulator control unit 58. The accumulator control unit incorporates an address counter which is reset to zero by each trigger pulse at input 58A and is advanced by the sampling clock at input 58B. In this way, the address counter operates synchronously with ADC 51 and produces at its output 58D, a serial number n of a current sample produced by ADC 51, wherein said serial number n indicates the position of the sample inside the waveform being processed. The accumulator control 58 also incorporates a concatenation unit. At the acquisition step, when the apparatus 50 is accumulating intermediate averaging results, the concatenation unit combines the number k received from the time displacement detector 57, with the sample number n, provided by the address counter of accumulator control 58. In such a manner, the concatenation unit produces an address in a form (k, n), which is placed at the address output 58D of the accumulator control 58.
Furthermore, the accumulator control 58 comprises a bins counter, which is a counter by modulus K (where K is the parameter of the time displacement detector 57). This bins counter is used at the step when an output data stream is formed (after the acquisition step is finished). At the beginning of the output forming step, the bins counter is reset to zero and thereafter is advanced by the sampling clock. During the step of output forming of the measurement, the numbers from the bins counter output are directed to the input of the concatenation unit instead of the number k from the time displacement detector 57.
The read/write output of the accumulator control 58 at the acquisition step, translates the clock signal to the R/W input 54C of accumulator 54. As a result, accumulator 54 in the first half of the sampling period, is in a “read” mode, and in the second half, is in “write” mode. During the step of output forming, accumulator control 58 continually sends a “Read” signal to the R/W input 54C of accumulator 54.
During the acquisition step, at each sampling interval, ADC 51 produces a new sample. The accumulator control 58 sends to the address input 54D of accumulator 54, an address of the form (k, n), and sets command “Read” at R/W input 54C. Accumulator 54 produces at its output, the contents of the memory cell with the address (k, n). This value goes to the signal input 52A of register 52, and is written into the register 52 by the falling edge of the sampling clock applied to register clock input 52B. During the second half of the sampling interval, the register 52 repeats at its output 52C, the value from the memory cell with the address (k, n). The adder 53 adds up the sample which has been produced by ADC 51, and the value from output 52C of register 52. The sum proceeds to the signal input 54A of accumulator and is written to its memory by a “Write” command which is set at accumulator R/W input 54C in the second half of the sampling interval by the accumulator control 58. In this way, the sample produced by ADC 51 is added to the contents of the memory cell of accumulator 54 with the address (k, n), with the sum being saved in the same memory cell.
At the end of the acquisition step, sums of different sets of waveforms are saved in different accumulator bins, whereas the sum of waveforms which starts appear in the section [T/K·k, T/K·(k+1)] of the sampling interval, are saved in the bin of the accumulator with the number k.
At the step of output forming, the contents of accumulator 54 are read, whereas during the sampling interval with the number m, the address (k, n) of the memory cell to be read, is determined with the use of equations: k=m mod K, n=m/K. The digital signal from output 54B of accumulator 54 passes through LPF 55. The cutoff frequency of LPF 55 is preferably chosen to be slightly less than Fs/K/2, where Fs is the frequency of the sampling clock. At the output of the LPF 55, each sample equals the average of K adjacent samples. Decimator 56, following LPF 55, eliminates K−1 samples from each group of K adjacent samples, producing in this way, a digital signal equal to the average of the digital signals which have been saved in different bins.
As shown in
The above-described configuration of
The method of noise suppression by averaging of a sequence of repetitive waveforms which has been described above, was implemented in a Guzik ADP7000 series digitizer using a 64 oversampling rate (four bins for the ADC with the sampling frequency at 16 GSa/s, and two bins with the sampling frequency at 32 GSa/s).
One skilled in the art will realize the subject disclosure may be embodied in other specific forms without departing from the spirit or essential characteristics thereof. The foregoing embodiments are therefore to be considered in all respects illustrative rather than limiting of the technology described herein. The scope of the subject disclosure is thus indicated by the appended claims, rather than by the foregoing description, and all changes that come within the meaning and range of equivalency of the claims are therefore intended to be embraced therein.
Patent | Priority | Assignee | Title |
Patent | Priority | Assignee | Title |
10345339, | Dec 09 2015 | Tektronix, Inc. | Group delay based averaging |
5610606, | Jul 21 1993 | Kabushiki Kaisha Toshiba | 1-bit D/A conversion circuit |
6377199, | May 28 1998 | Sanyo Electric Co., Ltd. | Signal processor system with noise suppression |
8040267, | Mar 03 2009 | Sharp Kabushiki Kaisha | Decoder device and movement controller |
20070083128, | |||
20120250748, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Apr 23 2020 | Guzik Technical Enterprises | (assignment on the face of the patent) | / | |||
May 09 2020 | SEREBRYANSKIY, VALERIY | Guzik Technical Enterprises | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 052776 | /0919 |
Date | Maintenance Fee Events |
Apr 23 2020 | BIG: Entity status set to Undiscounted (note the period is included in the code). |
May 08 2024 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Date | Maintenance Schedule |
Nov 24 2023 | 4 years fee payment window open |
May 24 2024 | 6 months grace period start (w surcharge) |
Nov 24 2024 | patent expiry (for year 4) |
Nov 24 2026 | 2 years to revive unintentionally abandoned end. (for year 4) |
Nov 24 2027 | 8 years fee payment window open |
May 24 2028 | 6 months grace period start (w surcharge) |
Nov 24 2028 | patent expiry (for year 8) |
Nov 24 2030 | 2 years to revive unintentionally abandoned end. (for year 8) |
Nov 24 2031 | 12 years fee payment window open |
May 24 2032 | 6 months grace period start (w surcharge) |
Nov 24 2032 | patent expiry (for year 12) |
Nov 24 2034 | 2 years to revive unintentionally abandoned end. (for year 12) |