GB2399241A - Waveform generation - Google Patents

Waveform generation Download PDF

Info

Publication number
GB2399241A
GB2399241A GB0305143A GB0305143A GB2399241A GB 2399241 A GB2399241 A GB 2399241A GB 0305143 A GB0305143 A GB 0305143A GB 0305143 A GB0305143 A GB 0305143A GB 2399241 A GB2399241 A GB 2399241A
Authority
GB
United Kingdom
Prior art keywords
phase
output
value
accumulator
waveform
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
GB0305143A
Other versions
GB2399241B (en
GB0305143D0 (en
Inventor
Neil Edwin Thomas
Peter John Howlett Fox
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Aeroflex Ltd
Original Assignee
IFR Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by IFR Ltd filed Critical IFR Ltd
Priority to GB0305143A priority Critical patent/GB2399241B/en
Publication of GB0305143D0 publication Critical patent/GB0305143D0/en
Priority to PCT/GB2004/000532 priority patent/WO2004079885A2/en
Priority to US10/548,115 priority patent/US7702707B2/en
Publication of GB2399241A publication Critical patent/GB2399241A/en
Application granted granted Critical
Publication of GB2399241B publication Critical patent/GB2399241B/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/02Digital function generators
    • G06F1/03Digital function generators working, at least partly, by table look-up
    • G06F1/0321Waveform generators, i.e. devices for generating periodical functions of time, e.g. direct digital synthesizers
    • G06F1/0328Waveform generators, i.e. devices for generating periodical functions of time, e.g. direct digital synthesizers in which the phase increment is adjustable, e.g. by using an adder-accumulator
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M1/00Analogue/digital conversion; Digital/analogue conversion
    • H03M1/02Reversible analogue/digital converters

Abstract

A waveform generator for generating a smooth version of an original waveform which contains abrupt transitions, includes a phase accumulator 81 incremented at successive sampling times to produce an output representative of the phase of the original waveform, a phase scaler 85 arranged to convert the residual contents of the accumulator following a transition, computing means 87 responsive to the transition to calculate a number of samples along a smooth transition, each offset from the sampling times, and a sequencer 88 to replace the otherwise abrupt transition with the sequence of samples from the computed smooth transition.

Description

IMPROVED WAVEFORl\l GENERATION The present invention relates to a method
and apparatus for generating an improved waveform, and in particular a waveform containing abrupt transitions.
In digital and electronic systems there is often a requirement to generate an analogue waveform from a number of discrete digital samples. This is generally accomplished by using a sample generator of some description to produce a stream of discrete samples at fixed time intervals representing the desired waveform and to input the generated samples to a digital-to-analogue converter (DAC), generally referred to as Direct Digital Synthesis (DDS), However, certain waveforms are more difficult to produce using this scheme than others.
For example, it is relatively difficult to produce an accurate analogue square wave signal from a sampled system because a simple square wave requires an infinite bandwidth to be represented. If the period of the square wave required is not an integer number of samples, the sampled system must approximate the square wave by placing output edges of the waveform on the next available sample. This means that the output edge can be up to one sample time late, the net effect being that the output edge will move back and forth over one sample time. The movement of the output edge is referred to as edge j itter. Such edge jitter is usually not acceptable.
One possible solution to this problem is to use the sample generator to generate a sine wave, which when anti-alias filtered can provide accurate zero crossings. A comparator is then used to create the square wave, with the zero crossings causing an output edge to be generated. However, additional circuitry is required to provide the comparator and necessary two reference voltage generators in addition to control and calibration circuitry.
This increases the complexity and expense of the required circuitry. Furthermore, in certain electronic applications the additional circuitry required cannot be physically fitted within the available space, whether this is in terms of discrete components or integrated circuit silicon wafer construction.
Another solution is to vary the frequency of the sample clock so that it is an exact multiple! of the edge repetition rate. Varying the sample clock frequency is often not an option when the same clock is used to generate multiple independent sources, as is frequently the case.
Another solution is to use a sample clock frequency much greater than the edge repetition rate, for instance 1000 times greater. Again, this possible solution has its own shortcomings. Using a very high sample clock frequency is generally too expensive.
According to a first aspect of the present invention there is provided a waveform generator for generating a data stream comprising a plurality of data values at predetermined sample times, the data stream being representative of a smooth version of an original waveform, the original waveform including at least one abrupt transition, the waveform generator comprising a phase accumulator arranged to provide an output representative of the phase of the original waveform, the accumulator output being sequentially incremented by a predetermined value at successive sample times, a transition detector arranged to receive the accumulator output and to provide an output signal when the accumulator output is at least equal to a value representative of the phase of the original waveform at the point of an abrupt transition, a phase scaler arranged, in response to receiving the output signal from the transition detector, to determine from the accumulator output the phase difference between the phase represented by the accumulator output and the phase of the original waveform at the point of the abrupt transition and to convert the phase difference to a time I value, a data processor arranged to generate a sequence of data values representative of a smooth transition offset by the time value from the sample times and a sequencer arranged to insert the sequence of data values into the datastream. ; Preferably, the data processor is arranged to calculate the sequence of data values representative of the smooth transition in accordance with the time value output from the phase scaler.
Alternatively, the waveform generator may further comprise a data storage device having a plurality of predetermined sequences of data values, each predetermined sequence being representative of a smooth transition being offset by a particular value of the time value output from the phase scaler, the data processor being arranged to select the predetermined sequence of data values corresponding to a particular time value that is closest in value to the time value output from the phase scaler.
Additionally or alternatively, the waveform generator may further comprise an offset generator arranged to receive the output from the phase accumulator, to sum the output value with a predetermined offset value and to provide the product of the summation to the transition detector, wherein the transition detector provides a further output signal representative of a further abrupt transition.
Preferably, the predetermined increment value is variable, thereby allowing the frequency of the generated waveform to be varied.
Preferably, the smooth transition substantially corresponds to a gaussian pulse response convolved with a square wave.
According to a second aspect of the present invention there is provided a method of generating a waveform, the waveform comprising a plurality of data values at predetermined sample times, the waveform being a smooth representation of an original waveform, the original waveform including at least one abrupt transition, the method comprising incrementing a phase accumulator by a predetermined value that successive sample times and providing an output from the phase accumulator, the output being representative of the phase of the original waveform, determining when the accumulator output is at least equal to a value representative of the phase of the original waveform at the point of an abrupt transition, determining from the accumulator output at the point of an abrupt transition the difference between the phase represented by the accumulator output and the phase of the original waveform at the point of the abrupt transition and converting the phase difference to an offset time value, generating a sequence of data values representative of a smooth transition offset by the converted time value from the sample times and inserting the generated sequence of data values into the plurality of data values comprising the generated waveforms.
The sequence of data values representative of the smooth transition may be calculated mathematically in accordance with the offset time value, or alternatively may be selected from a plurality of stored sequences.
Additionally or alternatively, an offset value may be summed with the output of the phase accumulator and a determination made when the summed product is at least equal to a value representative of the phase of the original waveform at the point of a further abrupt transition.
Preferably, the smooth transition corresponds substantially to a gaussian pulse response convolved with a square wave. The value by which the phase accumulator is incremented may also be variable.
According to a third aspect of the present invention is a provided a waveform generator for generating a sequence of data values at predetermined time intervals, the sequence of data values being representative of a smooth version of an original waveform, the original waveform comprising periods of constant amplitudes separated by abrupt transitions, the waveform generator comprising a phase accumulator arranged to provide an accumulator output the value of which is incremented by a predetermined value at each predetermined time interval. The accumulator output being representative of the phase of the original waveform, a phase mapper arranged to receive the accumulated output and to generate a modified phase output in accordance with the received accumulator output, and an output generator arranged to output a data value of said sequence of data values in accordance with the modified phase output received from the phase mapper.
The output generator preferably comprises a look-up table having a plurality of predetermined data values each corresponding to a modified phase output value.
Additionally, the phase mapper may generate a constant modified phase output when the accumulator output is representative of a period of the original waveform having a constant amplitude and wherein said constant modified phase output corresponds to a single data value in the look-up table.
Additionally or alternatively, the phase mapper may further comprise comparator means for comparing the accumulator output with one or more predetermined threshold values, the or each threshold value defining the boundary between said periods of constant amplitude in tile original waveform.
According to a fourth aspect of the present invention there is provided a method of generating a sequence of data values at predetermined time intervals, the sequence of data values being representative of a smooth version of an original waveform, the original waveform comprising periods of constant amplitude separated by abrupt transitions, the method comprising incrementing a phase accumulator by a predetermined value at successive time intervals and providing an accumulator output that is representative of the phase of the original waveform, modifying the accumulator output as a function of the accumulator output to generate a modified phase output and generating a data value comprising one of the data values of the sequence of data values in accordance with the modified phase output.
Preferably, the generated data value is derived from a look-up table having a plurality of data values each corresponding to modified phase output value.
Additionally, the modified phase output may be a constant value when the accumulator output is representative of a period of the original waveform having a constant amplitude and the constant value corresponds to a single data value in the look-up table.
Additionally or alternatively, the method may further comprise comparing the accumulator output with one or more predetermined threshold values, the or each threshold value corresponding to a boundary between the periods of constant amplitude in the original waveform.
Embodiments of the present invention are described hereinafter, by way of illustrative example only, with reference to the accompanying figures, of which: Figure 1 is a schematic illustration of a prior art accumulator; Figure 2 illustrates a number of typical count sequences of a prior art accumulator; Figure 3 illustrates the effect of edge jitter in the time domain; Figure 4 illustrates the effect of edge jitter in the frequency domain; Figure 5 illustrates the origin of the error signal from a prior art square wave generator; Figure 6 shows a number of typical filtered transition waveforms according to an embodiment of the present invention; Figure 7 shows the relationship between an abrupt step, a gaussian pulse, and the filtered edge produced; Figure 8 is a schematic illustration of a waveform generator according to an embodiment of the present invention; Figure 9 is a schematic illustration of a waveform generator according to a first embodiment of the present invention; Figure 10 is a schematic illustration of a waveform generator according to a second embodiment of the present invention; Figure 11 is a schematic illustration of a waveform generator according to a third embodiment of the present invention; Figure 12 illustrates the relationship between accumulator phase, mapped phase, and output waveforms for an embodiment of the present invention; Figure 13 is a schematic illustration of a waveform generator according to a further embodiment of the present invention; I; igure 14 is a schematic illustration of a waveform generator according to a further embodiment of the present invention; Figure 15 is a schematic illustration of a waveform generator according to another embodiment of the present invention; Figure 16 illustrates the reduction in edge jitter in the time domain of an embodiment of the present invention; and Figure 17 illustrates the reduction in edge jitter in the frequency domain of an embodiment of the present invention.
Figure I shows the components of a prior art phase accumulator, which is used to keep track of the phase of the required underlying waveform. The phase accumulator consists of a register 11 and an adder 12, the register clocked by the system sampling clock 13. Each clock cycle, the value contained in the register is incremented by the value of the phase increment 15.
The accumulator may be built with any length word, but in practice it is long enough only to achieve sufficient frequency resolution for the intended application. For instance a 32 bit phase accumulator clocked at 100MHz has a resolution of 23mHz. The value output by the accumulator is an integer running from 0 to the size of the accumulator-1. However, the output can also usefully be interpreted as a fractional value running from 0 to nearly 1, which represents the phase of the required waveform in cycles, by dividing the output by the accumulator length.
The example shown uses a short 5 bit accumulator for illustrative convenience, rather than a practical length such as 32 bits. However, the extension to any length is obvious. This accumulator can contain any number from 0 to 31 inclusive. If an increment operation would take its contents to 32 or above on the next cycle, the number is reduced module 32 before being stored. In the practical binary accumulator, this is achieved by simply retaining only the bottom 5 bits, and ignoring higher weight bits from the adder, thus an adder output of 32 will be stored as 0 for use in the next cycle.
The example shown is for a phase increment of 3. The value of this increment defines the frequency that will be reproduced. In this case, 32 successive additions will produce 3 cycles of output, the frequency is therefore 3/32nds of the sample rate. The value of the increment may also be regarded as a delta phase, as each addition advances the phase of the accumulator by 3/32nds of a cycle. Other values of increment will produce different frequencies. In particular, an increment of l will produce the lowest frequency, which is also equal to the frequency resolution of the phase accumulator.
Table 1 demonstrates the operation of the 5 bit accumulator. It tracks the accumulator contents for three sequences around the point where the MSB changes sign. In the case of an increment of 3, these exhaust all the possible paths through the transition. In general, with longer accumulators and larger increments, there will be many more possible sequences through any given region.
The three possible sequences for this example are tabulated in table 1, around the region at half a cycle, where the count changes from 15 to 16, and the MSB goes from O to 1.
Table 1
Sample number Sequence 11 1 Sequence 12 Sequence 13 1 12 10 11 2 15 13 14 3 18 16 17 4 21 19 20 In all three sequences, the most significant bit changes sign following sample number 2.
The prior art square wave generator will therefore output a transition at sample number 3, which is typically done by outputting the MSB itself.
The phase of each sequence is graphed as a continuous curve in Figure 2. The point where the transitions of the underlying ideal square wave occurs is the point where the continuous phase crosses defined phase values. For a square wave, these values are conventionally phase = 0 cycles, and phase = 0.5 cycles, which with a 32 count accumulator correspond to counts of O and 16 respectively.
The point at which the continuous phase curve crosses the count of 16 does not generally correspond to a sampling time. When the MSB change occurs in sequence 21 to the value 18, the underlying transition 24 occurs 2/3rds of a cycle before the sample time. When the MSB change occurs in sequence 23 to 17, the underlying transition 25 occurs 1/3rd of a cycle before the sample time. It is only when the MSB change occurs to 16 in sequence 22 that the underlying transition 26 occurs at the sample time.
it can therefore be seen that it is impossible to output an abrupt transition at the correct time, which in general will be unrelated to the predetermined sampling times, while being constrained to make output changes only at predefined sampling times.
The prior art square wave generator resolves this impossibility by not attempting to make transitions at the correct times, but by approximating those times to the sampling times.
Moving the output edges away from their correct times in this way introduces jitter.
Figures 3 and 4 show the effect of this jitter on measurements of the waveform.
Figure 3 is an oscillograph, which is triggered on the rising edge of the waveform. The source of the signal is a prior art square wave generator followed by an analogue anti-alias filter. It can be seen that each half cycle has been recorded as having two lengths rather than one. As each transition is constrained to occur at a sampling time, each half cycle cannot have the correct duration of N+0.3 sample times. The actual length produced for each half cycle by the prior art generator is either N cycles or N+l sampling times. The long term average phase and frequency will remain correct, even though individual transitions suffer from jitter.
Figure 4 shows the corresponding effect in the frequency domain. The large peaks in the spectrum display correspond to the fundamental signal and the first few harmonics that would be expected from a clean square wave. Between the main peaks is a forest of smaller peaks. The presence of these smaller peaks, which are undesired energy, can be explained either in the time domain or the frequency domain.
In the time domain, the movement of each edge away from where it should be is equivalent to the addition of a difference waveform, as shown in Figure 5. This waveform consists of a narrow error spike for most transitions. In the general case, the polarity and width of these pulses are pseudo random, and so will have a dense, low level spectrum, which is essentially unpredictable in detail. The desired square wave is shown as 51. Trace 52 is the clock waveform, and the result of delaying each edge until the next clock pulse is trace 53, which can change state only at clock pulse times. A copy of the original waveform is shown as 54, this is shifted to provide the best match between itself and the waveform that is actually output 53. Finally the difference between the best match for the output waveform is shown as 55. It is the energy of waveform 55 that is minimised when determining the shift required for the best match for waveform 54. It can be seen how small changes in the timing of the original square waveform with respect to the clock waveform can make individual pulses vanish or invert, rendering the detailed effect of the error waveform more or less unpredictable.
In the frequency domain, the higher harmonics of the square wave, which are implicitly present up to infinite frequency in the description of the underlying square wave, are aliased down to low frequency by the sampling process. In the general case the aliassed frequencies, which are N times the fundamental frequency module the sampling frequency, are pseudo random. Again, the spectrum is essentially unpredictable in detail.
The solution of the invention is to make an alternative approximation. This is that the edges of the waveform cannot be abrupt, but are allowed to extend for the duration of several sampling times, i.e. the waveform is smooth. This then allows them to be reproduced in their correct positions, even with the constraint that the DAC may make output changes only at regular sampling times. A few members from such a family of edges is shown in Figure 6. The family is defined across a duration of one sample time. Transitions 61 and 63 represent the earliest and latest that would be used, and transition 62 is a typical intermediate waveform.
The curve used for the edge approximation may be the step response of a realizable filter, or may be a mathematical curve which cannot be realised as a real filter. For instance, a gaussian curve and a half sine curve both have useful properties, but can only be expressed algebraically, rather than generated by the operation of a finite filter. The only constraints on the curve are that the edge must be compact in time, so as to provide a steep edge to approximate the transition, and compact in frequency, to remove the high harmonics of the square wave.
The prototype waveform chosen for the approximation is the result of convolving a Gaussian pulse response with the square wave. A gaussian curve is one of the best to use for compactness in both the time and frequency domains. There are two parameters to choose when making this approximation to a square wave. The first is the overall width of the curve, in this case 8 sample times has been chosen as a good compromise, which will give the resultant approximate square wave a transition sequence 8 samples long. The second is the accuracy of the gaussian pulse itself, in this case it has been truncated at sigma=4, (i.e. it extends over a period equal to 8 times the Standard Deviation) again a good compromise. Other applications may use other values with corresponding benefits in either the time or frequency domain. Figure 7 shows the effect of the convolution operation. One transition from the original square wave is shown as 71, the gaussian pulse as 72, and the resulting filtered transition which results from their convolution as 73.
A first embodiment of the invention is shown in Figure 8. The phase of the desired waveform is computed in a prior art phase accumulator 8 l, which is incremented on each clock cycle by a phase increment 82.
Each transition on the MSB of the phase accumulator output 83, which would be the square wave output of a prior art square wave generator, is detected by the transition detector 84.
This signals the scaler 85 to operate on the residual contents of the phase word 83 immediately following the transition, by dividing it by the increment 82. The result of this division 86 is the time difference between the theoretical transition of the underlying waveform, and the following discrete sampling time which signals the transition. Referring back to Figure 2, it can be seen in sequence 11 that when the residue was 2, and the phase increment was 3, the point at which the accumulator contents crossed the '16' line was 2/3rds of a sample before the sampling time.
Following the edge occurrence being signalled, the calculation means 87 must compute a series of points on the transition curve. Given an offset time 86 from the divider, these points will be at times offset + N. where time is expressed in units of the sample time. N varies from 0 to Nstepsl, where Nsteps is the number of steps to be used for the transitional waveform. It will be appreciated that the calculated points always occur at a sample time but the value of the points varies, the net result being that the overall curve is off et.
The samples from the calculation means arc provided to a sequencer 88, together with the edge signal 89. The edge signal indicates the requirement for a transition, with its polarity indicating the direction that the transition should occur in. Although the calculation means l may not finish its calculations until many samples after receiving the edge signal, the sequencer is able to construct a delayed version of the required waveform, by delaying all output samples by the same amount. This amount is chosen to be sufficient for the operation of the scaler, and for the completion of the sample calculations.
The waveform from the sequencer now has an edge which occurs a consistent time after the theoretical edge would have occurred, rather than a delay time which varies due to being approximated to the nearest sample time as in the prior art. The length of this delay, the latency between the value reached in the phase accumulator and the output, is of no consequence to the quality or form of the square wave signal. If the absolute time of the output signal is of importance, then this delay, often called a pipeline delay, can be managed by advancing the phase of the phase accumulator by the known amount of the delay.
It will be apparent that the square wave is a special case of rectangular waveforms, having a duty cycle of 50%. It is often required to generate waveforms with other duty cycles, which may have their own special applications. A waveform with a 33% duty cycle has no 3rd harmonic, a waveform with 20% or 40% duty cycle has no 5t'' harmonic. A waveform with a very small duty cycle approximates to a pulse, and has a relatively flat harmonic spectrum at low frequencies. It is often required to generate waveforms with a duty cycle variable from 40% to 60% to test the operation of equipment inputs which must continue to operate with variations from a nominal 50% duty cycle.
In a further embodiment of the invention, Figure 9, the accumulator 81 iS followed by an offset subtracter 91. In the first embodiment, the two events per cycle that defined transitions were the positive going and the negative going transitions of the MSB. These events, by their nature, define a 50% duty cycle. The effect of the subtracter is to define a second point in the cycle which can be used to signal a transition. Now, the signals for the two output transitions are a transition on the MSB of the accumulator value 83, and a transition on the MSB of the offset accumulator value 92.
A transition detector 93 monitors the MSB of each value. The hardware will not be set to produce two transitions which overlap, the scaling and transition computing hardware may therefore be shared by both transition events, using the multiplexer 94 to choose the correct number that represents the residue following the signalled transition.
The direction of the output transition is now signalled by which transition event caused the transition, rather than the polarity of the accumulator MSB.
In a further embodiment of the invention, Figure 10, the calculating means is replaced by a lookup table 101, which stores a number of precomputed transition waveforms, each of which represents a transition having a different effective delay time. Three of such waveforms are shown in Figure 6. Typically many more waveforms will be stored, for instance 64. It is now the function of the sequencer to select the waveform having the nearest delay to that output by the divider, and to sequence this waveform onto the output.
In the previous embodiment, the calculation means could work to as much precision as was produced by the phase accumulator. However, the number of address bits used to select a waveform from the LUT will typically be many fewer than produced by the phase accumulator. The wide word from the accumulator must be reduced to the same width as the address word by truncation or rounding.
In applications where real time modulation is not necessary, the phase increment will remain fixed for long periods of time. In this case it is more efficient to implement the scaling function by computing the reciprocal of the phase increment once when the output frequency is set up, and then to multiply the residual by this factor rather than using division. In applications where the frequency of the square wave is required to be modulated in real time, then the value of phase increment will be changed in real time, and the scaler must be implemented by real time division.
A normal lookup table DDS is well known in the art. As an alternative to computation of the transition times of a square wave, it may be thought possible to store a complete cycle of a filtered output waveform in a lookup table which maps waveform phase to waveform voltage. However, thiscan easily be seen to be impractical. Consider a lHz waveform that must be produced from a signal generator having a lOOMI-Iz clock. The LUT will be required to store lOOM samples. Efficiencies such as symmetry could be employed to reduce the number by a factor of two or four, but even 25M samples is not a practical table size. Another unique curve will be required for each duty cycle ratio that is required to be produced.
A further embodiment of the invention seeks to address the problem by noting that the waveform well away from the transitions contains no information, that is it is a consistent high or low. it is only in the vicinity of the transitions that the non-trivial samples are required to be stored in the LUT.
Accordingly, a non-linear mapping is used between the phase accumulator and the LUT, as shown in Figure 11. The relationship between the numerical values on the ports of the components of Figure 1 1 is shown in the graph in Figure 12. All numbers are interpreted as having values O to 1. The value of the phase word 83 from the accumulator is represented on the x axis 121. Similarly the axis 122 shows the value of the non- linearly mapped phase 1 12, and axis 123 shows the value of the LUT output 1 13, which is also the output from the invention.
The phase word 83 is divided into four regions, named according to the output produced from the LUT. These are steady high 124, low going 125, steady low 126, and high going 127. The boundaries are defined in terms of phase. If the boundaries maintain their phase value while the frequency of the square wave generator is varied, then the time duration of the transition regions will vary correspondingly. As the ideal duration of the transition is the minimum consistent with the spectral performance required, it is appropriate to reset the transition boundaries as a function of the generator frequency whenever changing that frequency, to maintain the transition duration constant at this minimum. It will be obvious that if a very high frequency waveform is being generated, a significant fraction of the whole cycle will be devoted to the transition, whereas for a low frequency square wave, only a small fraction of the cycle will be used.
The function of each part of the non-linear mapping will now be described with reference to Figure 12. All input phases that fall in the steady high part of the cycle 124 map to a single output, which when applied to the LUT following, produce the maximum output from the LUT.The input phases that fall in the low going region 125 are mapped linearly onto the LUT inputs that produce the low going half cycle. As the phase from the accumulator progresses through this region, the LUT produces outputs which follow the stored waveform down. The mappings for the steady low region and the high going region are equivalent to and inverted from the previous mappings described.
There is a choice of waveforms for the LUT 113. Figure 12 shows curves which are generated using a sinewave LUT. This would be advantageous in a versatile test instrument, as the LUT may be the same one that is normally employed when sine wave output is required, or be implemented as a COORDIC algorithm. Whereas use of a sine wave transition gives a very significant improvement over the performance of the prior art generator, other waveforms, such as an integrated Gaussian, are even better.
The LUT of Figure 12 and the LUT for lHz are different sizes, and have different contents.
It would be necessary to have a very large RAM based table, rather than ROM, which was re-written at every change of frequency, that or the necessity to have a different table for each frequency. Either of those would be very expensive. The non-linear phase mapping does two things. It allows a small table, or COORDIC algorithm, which encodes only the rising and falling portions of Figure 12, to do the job of the whole curve of Figure 12. It also allows one small table to be used for any frequency, by changing the mapping, rather than changing the contents of the table.
The mechanism required to produce the non-linear mapping is shown conceptually in Figure 13. Four subtracters 131 are used to compare the input phase with the boundaries of the mapping regions 128. When the output of the subtracter is positive, the input phase is less than the respective boundary. By comparing which of the subtracter outputs are positive and which negative, which may be done by observing the MSB of each number only, the control block 132 can determine in which region the input phase lies. It then drives the multiplexer 133 to select the fixed values of 0 for region 124, and 0.5 for region l 26. The regions that are linearly mapped are obtained by using the weighted sum of the distance of the input phase from both boundaries. The weighting is applied using multipliers 134 and summers 135. The appropriate output is selected in the multiplexer 133.
Figure 13 is a conceptual implementation which shows all the operations required for a general mapping. The practical implementation of Figure 14 has removed all of the operations that are redundant in Figure 13, when the savings inherent in using O and 0.5 as the fixed outputs are realised.
It will be apparent that the two multipliers are never required simultaneously in Figure 14, and so a further simple rearrangement is possible to multiplex one multiplier to serve both duties, under control of the control block 132.
Figure 14 is still more general than may be required. In particular, the boundaries A, B and C are all able to be moved to any general position in the cycle. If each boundary position is restricted to lie on multiples of 2n, then the further hardware simplification of Figure 15 becomes possible. Instead of comparing the accumulator phase across the whole word width of the phase word, it needs only be compared with the top few bits. This is because the restriction to boundaries on 2n boundaries forces all of the lower bits to zero on the boundaries.
It will be appreciated that restricting the transition duration to powers of 2 will prevent the length of the transition waveform being held constant as the period of the square wave is changed. The best that may be done is to choose a length that falls within a range of 2, for instance keeping the transition length at 8 or more samples, and less than 16 samples. If the application can tolerate this variation in waveform shape with frequency, then the hardware saving of Figure 15 over Figure 14 may be useful.
In an illustrative example, the compare block in Figure l 5 may be set up to operate as in table 2. Under these circumstances, it would produce the waveforms shown in Figure 12.
This example is written for n=3, though the generalization to any value of n will be À apparent to one skilled in the art. The top n MSBs are examined, and a decision is made as to which region the phase is in.
Value of phase word 3 MSBs Region 000, 001 High Low going oli, loo, 1ol, lie Low 111 High going
Table 2
In the low going and high going regions, the input phase, which covers 1/8th of a cycle in this example, must be scaled to cover lo cycle at the LUT. This is achieved by a left shift of 2 bit positions, or n-1 bit positions in the general case. As the width of the region that involves a scaling of the phase word is now restricted to 2n, it has been possible to replace general multiplier of Figure 14 with a simple left shift.
This example is for the general case where the duty cycle of the waveform is not 50%. It will be appreciated that yet further savings in logic complexity are possible in the special case of 50% duty cycle.
The fact that the boundaries must lie on multiples of 2n not only restricts the length of the transition regions as previously discussed, but also restricts choice of the length of high and low regions, and hence duty cycle achievable. For reasonably small 2n, for instance n=7, a resolution of better than 1% is possible for the duty cycle.

Claims (1)

1. A waveform generator for generating a data stream comprising a plurality of data values at predetermined sample times, data stream being representative of a smooth version of an original waveform, the original waveform including at least one abrupt transition, the waveform generator comprising: a phase accumulator arranged to provide an output representative of the phase of the original waveform, the accumulator output being sequentially incremented by a predetermined value at successive sample times; a transition detector arranged to receive the accumulator output and to provide an output signal when the accumulator output is at least equal to a value representative of the phase of the original waveform at the point of an abrupt transition; a phase scaler arranged, in response to receiving the output signal from the transition detector, to determine from the accumulator output the difference between the phase represented by the accumulator output and the phase of the original waveform at the point of the abrupt transition and to convert the phase difference to a time value; a data processor arranged to generate a sequence of data values representative of a smooth transition offset by the time value from the sample times; and a sequencer arranged to insert said sequence of data values into said data stream.
2. A waveform generator according to claim 1, wherein the data processor is arranged to calculate the sequence of data values representative of the smooth transition in accordance with the time value output from the phase scaler.
3. A waveform generator according to claim 1, further comprising a data storage device having a plurality of predetermined sequences of data values, each predetermined sequence being representative of a smooth transition being offset by a particular value of the time value output from the phase scaler, the data processor being arranged to select the predetermined sequence of data values corresponding to a particular time value that is closest in value to the time value output *om the phase selector.
4. A waveform generator according to any preceding claim, further comprising an offset generator arranged to receive the output from the phase accumulator, to sum the output value with a predetermined offset value and to provide the product of the summation to the transition detector, wherein the transition detector provides a further output signal representative of a further abrupt transition.
5. A waveform generator according to any preceding claim, wherein said predetermined increment value is variable.
6. A waveform generator according to any preceding claim, wherein the smooth transition corresponds substantially to a gaussian pulse response convolved with a square wave.
7. A method of generating a waveform, the waveform comprising a plurality of data values at predetermined sample times, the waveform being a smooth representation of an original waveform, the original waveform including at least one abrupt transition, the method comprising: incrementing a phase accumulator by a predetermined value at successive sample times and providing an output from the phase accumulator, the output being: representative of the phase of the original waveform; determining when the accumulator output is at least equal to a value representative of the phase of the original waveform at the point of an abrupt transition; determining from the accumulator output at the point of an abrupt transition the difference between the phase represented by the accumulator output and the phase of the original waveform at the point of the abrupt transition and converting the phase difference to an offset time value; generating a sequence of data values representative of a smooth transition offset by the converted time value from the sample times; and inserting the generated sequence of data values into the plurality of data values comprising the generated waveform. I 8. A method according to claim 7, wherein the sequence of data values representative of the smooth transition are calculated mathematically in accordance with the offset time value.
9. A method according to claim 7, wherein the sequence of data values representative of the smooth transition is selected from a plurality of stored sequences.
10. A method according to any one of claims 7 to 9, wherein the method further comprises summing an offset value with the output of the phase accumulator and determining when the summed product is at least equal to a value representative of the phase of the original waveform at the point of a further abrupt transition.
11. A method according to any one of claims 7 to 10, wherein the smooth transition corresponds substantially to a gaussian pulse response convolved with a square wave.
12. A method according to any one of claims 7 to 11, wherein the value by which the phase accumulator is incremented is variable.
13. A waveform generator for generating a sequence of data values at predetermined time intervals, the sequence of data values being representative of a smooth version of an original waveform, the original waveform comprising periods of constant amplitude separated by abrupt transitions, the waveform generator comprising: a phase accumulator arranged to provide an accumulator output the value of which is incremented by a predetermined value at each predetermined time interval, the accumulator output being representative of the phase of the original waveform; a phase mapper arranged to receive the accumulator output and to generate a modified phase output in accordance with the received accumulator output; and an output generator arranged to output a data value of said sequence of data values in accordance with the modified phase output received from the phase mapper.
14. A waveform generator according to claim 13, wherein the output generator comprises a look-up table having a plurality of predetermined data values each corresponding to a modified phase output value. I lS.A waveform generator according to claim 13 or 14, wherein the phase mapper generates a constant modified phase output when the accumulator output is representative of a period of the original waveform having a constant amplitude and wherein said constant modified phase output corresponds to a single data value in the
look-up table.
16. A waveform generator according to any one of claims 13 to 15, where the phase mapper comprises comparator means for comparing the accumulator output with one or more predetermined threshold values, the or each threshold value defining the boundary between said periods of constant amplitude in the original waveform.
17. A method of generating a sequence of data values at predetermined time intervals, the sequence of data values being representative of a smooth version of an original waveform, the original waveform comprising periods of constant amplitude separated by abrupt transitions, the method comprising: incrementing a phase accumulator by a predetermined value of successive time intervals and providing an accumulator output that is representative of the phase of the original waveform; modifying the accumulator output as a function of the accumulator output to generate a modified phase output; and generating a data value comprising one of the data values of the sequence of data values in accordance with the modified phase output.
18. A method according to claim 17, wherein the generated data value is derived from a look-up table having a plurality of data values each corresponding to a modified phase output value.
19. A method according to claim 18, wherein the modified phase output is a constant value when the accumulator output is representative of a period of the original waveform having a constant amplitude and said constant value corresponds to a single data value in the look-up table.
20. A method according to claim 17, 18 or 19, the method further comprising comparing I the accumulator output with one or more predetermined threshold values, the or each threshold value corresponding to a boundary between the periods of constant amplitude in the original waveform.
GB0305143A 2003-03-06 2003-03-06 Improved waveform generation Expired - Lifetime GB2399241B (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
GB0305143A GB2399241B (en) 2003-03-06 2003-03-06 Improved waveform generation
PCT/GB2004/000532 WO2004079885A2 (en) 2003-03-06 2004-02-12 Improved waveform generation
US10/548,115 US7702707B2 (en) 2003-03-06 2004-02-12 Waveform generation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB0305143A GB2399241B (en) 2003-03-06 2003-03-06 Improved waveform generation

Publications (3)

Publication Number Publication Date
GB0305143D0 GB0305143D0 (en) 2003-04-09
GB2399241A true GB2399241A (en) 2004-09-08
GB2399241B GB2399241B (en) 2006-04-12

Family

ID=9954242

Family Applications (1)

Application Number Title Priority Date Filing Date
GB0305143A Expired - Lifetime GB2399241B (en) 2003-03-06 2003-03-06 Improved waveform generation

Country Status (3)

Country Link
US (1) US7702707B2 (en)
GB (1) GB2399241B (en)
WO (1) WO2004079885A2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103116877B (en) * 2013-02-25 2016-08-03 中国水利水电科学研究院 A kind of reservoir level process smoothing processing method

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11689191B2 (en) 2021-03-30 2023-06-27 Stmicroelectronics International N.V. High frequency resolution digital sinusoid generator
CN115062476A (en) * 2022-06-20 2022-09-16 西北核技术研究所 Method for evaluating degree of deviation of electromagnetic pulse waveform from target waveform

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002005431A1 (en) * 2000-07-10 2002-01-17 Ciena Corporation Frequency synthesizer

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0486851A3 (en) 1990-11-19 1993-04-07 Tektronix Inc. Direct digital synthesizer with feedback shift register
JPH07193564A (en) 1993-12-25 1995-07-28 Nec Corp Device and method for reproducing clock
US6347325B1 (en) 1999-03-16 2002-02-12 Analog Devices, Inc. Direct-digital synthesizers
JP3597433B2 (en) 1999-12-20 2004-12-08 富士通株式会社 Clock adjustment device and optical disk device in data reproduction system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002005431A1 (en) * 2000-07-10 2002-01-17 Ciena Corporation Frequency synthesizer

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103116877B (en) * 2013-02-25 2016-08-03 中国水利水电科学研究院 A kind of reservoir level process smoothing processing method

Also Published As

Publication number Publication date
GB2399241B (en) 2006-04-12
WO2004079885A2 (en) 2004-09-16
GB0305143D0 (en) 2003-04-09
WO2004079885A3 (en) 2004-10-28
US20060165203A1 (en) 2006-07-27
US7702707B2 (en) 2010-04-20

Similar Documents

Publication Publication Date Title
KR101472822B1 (en) Method and apparatus for computing interpolation factors in sample rate conversion systems
JPH04502092A (en) Pseudo-random oscillations for frequency synthesized noise
Langlois et al. Novel approach to the design of direct digital frequency synthesizers based on linear interpolation
US7440987B1 (en) 16 bit quadrature direct digital frequency synthesizer using interpolative angle rotation
Reinhardt Spur reduction techniques in direct digital synthesizers
US20070276891A1 (en) Pulse Output Direct Digital Synthesis Circuit
EP0782062B1 (en) Reducing noise in digital frequency synthesizers
JPH0828614B2 (en) Generation method of phase correlation waveform
US7702707B2 (en) Waveform generation
US6867625B1 (en) Method and apparatus for high frequency digital carrier synthesis from plural intermediate carrier waveforms
US5619535A (en) Digital frequency synthesizer
Garvey et al. An exact spectral analysis of a number controlled oscillator based synthesizer
US7103622B1 (en) Direct digital synthesizer with output signal jitter reduction
Leitner et al. Design techniques for direct digital synthesis circuits with improved frequency accuracy over wide frequency ranges
Fang et al. Design and simulation of DDS based on Quartus II
US6317457B1 (en) Pulse density modulator
JP4198068B2 (en) Method and apparatus for digital frequency conversion
Samarah A novel approach for generating digital chirp signals using FPGA technology for synthetic aperture radar applications
US7164713B2 (en) Interpolating root nyquist filter for variable rate modulator
Samarah A 320 mhz digital linear frequency modulated signal generator for radar applications using fpga technology
US6518802B1 (en) Circuits and methods for generating an accurate digital representation of a sinusoidal wave
Napoli et al. A complete system to generate electrical noise with arbitrary power spectral density
US20100109715A1 (en) Method For Use in a Digital Frequency Synthesizer
EP0591477A1 (en) Arbitrary waveform generator architecture
US20020184274A1 (en) Sinusoid synthesis

Legal Events

Date Code Title Description
732E Amendments to the register in respect of changes of name or changes affecting rights (sect. 32/1977)

Free format text: REGISTERED BETWEEN 20201119 AND 20201125

732E Amendments to the register in respect of changes of name or changes affecting rights (sect. 32/1977)

Free format text: REGISTERED BETWEEN 20220811 AND 20220817

PE20 Patent expired after termination of 20 years

Expiry date: 20230305