Datasheet

AD9547 Data Sheet
Rev. E | Page 102 of 104
The min() function
y = min(x
0
, x
1
, ... x
n
)
where:
x
0
through x
n
is a list of real numbers.
y is the number in the list that is the farthest to the left on the
number line.
The max() function
y = max(x
0
, x
1
, ... x
n
)
where:
x
0
through x
n
is a list of real numbers.
y is the number in the list that is the farthest to the right on the
number line.
The log
2
() function
log
2
(x) =
)
2
(
)(
ln
x
ln
where: ln() is the natural log function.
x is a positive, nonzero number.
Assume that the coefficient calculations for α, β, γ, and δ above
yield the following results:
α = 0.012735446
β = −6.98672 × 10
−5
γ = −7.50373 × 10
−5
δ = 0.002015399
These values are floating point numbers that must be quantized
according to the bit widths of the linear and exponential com-
ponents 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
AD9547 registers as positive values. The AD9547 converts the
stored values to negative numbers within its signal processing
core. A detailed description of the register value computations
for α, β, γ, and δ follows.
Calculation of the α Register Values
The quantized α coefficient consists of four components: α
0
, α
1
,
α
2
, and α
3
, according to
α α
quantized
= α
0
× 2
16 − α
1
+ α
2
+ α
3
where:
α
0
, α
1
, α
2
, and α
3
are the register values.
α
2
provides front-end gain.
α
3
provides back-end gain.
α
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:
w = if(α <1, −ceil(log
2
(α)), 0)
α
1
= if(α <1, min[63, max(0, w)], 0)
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 cal-
culation of α
2
is to be done before that of α
3
. Calculation of α
2
is a three-step process that leads directly to the calculation of α
3
.
x = if(α > 1, ceil(log
2
(α)), 0)
y = if(α > 1, min[22, max(0, x)], 0)
α
2
= if(y 8, 7, y)
α
3
= if(y ≥ 8, y 7, 0)
Calculation of α
0
is a two-step process, as follows:
z = round(α × 2
16 + α
1
α
2
α
3
)
α
0
= min[65535, max(1, z)
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 = 53416.332099584, so α
0
= 53416
This leads to the following quantized value, which is very close
to the desired value of 0.012735446:
α
quantized
= 53416 × 2
22
≈ 0.01273566821