The basic mechanism behind MIMO is linear algebra. If we e.g. transmit N (=2)
signals S0, S1 via two antennas and receive the signal at M (=2) antennas R0, R1 then we can treat input vector S.S and output R as vectors.

Each antenna receives in principle the superposition of each input antenna.
During the propagation from input to output antenna there will be attenuation, time delay as well as additive noise which also can be described by a vector N.
This can be modeled by complex factors hik where the phase is determined by the time delay and the norm represents the amplitude attenuation.

We end up with a matrix H that connects input with output vector. The receiver now needs to invert the matrix H to recover the original input signal vector S. Of major importance is, to keep the matrix H so that it can be inverted. If it is singular, then MIMO will not work. Usually the input signals S are pre-coded at the receiver side to improve exactly this.