Exemplary embodiments are illustrated in referenced figures. It is intended that the embodiments and figures disclosed herein be considered illustrative, rather than restrictive. The disclosure, however, both as to organization and method of operation, together with objects, features, and advantages thereof, may best be understood by reference to the following detailed description when read with the accompanying figures, in which:
It will be appreciated that for simplicity and clarity of illustration, elements shown in the figures have not necessarily been drawn to scale. For example, the dimensions of some of the elements may be exaggerated relative to other elements for clarity. Further, where considered appropriate, reference numerals may be repeated among the figures to indicate corresponding or analogous elements.
In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the disclosure. However, it will be understood by those skilled in the art that the present disclosure may be practiced without these specific details. In other instances, well-known methods, procedures, components and circuits have not been described in detail so as not to obscure the present disclosure.
Unless specifically stated otherwise, as apparent from the following discussions, it is appreciated that throughout the specification discussions utilizing terms such as “processing”, “computing”, “calculating”, “determining”, or the like, refer to the action and/or processes of a computer device, a computer or computing system, or similar electronic computing devices, that manipulate and/or transform data represented as physical, such as electronic, quantities within the computing system's registers and/or memories into other data similarly represented as physical quantities within the computing system's memories, registers or other such information storage, transmission or display devices.
The present disclosure may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment containing both hardware and software elements. In a preferred embodiment, the disclosure is implemented in an embodiment containing both hardware and software elements, which includes but is not limited to firmware, resident software, microcode, and so on.
Embodiments of the present disclosure may include apparatuses and devices for performing the operations described herein. This apparatus and devices may be specially constructed for the desired purposes, or it may comprise a general purpose computer selectively activated or reconfigured by a computer program stored in the computer.
Furthermore, the disclosure may take the form of a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system. For the purposes of this description, a computer-usable or computer readable medium can be any apparatus or device that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.
A data processing system suitable for storing and/or executing program code may include at least one processor coupled directly or indirectly to memory elements through a system bus. The memory elements may include local memory employed during actual execution of the program code, bulk storage, and cache memories which provide temporary storage of at least some program code in order to reduce the number of times code has to be retrieved from bulk storage during execution. Input/output or I/O devices (including but not limited to keyboards, displays, pointing devices, and so on) can be coupled to the system either directly or through intervening I/O controllers.
The processes presented herein are not inherently related to any particular device or other apparatus. Various general purpose systems may be used with programs in accordance with the teachings herein, or it may prove convenient to construct a more specialized device to perform the desired method. The desired structure for a variety of these systems will appear from the description below. In addition, embodiments of the present disclosure are not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of the disclosures as described herein.
Referring now to
Phase accumulator 102 is an arithmetic device that performs the discrete function Sn=Sn−1+d, which means that, during the discrete integration, the value (Sn) of the new phase representing parameter is computed by incrementing the previously computed phase value Sn−1 by using some known increment value (d). Two basic DDS phase accumulator structures exist in the market, one of which is designed to directly manipulate binary data and the other is designed to manipulate decimal values by accumulating data in a binary coded decimal (BCD) format.
Memory unit 102, or mapping device 102, performs non-linear transformation of w*t to corresponding Sin(w*t). This function is usually implemented with the use of Read Only Memory (ROM) or Random Access Memory (RAM) based lookup tables (LUTs) that contain a plurality of table entries, each of which containing a w*t value and a corresponding Sin(w*t) value associated with the w*t value. For example, an entry of memory unit 102 may include the value w*t=π/2 (in radians) and an associated value 0.50 (Sin(π/2)=0.50). Typically, the plurality of w*t values (and the respective Sin(w*t) values) are arranged in the memory unit 102 in such as way that, when the LUT entries are visited from one end of the LUT to the other end of the LUT, sinusoidal cycle(s) will be formed.
DAC unit 104 consists of a switch matrix and several current sources. DAC unit 104 is considered in many cases as the performance limiting factor of DDS frequency generators, because DACs conversion time (from a digital value to an analog value) is often considerable, which limits the upper frequency limit of signals generated by DDS frequency generators. Filter 106 filters out unwanted frequency content in the output of DAC 104, for generating a pure single frequency signal at the output (shown at 107) of DDS 110.
Referring now to
Referring now to
Referring now to
However, at instant TS1 (shown at 161) the frequency synthesizer (not shown) switches frequencies, from fA to fB in such a way that the phase value of the signal becomes the value φB1 (shown at 171), which is the value expected at TS1 (shown at 161) for fB, as opposed to the value φA1 (shown at 181) which is the value of fA. In this respect, it may be said that the signal with the frequency fB has resumed its (expected phase value), as switching from fA to fB is accompanied by phase discontinuity (phase coherency) which results from the signal switching from phase line 150 (associated with fA) to phase line 155 (associated with fB). Likewise, at instant TS2 (shown at 162) the frequency synthesizer switches frequencies, now from fB to fA, in such a way that the phase of the signal, which now has the value φB2 (shown at 172) assumes the value φA2 (shown at 182), which is the value expected at TS2 (shown at 162) for fA. In this respect, it may be said that the signal with the frequency fA has resumed its expected phase, because switching from fB to fA is accompanied by a phase discontinuity (phase coherency) which results from the signal switching back from phase line 155 (associated with fB) to phase line 150 (associated with fA).
Referring now to
Signal d also switches, at time instant 501, from high-frequency reference signal b to low-frequency reference signal and back to high-frequency reference signal b (at time instant 502). However, signal d has a smooth (continues) phase behavior. When the frequency of signal d changes to a new frequency, signal d does not have the same phase as the reference signals a or b, because some portion(s) of signal d around the transition(s) time instant(s) has/have temporal characteristics (shape) that matches neither reference signal a nor reference signal b. An exemplary portion that does not match the shape of reference signals and/or b is the portion confined between peaks 511 and 512. This type of phase behavior is problematic to many applications such as radars. Signal d demonstrates that whenever the frequency of a signal switches from one frequency to another and back to the previous frequency, the signal returns to the previous frequency with an unexpected (unknown or arbitrary) phase. A traditional frequency synthesizer which enables the generation of phase-coherent signals was is shown in
Referring now to
Referring now to
Let the required frequency resolution, or incremental changes step (the space between each two adjacent frequencies within the operating frequency range of DDS frequency synthesizer 700), be designated FLSB. For example, FLSB may equal 1 Hz. For the sake of simplicity external clock pulse generator 701 is shown in
Assuming DDS frequency synthesizer 700 is required to cover a frequency range from near DC to Fmax, the frequency of the clock pulse generator (CLK 701 in
F
CLK=2N·FLSB (1)
where N is the number of binary bits required to comply with Nyquist's sampling law and to satisfy expression (1) above.
For example, a DDS (such as DDS 700) that is required to cover the frequency range of near DC to 50 MHz shall be driven by a clock generator whose frequency FCLK=227*1≅134 MHz, because, in this example, the smallest number (N, shown also at 730) of binary bits that are required for obtaining such a frequency (FCLK) is N=27, because with N=26 FCLK≅67 MHz (which does not comply with Nyquist's sampling law), and with N=28 FCLK≅268 MHz (which corresponds to a sampling rate that is much faster than is practically required). External clock 701 causes the time-counter 702 to count from 0 to 2N−1, after which the counter's value returns to zero, for which reason the counting range 2N of time-counter 702 can be used for generating one cycle of the synthesized signal. The time length (TCLK) of each cycle of CLK 701 can be calculated in the following way:
T
CLK=1/FCLK (2)
Therefore, the time length TSYN of each cycle of the synthesized signal (at the output 720 of DDS frequency generator 700) equals:
T
SYN
=T
CLK*2N=1/FCLK*2N (3)
From expressions (2) and (3) one may get:
Expression (4) implies that, for a given external frequency FCLK, time-counter 702 completes one cycle (of the synthesized signal) every 1/FLSB seconds. Assuming that FLSB=1 Hz, counter 702 completes a cycle in one second. The time word (N bits, shown at 730) of time counter 702 is fed to phase multiplier 704, to which another control signal—an M-bit frequency word (shown at 732)—is fed, which represents the required synthesized frequency (f). Freq (shown at 731), which is represented by the M-bit frequency word (shown at 732) may have any binary value from 0 to 2M−1. Nevertheless, in order to satisfy Nyquist's Law, M shall be equal to, or less than, N−1.
Phase multiplier 704 multiplies the N-bit time word of time-counter 702 (which represents the lapsing time (t)), with ‘Freq’ (the M-bit frequency word representing the required synthesized frequency (f)), to obtain a phase word associated with the synthesized frequency. The larger is N the more phase points there are on a 360′-phase circle and, consequently, the smaller the phase jump-size (and therefore the better the phase resolution). For example, for N=3 there are 23=8 phase points with 360°/8=45° phase jump-size (0°, 45°, 90°, 135°, 180°, 225°, 270°, and 315°). Likewise, for N=5 there are 32 phase points with phase jump-size of 11.25°. The value of Freq remains substantially the same and changes only if it is required or desired to change the frequency of the synthesize signal.
The resulting product (shown at 733) may have a maximum of N+M bits. Since the product of f and t (f*t) represents the phase (the phase being w*t=2πf*t) and it is periodical in 2π (in radians, or 360 degrees), a modulus of the resulting product is taken (as shown by expression (5) below) to generate, or compute, a new control word:
i=mod(f·t,2N) (5)
In our example, the (N=) 27-bit time word (which represents the time t) and the (M=) 26-bit frequency word (which represents the frequency (f)) are multiplied by phase multiplier 704, and only the 27 binary Least Significant Bits (LSB) of the product are kept (the product being truncated by discarding the other bits), which is equivalent to the application of a 27-bit (N=27 in this example) modulus operator. Put differently, the value of ‘i’ is not allowed to be greater than the maximal value obtainable by using (N=) 27 bits. Phase multiplier 704, therefore, outputs an N-bit phase word (at 733), which is utilized to access a corresponding entry in LUT Sin(x) 706 and a corresponding entry in LUT Cos(x) 708, and to calculate an error value, as is more fully described hereinafter LUT Sin(x) 706 may include entries representative of a sinusoidal signal that is out-of-phase with respect of the sinusoidal signal represented by entries included in LUT Cos(x) 708.
Now, the new word i in expression (5) can be used in the calculation process of the analog voltage output by DAC 714, as is shown in expression (6):
Sin(2·π·i/2N) (6)
where 0≦i/2N≦1 for rendering the function argument cyclic in the range 0÷2π (in radians), or 0÷360° (in degrees).
In cases where N is relatively small, a single LUT may be used to find corresponding Sine(w*t) values. However, N is normally large and, therefore, the implementation of a 227-entry LUT with, say 16-bit long words, will result in a large-size LUT and, therefore, in a complicated-to-handle and expensive LUT. The size problem associated with the LUT(s) arises because it is desired, on one hand, to evaluate Sin(2·π·i/2N) for essentially every possible ‘i’. However, on the other hand, it is problematic to store all of the possible calculation results in a LUT(s) due to the impractical size of the resulting LUT table(s). If not all ‘i’ values are accurately calculated, for example because of using poor approximation, the output signal of the frequency synthesizer will suffer from a large spurious; that is, the frequency synthesizer's spectral purity will be effected. Therefore, an algorithm may be used, in accordance with the present disclosure, for maintaining spectral purity, by storing only few values of i, with the respective calculation results of Sin(2·π·i/2N) and using the relatively small number of stored values (of i and Sin(2·π·i/2N)) to calculate un-stored i values and their respective Sin(2·π·i/2N) values, whereby to insure that essentially each cycle in the synthesizer's output signal is pure sinusoidal and it is essentially a precise replica of the other cycles in the synthesizer's output signal; that is, so long as the signal's frequency remains unchanged.
Assuming that it is wanted to calculate the value of Sin(y) where y=x+Δx, and the result of the Sin(x) is known and Δx is the difference between a stored value and an un-stored value that is to be calculate, the value of Sin(x+Δx) may be approximated using trigonometric expression (7):
Sin(x+Δx)=Sin(x)·Cos(Δx)+Cos(x)·Sin(Δx) (7)
The value of Δx (the difference between a stored value and an un-stored value that is to be calculate) can be determined to be very small, for which reason it can be decided that Cos(Δx) roughly equals 1.0 and Sin(Δx) roughly equals Δx. Employing these assumptions on expression (7) yields expression (8):
Sin(x+Δx)≈Sin(x)·1+Cos(x)·Δx+error(Δx2) (8)
In the frequency generator of
The values of N1 and N2 are defined according to two considerations. On one hand N1 should be kept as minimal as possible in order to keep LUT Sin(x) 706 as small as possible. On the other hand, the value of N2 (=N−N1) should be also kept as minimal as possible in order to keep the approximation error (Δx) to a minimum. For a given application, the minimal usable, or allowable, value of N1 may be obtained using mathematical simulation that will show the spurious signal level resulting from this approximation error (Δx). If the value of N1 is smaller than the ‘minimal usable value of N1’, the approximation in expression (8) will not suffice, which will result in a reconstructed output signal that will deviate from the ideal (pure), or nearly ideal, sinusoidal waveform. In the context of the present disclosure a non-ideal sinusoidal waveform introduces unwanted signals that are called ‘spuriouses’. After setting the value of N1, the value of N2 is set to be N−N1. It has been found in simulations that, for many applications, a value of N1=10 is more that sufficient, and that the resulting LUTs' size is minimal [2K-memory size, with 16-bit long digital words). In order to generate a digital signal corresponding to the required Sin(x+Δx) value approximation, as detailed in the approximation formula above, an adder (shown at 712) is used to sum up the digital Sin(x) data generated by LUT Sin(x) 706 with the output of error multiplier 710 that generates data that corresponds to the value of Cos(x) (generated by LUT Cos(x) 708) multiplied by the error factor N2 which is the LSB part of the binary number received from phase multiplier 704. Now, the calculated voltage output (in digital format) of adder 712 is fed (shown at 737) to k-bit DAC 714 (‘k’ may be, for example, 16), which generates and outputs (shown at 738) an analog signal with the required frequency and phase. The analog signal output by k-bit DAC 714 is then fed (shown at 738) to reconstruction filter (LPF) 716, to reduce unwanted frequency harmonics and to maintain the resulting output signal (at 720) substantially at constant amplitude. In most practical cases, where the maximum frequency of the generated signal (at 720) is considerably lower than the frequency FCLK of the external clock, Reconstruction filter 716 may be relatively simple.
Referring now to
The avowed goal of the present disclosure, of maintaining phase coherency when frequency changes occur in an output signal, is obtained because, regardless of the application of the M-bit control word (shown at 732 in
While certain features of the disclosure have been illustrated and described herein, many modifications, substitutions, changes, and equivalents will now occur to those skilled in the art. It is, therefore, to be understood that the appended claims are intended to cover all such modifications and changes as fall within the true spirit of the disclosure.
Number | Date | Country | Kind |
---|---|---|---|
176652 | Jun 2006 | IL | national |