Content uploaded by Kees Schouhamer Immink
Author content
All content in this area was uploaded by Kees Schouhamer Immink on Apr 07, 2019
Content may be subject to copyright.
IEEE JOURNAL ON SELECTED AREAS IN COMMUNICATIONS, VOL. 28, NO. 2, FEBRUARY 2010 1
Very Efficient Balanced Codes
Kees A. Schouhamer Immink and Jos H. Weber
Abstract—The prior art construction of sets of balanced
codewords by Knuth is attractive for its simplicity and absence
of look-up tables, but the redundancy of the balanced codes
generated by Knuth’s algorithm falls a factor of two short with
respect to the minimum required. We present a new construction,
which is simple, does not use look-up tables, and is less redundant
than Knuth’s construction. In the new construction, the user
word is modified in the same way as in Knuth’s construction,
that is by inverting a segment of user symbols. The prefixthat
indicates which segment has been inverted, however, is encoded
in a different, more efficient, way.
Index Terms—Magnetic recording, optical recording, channel
capacity, constrained code, dc-free code, balanced code.
I. INTRODUCTION
SETS of bipolar codewords that have equal numbers of
’1’s and ’-1’s are usually called balanced codes. Balanced
codes have been widely used in storage and communication
channels. A survey of properties and methods for constructing
balanced codes can be found in [1]. There is a trend towards
high rate codes, which are made possible by codes with longer
codewords. The implementation of such a code is not a simple
task as look-up tables for translating user words into channel
words and vice versa are impractically large. Knuth published
a simple algorithm for constructing balanced codes [2], which
is very well suited for use with long codewords, since look-
up tables are absent. Modifications and improvements of the
generic scheme are discussed by Alon et al. [3], Al-Bassam &
Bose [4], Tallini, Capocelli & Bose [5], and Weber & Immink
[6]. The redundancy of a balanced code generated by Knuth’s
algorithm falls a factor of two short with respect to the
minimum required, i.e. the redundancy of a code that uses
all balanced codewords of a given length [1]. An attempt by
Weber & Immink [6] to compress the fixed length prefixtoa
variable length prefix with less redundancy was futile.
In this paper, we will study simple balanced code designs
that require minimum redundancy, while, as in Knuth’s con-
struction, the balanced codeword is obtained by a simple, al-
gorithmic modification of the user word, and a prefix is added
that carries sufficient information for the recipient to uniquely
retrieve the user word. The way the user word is modified in
the new construction is the same as in Knuth’s construction,
that is by inverting a segment of user symbols. The prefix,
however, is encoded and decoded in a different, more efficient,
Manuscript received 12 January 2009; revised 17 July 2009. This project
was supported by grant Theory and Practice of Coding and Cryptography,
Award Number: NRF-CRP2-2007-03
Kees A. Schouhamer Immink is with Turing Machines Inc., Willemskade
15b-d, 3016 DK Rotterdam, The Netherlands, National Technological Uni-
versity of Singapore, Singapore (e-mail: immink@turing-machines.com).
Jos H. Weber is with TU Delft, IRCTR/CWPC, Mekelweg 4, 2628 CD
Delft The Netherlands, (e-mail: J.H.Weber@ewi.tudelft.nl).
Digital Object Identifier 10.1109/JSAC.2010.1002xx.
way. We start, in Section II, with a brief description of the
prior art code construction by Knuth, followed, in Section III,
by a description of the new construction. In Section IV we
will compute some statistics, which will enable us, in V,
to compute the redundancy of the new code construction.
In Section VI, we will present some details regarding the
implementation of the new algorithm. Section VII concludes
the paper.
II. KNUTH’S CODE CONSTRUCTION
The conventional Knuth algorithm runs as follows. The user
data is arranged as a bipolar m-tuple u=(u1,...,u
m),ui∈
{−1,1},meven. (Knuth also presented code constructions
for odd m, but they will not be discussed here.) We define
for 1≤j≤m, the bipolar m-tuple uj=(−u1,−u2,...,
−uj,uj+1,u
j+2,...,u
m). Knuth showed that for any user
data uan index jcan be found such that the codeword ujis
balanced, that is
−
j
i=1
ui+
m
i=j+1
ui=0.
The index jis not necessarily unique as in general there are
more positions where balance can be obtained [6]. Let the
smallest index j,whereujis balanced, be denoted by I(u).
In other words, I(u)is the smallest index, 1≤i≤m,for
which uiis balanced. The balanced codeword x=uI(u)
plus a prefix, which suitably represents the index I(u),is
transmitted. The receiver receives the codeword xplus prefix
I(u), and can thus uniquely undo the encoding step by
forming u=xI(u). For an efficient code, the redundant prefix
should be as small as possible. Knuth showed that in his best
construction the redundancy pis roughly equal to [2]
log2m, m >> 1.(1)
The redundancy of a full set of balanced codewords of length
m,H0, equals
H0=m−log2m
m/2,(2)
and can be approximated by [2]
H0≈1
2log2m+0.326,m>>1.(3)
We notice that, for large values of the codeword length, m,the
redundancy of Knuth-based codes is twice as high as that of
codes that uses ’full’ sets of balanced codewords. It has been
a continuing desideratum in data communication and storage
systems to increase the capacity by using more efficient coding
methods. In the next section, we will present the new coding
technique.
0733-8716/10/$25.00 c
2010 IEEE
2 IEEE JOURNAL ON SELECTED AREAS IN COMMUNICATIONS, VOL. 28, NO. 2, FEBRUARY 2010
III. NEW PREFIX CODING SCHEME FOR BALANCING
CODEWORDS
Let x=uI(u)be a codeword balanced by Knuth’s
method described above. Clearly, we have u=xI(u)∈
{x1,...,xm}, and the index received makes it possible to
uniquely single out the right member from the mpossible
ones. The new encoder is based upon the observation that
not all mmembers of the set {x1,...,xm}can be legally
associated with x, since, by definition, Knuth’s encoder takes
the smallest index for balancing a user word. An m-tuple xj
with j>I(xj), is not a bona fide word under Knuth’s rules.
We now define the set of user words legally associated with
xby σx={xj:j=I(xj)}. The cardinality of σxwill be
denoted by d(x)=|σx|.
Example: Let m=6. Then it can be verified that σ000111
={100111, ’110111’, ’111111’, 111000}, where a ’0’
denotes the symbol value ’-1’. In a similar way, σ010101
={110101,100101}. Hence d(000111)=4and
d(010101)=2.
An efficient encoder will transmit the balanced word x=
uI(u)plus an index that resolves the ambiguity about which
word in σxis meant. The average number of bits required
to represent the index depends on the way the code construc-
tion is implemented. For a fixed-length-prefix construction it
depends on the maximum size of σx, while in a variable-
length-prefix construction it will depend on the average size
of σx. Before formulating the key theorem, we offer some
definitions. Let zkbe the running sum of the first k,k≤m,
symbols of x,or
zk=
k
i=1
xi,
and let zmax =max{zk}and zmin =min{zk}.
Theorem 1:
d(x)=zmax −zmin +1.
Proof. We hav e xi/∈σxif there is a j,where(xi)j,
1≤j<i≤m, is balanced. Since (xi)j=(x1,...,x
j,
−xj+1,...,−xi,x
i+1,...,x
m)we conclude that the sum of
the elements of (xi)jequals
m
k=1
xk−2
i
k=j+1
xk.
Then, as m
k=1 xk=0, we notice that xi/∈σxif there is a
j,1≤j<i, such that
i
k=j+1
xk=0.
Or, in other words, xi/∈σxif there is a j,1≤j<isuch that
zi=zj.Let Zdenote the set of sum values zi,1≤i≤m,
and let V(Z)denote the number of distinct values of Z.Then
it is immediate that d(x)=V(Z). Since all possible values
of zibetween zmin and zmax are in Z, we conclude that
d(x)=V(Z)=zmax −zmin +1.
This concludes the proof.
The following Theorem gives a lower and upper bound on
the size d(x).
Theorem 2:
2≤d(x)≤m
2+1.
Proof. Clearly, z1=x1=0and zm=0. Thus d(x)=
zmax −zmin +1≥2.We now proceed with the upper bound
d(x)≤m
2+1. Note that, since z0=zm=0,andzi=zi−1±1
for all i, all values in Zoccur at least twice with the exception
of a single maximum zmax and/or a single minimum zmin.
Thus
d(x)≤2+m−2
2=m
2+1.
This concludes the proof.
The conventional Knuth scheme, which requires a prefixof
length log2(m)bits, is less efficient than a new scheme based
on Theorem 2, which shows that the maximum number of
bits required to represent the index equals log2(m/2+1).
The average number of bits required to represent the index
will be computed in the next section.
IV. COMPUTATION OF THE DISTRIBUTION OF d(x)
In this section, we will compute the distribution of d(x),
so that we can, in Section V, compute the redundancy of
the new schemes. Let P(u, m)denote the number of binary
balanced words xof length mwith d(x)=u.Bydefinition
and invoking Theorem 2, we have
m/2+1
u=2
P(u, m)=m
m/2.
The computation of the distribution of d(x)is related to
the problem of computing the number of sequences (random
walks) whose running sum remains within given limits, a prob-
lem first studied by Chien [7]. Chien studied bipolar sequences
{xi},xi∈{−1,1}, where the running sum zi=zi−1+xi,
for any i, remains within the limits N1and N2,whereN1
and N2are two (finite) constants, N2>N
1. The range of
sum values a sequence may assume, denoted by
N=N2−N1+1,(4)
is often called the digital sum variation.Takingziat any
instant ias the state of the stream {xi}, then the bounds to
zidefine a set of Nallowable states. For the N-state source,
an N×Nconnection matrix, DN,isdefined by DN(i, j)=
1if a transition from state σito state σjis allowable and
DN(i, j)=0otherwise. The connection matrix DNfor the
channel having a bound to the number of assumed sum values
is given by
DN(i+1,i)=DN(i, i +1)=1,i=1,2, ..., N −1,
DN(i, j)=0,otherwise.
(5)
The (i, j)-th entry of the m-th power of DNwill be denoted
by Dm
N(i, j). The following Theorem will be helpful in
computing P(u, m).
IMMINK and WEBER: VERY EFFICIENT BALANCED CODES 3
Theorem 3: The number of balanced words xof length m
with d(x)=u,P(u, m),2≤u≤m/2+1,isgivenby
P(u, m)=
u
i=1
Dm
u(i, i)−2
u−1
i=1
Dm
u−1(i, i)
+
u−2
i=1
Dm
u−2(i, i),2≤u≤m
2+1.
Proof. In order to calculate P(u, m), we must count the
number of balanced sequences xof length m, whose running
sum span equals u. The matrix entries Dm
N(i, i)give the
number of balanced sequences of length m, whose running
sum span is at most Nthat start and end with a given
sum value i. Thus the count Dm
N(i, i)includes words xwith
d(x)<N. We may resolve this difficulty by observing that
a balanced word xwith d(x)=Nhas a unique starting (and
ending) state. Namely, assume a word xwith the property
d(x)=N,andlet
zk=z0+
k
i=1
xi,
where 1≤z0≤Ndenotes the initial value of the running
sum. Then, by definition, max{zi}−min{zi}+1=N.The
limiting values zmax and zmin are by definition the maximum
and minimum sum values allowed within the N-state machine.
Other values of z0are not allowed as they will lead to too
high or too low a value of the running sum. We conclude that
there is a unique starting (state) value z0for a sequence having
the maximum running sum span N. Similarly, a word xwith
d(x)=N−1may have two possible starting states, and a
word xwith d(x)=N−2has three possible starting states,
etc. As a result, we find
u
i=1
Dm
u(i, i)=P(u, m)+2P(u−1,m)+
+3P(u−2,m)+4P(u−3,m)+...
=
u−2
k=0
(k+1)P(u−k, m).
Then, after a simple manipulation, we find
P(u, m)=
u
i=1
Dm
u(i, i)−2
u−1
i=1
Dm
u−1(i, i)
+
u−2
i=1
Dm
u−2(i, i),2≤u≤m
2+1.(6)
This proves the theorem.
A useful property to compute powers of DNwas derived by
Salkuyeh [8], namely
Dm
N(i, j)= 2
N+1
N
k=1
λm
ksin ikπ
N+1sin jkπ
N+1,(7)
where
λi=2cos πi
N+1,1≤i≤N
TAB L E I
P(u, m)VERSUS u.
uP(u, m)
22
32(2m/2−2)
m/2m(m−4),m>4
m/2+1 m
are the eigenvalues of DN[1]. The number N
i=1 Dm
N(i, i)
can be calculated by invoking relation (7). After rearranging
some terms, we find
N
i=1
Dm
N(i, i)= 2
N+1
N
k=1
λm
k
N
i=1
sin2ikπ
N+1
=
N
i=1
λm
i=2
m
N
i=1
cosmπi
N+1.(8)
With the above relations it is now straightforward to compute
P(u, m). For special values of u, we could derive simple
relations that offer more insight. The first two cases were
discussed previously.
•There are two codewords that achieve the minimum
bound d(x)=2, namely x=(+1,−1,+1,−1,...)and
its inverse.
•There are mcodewords that achieve the upper bound,
d(x)=m/2+1, namely the codewords starting with
the maximum runlength of m/2’+1’s followed by m/2
’-1’s, and the m−1circular shifts of that codeword.
•There are 2(2m/2−2) codewords xwith d(x)=3,
namely the 2m/2codewords formed of combinations
of the 2-bit words (+1,-1) and (-1,+1) minus the two
codewords with d(x)=2plus the one-bit circular shifts
of those codewords.
•There are m(m−4) codewords xwith d(x)=m/2,
m>4, namely the m/2−2codewords starting with a
runlength of m/2−1’+1’s followed by i’-1’s, a ’+1’,
and m/2−i’-1’s, 1≤i≤m/2−2, their inverse, and
the m−1circular shifts of those codewords.
A survey of the above findings is shown in Table I.
V. P ERFORMANCE COMPUTATIONS
We first compute the average number of bits, H, required to
represent the index. The quantity, H, sets a theoretical limit as
it is not assumed that the prefix is balanced or has an integer
number of bits. There are d(x)different user words that are
transformed into the balanced word x, so that we conclude
m/2+1
u=2
uP (u, m)=2
m.(9)
The average number of bits, H, required to represent the index
is given by
H=2
−m
m/2+1
u=2
uP (u, m)log
2u. (10)
Results of computations of the average prefix length, H,
versus user word length mare listed in Table II. As a reference
4 IEEE JOURNAL ON SELECTED AREAS IN COMMUNICATIONS, VOL. 28, NO. 2, FEBRUARY 2010
TAB L E I I
AVERAGE PREFIX LENGTH,H,AND MINIMUM REDUNDANCY,
H0=m−log2m
m/2,VERSUS USER WORD LENGTH m.
mH H
0
64 3.3641 3.3314
128 3.8616 3.8286
256 4.3603 4.3272
512 4.8597 4.8265
1024 5.3594 5.3261
2048 5.8592 5.8259
4096 6.3591 6.3258
8192 6.8591 6.8258
2 3 4 5 6 7 8 9 10
2
3
4
5
6
7
8
9
10
Redundancy
log m
new scheme
Fig. 1. Average prefix length as a function of log2mof the VL prefix
Knuth scheme with balanced prefix. As a reference we plotted the minimum
redundancy of Knuth’s construction log2(m)and log2(m).
we listed the base-line redundancy of full sets of balanced
codewords, H0. The difference between the average prefix
length Hand H0is less than 1 percent. The redundancy of the
variable-length (VL) balanced code, H, as shown in Table II,
is a theoretical minimum. As in Knuth’s prior art construction,
the VL prefix should be balanced (or should compensate the
unbalance of the codeword). To that end, for every integer p,
p>0,wedefine the integer function B(p)as the smallest
even integer qsuch that
q
q/2≥p.
Then, assuming that the VL index is mapped onto a balanced
prefix, we find with a slight modification of (10) that
ˆ
H=2
−m
m/2+1
u=2
uP (u, m)B(u),(11)
where ˆ
Hdenotes the redundancy of the new construction hav-
ing balanced prefixes. Figure 1 shows results of computations.
As a reference we plotted the curves log2(m)and
log2(m), which show the minimum redundancy and that of
integer valued redundancy of Knuth’s construction. We may
observe that for m<64 the redundancy of the fixed-prefix
Knuth scheme and that of the VL scheme do not significantly
differ. For m>64, we notice that the average redundancy of
2 3 4 5 6 7 8 9 10
1
2
3
4
5
6
7
8
9
Redundancy
log m
K=1
K=2
K=4
Bound
Fig. 2. Average prefix length as a function of log2mof the VL prefix
Knuth scheme combining K=1,2,or4m-bit codewords; all schemes have
a balanced prefix.
the new scheme is less than that of the classic Knuth scheme.
We may approach the theoretical minimum by combining a
plurality of codewords, say K. Each of the Km-bit user
words is balanced as discussed above, and the Kprefixes are
combined into one ’super prefix’. The super prefix is balanced
by a look-up table or in case the super prefix is too long for
table look-up, we apply Knuth’s method. Figure 2 shows some
results of computations, where it is assumed that the prefixes
of K=2and K=4words are combined. As a reference
we plotted the curve of minimum redundancy as defined by
(10). We note that the curve showing the average redundancy
of K=4combined prefixes is only one bit away from the
bound. We will now take a look at the implementation of
both the encoder and decoder that exploits the findings of
Theorem 2.
VI. IMPLEMENTATION ISSUES
The two coding schemes, which are based on Theorem 2,
may use a) a fixed length or b) a variable length (VL)
prefix. In the first scheme, the prefixlengthisfixed as in
the conventional scheme. Then the prefix must be able to
uniquely encode at most m/2+1 indices requiring less than
log2mbits, so that it is less redundant than the conventional
method. In the second scheme, where the prefix length
depends on the user data, the prefix length varies between
1andlog2(m/2+1) bits. On the average, the VL coding
scheme will be more efficient than the first scheme. We will
first describe the implementation of the encoder and decoder.
Encoder description: Assume the user data uenters the en-
coder. The encoder computes, as in the classic Knuth method,
the balancing position I(u), and transmits the balanced word
x=uI(u). The computation of the prefix is more involved.
To that end, we first specify an order relation on σx.Then
we compute the rank, Iu,0≤Iu≤d(x)−1,ofuin the
ordered set σx, and uniquely translate the rank Iuinto a
(preferably) balanced prefix. In a scheme with a fixed prefix
IMMINK and WEBER: VERY EFFICIENT BALANCED CODES 5
length, the prefix must accommodate in the worst case m/2+1
values of Iu. For the scheme with variable prefix length, the
prefix length depends on x, and must accommodate the d(x)
possible values of Iu. The (balanced) m-tuple xand the prefix
are transmitted to the receiver.
Decoder description: The decoder receives the codeword
x=uI(u)and a suitable representation of Iu.Inascheme
with fixed prefix length, the decoder can identify the prefixIu.
Then, the decoder generates the ordered set σx, and retrieves
from σxthe member with rank Iu, and outputs that member.
In a VL scheme, the decoder first receives x, and computes
d(x).Thevalueofd(x)identifies the prefix length. Then we
decode the index Iu, generate the ordered set σx, and retrieve
the member of σxwith index Iu. Note that in the VL scheme,
the ’prefix’ must follow the codeword, and normal people
would call it therefore a ’suffix’. For heritage reasons, we will
use Knuth’s term ’prefix’, while it should be appreciated that
in this context, the ’prefix’ will be following the codeword.
Essential parts of the encoding and decoding operation are
the computation of d(x), the generation of the ordered set
σx, and the computation of the index Iu. The complexity
of a straightforward algorithm for computing d(x)grows
quadratically with increasing codeword length m. We will
discuss some more efficient methods. Let x=uI(u)be a
balanced word. The complexity of the following algorithm
grows linearly with m.Define the set of running sum val-
ues as Z={zk},∀k, and define the binary vector v=
(v−m/2,...,v
m/2)as vi=1,i ∈Zand vi=0,i /∈Z.As
d(x)equals the number of different values that ziassumes,
which equals the weight of v,wefind d(x)=vi.The
following code implements the above in MatLab notation:
Algorithm 1
Input: User input word x(i),1≤i≤m.
Output: d(x).
z(1)=x(1); v(z(1)+m/2+1)=1;
for i=2:m; z(i)=z(i-1)+x(i); v(z(i)+m/2+1)=1; end;
dx=sum(v);
where z(i)denotes the running sum, x(i)∈{−1,+1}denotes
the entries of codeword x,andv(i)are the entries of a binary
vector counting the occurrence of the running sum values
z(i)+m/2+1
1. The sum of the entries of vequals d(x).
We n ow de fine the ordering of the members of σx.Letxi
and xjbe elements of σx. We call xiless than xj, in short
xi<xj,ifi<j.Therank of v∈σx, denoted by Iv,is
defined to be the position of vin the ordered list of members
of σx, i.e., Ivis the number of all yin σxwith y<v.The
following MatLab-algorithm finds the rank, Iu, of the user
word u=xI(u)in the ordered set σxby counting the words
less than xI(u).
Algorithm 2
Input: I(u),v(i),z(i),1≤i≤m,asdefined in Algorithm 1.
Output: Iu=p.
p=0;
1The term m/2+1is added since MatLab does not allow non-positive
array indices.
for i=1:I(u)-1; if v(z(i)+m/2+1)==1 then p=p+1;
v(z(i)+m/2+1)=0; end;end;
After execution of the routine, we find Iu=p.
VII. CONCLUSIONS
We have presented a new method for constructing sets of
balanced bipolar codewords. The new construction presented
is attractive as it does not use look-up tables and is less redun-
dant than Knuth’s prior art construction. We have presented
simple algorithms for computing the prefix, encoding, and
decoding. We have analyzed the distribution of the lengths
of the prefix length, and determined the average efficiency of
the new construction.
REFERENCES
[1] K.A.S. Immink, Codes for Mass Data Storage Systems, Second Edi-
tion, ISBN 90-74249-27-2, Shannon Foundation Publishers, Eindhoven,
Netherlands, 2004.
[2] D.E. Knuth, ’Efficient Balanced Codes’, IEEE Trans. Inform. Theory,
vol. IT-32, no. 1, pp. 51-53, Jan. 1986.
[3] N. Alon, E.E. Bergmann, D. Coppersmith, and A.M. Odlyzko, ’Balanc-
ing Sets of Vectors’, IEEE Trans. Inform. Theory, vol. IT-34, no. 1, pp.
128-130, Jan. 1988.
[4] S. Al-Bassam and B. Bose, ’On Balanced Codes’, IEEE Trans. Inform.
Theory, vol. IT-36, no. 2, pp. 406-408, March 1990.
[5] L.G. Tallini, R.M. Capocelli, and B. Bose, ’Design of some New
Balanced Codes’, IEEE Trans. Inform. Theory, vol. IT-42, pp. 790-802,
May 1996.
[6] J.H. Weber and K.A.S. Immink, ’Knuth’s Balancing of Codewords
Revisited’, IEEE International Symposium on Information Theory,
ISIT2008, pp. 1567-1571, Toronto, 6-11 July 2008.
[7] T.M. Chien, ’Upper Bound on the Efficiency of Dc-constrained Codes’,
Bell Syst. Tech. J., vol. 49, pp. 2267-2287, Nov. 1970.
[8] D.K. Salkuyeh, ’Positive Integer Powers of the Tri-diagonal Toeplitz
Matrices’, International Mathematical Forum, 1, no. 22, pp. 1061 -
1065, 2006
Kees Schouhamer Immink received his PhD de-
gree from the Eindhoven University of Technology.
He founded and was named president of Turing
Machines Inc. in 1998. He is, since 1994, an adjunct
professor at the Institute for Experimental Math-
ematics, Essen University, Germany, and is affili-
ated with the Nanyang Technological University of
Singapore. Immink designed coding techniques of a
wealth of digital audio and video recording products,
such as Compact Disc, CD-ROM, CD-Video, Digital
Compact Cassette system, DCC, Digital Versatile
Disc, DVD, Video Disc Recorder, and Blu-ray Disc. He received a Knighthood
in 2000, a personal Emmy award in 2004, the 1996 IEEE Masaru Ibuka
Consumer Electronics Award, the 1998 IEEE Edison Medal, 1999 AES Gold
and Silver Medals, and the 2004 SMPTE Progress Medal. He was named a
fellow of the IEEE, AES, and SMPTE, and was inducted into the Consumer
Electronics Hall of Fame, and elected into the Royal Netherlands Academy
of Sciences and the US National Academy of Engineering. He served the
profession as President of the Audio Engineering Society inc., New York, in
2003.
6 IEEE JOURNAL ON SELECTED AREAS IN COMMUNICATIONS, VOL. 28, NO. 2, FEBRUARY 2010
Jos H. Weber (S’87-M’90-SM’00) was born in
Schiedam, The Netherlands, in 1961. He received
the M.Sc. (in mathematics, with honors), Ph.D.,
and MBT (Master of Business Telecommunications)
degrees from Delft University of Technology, Delft,
The Netherlands, in 1985, 1989, and 1996, respec-
tively.
Since 1985 he has been with the Faculty of
Electrical Engineering, Mathematics, and Computer
Science of Delft University of Technology. Cur-
rently, he is an associate professor at the Wire-
less and Mobile Communications Group. He is the chairman of the WIC
(Werkgemeenschap voor Informatie- en Communicatietheorie in the Benelux)
and the secretary of the IEEE Benelux Chapter on Information Theory. He
was a Visiting Researcher at the University of California at Davis, USA,
the University of Johannesburg, South Africa, and the Tokyo Institute of
Technology, Japan. His main research interests are in the areas of channel
and network coding.