Method and apparatus for generating correction signals for forming low distortion analog signals

Abstract: A method and apparatus for generating correction signals for use in forming low distortion analog signals wherein a digital representation of a desired analog waveform is encoded (5) into a digital data signal which is outputted to memory (21). A digital correction signal is encoded (20), having an opposite phase and increased amplitude from the signal distortion which it is determined will occur when the digital data signal is repetitively read out of memory and decoded. This digital correction signal is outputted to memory (21). The digital data and correction signals are repetitively and synchronously read (26) out of memory into a decoder (28). The decoder converts both digital signals into analog signals (60), so that the analog correction signal may superpose on the distortion in the analog data signal, resulting in a low distortion analog signal.

Description: The present invention relates to a method and apparatus for generating correction signals for use in forming low distortion analog signals. Recent advances in analog signal processing technology have created a need for testing and other devices capable of generating purer and purer analog signals. Digitizers (such as A/D converters) now exist that are capable of 120 dB of dynamic range without interference from noise or distortion, and in the near future it is anticipated that signal processing technology will exist for analyzing analog signals with signal to noise and distortion ratios as high as 150 dB. However, before the new signal processing technology can be effectively implemented, especially in field applications such as seismic exploration, a means must exist for calibrating and testing these new digitizers. Because there are additional constraints such as power and weight limitations affecting equipment used in the field, the solution to this need has been elusive until now. It should be recognized that there are many devices used for generating analog signals which are well known in the art. In particular, it is well known that many varieties of D/A converters exist which can be used to convert digital signals to analog signals. Further, successive approximation D/A converters, particularly when oversampled, have been used with some success to achieve signal to noise and distortion ratios of up to 100 dB for digital signals having as many as 18 bits. However, it is difficult to achieve greater than 100 dB signal to noise and distortion ratios using such technology. For example, the successive approximation converters typically use a weighting source, whether it be a current source, voltage source, or resistors. These weighting sources are difficult to control and maintain accurate over time due to temperature fluctuations and other variables, particularly when more than 16 to 18 bits of input are used in the D/A converter. Thus, the recent advances in analog signal processing technology render the past state of the art of test signal generation practically useless; a new means of generating analog signals with a signal to noise and distortion ratio exceeding that of the new A/D technology is needed. Further, there is a particular need for analog signal sources that are portable and can be used for field calibration of the new digitizers. A solution to this problem might be found in the use of a device that converts a continuously generated digital datastream into a desired analog signal. Such a datastream might be a sequence of discrete time data values, such as a digital bitstream. A device such as a DPCM (differential pulse code modulator) might then be used to convert, or used as a model for a program to computationally convert, the datastream into an analog signal. Also, there might be advantages in using a computational program modeled on one bit D/A converter circuits, found in the feedback loops of sigma delta digitizers. Such one bit D/A converters provide linear signals and, particularly with the well-known sigma delta converter, make encoder/decoder modeling easier. But, while such an approach may produce low noise signals, the approach would not be feasible for applications such as field use. The computations required to continuously generate an appropriate digital bitstream, capable of conversion to a desired low or ultra-low distortion analog signal, would include high speed reiterative solutions of a system of equations and require a continuous high level of power consumption. This level of computational power is highly undesirable in field equipment, which is designed to operate at as low power as practical. In fact, with respect to field applications it is estimated that the equipment needed for computing such a signal could require as much as double the power needed for current field testing equipment, and would increase the speed and cost of the computational equipment. In US-A-4975699, which is the closest prior art, there is described a method and apparatus for generating low distortion analog signals from a digital representation of a periodic waveform in which a segment of the digital waveform and a corresponding segment of a digital correction signal are stored in a memory, read out synchronously from the memory, converted into analog signals and combined to yield an analog output signal having reduced distortion, the correction signal before addition having been scaled appropriately, and in which the digital correction signal is obtained by measuring the distortion of the uncorrected analog output signal and digitising the measurement results. There is a continuing need for a system of generating a digital signal and using this signal to form an analog signal with low or ultra-low distortion, but without significant extra requirements or expenses for computational equipment and power supplies. According to the present invention, there is provided a signal generator for generating a correction signal from a digital data signal for forming a low distortion analog signal, said signal generator comprising a data signal source for outputting a segment of said digital data signal; a storage having an input coupled to the output of said data signal source for storing said segment of said digital data signal; a distortion estimator having an input coupled to the output of said data signal source and operable to determine signal distortion characteristics of said segment of said digital data signal; a correction signal encoder adapted to encode the output of said distortion estimator into a segment of digital correction signal having opposite phase and increased amplitude from said signal distortion phase and amplitude of said output of said distortion estimator, and having an output coupled to said input of said storage for outputting said segment of digital correction signal to said storage; a digital to analog decoder for synchronously reading said digital data signal segments out of said storage and for converting said signal segments into analog data signals, and for combining the two analog data signal segments so as to correct the data signal segment for distortions and outputting the combined analog signal as the low distortion analog signal. The invention also further provides a method of generating a correction signal for forming an analog signal having low distortion within a frequency band of interest, comprising the steps of outputting from a data signal source a segment of digital data signal having known frequency, amplitude and phase characteristics and having, when repetitively decoded, a signal distortion having frequency, amplitude, and phase characteristics; determining frequency, amplitude and phase characteristics within said frequency band of interest which said signal distortion of said segment of digital data signal will have when it is repetitively decoded; encoding said determined characteristic into a segment of a digital correction signal of opposite phase and increased amplitude from said determined characteristics; storing said segment of digital data signal and said segment of digital correction signal in a memory; reading out repetitively and synchronously said digital data signal segment and said digital correction signal segment from said memory; and decoding said repetitively read out digital data and correction signal segments and summing the decoded signal segments to form said low distortion analog signal. The frequency determination may be done computationally within the given frequency band of interest. The computational frequency determination may include for a given frequency transforming a time-domain digital data signal into the frequency domain to include a first frequency component corresponding to said given frequency and at least one other frequency component corresponding to noise; inverse transforming at least one of said other frequency components within a frequency band of interest into a time domain digital correction signal; and storing said digital data signal and digital correction signal. Further features of the invention are defined in the dependent claims. The memory storage device may be separate or detachable from the data signal source and encoder, such that the memory storage device and decoder may be separately transportable, as for use in bench testing and field applications. The invention is capable of producing output correction signals that may form low or ultra-low distortion analog signals. Thus, analog signals capable of signal/noise ratios greater than about 120 dB, and especially greater than about 150 dB, are contemplated. In order that the invention may be more fully understood, reference is made to the accompanying drawings, wherein: Fig. 1(a) depicts a block diagram of a preferred embodiment of computational stages through which a correction digital datastream, which may later be decoded along with a data digital datastream and combined to form a low or ultra-low distortion analog signal, is generated; Fig. 1(b) depicts a block diagram of a preferred embodiment of stages of memory read out and decoding by which the data and correction digital datastreams, generated by the computational stages illustrated in Fig. 1(a), are converted into analog signals and summed into a low distortion analog signal; Fig. 2 illustrates a flow-chart of a preferred embodiment of computational steps by which the signal distortion, which the data digital datastream will have when later read out of memory, is computationally estimated and the corrected digital datastream is encoded from the determined signal distortion; Fig. 3(a) illustrates a graph of the analog signal (including signal noise) created where a digital data signal is continuously generated and decoded; Fig. 3(b) illustrates a graph of the signal noise (without the fundamental of the data signal) created where a digital data signal is continuously generated and decoded; Fig. 3(c) illustrates a graph of the analog signal (including signal noise) created where an one period segment of a digital data signal is repetitively read out of a memory source and decoded; Fig. 3(d) illustrates a graph of a decoded correction signal; Fig. 3(e) illustrates a graph of an ultra-low distortion analog signal resulting from the summing of decoded data and correction signals; Fig. 4 illustrates a block diagram of a preferred embodiment of a memory readout and decoding circuit used to convert the data and correction digital datastreams and sum them to form a low distortion analog signal; and Fig 5 illustrates a block diagram of another preferred embodiment of a memory readout and decoding circuit. DESCRIPTION OF THE PREFERRED EMBODIMENTS Referring now to the drawings, Fig. 1(a), is a block diagram of the computational components of a signal generator 1 , and a memory 21 , in accordance with a presently preferred embodiment of the invention. All of these computational components are preferably composed of a computer using program steps as discussed below. A digital data signal source 5 outputs a digital data signal segment. Because distortion in the outputted digital data signal segment limits the signal-to-noise ratio that may be achieved in the desired final output low distortion analog signal, the digital data signal source 5 preferably has characteristics such that it outputs a low or ultra-low distortion digital data signal segment. Preferably, such low-distortion digital output is achieved computationally, where the digital data signal source 5 includes a data signal waveform generator 10 and a data signal encoder 11 . Thus, preferably, a waveform generator 10 generates a digital representation of a desired discrete time, periodic waveform. This discrete time waveform will preferably be a periodic sinusoidal waveform, having approximately the same frequency, time, phase and amplitude characteristics as the final output analog signal ( 60 ) has within a frequency band of interest. Distortion, if any, remaining in the final output analog signal is desired to be ultra-low in amount. The waveform generator 10 output is preferably generated by using mathematical functions of a conventional software language, such as sinusoidal functions, and a program that adjusts the characteristics of the waveform, such as amplitude, phase or period, based on user inputs. Such software languages are well-known in the art, and an example of commercially available software language that works well as a waveform generator is Microsoft C. It should be recognized, however, that the waveform generator 10 may use other than electronic means, such as optical processing, to generate a digital representation of the periodic waveform; in such an event other means, such as optical processing means, may also be used, instead of electronic or computer means, to computationally encode the desired digital data and correction signal data stream segments. Further, the periodic sinusoidal waveform need not be a simple sinusoidal waveform, but may be a complex waveform such as one composed of many superimposed sinusoidal waveforms. The output from the waveform generator 10 , which is typically in the form of a continuous stream of multi-bit bytes, is computationally encoded into a digital datastream segment by the data signal encoder 11 . The data signal encoder preferably encodes the digital datastream segment as a one-bit bitstream segment of one data signal cycle, although multiple-bit bitstreams and other datastreams, and segments other than one data signal cycle in length, may also be used. The data signal encoder 11 preferably encodes the waveform generator 10 output by means of conventional software programming techniques, where such software programming preferably simulates the process of a sigma delta encoder, which is well-known in the art. An example of one such sigma delta encoder is shown at Figure 2 in J.C. Candy, "Decimation for Sigma Delta Modulation," IEEE Transactions on Comms., Vol. Com-34, 72-76, Jan. 1986. One skilled in the art may readily develop a software program simulating such a sigma delta encoder. The resulting data signal digital datastream segment is then both stored in memory 21 and inputted into digital correction signal generator 6 . The digital correction signal generator 6 preferably includes a distortion estimator 12 and a correction signal encoder 20 . The distortion estimator 12 computationally determines the phase and amplitude of the signal distortion created by repetitively reading out the data signal digital datastream segment from memory 21 . The distortion estimator 12 has parameters such that it produces a distortion digital datastream containing distortion of opposite phase and appropriately scaled amplitude as that of the signal distortion that will result from repetitively reading out the data signal digital datastream segment from memory 21 . Because the distortion digital datastream has an opposite phase, the correction signal (obtained by encoding the distortion digital datastream with the correction signal encoder 20 ) and data signal can be superposed in the analog domain. Consequently, any distortion remaining in the resulting signal is at an ultra-low level. Further, the amplitude of the distortion digital datastream (and hence the correction signal) may be increased, preferably by a scale factor much greater than 1. This increase in amplitude makes distortion in the correction signal itself, resulting when the correction signal is repetitively read out of memory, relatively negligible compared to the signal distortion determined by the distortion estimator 12 and encoded in the correction signal. Thus, the increase in amplitude practically eliminates any distortion that might otherwise be created by reading out the correction signal. However, it should be recognized that application of the scale factor may be omitted if the band of interest is so narrow that no multiples of the fundamentals of the correction signal (occurring as the digital correction signal segment is read-out and decoded) fall within the band of interest. The distortion digital datastream information is outputted from the distortion estimator 12 and computationally encoded by the correction signal encoder 20 . The correction signal encoder 20 has parameters such that it encodes the correction digital datastream by a similar method as that used by the data signal encoder 11 , i.e., preferably by use of a software program simulating the process of a sigma delta encoder and preferably encoding the correction signal as a one-bit bitstream. Preferably, the correction signal encoder 20 comprises the same software program as the data signal encoder 11 . Thus, the correction signal encoder 20 produces a correction signal digital datastream segment containing distortion of opposite phase and appropriately scaled amplitude as that of the signal distortion resulting from repetitively reading out the data signal digital datastream segment from memory 21 . The output of the correction signal encoder 20 , i.e., a correction signal digital datastream segment, is stored in memory 21 . For economy of storage and ease of transportation, a single memory 21 preferably stores both datastream segments, although more than one memory device or different locations on the same memory storage device may be used to store the datastream segments. Memory storage device 21 may be separate or detachable from the computational components of the signal generator 1 , such that the memory storage device 21 may be transportable for uses including, but not limited to, laboratory or field applications. Turning now to Fig. 1(b), this figure shows a block diagram of a preferred embodiment of the memory readout and decoding portions 25 that are used in converting the correction and data digital signals into analog signals that may be summed to form the desired low distortion analog signal. These portions may be detachable and transportable separate from the computational components of the signal generator 1 . A synchronous read out means 26 repetitively, continuously and synchronously reads out the data signal digital datastream segment and the correction signal digital datastream segment from memory 21 . Circuits, which may serve as such synchronous read-out means 26 , are well-known in the art. While it is preferable that the two digital datastream segments be synchronously read out of memory, what is important is that the data and correction signals are read out and decoded such that when summed, the correction signal may properly cancel out distortion in the data signal. Preferably the first data point (bit) of the correction signal digital datastream segment is read out at approximately the same point in time as the first data point (bit) of the data signal digital datastream segment, although these bit points may be synchronized subsequently in the decoding process. It is also preferred, to help insure a synchronous read out, that the first data point (bit) of the correction signal digital datastream segment corresponds to the same point in the cycle of the original waveform as the first data point (bit) of the data signal digital datastream segment. Similarly, because the digital datastreams will be read out of memory repetitively, the last data point (bit) of the correction signal digital datastream segment should also correspond to the same point in the cycle of the original waveform as the last data point (bit) of the data signal digital datastream segment. A properly programmed correction signal encoder 20 will help insure that the correction signal digital datastream is of sufficient length that, when the correction signal digital datastream is repetitively read out of memory 21 , it can remain properly synchronized with the data signal digital datastream. The data signal digital datastream and correction signal digital datastream are inputted into a decoder circuit 28 . Decoder circuit 28 converts the digital datastreams into analog signals, appropriately scales the correction signal, and sums the analog signals. As the correction signal is superposed on the data signal, the correction signal acts to cancel distortion in the data signal (which resulted from repetitively reading out the data digital datastream segment from memory 21 ). The result of the superposed signals is a low or ultra-low distortion analog signal 60 . Fig. 2 illustrates a flowchart of a preferred embodiment of the computational steps of distortion estimator 12 . The digital datastream (a(t i )) outputted from the data signal encoder 11 and inputted into distortion estimator 12 may be represented as having two components, a data signal (s(t i )) and a signal distortion (d(t i )). A discrete fourier transform (DFT) of the digital datastream a(t i ) may be performed (step 13) , transforming the time domain signal a(t i ) to a frequency domain signal A(f n ) = S(f n ) + D(f n ), where S(f n ) is the frequency domain data signal component and D(f n ) is the frequency domain signal distortion component. It should be noted that while it is preferred to use a fourier transformation of the digital datastream when determining the signal distortion, any transformation process, such as a Hartley transform, similarly allowing for a determination of the signal distortion information and the encoding of a correction signal having opposite phase, may be used. The use of a fourier transform results in D(f n ) being composed of a series of discrete frequencies, multiples of the fundamental S(f n ). S(f n ) is known from the spectral characteristics of the signal outputted from waveform generator 10 and may be removed from A(f n ) (step 14) , leaving the distortion component D(f n ). Those values of D(f n ) for frequencies outside of the band of interest (m L to m H ) (which corresponds to the frequency band of interest from the low frequency m L to high frequency m H desired for the ultra-low distortion analog signal) may then be zeroed (step 15) , so that any correction signal generated only corrects for distortion occurring in the band of interest. An inverse DFT may then be performed (step 16) on the resulting signal (B(f n )), yielding a time domain signal b(t i ). Finally, b(t i ) is preferably multiplied by a scale factor k, which is much greater than 1, and converted to an opposite phase (step 17) , thus yielding the desired correction signal digital datastream (-kb(t i )). The opposite phase allows the correction signal to superpose and cancel distortion components of the data signal when the signals are later converted and summed as analog signals. The scale factor allows additional distortion, occurring as the correction signal segment is repetitively read out of memory 21 and decoded, to be kept much less than the other components of the decoded correction signal. Thus, after the correction signal is converted to an analog signal and divided by an appropriate second scale factor, such additional distortion becomes practically negligible, while the other components of the correction signal are appropriately scaled down so they can cancel with distortion in the data signal. For an example of how a fourier analysis of such a correction process might work, let g(t) represent the original signal as a function of time. Then a segment τ long centered at time t l may be represented by the expression: g ( t )• π ( t τ -t l ) where π((t/τ)-t l ) is a rectangular unit amplitude pulse of length τ centered at time t l (sometimes referred to as a window or box car function). Repeating this segment can be expressed as h ( t ) = [ g ( t )•π( t τ - t 1 )] * Σ m δ ( t - m τ) Taking the fourier transform of h( t ) to examine this relation in the frequency domain, one obtains: H ( f ) = [ G ( f ) * τ sincfτe -iωτt 1 ] 1 τ Σ n δ ( f - n τ ) If the signal is a sinusoid with one cycle in the segment window, making G(f) = δ ( f ± (1/τ)), and t 1 = 0, then H ( f ) = [δ ( f ± 1 τ ) * sincfτ ] • Σ n δ ( f - n τ ) = [ sinc ( f ± 1 τ )τ]Σ n δ ( f - n τ ), the sinc function is centered at the signal frequency and sampled at all multiples of f τ . But, note that all multiples except ±1 are nulls of the sinc function. If the segments are l •τ long, instead of just τ long, then h ( t ) = [ g ( t )•π ( t ℓτ - t 1 )] * Σ δ ( t - mℓt ) and H ( f ) = [ G ( f ) * ℓτ sincfℓτe -iωℓτt 1 ] 1 ℓτ Σ δ ( f - n ℓτ ) Again, if the signal only contains a sinusoid, then G ( f ) = δ( f ± 1 τ ), and t 1 = o, making H ( f ) = [ sinc ( f ± 1 τ )ℓτ] Σ δ ( f - n ℓτ ) Here, H(f) equals the sinc function centered at f = 1/τ=f τ and sampled at all multiples of f = 1/ℓτ = f τ /ℓ, which are the nulls, f n = nf τ /ℓ, of the more narrow sinc function. If G(f) is a continuous function such as obtained from the quantitization noise, as well as a sinusoid, in a digital datastream data signal, then the expression in brackets will be continuous in the frequency domain and sampled at f = n/τ = nf τ , which are fundamental multiples. However, if a datastream containing more than one sine cycle is repetitively read out, the frequency domain samples of the continuous spectrum at f = n/lτ = (n/l)f τ , yield fractional multiples of the signal frequency as well as integer ones. Thus, it is preferable to read out a datastream segment containing one sine cycle. In order to obtain the desired correction signal, one embodiment of the distortion estimator preferably includes the use of a digital notch, or FFT (fast fourier transform), to remove the signal of the sinusoid waveform. The residual signal, the fundamental multiples, are then encoded with the same relative magnitude but opposite phase and a scale factor much larger than one, preferably greater than 100, although a scale factor less than or much greater than 100 may be used depending on the signal to noise ratio desired in the correction signal. When the resulting correction signal is subsequently decoded, scaled down, and summed with the data signal the fundamental multiples are negated, and the signal to noise ratio of the combined signal is increased to as much as 150 dB or more in the band of interest. The scale factor is limited by the noise in {G(f)*τ sinc fτ} over the band of interest. This scale factor might be about 30 if one wanted to remove all the noise at all frequencies. But, this scale factor would be significantly higher if one only sought to remove the noise (fundamental multiples) over a small band of interest. Thus, it is likely more efficient, and preferred, to use a high scale factor with an analog low pass filter to eliminate the higher frequency fundamental multiples, using a very highly oversampled signal. Turning now to Fig. 3(a) through Fig. 3(e), graphs of illustrative types of signals and signal noise are shown. Fig. 3(a) illustrates the analog signal (including signal noise) that may result from a continuously generated and decoded data signal. In particular, Fig, 3(a) illustrates a sinewave signal that has been continuously generated, encoded into a digital bitstream by a program simulating sigma delta modulation, and decoded into an analog signal S. The sinewave itself has a frequency denoted by the portion of the analog signal at S 0 . The remainder of signal S is quantitization noise that occurs as the digital bitstream is decoded into an analog signal. Absent any filtering, this quantitization noise would continue increasing in amplitude (illustrated by dotted line QN) as the frequency approaches the Nyquist Rate (f s /2, where f s is the bitstream data rate). However, by over-sampling the band of interest and employing a low pass filter (where, as here, the low pass filter has frequency and amplitude characteristics such as illustrated by line LP), the amplitude of the noise outside of the band of interest may be significantly reduced, as illustrated by the amplitude of signal S outside of the band of interest (BI). However, as seen in Fig. 3(a), there remains a not insubstantial component of noise inside the band of interest. Fig. 3(b) further shows what this noise would look like if the fundamental sinewave signal information (S 0 ) was absent from analog signal S. As this point it should be noted that, while no set ratio of the band of interest to the Nyquist rate is preferred, the more oversampled the signal can be, as determined by one skilled in the art taking into account cost and equipment constraints with the signal characteristics desired, the more that the noise in the band of interest can be minimized. Thus, in a preferred embodiment, the data signal encoder encodes the output signal from the waveform generator in a manner that is similar to the encoding of an oversampled sigma delta encoder. By doing so, the noise in the band of interest is greatly reduced, and the remaining signal may have a signal/noise ratio greater than 120 dB, and preferably even greater. As Fig. 3(c) illustrates, when a data signal digital bitstream segment is repetitively read out of memory, all of the continuous noise spectrum is forced into discrete frequencies (S 1 , S 2 , . . .) by the replication in time process. The resulting noise signals resemble harmonics, but are multiples of the fundamental (S 0 ) resulting from replication in time of the quantitization noise in the bitstream segment. The dotted lines represent as follows: N 1 --what the quantitization noise of a continuously generated and decorded bitstream would have looked like (without low pass filtering); N 2 --what such quantitization noise would have looked like with low pass filtering; and ' QN--what the quantitization noise of a bitstream segment, repetitively read out and decoded, would have looked like (without low pass filtering). The amplitude of these fundamental multiples (S 1 , S 2 , . . .) is weighted by the window function used to select the bitstream segment to be replicated. By thus forcing the noise into discreet frequencies one is then able to remove the noise by creating a second, correction bitstream segment with opposite phase from these fundamental multiples, and adding the two signals in an appropriate manner. Fig 3(d) illustrates a repetitively read out and decoded correction signal. Again, all the quantitization noise has been forced into discrete multiples of the fundamental (S 1 , S 2 , .). . . Inside the band of interest (BI), the fundamentals of the correction signal have amplitude value k times the amplitude of the fundamentals and an opposite phase from, the data signal (i.e., -kS,-kS 2 , -kS 3 ). Prior to summing this correction signal with the data signal, the amplitude of the correction signal will be appropriately scaled down, so that when the data signal is summed with the correction signal, the fundamentals in the correction signal within the band of interest will have the same amplitude (i.e., S ' / 1 , S ' / 2 , S ' / 3), but opposite phase, as the fundamentals in the data signal within the band of interest (i.e., S 1 , S 2 , S 3 ). By scaling down the correction signal, all other components of the correction signal (S ' / 0 , S ' / 4, S ' / 5, . . .) are also scaled down, and may be scaled down (depending on the initial scale factor used in the distortion estimator 12 ) to the level where the amplitude of these other components is small enough in relation to the signal component (S 0 ) of the data signal to subsequently yield, when the data signal is summed with the correction signal, low signal to noise ratio in the summed signal, preferably greater than 120 dB. Fig 3(e) illustrates what an appropriately summed correction signal and data signal may look like in the band of interest (i.e., S 0 an ultralow distortion analog signal). Referring to Fig. 4, one preferred embodiment of the decoder circuit 28 is illustrated. The decoder circuit 28 includes two reference voltage sources 30 and two switches, SW 1 32 and SW 2 34 . Each switch is connected to the two sides of reference voltage sources 30 , and has an output to summing low pass filter 40 . The switches are switched between connections to the two sides, typically a positive and a negative side, of the voltage sources 30 , as the bit types in the inputted digital bitstreams change between 0 and 1. Thus, the data signal digital bitstream, read out from memory 21 by synchronous read out device 26 , is inputted to switch S l 32 . Similarly, the correction signal digital bitstream, read out from memory 21 by synchronous read out device 26 , is inputted to switch SW 2 34 . An example of a switch that may be used as switch 32 or 34 is the Siliconix DG444. The data signal output from switch SW l 32 is inputted to summing low pass filter 40 through resistor 42 . The correction signal output from switch SW 2 34 is inputted to summing low pass filter 40 through resistor 44 . Resistor 44 is of a resistance relative to resistor 42 such that it imposes an appropriate scale factor on the correction signal relative to the data signal, thus scaling the correction signal down so that the originally scaled components of the correction signal may cancel with the distortion components of the data signal in the band of interest. The two signals are then summed through the summing connection 46 . The resultant signal is inputted to the negative input of opamp 48 . The feedback loop for the summing low pass filter includes a resistor 50 and capacitor 52 . The components of summing low pass filter 40 are conventional, and one skilled in the art will understand how to choose an appropriate filter with characteristics for filtering the signal frequencies outside the desired band of interest. Finally, the resulting signal outputted from the summing low pass filter 40 is the desired low distortion analog signal 60 . While this embodiment has been described as using voltage sources 30 , in conjunction with resistors 42 and 44 , to supply currents in the decoder circuit 28 , it should be recognized that other means, such as a current source, may be used in lieu of a voltage source. Turning now to Fig. 5, another embodiment of the decoder circuit is illustrated, in which an additional correction signal digital bitstream is used to further refine the resultant signal. In this embodiment, further iterations of the distortion estimator 12 and correction signal encoder 20 yield one or more additional correction signal bitstream segments that are also stored in memory 21 . It should be noted that additional correction signals may also be used to reduce the noise components outside the band of interest. Thus, an additional correction signal bitstream is read out synchronously with the data signal bitstream in memory 21 and the first correction signal bitstream in memory 21 . The only modifications necessary to the decoder circuit 28 to employ additional correction signals entail the addition of an additional switch SW 3 35 for each bitstream, similar to switch SW 2 34 , with the output from each additional switch connected to an additional resistor 45 similar to resistor 44 . Each additional correction signal is then summed along with the data signals and the first correction signal at the summing connection 46. It will be appreciated that the invention may be modified within the scope of the appended claims.

Claims: A signal generator (1) for generating a correction signal from a digital data signal for forming a low distortion analog signal, said signal generator comprising a data signal source (5) for outputting a segment of said digital data signal; a storage (21) having an input coupled to the output of said data signal source (5) for storing said segment of said digital data signal; a distortion estimator (12) having an input coupled to the output of said data signal source (5) and operable to determine signal distortion characteristics of said segment of said digital data signal; a correction signal encoder (20) adapted to encode the output of said distortion estimator (12) into a segment of digital correction signal having opposite phase and increased amplitude from said signal distortion phase and amplitude of said output of said distortion estimator, and having an output coupled to said input of said storage (21) for outputting said segment of digital correction signal to said storage; a digital to analog decoder (25) for synchronously reading said digital data signal segments out of said storage (21) and for converting said signal segments into analog data signals, and for combining the two analog data signal segments so as to correct the data signal segment for distortions and outputting the combined analog signal as the low distortion analog signal. A signal generator according to claim 1, wherein said data signal source includes a waveform generator (10) for generating a digital representation of a periodic waveform, and a data signal encoder (11) for encoding said digital representation of said periodic waveform into said digital data signal segment. A signal generator according to claim 1, wherein the decoder (25) is operable to repetitively read the two signal segments out of said memory prior to combining the two segments. A method of generating a correction signal for forming an analog signal having low distortion within a frequency band of interest, comprising the steps of outputting from a data signal source a segment of digital data signal having known frequency, amplitude and phase characteristics and having, when repetitively decoded, a signal distortion having frequency, amplitude, and phase characteristics; determining frequency, amplitude and phase characteristics within said frequency band of interest which said signal distortion of said segment of digital data signal will have when it is repetitively decoded; encoding said determined characteristics into a segment of a digital correction signal of opposite phase and increased amplitude from said determined characteristics; storing said segment of digital data signal and said segment of digital correction signal in a memory; reading out repetitively and synchronously said digital data signal segment and said digital correction signal segment from said memory; and decoding said repetitively read out digital data and correction signal segments and summing the decoded signal segments to form said low distortion analog signal. A method according to claim 4, wherein the frequency determination is done computationally within the given frequency band of interest. A method according to claim 5, wherein the computational frequency determination includes for a given frequency transforming a time-domain digital data signal into the frequency domain to include a first frequency component corresponding to said given frequency and at least one other frequency component corresponding to noise; inverse transforming at least one of said other frequency components within a frequency band of interest into a time domain digital correction signal; and storing said digital data signal and digital correction signal. A method according to claim 4, wherein the step of decoding and summing said data and correction signals to form said low distortion analog signal includes applying a reference voltage to a decoding circuit having a first and a second switch and a summing low pass filter, such that one input of each switch will have a first reference voltage and another input will have a second reference voltage; switching a first switch connection between the input receiving said first reference voltage and the input receiving said second reference voltage, alternating as a bit value of said repetitively read out digital data signal segment input into said first switch connection changes, for decoding said repetitively read out digital data signal segment into an analog data signal; switching a second switch connection between the input receiving said first reference voltage and the input receiving said second reference voltage, alternating as a bit value of said repetitively read out digital correction signal segment input into said second switch connection changes, for decoding said repetitively read out digital correction signal segment into an analog correction signal; scaling at least one frequency amplitude of said analog correction signal to approximately match at least one signal distortion frequency amplitude of said analog data signal within said band of interest; summing said analog data signal and scaled analog correction signal; and filtering a signal distortion of the summed signals outside said band of interest.

Inventors: MAYO FRANK, MAYO, FRANK
Applicants: INPUT OUTPUT INC, INPUT/OUTPUT, INC.
Application year: 1992
Main classification: H03M1
IPC codes: G06J1, H03M3