Block diagonalisation with adaptive resource allocation algorithm for multi-user MIMO-OFDM systems. (12th June 2009)