Hardware imperfections can significantly reduce the performance of full-duplex wireless systems by introducing non-idealities and random effects that make it challenging to fully suppress self-interference. Previous research has mostly focused on analysing the impact of hardware imperfections on full-duplex systems, based on simulations and theoretical models. In this paper, we follow a measurement-based approach to experimentally identify and isolate these hardware imperfections leading to residual self-interference in full-duplex nodes. Our measurements show the important role of images arising from in-phase and quadrature (IQ) imbalance in the transmitter and receiver mixers. We also observe baseband non-linearities in the digital-to-analog converters (DAC), which can introduce strong harmonic components in the transmitted signal that have not been considered previously. A corresponding general mathematical model to suppress these components of the self-interference signal arising from the hardware non-idealities is developed from the observations and measurements. Results from a 10 MHz bandwidth full-duplex system, operating at 2.48 GHz, show that up to 13 dB additional suppression, relative to state-of-the-art implementations, can be achieved by jointly compensating for IQ imbalance and DAC non-linearities.