recommended netscape fonts:
14-point New Century Schoolbook or Helvetica
printable versions:
postscript
PDF with links
PDF without links
2001 Conf. on Information Sciences and Systems
The Johns Hopkins University, Baltimore MD, USA, March 21-23, 2001
Jeffrey O. Coleman
Naval Research Laboratory
Washington DC, USA
jeffc@alum.mit.edu
Arda Yurdakul
Kadir Has University
istanbul, Türkiye
a.yurdakul@ieee.org
In hardware DSP a signal can be scaled by a coefficient using
hardwired shifts and adds, but arithmetic operations are fewer when
subtractions are permitted also [1,2]. The standard
approach uses coefficients in CSD, a radix-two number system with
ternary coefficient set
, denoted in CSD digit strings in
this paper by {1,0,1}, and having the ``canonical'' property
that 1 and 1 are always followed by 0 in CSD strings. CSD
string 100.101, for example, represents 3.625, the dot product
of ternary coefficient vector
with powers
. So a CSD coefficient specifies
which input-signal shifts to add to the output, which to subtract from
it, and which to ignore.
CSD is quite old, but we boldly create it
anew, justified by the widespread assumption elsewhere that CSD is a
shifted-integer system. CSD here is inherently fractional. We begin
generally, in radix
with
and a bounded alphabet
containing zero. Then using
,
Certain properties are desired in sets
. First, make
them disjoint to make finite sequence representations unique. Second,
keep sequence memory finite by structuring the sequence following any
into an initial
-dependent component of some length
and an
-independent tail sequence:
. Third, require
so that every CSD digit of value
is followed
immediately by
(highly desirable) zero digits. Of course
is essential, else sequences will get ``stuck at zero''
forever, so
. For
then,
Define
for brevity. In a radix-two system the
term in (3) is
. Each nonzero
of a ternary system is msd (most significant digit) to the
same proportion of
if both such terms in (3) are set to
. If these
are set to
, then the closure
of (1) after substituting (2) and dividing out radix
really defines CSD:
Two representations are possible at endpoints common to two
subintervals of interval
, so we arbitrarily open it on (either
end but) the right (is conventional) before deriving a conversion
algorithm. Now (4) with
implies
![]() |
Some important CSD properties are now apparent. Zeros abound, as
(7) never places nonzeros consecutively. The CSD ruler shows
that conversion of a random variable distributed uniformly on
yields nonzero-digit probability
for the msd and then
, oscillating about and converging to
. As the number
of kept digits grows, the
distribution of the normalized truncation error asymptotically
approaches that of the Fig. 2 pdf. Truncation adds no bias, and
the asymptotic standard error deviation is
,
exceeding rounded binary's by 1.25 dB. But the range of
representation is higher for CSD than two's complement by twice
this, so CSD as presented has 1.25 dB more dynamic range
(SNR).3
CSD should be used for coefficients but not signals, because of overflow. A large input in a typical FIR-filter stopband, for example, results in large intermediate sums internal to the filter, with stopband cancellation only effective at the filter output. Using two's complement for signal paths renders this intermediate overflow harmless, as Fig. 3 shows. CSD is for coefficients only and only at design time, when it guides the design of add/subtract/shift systems for signals.