Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Vankka J. - Digital Synthesizers and Transmitters for Software Radio (2000)(en)

.pdf
Скачиваний:
65
Добавлен:
15.08.2013
Размер:
14.63 Mб
Скачать

Blocks of Direct Digital Synthesizers

143

with a hardware block producing an identical (or approximate) carry-out signal. This was the idea used in [Ert96], [Mer02].

9.2 Phase to Amplitude Converter

The spectral purity of the conventional direct digital synthesizer (DDS) is also determined by the resolution of the phase to amplitude converter. Therefore, it is desirable to increase the resolution of the phase to amplitude converter. Unfortunately, a larger resolution means higher power consumption, lower speed and greatly increased costs.

The use of parallel phase to amplitude converters to attain a high throughput has been utilized in [Has84], [Gol90], [Tan95b]. The DDS in Figure 9-4 utilizes the parallelism for the phase to amplitude converter to achieve high throughput. The DDS attains L times the maximum speed of a single phase to amplitude converter by paralleling L phase to amplitude converters. A L to 1 DEMUX transfers phases of the phase accumulator to phase to amplitude converters with flk/L. A L to 1 MUX alternatively selects

the outputs of the phase to amplitude converters with flk

The most elementary technique of compression is to store only π/2 rad of sine information, and to generate the LUT samples for the full range of 2 by exploiting the quarter-wave symmetry of the sine function. After that, methods of compressing the quarter-wave memory include: trigonometric identities, Nicholas method, the polynomial approximations or the CORDIC algorithm. A different approach to the phase-to-sine-amplitude mapping is

MSB

2nd MSB

2

P j

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

PHASE

k

k-2

 

 

 

 

k-2

 

m-1

 

 

 

m

 

 

 

 

 

 

COMPLE-

 

/2 SINE

COMPLE-

 

 

 

 

 

 

 

 

 

ACCUMU-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

MENTOR

 

 

LUT

 

 

MENTOR

 

 

 

2

 

 

LATOR

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

/2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

0

 

 

2nd MSB

 

1

 

 

 

 

 

MSB

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

0

Figure 9-5. Logic to exploit quarter-wave symmetry.

Table 9-1. Coding table to obtain full sine wave, where

Quadrant (q)

MSB

2nd MSB

0

0

0

1

0

1

2

1

0

3

1

1

θ is from 0 to π/2 sin(θ+ qπ/2)

sin(θ) sin(π/2 θ)

-sin(θ) -sin(π/2-θ)

144

Chapter 9

the CORDIC algorithm, which uses an iterative computation method. The costs of the different methods are an increased circuit complexity and distortions that will be generated when the methods of memory compression are employed. Because the possible number of generated frequencies is large, it is impossible to simulate all of them to find the worst-case situation. If the least significant bit of the phase accumulator input is forced to one, then only one simulation is needed to determine the worst-case carrier-to-spur level (see Section 7.3). In this chapter, 14-bit phase to 12-bit amplitude mapping is investigated. The results are only valid for these requirements. Some examples of commercial circuits using the above methods are also presented.

∆P j

PHASE

ACCU-

 

 

MULA-

 

TOR

MSB

2ND MSB 3RD MSB

3RD MSB

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m-1 m

k-3

0 − π/4

 

 

MUX

 

 

 

 

 

 

 

 

 

 

 

Sine

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

LUT

 

 

 

 

 

 

 

 

 

k

 

 

 

 

 

 

 

 

m-1 m

0 − π/4

 

 

MUX

 

 

 

 

 

 

 

 

 

 

 

 

 

Cosine

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

LUT

 

 

 

 

MSB

2ND MSB

Figure 9-6. Logic to exploit eight-wave symmetry.

Table 9-2. Coding table to obtain full sine and cosine waves, where θ is from 0 to π/4

Octant (o)

MSB

2nd MSB

3rd MSB

sin(θ+ oπ/4)

cos(θ+ oπ/4)

0

0

0

0

sin(θ)

cos(θ)

1

0

0

1

cos(π/4 θ)

sin(π/4 θ)

2

0

1

0

cos(θ)

-sin(θ)

3

0

1

1

sin(π/4 θ)

-cos(π/4 θ)

4

1

0

0

-sin(θ)

-cos(θ)

5

1

0

1

-cos(π/4 θ)

-sin(π/4 θ)

6

1

1

0

-cos(θ)

sin(θ)

