A method of applying transmitter data predistortion to an orthogonal frequency-division multiplexing, OFDM,-like transmission channel of a satellite transmitter that includes an OFDM modulator to modulate a plurality of data symbols output from a bit-to-symbol modulator onto a plurality of OFDM subcarriers to form a plurality of OFDM modulated data symbols, wherein the method is implemented in the time domain following the OFDM modulator or in the frequency domain preceding the OFDM modulator , the method comprising: receiving , at a first data predistorter stage of a multi-stage data predistorter , an input vector of symbols ( x md ; X md ) obtained from a modulator (110; 108) of a satellite transmitter ; outputting the undistorted input vector of symbols ( x md ; X md ) from the first data predistorter stage; for each data predistorter stage of the multi-stage data predistorter after the first data predistorter stage: processing a symbol data vector output of the previous sth data predistorter stage through a distortion construction H md t H md f to obtain an estimate of distorted symbols; dividing the estimate of distorted symbols by a complex-valued gain ( λ md ) to form a gain-adjusted estimate of the distorted symbols; estimating an error e md Tx E md Tx by calculating a difference between the undistorted input vector of modulated symbols ( x md ; X md ) and the gain-adjusted estimate; and computing a vector of predistorted symbols for the data predistorter stage x _ md s + 1 ; X _ md s + 1 by adjusting the symbol data vector output from the previous data predistorter stage by an amount proportional to the error; and outputting , from the last stage of the multi-stage data predistorter, a signal comprising a predistortion corrected output vector of symbols x _ md s + 1 X _ md s + 1 . receiving , at a first data predistorter stage of a multi-stage data predistorter , an input vector of symbols ( x md ; X md ) obtained from a modulator (110; 108) of a satellite transmitter ; outputting the undistorted input vector of symbols ( x md ; X md ) from the first data predistorter stage; for each data predistorter stage of the multi-stage data predistorter after the first data predistorter stage: processing a symbol data vector output of the previous sth data predistorter stage through a distortion construction H md t H md f to obtain an estimate of distorted symbols; dividing the estimate of distorted symbols by a complex-valued gain ( λ md ) to form a gain-adjusted estimate of the distorted symbols; estimating an error e md Tx E md Tx by calculating a difference between the undistorted input vector of modulated symbols ( x md ; X md ) and the gain-adjusted estimate; and computing a vector of predistorted symbols for the data predistorter stage x _ md s + 1 ; X _ md s + 1 by adjusting the symbol data vector output from the previous data predistorter stage by an amount proportional to the error; and processing a symbol data vector output of the previous sth data predistorter stage through a distortion construction H md t H md f to obtain an estimate of distorted symbols; dividing the estimate of distorted symbols by a complex-valued gain ( λ md ) to form a gain-adjusted estimate of the distorted symbols; estimating an error e md Tx E md Tx by calculating a difference between the undistorted input vector of modulated symbols ( x md ; X md ) and the gain-adjusted estimate; and computing a vector of predistorted symbols for the data predistorter stage x _ md s + 1 ; X _ md s + 1 by adjusting the symbol data vector output from the previous data predistorter stage by an amount proportional to the error; and outputting , from the last stage of the multi-stage data predistorter, a signal comprising a predistortion corrected output vector of symbols x _ md s + 1 X _ md s + 1 . <EOS>