Frequency resolution in a digital oscillator
FIELD OF THE INVENTION 
     This invention relates to the field of digital oscillators and specifically to a digital oscillator which provides a sampled sequential digital signal which represents a sinusoid signal for use in heterodyning operations performed in digitally implemented communications equipment. The improved digital oscillator of the present invention relates to the particular class of digital oscillators which are based on ROM look-up table techniques. 
     BACKGROUND OF THE INVENTION 
     A new class of communications equipment has developed in which a communications signal may be processed using digitally implemented circuitry. The present invention relates to the generation of a digital signal which comprises samples of the complex sinusoid: 
     
         w(t)=e.sup.j2πf.sbsp.c.sup.t 
    
     where f c  is the desired oscillator frequency. 
     The above described digital signal may be advantageously utilized for quadrature mixing operations performed in a zero intermediate frequency (I.F.) section of a digitally implemented receiver. According to conventional communications theory, 
     
         e.sup.j2πf.sbsp.c.sup.t =cos 2πf.sub.c t+j sin 2πf.sub.c t 
    
     Therefore, the generation of cosine and sine waveforms are special cases (real and imaginary parts, respectively) of the more general complex sinusoid generation. The sampled version of e j2 πf.sbsp.c t  is obtained by replacing the continuous time variable t by a digital discrete time variable nT, where n is a counting integer (1,2,3, . . . ) and T is the sampling period, which equals 1/fs=1/sampling rate. The discrete time signal is then equivalent to: 
     
         w(n)=e.sup.j2πf.sbsp.c.sup.(nT) 
    
     ROM lookup methods of generating this signal follow from making the frequency variable f c , as well as the time variable (nT), discrete. If we let f c  =kfs/2 N  (where k is an integer), then: 
     
         w(n)=e.sup.j2πkf.sbsp.s.sup.(n/f.sbsp.s.sup.)/2.spsp.N =e.sup.j2πnk/.sup.2.spsp.N 
    
     The frequency resolution obtained for the digitally implemented oscillator is equivalent to: 
     
         Δf=f.sub.s /2.sup.N 
    
     wherein 2 N  distinct frequencies can be generated. 
     One type of digitally implemented oscillator provides separate cosine and sine ROM tables, each with 2 N  words. By exploiting sine-cosine symmetries and allowing two lookups, one for cosine and one for sine, the amount of ROM may be reduced to 1/4·2 N  words. That is, either the cosine or sine values for only one quarter of the circle need be stored. 
     The above mentioned technique is referred to as a direct ROM Lookup. The amount of required ROM may be further reduced by employing a technique referred to as factored ROM lookup. This method provides that the complex phasor e j φ may be broken into 2 or more factors, each with its own lookup table, whose product is calculated in real time using complex digital multiplications. Therefore, the ROM requirement may be reduced at the expense of the need to perform complex digital multiplications. For example, the phasor e j φ can be broken into two factors, coarse and fine according to the following equation: 
     
         e.sup.jφ =e.sup.jφc ·e.sup.jφf 
    
     If φ is represented in, say 16 bits, Direct ROM lookup requires at least 1/4·2 16  or 16,384 words of ROM. 
     In Factored ROM Lookup, the 16-bit integer representing φ can be separated into an 8-bit coarse part (most significant bits) and an 8-bit fine part (least significant bits), which address coarse and fine ROM tables, respectively. Therefore, the amount of ROM is reduced to approximately 2×2 8  or 512 words, at the expense of one complex digital multiply operation. Further discussion of the background of digital oscillators is set forth in an article by J. Tierney et al., entitled &#34;A Digital Frequency Synthesizer&#34;, IEEE Trans. Audio and Electroacoustics, March 1971. 
     An essential characteristic of the conventionally implemented ROM lookup oscillators described above is that as the frequency resolution is increased, the ROM size requirement also increases. For the Direct method, each doubling of resolution leads to doubling of the ROM size. For the Factored method with two factors, doubling the resolution increases the ROM size by a factor of about √2. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1a is a block diagram of a basic digital oscillator circuit. 
     FIG. 1b is an illustration of the sine and cosine phase points on the unit circle. 
     FIG. 2 is a block diagram of a digital oscillator incorporating the features of the present invention. 
     FIG. 3 is a diagram detailing the binary format of the output signals of the phase accumulator, dither generator, and combined/truncated binary output signal of the digital oscillator of FIG. 2. 
     FIG. 4 is a more detailed schematic and block diagram of the improved digital oscillator of the present invention. 
     FIG. 5 is a schematic diagram of a maximal-length feedback shift register which may be advantageously used to generate an L-bit dither signal which is required by the improved digital oscillator of FIG. 4. 
    
    
     SUMMARY AND OBJECTS OF THE INVENTION 
     In Summary, a digital oscillator may be comprised of a frequency latch, a phase accumulator, and a ROM based waveform generator. Improved frequency resolution is achieved in the digital oscillator by quantizing the summed output of a digital dither generator and the phase accumulator before sending the resultant multi-bit signal to a ROM. The contents of the ROM are sequentially addressed with the resultant multi-bit signal. The output of the ROMs comprise digital words corresponding to a desired waveform envelope. 
     Accordingly, it is an object of the present invention to provide a digital oscillator having improved frequency resolution. 
     It is another object of the present invention to eliminate the dependence of ROM size on frequency resolution, making possible arbitrarily fine resolution with relatively small amounts of ROM. 
     It is yet another object of the present invention to provide a digital oscillator which efficiently generates a sinusoidal digital signal using a minimum of circuitry. 
     It is still another object of the present invention to provide a digital oscillator exhibiting no discrete frequency outputs other than the desired output. 
     DETAILED DESCRIPTION OF THE DRAWINGS 
     A digital oscillator based on the direct ROM-lookup approach may by implemented as shown in FIG. 1A. The digital oscillator 10 comprises an N-bit frequency latch which temporarily stores an integer value k corresponding to the desired oscillator frequency, wherein: 
     
         k=f.sub.c ·2.sup.N /f.sub.s 
    
     and f s  is the sampling rate (already defined) 
     The binary integer output of the frequency latch 12 is accumulated at each sampling rate (corresponding to n) into an N-bit phase latch 20, which contains a binary integer (nk).sub.(modulo 2.spsb.N.sub.), which is proportional to a phase value: 
     
         φ=(nk).sub.(modulo 2.spsb.N.sub.) ·2π/2.sup.N 
    
     The N-bit output of the phase latch 20 addresses a ROM 16 containing stored binary values of the sinusoid values cos 2πnk/2 N  and sin 2πnk/2 N , which are output at terminals 26 and 24 respectively. A digital adder 18 is disposed in the data path between the frequency latch 12 and the phase latch 20. Another input to the digital adder 18 is taken from the output of the phase latch 20. The combination of the digital adder 18 and the phase latch 20 forms a phase accumulator 14. The output of the digital adder 18 produces a sequence of values corresponding to incremental addresses used to sequence the ROM 16. Thus, the ROM-lookup oscillator 10 simply reads out of a ROM the phasor coordinates of 2 N  points equally spaced on the unit circle, as shown in FIG. 1B. 
     FIG. 2 is a block diagram of a digital oscillator for incorporating the features of the present invention. The conventional ROM-lookup oscillator 10 is modified by placing between the phase accumulator 14 and ROM 16 (or between the accumulator and ROM/complex multiplier combination in a factored ROM oscillator), a &#34;dithering&#34; means 30 comprising the combination of a digital dither generator 32, a digital adder 34, and a digital truncator or quantizer 36. 
     According to the principles of the present invention, the ROM size may be reduced without changing the frequency resolution by adding a &#34;random&#34;, uniform density L bit dither signal in the least significant L bits to the N-bit number (nk).sub.(modulo 2.spsb.N.sub.) generated by the phase accumulator 14. This sum is truncated to M bit and passed to the ROM tables(s) 16. Since M&lt;N, the ROM 16 size is reduced. In the direct lookup case, for example, the size is reduced by a factor of 2 N-M . The ROM tables are of course modified to take into account the fewer number of phases to be looked up or calculated (2 M  phases instead of 2 N ). 
     FIG. 3 is a diagram detailing the binary format of the output signals of the phase accumulator, dither generator, and combined/truncated binary output signal of the digital quantizer 36 of FIG. 2. According to the teachings of the present invention, quantization or truncation of the binary phase word produces distortion or noise in the generated sine and cosine waveforms. Since the phase is a periodic function (sawtooth), the noise produced by quantization would also be periodic unless it is randomized somehow. Periodic noise would result in discrete &#34;spurs&#34; in the oscillator output spectrum which are undesirable in most applications if their level exceeds some threshold. Addition of the dither signal prior to phase quantization randomizes the phase noise, resulting in a more desirable white noise spectrum at the output. According to FIG. 3, the binary phase word is represented by a binary word of N bits. The dither signal comprises a pseudo-random binary word of L bits which is summed with the N bit phase word. The process results in a binary word N=L+M bits. This binary word is then truncated to a binary phase word of M bits which is relatively free of the spurious signals described above. 
     The effect of phase quantization on oscillator output noise can be shown by the following analysis. The desired oscillator output is described by the following equation: 
     
         w(n)=e.sup.j2πf.sbsp.c.sup.nT =e.sup.jφ(n) 
    
     If the phase angle is quantized with error δ(n), the actual output is described as follows: 
     
         w(n)=e.sup.j[φ(n)+δ(n)] 
    
     The error introduced is: ##EQU1## 
     For the case of interest where δ(n) is very small (&lt;&lt;1), e j δ(n) can be approximated by 1+jδ(n), thus yielding: 
     
         E(n)=e.sup.jφ(n) ·jδ(n) 
    
     The spectrum of E(n) can be seen as simply a frequency translation (and unimportant scaling by j) of the spectrum of the phase quantization noise δ(n). Thus if δ(n) is random or &#34;white&#34;, so is E(n). Furthermore, the power of E(n) equals the power of δ(n), allowing the output noise level created by the phase noise to be easily estimated. 
     Choosing the power level of the dither signal involves a tradeoff between noise whitening effect and output noise power level. As the dither power is increased (by increasing the number of bits, L, in the dither signal), the noise becomes more whitened, but the total phase noise power increases as well. It can be shown that if the dither signal exhibits a uniform probability density, the choice of L=N-M results in the preferred level of dither power since it represents the smallest dither signal necessary to completely whiten the phase quantization noise. Thus, in the preferred implementation, the number of dither bits L equals the number of bits discarded in the truncation process, as shown in FIG. 3. It may be noted that dither signals exhibiting other than a uniform probability density may be utilized. However, a uniform density is preferred as it is the most easily generated. 
     With L=N-M, the variance (power) of the phase noise is equal to 2 times the equivalent phase variance of the dither signal. Given a desired frequency resolution, determined by N and f s , then L and M, and hence the required ROM size, are determined by the allowable level of white noise at the oscillator output. 
     As an example, with f s  =20 MHz, and N=20 bits, the frequency resolution is 19.07 Hz. Truncating to M=17 bits (to reduce ROM size by a factor of 8) without dither creates spurs in the oscillator output, which for one particular frequency are 98 db below the level of the desired signal. Addition of a 3-bit dither signal prior to truncation whitens the error signal, eliminating the spurs. According to the principles of the present invention, the frequency resolution of the digital oscillator, for a given level of output noise, can be increased indefinitely by simply adding more bits to the frequency and phase latches, and to the dither signal. The ROM size, determined by M, remains constant. 
     Referring now to FIG. 4, the digital oscillator 40, as implemented using the direct-ROM approach, is depicted in schematic diagram form. Frequency information, in the form of an N bit binary number proportional to the desired frequency, is loaded into the frequency latch 42. Frequency latch 42 may be realized in many different forms. For example, assuming that N=20, five cascaded 74LS175&#39;s (Quad D flip-flops), manufactured by Motorola, Inc., Box 2092, Phoenix, Ariz., 85036, and others, provide an acceptable implementation. Those skilled in the art will appreciate that channel frequency latch 42 may be loaded by various means. For example, in a fixed frequency oscillator the frequency latch could be permanently loaded with a single binary number. For variable frequency oscillators, frequency latch 42 could be loaded from an EPROM or ROM look-up table or calculated and latched by a microprocessor. 
     The output of frequency latch 42 is coupled to a binary summer 44. It will be understood by those skilled in the art that the following discussion of digital oscillator 40 all coupling lines in between the functional blocks are in fact multi-bit binary words and not single connections. The output of adder 44 is coupled to phase latch 46. Phase latch 46 can be implemented as an N bit binary latch of the type described above. Further, the output of phase latch 46 is fed back into summer 44 to be added (modulo 2 N ) to the binary number representing the frequency information located in the frequency latch 42. The output of phase latch 46 is updated once every clock pulse which is generally the sampling frequency. The result of this accumulation operation is that the output of phase latch 46 is a binary number proportional to the phase of the desired oscillator output signals COS 2πf c  nt and SIN 2πf c  nt. 
     In prior implementations the N-bit output of phase latch 46 is often applied directly as the address to ROM lookup tables containing the desired cosine and sine values. Recall that the frequency resolution of the oscillator is defined by the data path width (N) of the frequency and phase registers and by the sampling rate f s . A straight forward method of increasing frequency resolution is to increase N by adding more bits to the phase latch (and frequency register), and to increase the size of the ROM lookup tables. However this can be an expensive solution since the ROM must double in size for each additional bit added to the data path. Another option, often used in prior oscillators, is to add the necessary bits to the phase latch but to truncate the binary phase number before it is used to address the ROM tables. However, this introduces periodic phase quantization noise and causes undesirable spurs in the oscillator output signals. 
     According to the principles of the present invention, the frequency resolution of the digital oscillator may be enhanced, without increasing ROM size and without introducing spurs in the output, by adding a binary dither signal to the output of phase latch 46 before truncating. To accomplish this, digital oscillator 40 is provided with an L-bit dither source 60, which generates an L-bit wide, uniform density pseudorandum &#34;white noise&#34; signal. Dither source 60 is clocked at the sampling frequency f s , so as to provide a new L-bit dither word for every phase word output from phase latch 46. An N-bit dither word is formed by appending M=N-L leading zeroes to the L-bit dither word output from dither source 60. This composite N-bit dither signal is added to the N-bit output of phase latch 46 by N-bit binary adder 48, in Modulo 2 N  fashion. The sum output of adder 48 is then truncated to M bits. In practice this truncation process is achieved by simply ignoring the least significant bits produced at the output of digital adder 48. The addition of the dither signal to the phase signal prior to truncation causes the phase noise created by such truncation to be desirably whitened, eliminating output spurs. The truncation operation itself allows for reduced ROM size. 
     The M-bit binary word retained after truncation is coupled to the address inputs of ROM&#39;s 52 and 54 which comprise waveform generator 50. Upon receiving an address, ROM&#39;s 52 and 54 output the digital binary words located at the specified address. As stated previously, the output signals of ROM&#39;s 52 and 54 are binary numbers proportional to the cosine and sine, respectively, of 2πp/2 M , where p is the integer corresponding to the M-bit address input. For example, if M=8, the ROM table entries may be configured as shown below in Table 1. 
     
                       TABLE 1                                                     
