Degrees of Freedom of a Communication Channel: Using Generalised Singular Values