Introduction - If you have any usage issues, please Google them yourself
function Optimal_precoder = waterfill_block(H, P,Num_BS_RFchains)
Returns optimal covariance matrix and capacity for
block diagonal channel H, where H(:,:,1) is first channel, H(:,:,2) is 2nd