An apparatus, comprising: a transmitter; a loopback receiver; a controller configured to: receive a first data signal from the loopback receiver, identify an in-phase/quadrature-phase imbalance in the transmitter based at least on a comparison of the first data signal received from the loopback receiver with a buffered data signal that corresponds to a data signal received by the transmitter as an input, and correct the in-phase/quadrature-phase imbalance present in the transmitter based at least in part on the comparison of the first data signal received from the loopback receiver with the buffered data signal, characterised in that: the controller is further configured to generate at least one of a gain correction, phase correction, or group delay correction parameter based on a transmitter to loopback receiver channel estimate represented by a convolution matrix H including branches Ĥ 11, Ĥ 12, Ĥ 21, and Ĥ 22, wherein branch Ĥ 11 is convolutional matrix that denotes the effective frequency-selective channel and the matrices Ĥ 12 and Ĥ 12 model the crosstalk between the I- and Q-phases, ( Ĥ), wherein the controller is configured to compute a matrix R = R 11 R 12 0 R 22 as Ĥ = Q x R, where Q is a rotation matrix representing a phase rotation due to a local oscillator phase offset, and at least one of: determine the gain correction parameter as C G ≈ R 22 /R 11; determine the phase correction as C P ≈ R 22 /R 11; determine the group-delay correction term C D based on the time-shift between Ĥ 11 and Ĥ 12. a transmitter; a loopback receiver; a controller configured to: receive a first data signal from the loopback receiver, identify an in-phase/quadrature-phase imbalance in the transmitter based at least on a comparison of the first data signal received from the loopback receiver with a buffered data signal that corresponds to a data signal received by the transmitter as an input, and correct the in-phase/quadrature-phase imbalance present in the transmitter based at least in part on the comparison of the first data signal received from the loopback receiver with the buffered data signal, characterised in that: the controller is further configured to generate at least one of a gain correction, phase correction, or group delay correction parameter based on a transmitter to loopback receiver channel estimate represented by a convolution matrix H including branches Ĥ 11, Ĥ 12, Ĥ 21, and Ĥ 22, wherein branch Ĥ 11 is convolutional matrix that denotes the effective frequency-selective channel and the matrices Ĥ 12 and Ĥ 12 model the crosstalk between the I- and Q-phases, ( Ĥ), wherein the controller is configured to compute a matrix R = R 11 R 12 0 R 22 as Ĥ = Q x R, where Q is a rotation matrix representing a phase rotation due to a local oscillator phase offset, and at least one of: determine the gain correction parameter as C G ≈ R 22 /R 11; determine the phase correction as C P ≈ R 22 /R 11; determine the group-delay correction term C D based on the time-shift between Ĥ 11 and Ĥ 12. receive a first data signal from the loopback receiver, identify an in-phase/quadrature-phase imbalance in the transmitter based at least on a comparison of the first data signal received from the loopback receiver with a buffered data signal that corresponds to a data signal received by the transmitter as an input, and correct the in-phase/quadrature-phase imbalance present in the transmitter based at least in part on the comparison of the first data signal received from the loopback receiver with the buffered data signal, characterised in that: the controller is further configured to generate at least one of a gain correction, phase correction, or group delay correction parameter based on a transmitter to loopback receiver channel estimate represented by a convolution matrix H including branches Ĥ 11, Ĥ 12, Ĥ 21, and Ĥ 22, wherein branch Ĥ 11 is convolutional matrix that denotes the effective frequency-selective channel and the matrices Ĥ 12 and Ĥ 12 model the crosstalk between the I- and Q-phases, ( Ĥ), wherein the controller is configured to compute a matrix R = R 11 R 12 0 R 22 as Ĥ = Q x R, where Q is a rotation matrix representing a phase rotation due to a local oscillator phase offset, and at least one of: determine the gain correction parameter as C G ≈ R 22 /R 11; determine the phase correction as C P ≈ R 22 /R 11; determine the group-delay correction term C D based on the time-shift between Ĥ 11 and Ĥ 12. the controller is further configured to generate at least one of a gain correction, phase correction, or group delay correction parameter based on a transmitter to loopback receiver channel estimate represented by a convolution matrix H including branches Ĥ 11, Ĥ 12, Ĥ 21, and Ĥ 22, wherein branch Ĥ 11 is convolutional matrix that denotes the effective frequency-selective channel and the matrices Ĥ 12 and Ĥ 12 model the crosstalk between the I- and Q-phases, ( Ĥ), wherein the controller is configured to compute a matrix R = R 11 R 12 0 R 22 as Ĥ = Q x R, where Q is a rotation matrix representing a phase rotation due to a local oscillator phase offset, and at least one of: determine the gain correction parameter as C G ≈ R 22 /R 11; determine the phase correction as C P ≈ R 22 /R 11; determine the group-delay correction term C D based on the time-shift between Ĥ 11 and Ĥ 12. determine the gain correction parameter as C G ≈ R 22 /R 11; determine the phase correction as C P ≈ R 22 /R 11; determine the group-delay correction term C D based on the time-shift between Ĥ 11 and Ĥ 12.