AD9548
Data Sheet
Rev. E | Page 110 of 112
If x is an integer, then y = x. Otherwise, y is the nearest integer to
x. For example, round(2.1) = 2, round(2.5) = 3, and round(3.1) =
3.
The ceil() function
y = ceil(x)
If x is an integer, then y = x. Otherwise, y is the next integer to
the right on the number line. For example, ceil(2.8) = 3,
whereas ceil(2.8) = 2.
The min() function
y = min(x0, x1, ... xn)
where x0 through xn is a list of real numbers, and the value of y
is the number in the list that is the farthest to the left on the
number line.
The max() function
y = max(x0, x1, ... xn)
where x0 through xn is a list of real numbers, and the value of y
is the number in the list that is the farthest to the right on the
number line.
The log2() function
)
2
(
ln
)
(
ln
)
(
log
2
x
=
where ln() is the natural log function and x is a positive,
nonzero number.
Assume that the coefficient calculations for α, β, γ, and δ yield
the following results:
012735446
.
0
=
α
5
10
98672
.
6
×
=
β
5
10
50373
.
7
×
=
γ
002015399
.
0
=
δ
These values are floating point numbers that must be quantized
according to the bit widths of the linear and exponential
components of the coefficients as they appear in the register
map. Note that the calculations that follow indicate a positive
value for the register entries of β and γ. The reason is that β and
γ, which are supposed to be negative values, are stored in the
stored values to negative numbers within its signal processing
core. A detailed description of the register value computations
CALCULATION OF THE α REGISTER VALUES
The quantized α coefficient consists of four components, α0, α1,
α2, and α3 according to
3
2
1
0
quantized
α
+
×
=
≈
16
2
where α0, α1, α2, and α3 are the register values. α2 provides
front-end gain and α3 provides back-end gain, and α1 shifts the
binary decimal point of α0 to the left to accommodate small
values of α. Calculation of α1 is a two-step process, as follows:
)
0
)),
(
(log
ceil
,
1
(
if
2 α
α
<
=
w
[
] )0
,
)
,
0
max(
,
63
min
,
1
(
if
1
w
<
=
α
If gain is necessary (that is, α > 1), then it is beneficial to apply
most or all of it to the front-end gain (α2) implying that the
calculation of α2 is to be done before α3. Calculation of α2 is a
three-step process that leads directly to the calculation of α3.
)
0
)),
(
(log
ceil
,
1
(
if
2 α
α >
=
x
[
] )0
,
)
,
0
max(
,
22
min
,
1
(
if
x
y
>
=
α
)
,
7
,
8
(
if
2
y
≥
=
α
)
0
,
7
,
8
(
if
3
≥
=
y
α
Calculation of α0 is a two-step process, as follows:
)
2
(
round
16
3
2
1
z
α
+
×
=
[
])
,
1
max(
,
535
,
65
min
z
0 =
α
Using the example value of α = 0.012735446 yields
w = 6, so α1 = 6
x = 0 and y = 0, so α2 = 0 and α3 = 0
z = 53,416.332099584, so α0 = 53,416
This leads to the following quantized value, which is very close
to the desired value of 0.012735446:
1
0127356682
.
0
2
53416
22
≈
×
=
quantized
α
CALCULATION OF THE β REGISTER VALUES
The quantized β coefficient consists of two components, β0 and
β1 according to
)
17
(
1
2
β
+
×
=
≈
0
quantized
where β0 and β1 are the register values. Calculation of β1 is a
two-step process that leads to the calculation of β0, which is also
a two-step process.
))
(
(log
ceil
2
β
=
x
[
])
,
0
max(
,
31
min
x
1 =
β
)
2
(
round
17
1
y
β
+
×
=
[
])
,
1
max(
,
071
,
131
min
y
0 =
β
Using the example value of β = 6.98672 × 105 yields
x = 13, so β1 = 13
y = 75,019.3347657728, so β0 = 75,019
This leads to the following quantized value, which is very close
to the desired value of 6.98672x105:
5
30
10
986688823
.
6
2
019
,
75
×
≈
×
=
quantized
β