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