A transmitter of a DFT-based communications system including: an orthogonal precoder for transforming modulated data symbols using a unitary transform that controls out-of-band power; wherein the data symbols are mapped to subcarriers of the transmitter and a computational complexity of said transform is linear with respect to the number of the subcarriers; wherein said transform is a generalised Householder transform; and wherein one of the following applies: (i) said generalised Householder transform is a block reflector, and said precoder is configured to generate a precoded symbol vector ξ = x − G G H x, for each uncoded symbol vector x of the modulated data symbols, and G is a matrix that controls out-of-band power spectral density of the transmitter and G H is its conjugate transpose; (ii) said generalised Householder transform uses successive Householder reflections by applying a predetermined set of Householder vectors g 1,..., g R, and the precoder is configured to generate the precoded symbol vector ξ from each of the uncoded symbol x of the modulated data symbols by executing: a) Set i:= 1 and set ξ:= x. b) Update ξ so that ξ: = ξ − g i g i H ξ. c) Increment i. d) If i ≤ R, repeat from step b), otherwise finish and R is a constant; (iii) said generalised Householder transform uses a WY representation and the Householder vectors g 1..., g R are combined into matrices W and Y by performing: a) Set W:= - g 1, Y:= g 1 and i:= 2. b) Update W and Y so that W:= ( W, - g i - WY H g i) and Y:= ( Y, g i). c) Increment i. d) If i ≤ R, repeat from step b), otherwise finish; and R is a constant and the precoded symbol vector ξ is generated from each of the uncoded symbol x of the modulated data symbols by executing ξ = x + W ( Y H x). an orthogonal precoder for transforming modulated data symbols using a unitary transform that controls out-of-band power; wherein the data symbols are mapped to subcarriers of the transmitter and a computational complexity of said transform is linear with respect to the number of the subcarriers; wherein said transform is a generalised Householder transform; and wherein one of the following applies: (i) said generalised Householder transform is a block reflector, and said precoder is configured to generate a precoded symbol vector ξ = x − G G H x, for each uncoded symbol vector x of the modulated data symbols, and G is a matrix that controls out-of-band power spectral density of the transmitter and G H is its conjugate transpose; (ii) said generalised Householder transform uses successive Householder reflections by applying a predetermined set of Householder vectors g 1,..., g R, and the precoder is configured to generate the precoded symbol vector ξ from each of the uncoded symbol x of the modulated data symbols by executing: a) Set i:= 1 and set ξ:= x. b) Update ξ so that ξ: = ξ − g i g i H ξ. c) Increment i. d) If i ≤ R, repeat from step b), otherwise finish and R is a constant; (iii) said generalised Householder transform uses a WY representation and the Householder vectors g 1..., g R are combined into matrices W and Y by performing: a) Set W:= - g 1, Y:= g 1 and i:= 2. b) Update W and Y so that W:= ( W, - g i - WY H g i) and Y:= ( Y, g i). c) Increment i. d) If i ≤ R, repeat from step b), otherwise finish; and (i) said generalised Householder transform is a block reflector, and said precoder is configured to generate a precoded symbol vector ξ = x − G G H x, for each uncoded symbol vector x of the modulated data symbols, and G is a matrix that controls out-of-band power spectral density of the transmitter and G H is its conjugate transpose; (ii) said generalised Householder transform uses successive Householder reflections by applying a predetermined set of Householder vectors g 1,..., g R, and the precoder is configured to generate the precoded symbol vector ξ from each of the uncoded symbol x of the modulated data symbols by executing: a) Set i:= 1 and set ξ:= x. b) Update ξ so that ξ: = ξ − g i g i H ξ. c) Increment i. d) If i ≤ R, repeat from step b), otherwise finish and R is a constant; a) Set i:= 1 and set ξ:= x. b) Update ξ so that ξ: = ξ − g i g i H ξ. c) Increment i. d) If i ≤ R, repeat from step b), otherwise finish and R is a constant; (iii) said generalised Householder transform uses a WY representation and the Householder vectors g 1..., g R are combined into matrices W and Y by performing: a) Set W:= - g 1, Y:= g 1 and i:= 2. b) Update W and Y so that W:= ( W, - g i - WY H g i) and Y:= ( Y, g i). c) Increment i. d) If i ≤ R, repeat from step b), otherwise finish; and a) Set W:= - g 1, Y:= g 1 and i:= 2. b) Update W and Y so that W:= ( W, - g i - WY H g i) and Y:= ( Y, g i). c) Increment i. d) If i ≤ R, repeat from step b), otherwise finish; and R is a constant and the precoded symbol vector ξ is generated from each of the uncoded symbol x of the modulated data symbols by executing ξ = x + W ( Y H x).