Linear precoding design for MIMO channels with finite alphabet constraints