1. A method for separating simultaneous source composite data containing data responses to at least two sources, the method comprising: receiving composite data from a plurality of seismic receivers, wherein the composite data is generated by the at least two sources in a seismic survey; using a computer to read a computer readable non-transitory medium having a computer program stored thereon, wherein the computer program comprises computer readable instructions for: 1) sorting the composite data into gathers aligned with a first source of the at least two sources in a time-space domain; 2) transforming the composite data from the time-space domain into a frequency-space domain; 3) setting a reference frequency to a first frequency in the composite data in the frequency-space domain and selecting a plurality of adjacent frequencies to the reference frequency; 4) forming multi-frequency basis functions, one set for each of the at least two sources; 5) forming an operator matrix A from the basis functions, wherein operator matrix A contains matrices A S 1 and A S 2 corresponding to the first source and a second source of the at least two sources respectively; 6) solving an optimization problem of Am−d to derive model vector m, wherein: the optimization problem of Am−d comprises min∥m∥ 1 or min∥m∥ 0 subject to ∥Am−d∥ 2 ≦ε; and d is the data, and model vector m contains m S 1 and m S 2 representing each of the at least two sources; 7) deriving separated source data for the first source, wherein the separated data is the product of the source vector m S 1 and the operator matrix A S 1 ; 8) repeating 3) to 7) until each frequency in the composite data in the frequency-space domain are used as a reference frequency; and 9) transforming the separated data from frequency-space domain into time-space domain.