Patent ID: 7103088

Claim:
A spreader ( 17 ) that spreads a plurality of data signals ( d k ) in a communication system for transmission; the spreader assigning at least one of a plurality of spreading codes (( {tilde over (c)} 1 . . . {tilde over (c)} M 1 , c M 1+1 . . . c M ) and ( {tilde over (v)} 1 . . . {tilde over (v)} P 1 , v P 1+1 . . . v P )) for each data signal ( d ) where at least one of the assigned spreading codes for each data signal ( d ) from the plurality of spreading codes is complex; the spreader ( 17 ) characterized by: a plurality of data inputs for receiving symbols ( d i ) of the respective data signals ( d k ); a plurality of processors ( 19 ) each coupled to a respective data input, for recovering an assigned spreading factor SF and for defining a group N of symbols ( d i ) for spreading based upon said spreading factor SF; a plurality of intermediate code s generators ( 21 ) each for computing an intermediate code s based upon said assigned spreading factor SF and at least one assigned spreading code ( c ) and at least one assigned spreading code ( v ) from a plurality of real codes (( c 1 . . . c M 1 , c M 1+1 . . . c M ) and ( v 1 . . . v P 1 , v P 1+1 . . . v P )) derived from the plurality of codes (( {tilde over (c)} 1 . . . {tilde over (c)} M 1 , c M 1+1 . . . c M ) and ( {tilde over (v)} 1 . . . {tilde over (v)} P 1 , v P 1+1 . . . v P )) for a respective data signal, each said intermediate code s generator outputting an intermediate code ( s ); a plurality of rotators ( 25 ), each coupled to a respective output of a processor ( 19 ), for performing a phase rotation of each said data input symbol ( d i ) in said respective group N arriving at a complex quantity ( {tilde over (d)} i,real [n], {tilde over (d)} i,imag [n]), each said data signal ( d ) complex N group quantity ( {tilde over (d)} i,real [n], {tilde over (d)} i,imag [n]) spread with said respective data signal ( d ) intermediate code s and output as a spread data signal ( {tilde over (z)} ) for said respective data signal( d ); and a summer ( 29 ) for combining all said spread data signals ( {tilde over (z)} ) into a combined spread signal ( {tilde over (z)} (Σ) ) as an output; wherein k, M, P, N, i, and n are positive integers.