______________________________________                                    
           Contents of    Contents of                                     
           COS ROM        SIN ROM                                         
Address (p)                                                               
           at address `p` at address `p`                                  
______________________________________                                    
0          COS 0          SIN 0                                           
1          COS 2π/256  SIN 2π/256                                   
2          COS 2π/128  SIN 2π/128                                   
3          COS 2π · 3/256                                     
                          SIN 2π · 3/256                      
4          COS 2π/64   SIN 2π/64                                    
.                                                                         
.                                                                         
255        COS 2π · 255/256                                   
                          SIN 2π · 255/256                    
______________________________________                                    
 
    
     The waveform generator 50 comprising ROM&#39;s 52 and 54 represents a direct ROM lookup approach. The principles of the present invention also apply to a factored ROM lookup approach, whereby ROM&#39;s 52 and 54 are replaced by a combination of ROM lookup table and complex phasor multiplication means, as was previously discussed. 
     A digital adder suitable for use with the apparatus of the present invention may be of a type constructed with several 74LS181 4-bit arithmetic logic unit devices, connected in parallel. These devices are shown and described in a data manual entitled &#34;Motorola Schottky TTL Data Book&#34;, avaliable from Motorola, Inc., Box 20912, Phoenix, Ariz. 85036. ROMs 52 and 54 may be formed by a variety of well known ROM devices such as a 82LS181 available from Signetics Corporation, 811 E. Argues Avenue, P.O. Box 3409, Sunnyvale, Calif., 94088, and described in the &#34;Signetics Bipolar Memory Data Manual&#34;. 
     FIG. 5 is a schematic diagram of an example of a type of digital dither generator compatible with the digital oscillator of the present invention. A digital dither signal can be generated by any of several well-known pseudorandom sequence generation techniques. One type of dither, or random number generator is shown and described in a paper by G. I. Donov, A High-Speed Random-Number Generator, RADIO ELECTRONICS AND COMMUNICATIONS SYSTEMS, V25, No. 4, pp. 88-90, 1982. 
     Referring now to FIG. 5, a feedback shift register pseudorandom sequence generator which may be advantageously employed in the practice of the present invention is shown in schematic form. The exemplary sequence generator of FIG. 5 is used to provide a 3-bit digital dither signal to the binary adder 48 of FIG. 4. The dither generator 60 includes a 10-bit shift register which may be formed of a plurality of flip-flops 64 through 82 which are connected in a cascade fashion. A parallel 3-bit dither signal is tapped from the shift register at the outputs of flip-flops 68, 74 and 82 respectively. The inputs to an Exclusive-Or gate 62 are coupled to the outputs of flip-flops 76 and 82. The output of Exclusive-Or gate 62 is coupled to the input of flip-flop 64. The shift register is clocked at the sampling rate f s  producing a 3-bit pseudo-random dither signal at the rate f s  which is added to the output of the phase latch 46 of FIG. 4. The flip-flops 64-82 and the Exclusive-Or gate 62 as well as the other devices used in the practice of the present invention may be any of several well known logic devices, however, high speed TTL devices are particularly well adapted for the practice of the present invention. Implementations employing other logic families will also be obvious to one of ordinary skill in the art. The dither generator of FIG. 5 is set forth as an example of one type of digital dither generator which performs satisfactorily with the digital oscillator of the present invention. It would be obvious to one skilled in the art that many other digital dither generators could also be advantageously employed, provided the digital dither generator provides a pseudorandom sequence of L-bit numbers whose period is at least as long as 2 N  samples, and whose probability density is uniform, in order for the phase noise produced by truncation to be &#34;whitened&#34;. 
     To summarize the present invention allows ROM-lookup type digital oscillators to be implemented with arbitrarily fine frequency resolution without the need for very large amounts of ROM, and without creating undesirable spurs at the output. Frequency resolution of the digital oscillator is increased by summing the output of a digital phase accumulator with the output of a source of digital pseudorandom white noise, and truncating the least significant bits of the resultant digital word. The ROM size is simply determined by the allowable level of white noise present in the oscillator&#39;s output. Accordingly, other uses and modifications will be obvious to one of ordinary skill in the art without departing from the spirit and scope of the present invention.