1. A method for deriving data from a composite signal comprising: (a) receiving a composite signal comprising contributions from a plurality of individual signals transmitted over different paths, the plurality of individual signals being used to represent a common data sequence such that each of the individual signals corresponds to a data sequence that is a version of the common data sequence; (b) sampling the received composite signal to handle, for each individual signal, a non-integer delay associated with symbol timing of the individual signal, to obtain a received data sequence for each individual signal; (c) for each individual signal, calculating soft values of a first type over a block of symbols by utilizing the received data sequence for the individual signal and soft values of a second type, wherein for each symbol, a soft value of the first type is calculated for each possible symbol value of the symbol; (d) generating symbol outputs by taking into account the soft values of the first type from the different individual signals; (e) for each individual signal, calculating soft values of the second type over the block of symbols by taking into account the symbol outputs, wherein for each symbol, a soft value of the second type is calculated for each possible symbol value of the symbol; (f) feeding back the soft values of the second type for subsequent calculations of the soft values of the first type; (g) iteratively updating the soft values of the first type, the symbol outputs, and the soft values of the second type by repeating steps (c), (d), (e), and (f); and (h) deriving data using the updated symbol outputs.