Maximum Likelihood equalization is the optimal method to estimate the transmitted symbols in a MIMO system using linear space time coding (See reference  for the theoretical background). Note that the ML decoding can be computionnaly expensive for high order modulation.
The zip file contains three m files.
- space_time_coding.m (perform space time coding)
- coherent_ML_receiver.m (perform ML equalization)
- one_shot_ML_equalizer.m (show an example)
To use these files, extract the three files in the same folder. Then, call the script one_shot_ML_equalizer in the matlab command window. See the file space_time_coding.m to obtain the list of supported STBCs.
 E.G. Larsson,P.Stoica. "Space-time block coding for wirelesscommunications", Cambridge Press,2003