1. A method of generating a space-time code for encoding information symbols comprising the steps of: defining a binary rank criterion such that C is a linear n×l space-time code with underlying binary code C of length N&equals;nl where l&gE;n, and a non-zero code word c is a matrix of full rank over a binary field to allow full spatial diversity nm for n transmit antennas and m receive antennas; and generating binary matrices M 1, M 2,..., M n of dimension k×l, l&gE;k, C being said n×l space-time code of dimension k and comprising code word matrices 7 c ^ = [ x _ &it; M 1 x _ &it; M 2 &vellip; x _ &it; M n ] &it;, wherein x denotes an arbitrary k-tuple of said information symbols and n&lE;l, said binary matrices M 1, M 2,..., M n being characterized by ∀a 1, a 2,..., a n ∈ : M&equals;a 1 M 1 ⊕a 2 M 2 ⊕... ⊕a n M n is of full rank k unless a 1 &equals;a 2 &equals;... &equals;a n &equals;0 to allow said code C to satisfy said binary rank criterion.