7

1

1

1

-sin(π/4 θ)

cos(π/4 θ)

Blocks of Direct Digital Synthesizers

145

9.2.1 Non-Linear D/A Converter

A non-linear D/A-converter is used in the place of the sine look-up table (LUT) for the phase-to-sine amplitude conversion and linear D/A converter [Bje91], [Mor99], [Jia02], [Sha01], [Ait02], [Moh02]. A technique was proposed in [Jia02] to split the nonlinear D/A converter into a coarse D/A converter and a fine D/A converter. Gutierrez-Aitken et al. [Ait02] have reported a DDS with a 9.2 GHz clock rate in an advanced InP technology. It segments the phase angle into two sections, and uses the first two terms of the Taylor series for sine (see Section 9.2.3.6.3). Mohieldin et al. [Moh02] have recently described a nonlinear D/A converter architecture that uses a piecewise linear approximation of the sine function. The amplitude modulation is performed with analogue components in [Ait02], [Moh02]. The drawback of the non-linear D/A-converter is that the digital amplitude modulation cannot be incorporated into the DDS (see Figure 4-3).

9.2.2 Exploitation of Sine Function Symmetry

A well-known technique is to store only /2 rad of sine information, and to generate the sine look-up table samples for the full range of 2 by exploiting the quarter-wave symmetry of the sine function. The decrease in the look-up table capacity is paid for by the additional logic necessary to generate the complements of the accumulator and the look-up table output.

The sine wave is separated into π/2 intervals in Table 9-1, and each interval is called a quadrant (q). The two most significant phase bits represent the quadrant number. The full sine wave can be represented by the first quadrant sine, using the symmetric and antisymmetric properties of sine, as shown in Table 9-1 [Tie71], [McC84]. Therefore, the two most significant phase bits are used to decode the quadrant, while the remaining k-2 bits are used to address a one-quadrant sine look-up table in Figure 9-5. As shown in Figure 9- 5, the sampled waveform at the output of the look-up table is a full, rectified version of the desired sine wave.

Figure 9-6 shows the architecture for both sine and cosine functions (quadrature output). The architecture is a simple extension of Figure 9-5 with no increase in lookup table size, because one could take advantage of an eight wave symmetry of a sine and cosine waveform [McC84], [Tan95a]. The sine and cosine waves are separated into π/4 intervals in Table 9-2; each interval is called an octant (o). The three most significant phase bits represent the octant number. The sine and cosine curves for all octants can be represented by one octant of sine and one octant of cosine, using the symmetric and antisymmetric properties of sine and cosine. Hence, only the sine and cosine samples from 0 to /4 in Figure 9-6 need to be stored, where the co-

146

Chapter 9

sine wave from 0 to /4 is the same as the sine from π/2 to /4. The Exclusive Ors (XORs), negators and multiplexers (MUXs) in Figure 9-6 are used to obtain full sine and cosine waves by changing polarity and/or exchanging the first octant sine and cosine values according to the scheme defined by Table 9-2 [McC84].

In most practical DDS digital implementations, numbers are represented in a 2's complement format. Therefore 2's complementing must be used to invert the phase and multiply the output of the look-up table by -1. However, it can be shown that if a 1/2 LSB offset is introduced into a number that is to be complemented, then a 1's complementor may be used in place of the 2's complementor without introducing error [Nic88], [Rub89]. This provides savings in hardware since a 1's complementor may be implemented as a set of simple exclusive-or gates. This 1/2 LSB offset is provided by choosing look-up table samples such that there is a 1/2 LSB offset in both the phase and amplitude of the samples [Nic88], [Rub89], as shown in Figure 9-7 and Figure 9-8. In Figure 9-7, the phase offset must be used to reduce the address

THE PHASE ADDRESS (k)

THE PHASE ADDRESS (k)

IN THE THREE BIT CASE

IN THE THREE BIT CASE

010

 

 

010

001

 

 

 

 

 

 

 

 

011

001

 

 

 

 

 

 

 

 

 

 

 

011

000

 

 

 

 

 

 

 

 

 

 

100

 

 

000

 

 

 

 

/8

 

 

 

 

 

 

 

 

 

 

 

 

 

100

111

 

 

 

 

101

111

 

 

 

 

 

 

 

 

110

 

 

101

110

 

 

 

 

 

 

 

 

 

 

 

NO PHASE OFFSET

 

 

 

PHASE OFFSET

