Precoding of orthogonal space-time block codes in arbitrarily correlated MIMO channels: iterative and closed-form solutions