def mode_decomposition(plant):
    """Returns a list of single mode transfer functions

    Parameters
    ----------
    plant : TransferFunction
        The transfer function with at list one pair of complex poles.

    Returns
    -------
    wn : array
        Frequencies (rad/s).
    q : array
        Q factors.
    k : array
        Dcgains of the modes.
    """
    poles = plant.pole()
    complex_mask = poles.imag > 0  # Avoid duplication
    wn = abs(poles[complex_mask])  # Frequencies
    q = wn/(-2*poles[complex_mask].real)  # Q factors of the modes
    k = abs(plant(1j*wn)/q)  # DC gain of the modes
    return wn, q, k