Rate and power allocation for discrete-rate link adaptation