Figure 9-7. ½ LSB phase offset is introduced in all phase addresses. In this case ½ LSB correspond /16. The 1/2 LSB phase offset is added to all the sine look-up table samples. In this figure it is shown, that 1's complementor maps the phase values to the first quadrant without error

 

 

NO AMPLITUDE OFFSET

 

 

 

 

-1/2 LSB AMPLITUDE OFFSET

 

 

Twos

Nega-

1's

Error

Twos

Nega-

1's

Error

Compl.

tion

compl.

 

 

Compl.

tion

compl.

 

01

{

11

10

1

lsb

01

{

10

10

0

00

{

00

11

1

lsb

00

{

11

11

0

11

{

 

 

 

 

11

{

 

 

 

10

{

 

 

 

 

10

{

 

 

 

Figure 9-8. -1/2 LSB offset is introduced into the amplitude that is to be complemented; then the negation can be carried out with the 1's complementor in Figure 9-5. The -1/2 LSB offset introduces DC offset in the sine wave, which can be removed by adding +1/2 LSB offset to the D/A-converter output.

Blocks of Direct Digital Synthesizers

147

bits by two. If there is no phase offset, 0 and π/2 have the same phase address, and one more address bit is needed to distinguish these two values.

Garvey has shown if the phase to amplitude converter exploits the symmetry (sin(θ) = -s(θ+π)), then distortion is minimized [Gar90]. Furthermore, if the phase to amplitude converter is designed to preserve the symmetry, then the spurs corresponding to all even DFT frequency bins will be zero for any input phase increment word (P) [Tie71].

9.2.3 Compression of Quarter-Wave Sine Function

In this section, the quarter-wave memory compression is investigated. The width of the sine look-up table is reduced before taking advantage of the quadrant symmetry of the sine function (see Figure 9-5). The compression techniques are the trigonometric approximations, the so-called Nicholas architecture, the polynomial approximations and the CORDIC algorithm. For each method, the total compression ratio, the size of memory, the worst-case spur level and additional circuits are presented in Table 9-1. The amplitude values of the quarter-wave compression could be scaled to provide an improved performance in the presence of amplitude quantization [Nic88]. The optimization of the value scaling constant provides only a negligible improvement in the amplitude quantization spur level, so it is beyond the scope of this work.

9.2.3.1 Difference Algorithm

The difference algorithm approximates the sine function over the first quarter period by another function D(P) that can be easily implemented. In this algorithm, a look-up table is used to store the error (see Figure 9-9)

f (P) sin(π P) D(P), 0 ≤ P 1

(9.5)

2

 

which results in less memory wordlength requirements [McC84], [Nic88], [Lia97], [Yam98], [Sod00], [Pii01], [Lan01], [Liu01]. The simplest form is the sine-phase difference method [Nic88] that uses a straight-line approxi-

D(P)

m-1

f(P) =

P sin( P/2) - D(P) m-x-1 sin( P/2) LOOK-UP

TABLE

Figure 9-9. Difference algorithm.

148 Chapter 9

mation for the sine function. Compression of the storage required for the quarter-wave sine function is obtained by storing the function

 

 

 

f (P)

sin(π P) P

 

 

 

(9.6)

 

 

 

 

 

 

 

2

 

 

 

 

 

 

instead of sin( P/2) in the look-up table. Because (see Figure 9-10)

 

maxªsin(π P )

Pº

0 21 maxªsin(π P)º

(9.7)

 

 

¬

2

¼

 

 

 

 

¬

2 ¼

 

 

 

 

 

 

 

 

2 bits of amplitude in the storage of the sine function (x = 2 in Figure 9-9) are saved [Nic88]. The penalty for this storage reduction is the introduction of an extra adder at the output of the look-up table to perform the operation

 

ªsin(π P)

Pº

 

+ P

(9.8)

 

¬

2

¼

 

 

 

 

 

 

Another similar work of this category is a double trigonometric approximation, devised by Yamagishi et al. [Yam98], where the stored function is defined as

 

sin(π P)

1 25P

0 ≤ P

0 5

 

 

 

2

 

 

(9.9)

f (P)

 

 

π P)

 

 

 

sin(

0 75P 0 25

0 5 ≤ P

1

 

 

2

 

 

 

 

 

 

 

 

Amplitude

DATA STORED IN LUT f(P))

1

0.9

0.8

Sinewave

 

0.7

0.6

0.5

0.4

0.3

 

 

 

 

Sine-Phase Difference Method

 

 

 

 

 

 

 

 

 

 

e

 

 

 

Three Linear Segments (Liao)

0.2 Doubl

 

 

 

 

 

 

 

Trigonometric

 

ation

le

Approxim

 

 

 

 

 

Parabolic Approximation

0.1

 

 

 

 

 

 

 

00

/4

 

 

/2

 

Phase (Rad)

 

 

Figure 9-10. The data stored in LUT in Figure 9-9 for different methods.

Blocks of Direct Digital Synthesizers

149

This leads to a memory wordlength reduction of 3 bits (max(f(P)) 0.117 in

Figure 9-10), but the trade-off is a complementor and two adders [Yam98]. Parabolic approximation has been introduced [Sod00]. The stored func-

tion is defined as

 

 

f (P) sin(π P ) P(2 P)

0 ≤ P 2

(9.10)

2

This results in saving four bits of memory wordlength, but it requires an adder, two’s complementor and a multiplier.

The sinewave amplitude is approximated with three lines in [Lia97]. The storing function is [Lia97]

 

 

sin(π P)

1 375P

0 ≤ P

0 5

 

2

 

 

 

 

 

 

f (P) sin(π P)

0.875P0 25

0 5

≤ P

0

75

(9.11)

2

 

 

 

 

 

 

 

 

sin(π P)

0.375P 0 625

0

75 ≤ P

1

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

The word length of the sine LUT could be shortened by 4 bits (max(f(P)) 0.043 in Figure 9-10). The trade-off is three adders, two MUXs and control logic.

Langlois and Al-Khalili have proposed a method that involves splitting first quadrant angles into three sections, and to use a linear approximation in

each case [Lan01]. The stored function is defined as

 

 

sin(π P )

1 5P

0 ≤ P 0.3125

 

 

2

 

 

 

 

f (P)

sin(π P)

P 0.1563

0.3125 ≤ P 0 75

(9.12)

 

2

 

 

 

 

 

sin(π P )

0 5P 0 5

0 75 ≤ P 1

 

 

2

 

 

(P))

0.055

 

 

 

It also results in saving four bits of memory wordlength (max(f

in Figure 9-10) and requires two adders, two MUXs and control logic.

 

Figure 9-10 compares the function stored in the LUT (Figure 9-9) for the sinewave (reference), the sine-phase difference method [McC84], [Nic88], the double trigonometric approximation [Yam98], the parabolic approximation [Sod00], the three piecewise linear segments approximation [Lia97] and the three piecewise linear segments approximation [Lan01].

9.2.3.2 Splitting into Coarse and Fine LUTs

The following procedure and technique for LUT compression was presented in [Gol96]. The block diagram of the architecture is shown in Figure 9-11.

150

Chapter 9

The phase address "P" represents the input phase [0,

/2] scaled to a binary

fraction in the interval [0, 1]. The phase address of the quarter of the sine wave is decomposed to P = a + b, with the word lengths of the variables be-

ing a

A and b

B. Then, the function sin( a/2) is stored in a coarse

lookup table and the function g(a + b) selected so that

 

 

 

sin(π (a + b ))

sin(π a ) + g(a + b).

(9.13)

 

 

2

2

 

More specifically, the fine LUT are the differences between the true values of the sine waveform and the coarse LUT. Summing up the outputs of the coarse and fine LUT, the derived sine waveform is exactly the same as this one obtained from a single LUT of equivalent size. Clearly, this method does not decrease the total number of memory locations, but because the fine LUT output wordlength is smaller than m-1, it reduces the total number of bits. It is worth noticing that this algorithm is an error-free algorithm.

9.2.3.3 Angle Decomposition

The phase address of the quarter of the sine wave is decomposed to P = a +

b, with the word lengths of the variables being a

A and b

B. The fol-

lowing trigonometric approximation is made [Tie71], [Gor75], [Cur01b]

sin(π (a + b ))

sin(π a ) + cos(π a ) sin(π b),

(9.14)

2

2

2

2

 

which is valid if B is sufficiently small that cos(

b/2) 1. For this purpose,

sin( a/2), cos( a/2) and sin(

b/2) are stored in lookup tables. As distinct

from the Sunderland algorithm (see Section 9.2.3.4), the second term of the approximation (9.14) is computed rather than stored, as shown in Figure 9- 12. Due to the symmetry of the sine and cosine about /4, the size of the lookup tables containing sin( a/2) and cos( a/2) can be halved. Two 2:1 MUXs, which are controlled by the MSB bit of a, are needed to obtain the full quarter period sine wave, as shown in Figure 9-12.

A (9)

sin( a/2)

11

 

 

 

COARSE

 

12

LUT

11

 

A+B (12)

 

3

g(a + b

 

FINE LUT

Figure 9-11. Block diagram of architecture based on splitting into coarse and fine LUTs.

Blocks of Direct Digital Synthesizers

151

The drawback of this method is the introduction of a multiplier. Alternatively, the product of cos( a/2) sin( b/2) can be stored to the LUT, but it increases the LUT size [Gor75]. The hardware could be further reduced by replacing the standard multiplier with a truncated multiplier [Sch99], [Jou99], [Cur01a].

In (9.14), the term sin( a/2) provides low resolution phase samples, and the term cos( a/2) sin( b/2) gives additional phase resolution by interpolating between the low resolution phase samples. The hardware could be reduced by performing the interpolation about a point in the middle of the interpolation range (see Figure 9-14). In order to be able to perform interpolation around a point in the middle of the interpolation range, an offset /2A+2 has to be added to the coarse phase values (a). The term sin( a/2) is looked up and cos( a/2) sin( b/2) added or subtracted depending on the MSB bit of the fine phase (b). Therefore, we can halve the memory size by storing sin( b/2) and using the MSB of b to control the sign of the lookup table’s output [Gor75], [Cur01b]. However, a small degradation in spectral purity is expected. This method is beyond the scope of this book.

The phase address "P’" represents the input phase [0, /4] scaled to a binary fraction in the interval [0, 1]. The phase address for the quadrature wave is decomposed to P’ = a’ + b’ + c’. The trigonometric approximation

for quadrature wave (Figure 9-6) is given by [Gor75], [Cur01b]

 

sin(π (a + b ))

sin(π a ) + cos(π a ) sin(π b )

(9.15)

4

4

4

4

 

 

 

11

 

 

sin(

a/2)

 

 

11

MUX

LUT

6

15

12

11

A-1

5

11

6

cos( a/2)

MUX

LUT

 

 

sin(

b/2)

6

6

 

LUT

Figure 9-12. Block diagram of angle decomposition for quarter-wave sine function com-

pression.

152

 

 

 

Chapter 9

cos(π (a + b ))

cos(π a )

sin(π a ) sin(π b ).

(9.16)

4

4

4

4

 

The sin( b’/4) term appears in both (9.15) and (9.16), which allows memory to be shared between sine and cosine blocks [Gor75], [Chu98], [Cur01b].

9.2.3.4 Modified Sunderland Architecture

The original Sunderland technique is based on simple trigonometric identities [Sun84]. There are modifications to the original Sunderland paper. After this paper was published, a method of performing the two's complement negation function with only an exclusive-or, which does not introduce errors when reconstructing a sine wave, was published [Nic88], [Rub89]. This method works by introducing the 1/2-LSB offsets into the phase and amplitude of the sine LUT samples, as described in Section 9.2.2.

The phase address of the quarter of the sine wave is decomposed to P = a + b + c, with the word lengths of the variables being a A b B, and c C. In Figure 9-13, the twelve phase bits are divided into three 4-bit fractions such that a < 1, b < (2-4), c < (2-8). The desired sine function is given by

sin(π (a + b + c))

sin(π (a + b))cos(π c)

 

2

 

2

2

 

(9.17)

 

 

+ cos(π

(a + b)) sin(π

 

 

 

c).

 

 

 

2

2

 

 

Given the relative sizes of a

b, and c, this expression can be approxi-

mated by

 

 

 

 

 

sin(π (a + b + c))

sin(π (a + b)) + cos(π (a + b)) sin(π c).

(9.18)

2

2

 

2

2

 

The approximation is improved by adding the average value of b to a in the second term. In Figure 9-13, the coarse LUT provides low resolution phase

 

A (4)

 

 

 

 

sin((a+b) π/2)

11

 

B (4) COARSE

 

12

 

LUT

11

 

 

 

A (4)

 

 

 

 

cos((a+b)π/2)

4

 

C (4)

sin(cπ/2)

 

 

 

 

FINE LUT

sine function compression.

Соседние файлы в предмете Химия