This simple code shows how the Block Diagonalization (BD) is sub-optimal in terms of capacity compared to Dirty Paper Coding (DPC) based precoding. The simulation case considered is Base station with 10 antennas, 5 mobile users with 2 antennas each. The difference is must (Until and unless the intra-user channels are non-orthogonal). Simply saying, since BD is taking care to avoid interference among the users by providing null space in other users desired space direction, however is not taking care to overcome interference between the antennas of the each user terminal with multiple antennas.