CA2074595C - Method and apparatus for using orthogonal coding in a communication system - Google Patents

Method and apparatus for using orthogonal coding in a communication system

Info

Publication number
CA2074595C
CA2074595C CA002074595A CA2074595A CA2074595C CA 2074595 C CA2074595 C CA 2074595C CA 002074595 A CA002074595 A CA 002074595A CA 2074595 A CA2074595 A CA 2074595A CA 2074595 C CA2074595 C CA 2074595C
Authority
CA
Canada
Prior art keywords
data
group
soft decision
data symbols
signal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
CA002074595A
Other languages
French (fr)
Other versions
CA2074595A1 (en
Inventor
David D. Falconer
Fuyun Ling
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Motorola Mobility LLC
Original Assignee
Motorola Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Motorola Inc filed Critical Motorola Inc
Publication of CA2074595A1 publication Critical patent/CA2074595A1/en
Application granted granted Critical
Publication of CA2074595C publication Critical patent/CA2074595C/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L27/00Modulated-carrier systems
    • H04L27/32Carrier systems characterised by combinations of two or more of the types covered by groups H04L27/02, H04L27/10, H04L27/18 or H04L27/26
    • H04L27/34Amplitude- and phase-modulated carrier systems, e.g. quadrature-amplitude modulated carrier systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L23/00Apparatus or local circuits for systems other than those covered by groups H04L15/00 - H04L21/00
    • H04L23/02Apparatus or local circuits for systems other than those covered by groups H04L15/00 - H04L21/00 adapted for orthogonal signalling
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/23Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using convolutional codes, e.g. unit memory codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
    • H03M13/2703Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques the interleaver involving at least two directions
    • H03M13/271Row-column interleaver with permutations, e.g. block interleaving with inter-row, inter-column, intra-row or intra-column permutations
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J13/00Code division multiplex systems
    • H04J13/0007Code type
    • H04J13/004Orthogonal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J13/00Code division multiplex systems
    • H04J13/10Code generation
    • H04J13/12Generation of orthogonal codes

Abstract

A method and apparatus is provided for encoding and decoding. In encoding, bits (202) are encoded (204) into symbols (206) such that maximum likelihood decoding is facilitated. Groups of symbols (206) are translated by either interleaving by group each group within a block (208) and subsequently deriving an orthogonal code from each group (212) or deriving an orthogonal code from each group and subsequently interleaving by code each code within a block. In decoding, groups of samples (228, 229) are transformed by either generating metrics and index symbols (242) for each group of samples (232, 234, 236, 238, 240) and subsequently deinterleaving by group each group of metrics within a block (244) or deinterleaving by group each group of samples within a block and subsequently generating metrics and index symbols for each deinterleaved group of samples. Each metric represents the confidence that a group of samples is a particular orthogonal code.
Subsequently, maximum likelihood decoding (266) generates an estimated bit (268) from the index symbols and metrics (260).

Description

METHOD AND APPARATUS FOR USING ORTHOGONAL
CODING IN A COMMUNICATION SYSTEM

Field of the Invention The present invention relates to communication systems which employ spread-spectrum signals and, more particularly, to a method and apparatus for convolutional orthogonal coding in a spread spectrum 1 0 communication system.

Background of the Invention Communication systems take many forms. In general, the purpose 15 of a communication system is to transmit information-bearing signals from a source, located at one point, to a user destination, located at another point some distance away. A communication system generally consists of three basic components: transmitter, channel, and receiver. The l,~ns",iller has the function of processing the message signal into a form suitable for 20 transmission over the channel. This processing of the message signal is referred to as modulation. The function of the channel is to provide a physical connection between the transmitter output and the receiver input.
The function of the receiver is to process the received signal so as to produce an estimate of the original message signal. This processing of the 2~ received signal is referred to as demodulation.

~07~95 Two types of two-way communication channels exist, namely, point-to point channels and point-to-multipoint channels. Examples of point-to-point channels include wirelines (e.g., local telephone transmission), microwave links, and optical fibers. In contrast, point-to-multipoint channels provide a capability where many receiving stations may be reached simultaneously from a single transmitter (e.g. cellular radio telephone communication systems). These point-to-multipoint systems are also termed Multiple Address Systems (MAS).
Analog and digital transmission methods are used to ll~ns"~it a message signal over a communication channel. The use of digital methods offers several operational advantages over analog methods, including but not limited to: increased immunity to channel noise and interference, flexible operation of the system, common format for the transmission of different kinds of message signals, improved security of communication through the use of encryption, and increased capacity.
These advantages are attained at the cost of increased system complexity. However, through the use of very large-scale integration (VLSI) technology a cost-effective way of building the hardware has been developed.
To transmit a messAge signal (either analog or digital) over a band-pass communication channel, the mes~ge signal must be manipulated into a fomm suitable for efficient transmission over the channel. Modification of themessage signal is achieved by means of a process termed modulation.
This process involves varying some parameter of a carrier wave in accordance with the message signal in such a way that the spectrum of the modulated wave matches the assigned channel bandwidth.
Correspondingly, the receiver is required to recreate the original message signal frcm a degraded version of the transmitted signal after prop~g~tion through the channel. The re-creation is accomplished by using a process known as demodulation, which is the inverse of the modulation process used in the l~ns",iller.
In addition to providing effficient transmission, there are other reasons for performing modulation. In particular, the use of modulation pemmits multiplexing, that is, the simultaneous transmission of signals from several message sources over a common channel. Also, modulation may be used to convert the message signal into a form less susceptible to noise and interferenoe.

~0~ 159~
For multiplexed communication systems, the system typically consists of many remote units (i.e. subscriber units) which require active service over a communication channel for a short or discrete portion of the communication channel resource rather than continuous use of the resources on a communlcation channel. Therefore, communication systems have been designed to incorporate the cl)a,~eristic of communicating with many remote units for brief intervals on the same communication channel. These systems are termed multiple access communication systems.
One type of multiple access communication system is a spread spectrum system. In a spread spectrum system, a modulation technique is utilized in which a transmitted signal is spread over a wide frequency band within the communication channel. The frequency band is much wider than the minimum bandwidth required to transmit the information being sent. A
voice signal, for example, can be sent with amplitude modulation (AM) in a bandwidth only twice that of the information itself. Other forms of modulation, such as low deviation frequency modulation (FM ) or single sideband AM, also permit information to be transmitted in a bandwidth comparable to the bandwidth of the information itself. However, in a spread spectrum system, the modulation of a signal to be transmitted often includes taking a b~eb~nd signal (e.g., a voice channel) with a bandwidth of only a few kilohertz, and distributing the signal to be transmitted over a frequency band that may be many megahertz wide. This is accomplished by modulating the signal to be transmitted with the information to be sent and with a wideband encoding signal.
Three general types of spread spectrum communication techniques exist, including:

Direct Sequence The modulation of a carrier by a digital code sequence whose bit rate is much higher than the infommation signal bandwidth. Such systems are referred to as "direct sequence" modulated systems.

Hoppin~
Carrier frequency shifting in discrete increments in a pattern dictated by a code sequence. These systems are called "frequency hoppers.~ The l~a,1s",itler jumps from frequency to frequency within some predetermined set; the order of frequency usage is 2Q~95 determined by a code sequence. Similarly utime hopping" and time-frequency hopping" have times of trans",ission which are regulated by a code sequence.

Chirp Pulse-FM or chirp" modulation in which a carrier is swept over a wide band during a given pulse interval.

Information (i.e. the message signal) can be embedded in the spread spectrum signal by several methods. One method is to add the information to the spreading code before it is used for spreading modulation.
This technique can be used in direct sequence and frequency hopping systems. It will be noted that the infommation being sent must be in a digital form prior to adding it to the spreading code because the combination of the spreading code and the information typically a binary code involves module-2 addition. Altematively the information or message signal may be used to modulate a carrier before spreading it.
Thus a spread spectrum system must have two properties: (1 ) the transmitted bandwidth should be much greater than the bandwidth or rate of the infommation being sent and (2) some function other than the information being sent is employed to detemmine the resulting modulated channel bandwidth.
Spread spectrum communication systems can be multiple access systems communication systems. One type of multiple access spread spectrum system is a code division multiple access (CDMA) system. In a CDMA system communication between two communication units is accomplished by spreading each l,~ns,llitled signal overthe frequenc band of the communication channel with a unique user spreading code. As a result transmitted signals are in the same frequency band of the communication channel and are separated only by unique user spreading codes. These unique user spreading codes preferably are orthogonal to one another such that the cross-correlation between the spreading codes is approximately zero. CDMA systems may use direct sequence or frequency hopping spreading techniques. Particulartransmitted signals can be retrieved from the communication channel by despreading a signal representative of the sum of sign~s in the communication channel with a user spreading code related to the particular transmitted signal which is to be 21~7~S

retrieved from the communication channel. Further, when the user spreading codes are o, Ihogonal to one another, the received signal can be correlated with a particular user sprea~ g code such that only the desired user signal related to the particular spreading code is enhanced while the other signals 5 for all of the other users are not enhanced.
It will be appreci~ted by those skilled in the art that several different spreading codes exist which can be used to separate data signals from one another in a CDMA communication system. These spreading codes include but are not limited to pseudonoise (PN) codes and Walsh codes. A Walsh 10 code corresponds to a single row or column of the Hadamard matrix. For example, in a 64 channel CDMA spread spectnum system, particular mutually orthogonal Walsh codes can be selected from the set of 64 Walsh codes within a 64 by 64 Hadamard matrix. Also, a particular data signal can be separated from the other data signals by using a particular Walsh code to 15 spread the particular data signal.
Further it will be appreciated by those sWlled in the art that spreading codes can be used to channel code data signals. The data signals are channel coded to improve performance of the communication system by enabling transmitted signals to better withstand the effects of various channel 20 impairments, such as noise, fading, and jamming. Typically, channel coding reduces the probability of bit error, and/or reduces the required signal to noise ratio usually expressed as error bits per noise density (Eb/No), to recover the signal at the cost of expending more bandwidth than would otherwise be necessary to transmit the data signal. For example, Walsh 25 codes can be used to channel code a data signal prior to modulation of the data signal for subse yJent transmission. Similar y PN spreading codes can be used to channel code a data signal.
A typical spread spectrum transmission involves expanding the bandwidth of an information signal, I,dns",illing the expanded signal and 30 recovering the desired information signal by remapping the received spread spectrum into the original information signals bandwidth. This series of bandwidth trades used in spread spectrum signaling techniques allows a communication system to deliver a relatively error-free info""~lion signal in a noisy signal environment or communication channel. The quality of recovery 35 of the transmitted infommation signal from the communication channel is measured by the error rate (i.e., the number of errors in the recovery of the transmitted signal over a particular time span or received bit span) for some ~074S~S
Eb/No. As the error rate increases the quality of the signal received by the receiving party decreases. As a result, communication systems typically are designed to limit the error rate to an upper bound or maximum so that the degradation in the quality of the received signal is limited. In CDMA spread 5 spectrum communication systems, the error rate is related to the noise interference level in the communication channel which is directly related to number of simultaneous but code divided users within the communication channel. Thus, in order to limit the maximum error rate, the number of simultaneous code divided users in the communication channel is limited.
10 However, the error rate can be redlJced by using channel coding schemes.
Therefore, by using channel coding schemes the number of simultaneous users in a communication channel can be increased while still maintaining the same maximum error rate limit.
As r~isaJssed in Digital Communications: Fundamentals and 15 ApDlications by Bernard Sklar, published by Prentice Hall, Englewood Cliffs, New Jersey in 1988, especially chapters 5 and 6 entitled ~Channel Coding~ found on pages 245-380, several of these channel coding schemes have been developed for use in communication systems.
However, a need exists for these channel coding schemes to be specifically 20 optimized for use in CDMA spread spectrum communication systems.
Through the use of these optimized channel coding schemes, the number of simultaneous users in a communication channel can be increased over the number of simultaneous users in a communication channel using non-optimized channel coding while maintaining the same maximum error rate 25 limit.

Summary of the Invention A method and apparatus is provided for using orthogonal codes in 30 encoding and decoding in a communication system. In encoding, input bits of a data signal are encoded into data symbols and the data symbols are grouped. The data symbols are encoded with an encoding algorithm (e.g., a block coding algorithm or a convolutional coding algorithm) which facilitates subsequent maximum likelihood decoding of the data symbols into 35 estimated data bits. The groups of data symbols are translated acco~ing to either one of two algorithms. The first algorithm consists of interleaving by group each group of data symbols within a predetermined size block and 7 2U74~95 subsequently deriving an orthogonal code from each group of interleaved data symbols. The altemative second aborithm consists of deriving an orthogonal code from each group of data symbols and subsequently interleaving by orthogonal code each orthogonal code within a 5 predetermined size block.
In decoding, received data samples are grouped. The groups of data samples are transfommed according to either one of two aborithms. The first algorithm consists of generating a plurality of soft decision similarity metrics and index data symbols for each group of data samples such that 10 one soft decision metric is ~ ted with each index data symbol and subsequently deinterleaving by group each group of soft decision metrics within a prede~emmined size block. The altemative second algorithm consists of deinterleaving by group each group of data samples within a predetermined size block and subsequently generating a plurality of soft 15 decision similarity metrics and index data symbols for each deinterleaved group of data samples such that one soft de(-ision metric is ~ ted with each index data symbol. Each soft decision metric corresponds to a measure of confidence that a particular group of data samples is substantially similar to a particular o, ll ~gonal code from within a set of mutually orthogonal 20 codes. After the grouped samples are transforrned, at least one estimated data bit is generated by utilizing maximum likelihood decoding techniques to derive the at least one estimated data bit from the index data symbols and ~ted soft dQcision metrics.

Brief Description of the Drawings FIG. 1 is a block diagram showing a prior art communication system which uses orthogonal coding.
FIG. 2 is a block diagram showing a preferred embodiment 30 communication system which uses orthogonal coding.
FIG. 3 is a block diagram showing a preferred embodiment decoding apparatus which uses a memory based lookup table.
FIG. 4 is block diagram showing a preferred embodiment matrix representation of an interleaver loaded with encoded data bits.
Detailed Description -8- ~07~Y~

Referring now to FIG.1, a prior art system for using orthogonal codes in encoding and decoding in a communication system is shown. In the encoding portion 100 of the communication system, traffic channel data bits 102 are input to an encoder 104 at a particular bit rate (e.g.,9.6 kbiVsecond).
5 The input traffic channel data bits can include eHher voioe converted to data by a vocoder, pure data, or a combination of the two types of data.
Encoder 104 encocJes the input data bits 102 into data symbols at a fixed encoding rate wHh an encoding aborHhm which f~dlit~tes subsec uent maximum likelihood decoding of the data symbols into data bits (e.g.
10 convolutional or block coding aborithms). For example, encoder 104 encodes input data bits 102 (received at a rate of 9.6 kbits/second) at a fixed encoding rate of one data bit to three data symbols (i.e.,1/3) such that the encoder 102 outputs data symbols 106 at a 28.8 ksymbols/second rate.
The data symbols 106 are then input into an interleaver 108.
Interleaver 108 block interleaves the input data symbols 106 at the symbol level. In the interleaver 108, the data symbols are individually input into a matrix which defines a predetemmined size block of data symbols. The data symbols are input into locations within the matrix so that the matrix is filled in a column by column manner. The data symbols are individually output from locations within the matrix so that the matrix is emptied in a row by row manner. Typically, the matrix is a square matrix having a number of rows equal to the number of columns; however, other matrix fomms can be chosen to increase the output interleaving distance between the consecutively input non-interleaved data symbols. The interleaved data symbols 110 are output by the interleaver 108 at the same data symbol rate that they were input (e.g., 28.8 ksymbols/second). The predetermined size of the block of data symbols defined by the matrix is derived from the maximum number of data symbols which can be transmitted at a predetemmined chip rate within a predetermined length transmission block. For example, if data symbols 106 are output from the encoder 104 at a 28.8 ksymbols/second rate, then the maximum predetermined chip rate for transmitting those data symbols 106 is 28.8 ksymbols/second. Further, for example if the predetermined length of the transmission block is 20 milliseconds, then the predetemmined size of the block of data symbols is 28.8 ksymbols/second times 20 milliseconds which equals 576 data symbols which defines a 18 by 32 matrix.
9 2Q74~

The interleaved data symbols 110 are then input to a mapper 112.
The mapper 112 derives a sequence of fixed length orthogonal codes 114 (e.g., 64-ary Walsh codes) from the interleaved data symbols 110. In for example 64-ary orthogonal code signaling, the interleaved data symbols 5 1 10 are grouped into sets of six to select one out of the 64 orthogonal codes to represent the set of six data symbols. These 64 orthogonal codes preferably correspond to Walsh codes from a 64 by 64 Hadamard matrix wherein a Walsh code is a single row or column of the matrix. The mapper 1 12 outputs a sequence of Walsh codes 114 which correspond to the input data symbols 110 at a fixed symbol rate (e.g., 307.2 ksymbols/second).
The sequence of Walsh codes 1 14 is output from encoding portion 100 of the communication system and input to a transmitting portion 116 of the communication system. The sequence 114 is prepared for transmission over a communication channel by a modulator 117. Subsequently, the modulated sequence is provided to an antenna 118 for transmission over the communication channel 120.
The modulator 117 preferably prepares the sequence 114 for direct sequence code divided spread spectrum transmission by spreading the sequence 114 with a long spreading code (e.g. PN code). The spreading code is a user specific sequence of symbols or unique user code which is output at a fixed chip rate (e.g., 1.228 Mchips/second). In addition to providing an identification as to which user sent the encoded traffic channel data bits 102 over the communication channel 120, the unique user code enhances the security of the communication in the communication channel by scrambling the encoded traffic channel data bits 102. In addition, the user code spread encoded data bits (i.e. data symbols) are spread by a pair of short spreading codes (i.e. short when compared to the long spreading code) to generate an l-channel and ~channel code spread sequence. The I-channel and ~channel code spread sequences are used to bi-phase modulate a quadrature pair of sinusoids by driving the power level controls of the pair of sinu-soids. The sinusoids output signals are summed, bandpass filtered, translated to an RF frequency, amplified, fi~ered and radiated by an antenna 118 to complete trans",ission of the traffic channel data bits 102 in a communication channel 120.
A receiving portion 122 of the communication system receives the transmitted spread spectrum signal from over the communication channel -10- 2~7 1~

120 through antenna 124. The received signal is sampled into data samples by demodulator 126. Subsequently, the data samples 128 and 129 are output to the decoding portion 130 of the communication system.
The demodulator 126 preferably samples the received spread 5 spectrum signal by filtering, demodulating, translaling from the RF
frequencies, and sampling at a predetermined rate (e.g.,1.2288 Msamples/second). Subsequently, the in-phase sampled signal and quadrature sampled signal are independently despread by correlating the received sampled signals with the short spreading codes and the long spreading code. The resulting despread in-phase 128 and quadrature 129 sampled signals are sampled a predetermined rate (e.g., 307.2 ksamples/second so that a sequence of four samples of the received spread spectnum signal is despread and/or represented by a single data sample).
The in-phase 128 and quadrature 129 sampled signals are independently input to a decoding portion 130 of the communication system which non-coherently detects/decodes the sampled signals 128 and 129 into estimated data bits 168. In order to decode the sampled signals 128 and 129, predetermined length groups (e.g., 64 sample length groups) of sampled signals are independently input to orthogonal code transformers (e.g., fast Hadamard transformers) 132 and 134, respectively. The orthogonal code transformers 132 and 134 output a plurality of transformer output signals 133 and 135, respectively (e.g. when 64 sample length groups are input, then 64 transfommer output signals are generated). Each transformer output signal corresponds to a measure of confidence that a particular group of sampled signals corresponds to a particular orthogonal code from within a set of mutually orthogonal codes. In addition, each transformer output signal has an ~soci~ted index data symbol which indicates which particular orthogonal code from within a set of mutually orthogonal codes that the transfommer output signal corresponds to (e.g.
when 64 sample length groups are input, then a 6 bit length index data symbol can be ~ ~eted with the transfommer output signal to indicate the particular 64 bit length o, ll,ogonal code to which the transfommer output signal corresponds). Subsequently, each transfommer output signal within the groups of transformer output signals 133 and 135 is squared by transformer output signal squaring mechanisms 136 and 138, respectively.
Subsequently, a group of decision values 142 is generated (e.g. when 64 -11- 207~95 transformer output signals are generated then 64 decision values are generated) by aWing mechanism 140 which adds together each pair of squared transformer output signals (i.e. one from each of the ~ ,s~o""er output signal squaring mechanisms 136 and 138) having ~-ssoci~ted index 5 data symbols which indicate that the l,~ns~o""er output signals correspond to the same o, ll ,ogonal code.
The group of decision values 142 and ~ssoc ~led index data symbols are input to a selection mechanism 144 which selects the maximum decision value from the group of decision values 142. The selected 1 0 decision value 146 is input to a metric computation mechanism 150 which scales the selected decision value to a value 154 which can be used as a scaling factor in forrning individual soft decision data which can sl ~hse~ ently be used in forming soft decision l,ansition metrics for maximum likelihood decoding techniques. The index data symbol ~.~sor ~ted with the selected 1 5 decision value 148 is input to an index mapping mechanism 152 which maps the index data symbol into a plurality of i1 soft decision bits 156 (e.g. a 6 bit length index data symbol maps into 6 soft decision bits).
Multiplier 158 multiplies each of the plurality of i1 soft dedsion bits 156 by the scaling factor 154 to form an individual soft decision data 160 for each soft decision bit (e.g. 6 soft decision bits form 6 individual soft decision data). The individual soft decision data are formed at a predetermined rate related to the number of metrics formed per group of data samples and the rate that the data samples are input to the orthogonal transformer (e.g. if the data samples are input at 307.2 ksamples/second and 6 individual data are formed/64 data samples then the individual soft decision data are formed at 28.8 kmetrics/second).
The individual soft decision data 160 are then input into a deinterleaver 162 which deinterleaves the input soft decision data 160 at the individual data level. In the deinterleaver 162 the soft decision data are individually input into a matrix which defines a p,~eler",ined size block of soft decision data The soft decision data are input into locations within the matrix so that the matrix is filled in a row by row manner. The deinterleaved soft decision data 164 are individually output from locations within the matrix so that the matrix is emptied in a column by column manner. The deinterleaved soft decision data 164 are output by the deinterleaver 162 at the same rate that they were input (e.g. 28.8 kmetrics/second).
-12- 2Q7l~595 The predetermined size of the block of soft decision data defined by the matrix is derived from the maximum rate of sampling data samples from the spread spectnum signal received within the predetemmined length transmission block, the number of data samples represented by each group 5 of data samples, bit length of the index data symbol associated with the soft decision value selected for each group of data samples input to the orthogonal code transfommer, and the number of soft decision data formed from the selected soft decision value and ~ o~ ~ted index data symbol.
For example, if the maximum rate of sampling data samples from the 1 0 received spread spectrum signal is 307,200 data samples/second, the predetermined length of the transmission block is 20 milliseconds, the bit length of the selected index data symbol per group of data samples is 6 bits/ index data symbol associated with a group of 64 samples, and the number of soft decision data formed per index data symbol is 6 individual 1 5 data/ index data symbol, then the predetermined size of the block of soft de-,ision data is 307,200 samples/second times 20 milliseconds times 6 bit index data symboUindex data symbol times one index data symbol/64 samples times 6 individual data/ 6 bit index data symbol which equals 576 soft decision data.
The deinterleaved soft decision data 164, are input to a decoder 166 which uses maximum like' hood decoding techniques to generate estimated traffic channel data bits 168. The maximum likelihood decoding techniques may be augmented by using an algorithm which is substantially similar to a Viterbi decoding algorithm. The decoder 166 uses a group of the individual soft decision data 164 to form a set of soft decision transition metrics for useat each particular time state of the maximum likelihood sequence estimation decoder 166. The number of soft decision data 164 in the group used to form each set of soft decision transition metrics corresponds to the number of data symbols 106 at the output of the convolutional encoder 104 generated from each input data bit 102. The number of soft decision transition metrics in each set is equal to two raised to the power of the number of soft decision data 164 in each group. For example, when a 1/3 convolutional encoder is used in the transmitter, three data symbols 106 are generated from each input data bit 102. Thus, decoder 166 uses groups of three individual soft decision data 164 to fomm eight soft decision transition metrics for use at eachtime state in the maximum likelihood sequence estimation decoder 166.
The estimated data bits 168 are generated at a rate related to the rate that - 20~ 4~3S

the soft decision data 164 are input to the decoder 166 and the fixed rate used to originally encode the input data bits 102 (e.g., if the soft decision data are input at 28.8 kmetrics/second and the original encoding rate was 1/3 then estimated data bits 168 are output at a rate of 9600 bits/second).
Thus, a communication system for using o-ll,ogonal codes in encoding and decoding has been described above with reference to FIG. 1.
In summary, the communication system inch~des a first portion which encodes input data bits into data symbols, interleaves the data symbols in a symbols by symbol manner, maps the interleaved symbols into orthogonal codes, modulates and transmits the orthogonal codes over a communication channel. The communication system further includes a second portion which receives and demodulates a signal from over the communication channel, transforms groups of samples of the dem~u'~ted signal into a group of measures of confidence that each particular group of samples corresponds 1 5 to a particular o, ll ogonal code from within a set of mutually oi ll ,ogonal codes, selecting the one largest measure of confidence from each group of measures of confidence and an index data symbol which identifies the particular orthogonal code corresponding to the selected measure of confidence, generating soft dedsion data from each selected measure of confidence and ~.~sodi~ted index data symbol, deinterleaving the soft dedsion data within each received transmission block, suhseqlJently generating soft decision transition metrics from groups of deinterleaved individual soft decision data, and subsequently generating estimated data bits from the soft dedsion metrics by using maximum likelihood decoding techniques.
Referring now to FIG. 2, a preferred embodiment system for using orthogonal codes in e~ing and decoding in a communication system is shown. The preferred embodiment system differs from the communication system shown in FIG. 1 by optimizing the encoding techniques previously described above for use with orthogonal codes. In particular, when the length of the orthogonal codes to be used in encoding data bits prior to l,~ns",;~on overacommunication channel is known, then siy,lir~ant improvements in the overall perfommance of the communication system can be achieved. More spedfically, the maximum likelihood sequence estimation (MLSE) decoding algorithm can be optimized by optimizing the encoding portion 200 of the communication system as well as the front end of the decoding portion 230.

-~4-ln optimizing the communication system encoding portion 200 and decoding portion 230 with respect to the MLSE decoding algorithm, one starting point is analyzing the implementation of the MLSE decoding algo,ilhio to the particular environment to which it is to be used. Forthe 5 purposes of this ~is~Jssicn, the environment will include convolutional encoders and mapping the encoded bits to Walsh codes prior to transmission. It will be appreciated by those skilled in the art that these principles can be applied to other encoding techniques such as block encoding as well as mapping the encoded bits to other kinds of mutually 1 0 orthogonal codes. In order to design a convolutional decoder to perform optimal MLSE decoding, the likelihood expression of the transitions must be derived. According to the theory of maximum likelihood estimation, for a received signal vector x, the likelihood function of the i-th transition is equal to the conditional probability of vector x being generated by the i-th Walsh 15 code w; ~ ted with the i-th transition. For an MLSE decoder, the optimal soft decision transition metric is equivalent to the logarithm of the likelihood function.
For the purposes of this discussion, the communication system is assumed to be non-fading and to have white, G~ ~ssi~n noise with a 20 variance ~2 . However, this following derivations can be easily extended by one shlled in the art to non-t'.~usci~n noise. In a coherent detection scheme, the joint probability density function (pdfl of the coherently received vector x, given w; is sent, can be expressed as:

(2~1~2)N/2 [ 2c~2 ~ (eq. 1) where a is the channel attenuation and the superscript H indicates the complex conjugating and transposition, or Hermitian, operation of a vector or matrix and N is the dimension of the vector (i.e. for this example N=64 for a 30 64-Walsh code).
By taking the natural logarithm of (eq. 1 ) and after expanding, the optimal metric can be expressed as:

Ln[p(X¦Wj)] = NLn[2~2] + XTX-2axTwj+a2wjTwj (eq. 2) -15- 2~ 7 1 y~

where, since both x and w; are real, we have replaced the Hemmitian operation (H) by a transpose operation (T). All the terms except -2axTw,/2~2 in (eq. 2) are common to all the transitions. Therefore, the optimum metric is simply -axTw,/~2. Further, xTwj is the correlation between 5 the received signal vector and the i-th Walsh code (i.e. the i-th output of the Walsh transfommer). Therefore, the optimal metric for the i-th transition is thescaled form of the i-th output of the Walsh l~dns~o""er.
In a non-coherent detection scheme, the joint pr~bability density function (pdfl of the non-coherently received vector x, given w; is sent and 10 the modulation angle is ~, can be expressed as:
[(-x-aei~wj)H(x-aei~wj)] (eq. 3) where the received signal vector is a complex vector. Since ~ is a random 15 angle with a uniform distribution from 0 to 21~, it can be eliminated from the equation by integrating the equation over the range [0,2~]. More predsely, 27~
p(xlw ) J 1 eXp[(-x-aei~wi)H(x-aei~wi)]d~

21~
--(xHX+a2wiTwi) r -(aei~xHwj+ae-i~wjTx)l =(2~2)Nl2 exp 2c~2 Jexp L 2C~2 ~d~
2,~
1 exp[-(xHX+a2wi wj)] Jexp[ a2 2 ilcos(~+~)]d~ (eq 4) where xHwj is expressed as IxHw;lcos(~).
Since cos(~+~) is a periodic function of ~ with a period of 211 and further by use of the definition of lO(z), as the zero-th order modified Bessel 25 function, the integral portion of (eq. 4) can be expressed as:

Jexp[ 2(s2 ilcos(~+~)]d~ = Jexp[ 2c~2 ilcos(~)]d~
o o 2l (alxHwj¦) (eq. 5) -16- 207~159~

By substituting the result of (eq. 5) into (eq. 4) for the integral portion of (eq.
4), taking the natural logarithm of this version of (eq. 4), and eliminating thecommon terms for all of the l,dnsilions, the optimal metric can be expressed as:

Ln [lo( ~2 )]- (eq. 6) However, lo(z) (i.e., the zero-th order modified Bessel function) can be expressed as lo(z) = eZg(z), where g(z) is a monotonically decreasing 10fun~tion with g(0) = 1 and g(z) z 0.4/~z for z >> 1. Thus, the optimal metric of (eq. 6) can be expressed as:

Ln [lo( 1 ~2 il)] = 1 ~2 il + Ln [9( 1 ~2 ilp- (eq 7) 15The second term of (eq. 7) can not be easily computed. Therefore, an approximation must be used to compute the optimal metric. One approximation is to simply use the first term (i.e. the scaled envelop of the Walsh transformer output. Another approximation which avoids a square-root operation is to use the squared value or compute the approximation of 20 the magnitude of a complex number as the decoding metric. Yet another approximation is to segmentally approximate the function g(z) by using polynomial equations. Upon experimentation with each of these different approximations in the non-coherent environment described above, the difference between using the squared value approximation and the 25 segmented polynomial approximation in error rate performance was determined to be only one to two percent. This difference was deemed to be not significant enough in the preferred embodiment communication system environment to justify the extra computational complexity of segmented polynomial approximations. Therefore, in the preferred 30 embodiment communication systems, the optimal metric is approximated as a scaled form of the squared value output by the Walsh code transformer.
This optimal soft decision transition metric for MLSE decoding differs from the metric generated in the communication system shown in FIG. 1 in 35 that this optimal transition metric, as computed for example in the preferred -17- 207g~9 embodiment communication system shown in FIG. 2, is simply the squared, summed, and scaled outputs of Walsh code transformers 232 and 234.
The outputs of the Walsh code transformers 232 and 234 can be used directly b~use each group of sampled signals 228 and 229 corresponds 5 to a single l,dns",illed orthogonal code which represents the same set of input data bits encoded into a group of data symbols which were interleaved as a group and mapped as a group to the transmitted orthogonal code.
In contrast, the communication system shown in FIG.1 generates soft 1 0 decision transition metrics from a group of individual deinterleaved soft ~ision data 164. Each individual soft decision data 164 was computed from the product of a particular selected summed output of Walsh code transformers 132 and 134 and a bit from the index data symbol ~ssoci~ted with the particular output of the Walsh code transfommers. This use of 1 5 individual deinterleaved soft decision data 164 to form the soft decision transition metrics is necessary because each group of sampled signals 128 and 129 corresponds to a single transmitted orthogonal code which does not represent the same set of input data bits. In the encoder 100 shown in FIG.
1, the encoded data bits or data symbols are individually interleaved rather 20 than interleaved as a group. Therefore, a group interleaved data symbols representing more than one set of input data bits is mapped to the transmitted orthogonal code.
Thus, the optimal soft decision transition metrics used in MLSE
decoding, as shown in FIG. 2, differ from the metrics generated in the 25 communication system shown in FIG.1. In aWition, the preferred embodiment communication system shown in FIG. 2 provides significant improvements over the communication system shown in FIG. 1. One improvement is that when the optimal soft decision metrics are used in a communication system, having a fixed maximum average bit error rate, 30 rather than the soft decision metrics described in reference to FIG.1, the signal to noise ratio (i.e., Eb/No) can be significantly less in the communication system using the optimal soft decision transition metrics. As a result, the communication system using the optimal soft decision metrics can tolerate more noise in a communication channel. In a spread spectrum CDMA
35 communication system the amount of noise is directly related to the number of simultaneous code divided channels (i.e., users) operating in the same spectral band or range. Therefore, the communication system using the -18- ~7 1~95 optimal soft deci~ion metrics can tolerate more users than the communication system described in FIG. 1. Experimental results for the non-coherent communication system environment described above indicate that the improvement in signal to noise ratio from using the optimal soft decision 5 metrics is approximately 1 to 2 dB over the soft decision metrics as described in the communication system shown in FIG. 1. In other words, the coding gain derived from the use of the optimal soft decision metrics is greaterthan the coding gain derived from using the soft decision metrics as described in the communication system shown in FIG. 1. Another 10 improvement is the simplified structure for the decoding portion of the communication system.
In implementing the use of these optimal soft decision transition metrics, the interleaving of the data symbois (i.e., encoded data bits) is affected. Interleaving of related data symbols causes bursts of errors in the 15 communication channel to be spread out in time and thus to be handled by the decoder as if they were independent random errors. Since, channel memory decreases with time separation, the idea behind interleaving is to separate (i.e., make independent) the related data symbols of an encoded data bit in time. The intervening space in a l,~ns" ,;ssion block is filled with20 other data symbols related to other encoded bits. Separating the data symbols in time effectively transforms a channel with memory into a memoryless one, and thereby enables the use of the random-error correcting codes (e.g., convolutional codes and block codes). A MLSE
convolutional decoder makes a decision based on a sequence of data 25 samples instead of a single data sample. Thus, in order to obtain the best result in interleaving, the data samples on which the decoding decision is based should be as independent as possible. However, when transmitted data symbols are organized into blocks, the maximum separation between any two data symbols cannot be larger than the block size. As a result, data 30 samples of a received signal including the transmitted data symbols may not be independent of each other when fading of the signal is slow.
For a convolutional decoder with a constraint length of K, all of the interleaving units within the constraint length K will affect a decoding decision provided that only the first error event occurs. However, in a practical 35 environment, espedally under low signal to noise ratios, the interleaving units slightly beyond the constraint length will also affect a decoding dedsion, because the error event may have a longer length. An optimal interleaver is -19- ~'~74.~9~

designed according to the following criteria First, l (i.e., the minimum separation or dislance between noninterleaved consecutively input interleaved units) is chosen such that I = B/J. B is the ~ s" ,;ssion block length or size of the interleaver matrix in units of the size of the interleaved5 units (e.g. the size of each group of data symbols or in the case of interleaving orthogonal codes, the size of each orthogonal code). J is chosen to be an integer that is larger than K and less than 1.5K. It will be appreciated by those skilled in the art that numerous interleaving distances I
can be chosen in accordance with the principles set forth above for a given 1 0 set of operating environments parameters J, K and B without departing from the scope and spirit of the present invention.
For the preferred embodiment communication system shown in FIG.
2, the constraint length is chosen to be nine data bits input to encoder 204.
In particular, two input bits are convolutionally encoded into six data symbols 1 5 with a constraint length of nine input data bits (i.e., 2/6 encoding with K=9).
Each set of six data symbols related to the same two input data bits are grouped together as an interleaving unit. K in temms of interleaving units can be found by dividing the constraint length of nine input data bits by two input data bits which generate a group of six data symbols or one interleaving 20 unit. Thus, 4.5 interleaving units or groups of data symbols will affect a single decoding decision (i.e., K=4.5). In aWition, the block interleaver 208 will hold 576 data symbols which corresponds to the number of data symbols which can be transmitted in a single l,~n~"ission block by the trans~illing portion 216. Thus, the interleaver 208 interleaves 96 interleaving units in 25 each block interleave or B=96. J was chosen to be 6 which is greater than K
of 4.5 and less than 1.5K of 6.75. Therefore, l is chosen to be equal to B/J
which is 96 divided by 6 (i.e., l=16). As a result, interleaver 208 will interleave any two adjacent non-interleaved input groups of data symbols such that the two groups are separated by 5 other groups of data symbols 30 at the output of the interleaver 208.
In contrast in the communication system shown in FIG.1, the constraint length is chosen to be nine data bits input to encoder 104 which encodes one input bit into three data symbols (i.e., 1/3 encoding with K=9).
An interleaving unit equals one input data symbol. Thus K in terms of 35 interleaving units is 27 data symbols or K=27 (i.e., three data symbols per input data bit times a constraint length of nine input data bits). In addition, the block interleaver 108 will hold 576 data symbols or interleaving units (i.e., -20- ~074~95 B=576) which corresponds to the number of data symbols which can be l~dns",illed in a single trans",ission block by the transmitting portion 1 16. Jwas chosen to be 32 which is greater than K of 27 and less than 1 .5K of 40.5. Therefore, I is chosen to be equal to B/J which is 576 divided by 32 5 (i.e., I=18). As a result, interleaver 108 will interleave any two adjacent non-interleaved input data symbols such that the two data symbols are separated by 31 other data symbols at the output of the interleaver 108.
The different interleaving of the communication systems shown in FIG. 1 and 2 result in different levels of performance of the encoding and 10 decoding portions of the communication system. The performance difference is particularly distinctly seen in the signal non-fading environmentsof an additive white G~l IsYarl noise (AWGN) communication channel.
Several factors affect performance of encoding and decoding in a fading environment including: AWGN coding gain and diversity. As previously 15 mentioned, the coding gain of the communication system shown in FIG. 2 using a communication channel such as an AWGN channel is greater than the coding gain of the communication system shown in FIG. 1. The diversity inherent in convolutional coding is equal to the number of data samples affecting a decoding decision. For a first error event, the diversity is equal to 20 the constraint length. For the communication system shown in FIG. 2, the diversity is equal to about 5, because approximately 5 received orthogonal code words affect a single decoding decision. In contrast, forthe communication system shown in FIG. 1, the diversity is 27. The diversity is much greater because all 27 data samples which affect a decoding decision 25 are taken fro different portions of the received signal stream. This greater diversity in the communication system shown in FIG. 1 makes it perform better in ideal Rayleigh/Nakagami fading or infinHe interleaving environments having a high signal to noise ratio than the communication system shown in FIG. 2. However, when the signal to noise ratio is lowered (e.g., during 30 deep fading), the performance of the communication system shown in FIG.
2 improves with respect to the communication system shown in FIG. 1 because the AWGN coding gain becomes more important. In slow fading environments like Jakes model environments, entire trans",ission blocks can be in fade (i.e., low signal to noise ratios exist) interleaving and diversity 35 characteristics do not improve decoding decisions much. However, AWGN
coding gain is very important and as a result the communication system shown in FIG. 2 will perform better than the communication system shown in -21- 2n7 FIG.1. Thus, the difference in the interleaving of the data symbols in the communication systems shown in FlGs.1 and 2 affect the perfommance of the communications in signal fading environments. However, the greater in the AWGN coding gain of the communication system shown in FIG. 2 5 overcomes the greater diversity of the communication system shown in FIG.
1 in most slow signal fading situations.
In summary, the coding gain derived from the use of the optimal soft dedsion metrics is greater than the o~ding gain derived from using the soft dedsion metrics as described in the communication system shown in FIG.1.
1 0 For example, in the non-coherent communication system environment improvement in signal to noise ratio from using the optimal soft dedsion metrics used by the communication system shown in FIG. 2 is approximately 1 to 2 dB over the soft decision metrics as described in the communication system shown in FIG.1. Further, this greater coding gain of 1 5 the communication system shown in FIG. 2 overcomes the greater diversity of the communication system shown in FIG.1 in most signal fading situations.
A description of a preferred embodiment communication system, shown in FIG. 2, which incorporates the above mentioned optimizing 20 principles for a MLSE decoding in a system using orthogonal codes follows.
In the encoding portion 200 of the communication system, traffic channel data bits 202 are input to an encoder 204 at a particular bit rate. The input trafficchannel data bits can include either voice converted to data by a vocoder, pure data, or a combination of the two types of data. Encoder 204 encodes 25 the input data bits 202 into data symbols at a fixed encoding rate with an encoding algorithm which fadlitates su~JQnt maximum likelihood decoding of the data symbols into data bits (e.g. convolutional or block coding algorithms). The data symbols assodated with each input data bit 202 are grouped together. Each group may include the data symbols 30 assodated with more than one input data bit 202. These groups of data symbols 206 are output by the encoder 204.
A detailed example of a particular communication system with reference to the system elements of the preferred embodiment system shown in FIG. 2 will be described below. The particular portion of the 35 detailed example conceming each element will immediately follow the description conceming that particular element shown in FIG. 2. Tuming now to the particular portion of the detailed example concerning the encoder 204, -22- 207~

encoder 204 preferably receives input data bits 202 at a rate of 9.6 kbits/secor~. The encoder 204 convolutionally encodes the input data bits 202 at a fixed encoding rate of two data bits to six data symbols (i.e., 2/6 encoding) and with a con~l,~, ~ length of nine (K=9). The set of six data 5 symbols associated with each two input data bits 202 are grouped together.
These groups of six data symbols 206 are output by encoder at a 28.8 ksymbols/second rate. The groups of six data symbols 206 are generated using encoding generators g(x). The polynomial based generators as described in octal form preferably are 91(X) = [5571, g2(x) = [663], 93(x) =
1 0 [711], g4(x) = ~1336], g5(x) = l1546], and 96(X) = [1622], respectively. It will be appreciated by those skilled in the art that the output of two rate 1/3 generators with K=9 can be shown to be equivalent to the output of a single 2/6 rate generator with K=9 when the same bits are input to the two rate 1 /3 generators and the rate 2/6 generators. Further, it will be appreciated that 1 5 other sets of six generators can be used to encode the input data bits without departing from the scope of the present invention.
The groups of data symbols 206 are then input into an interleaver 208. It will be appreciated by those skilled in the art that the interleaver 208could perform the grouping of data symbols operation rather than the encoder 204. Interleaver 208 block interleaves the input groups of data symbols 206 by group. In the interleaver 208, each group of data symbols is individually input into a matrix which defines a predetermined size block of data symbols. The groups of data symbols are input into locations within the matrix so that the matrix is filled in a column by column manner. The groups of data symbols are individually output from locations within the matrix so that the matrix is emptied in a row by row manner. Typically, the matrix is a square matrix having a number of rows equal to the number of columns; however, other matrix forms can be chosen to increase the output interleaving distance between the consecutively input non-interleaved groups of data symbols. The predetermined size of the block of data symbols defined by the matrix is derived from the maximum number of data symbols, representing input data bits, which can be transmitted at a predetermined chip rate within a predetermined length transl"iss;on block.
The interleaved groups of data symbols 210 are output by the interleaver 208 at the same data symbol rate that they were input.
Tuming now to the particular portion of the detailed example concerning the interleaver 208, interleaver 208 preferably receives groups -23- 207~5 of data symbols 206 at a rate of 28.8 ksymbolslsecond. Interleaver 208 block interleaves the input groups of six data symbols 206 by group. In the interleaver 208, each group of six data symbols is individually input into a matrix which defines a predetermined size block of 576 data symbols.
Shown in FIG. 4 is block diagram of a preferred embodiment 16 by 6 matrix of interleaver 208 loaded with groups of data symbols 206. Each group of data symbols is located within a single box of the matrix (e.g. box 400).
Each group consists of the six data symbols convolutionally encoded from two input data bits 202 which are represented by two numbers in 1 0 parentheses (e.g. (1) and (2)). The numbers in parentheses indicate the order in which the data bits 202 were originally encoded into data symbols.
Each group of data symbols are input into locations (i.e., boxes) within the matrix so that the matrix is filled in a column by column manner. For example, a first column of boxes in the matrix is filled with the first sixteen 1 5 groups of data symbols 206 input into the interleaver 208. The first column includes a first group consi~ling of (1) and (2) which is input into box 400 of the matrix and a second group consisting of (3) and (4) which is input into box 402 of the matrix. The second column of boxes is filled with the next sixteen groups of data symbols 206. The second column includes a seventeenth group consisting of (33) and (34) which is input into box 404 of the matrix. The other four columns are filled in a similar manner. The groups of six data symbols are individually output from locations (i.e., boxes) within the matrix so that the matrix is emptied in a row by row manner. For example, the first row including box 400 and box 404 are output prior to the second row including box 402. The other rows of the matrix are output in a similar manner. The stream of output groups of data symbols 210 is interleaved such that, for example, the first group consisling of (1) and (2) isnow separated by five other groups from the second group consisting of (3) and (4). The interleaved groups of data symbols 210 are output by the interleaver 208 at the same data symbol rate of 28.8 ksymbols/second that they were input to the interleaver 208. The predetermined size of the block of data symbols defined by the matrix is derived from the maximum number of data symbols, representing input data bits, which can be transmitted at a predetermined chip rate within a predetermined length transmission block. In the preferred embodiment shown in FIG. 2 data symbols 206 are output from the encoder 202 at a 28.8 ksymbols/second rate. As a result the maximum predetermined chip rate for trans,l~ ing those -24- 2071~g5 data symbols 206 is 28.8 ksymbols/second. Further, the predetermined length of the l,~ns",;ssion block is 20 milliseconds. Therefore, the predetermined size of the block of data symbols is 28.8 ksymbols/second times 20 milliseconds which equals 576 data symbols. Although the 5 preferred embodiment interleaver 208 has been described in particular detail, it will be appr~iated by those skilled in the art that numerous variations of the interleaver couW be implemented without departing from the scope of the present invention. For example, the size of the interleaving block could be altered to accommodate different transmission lengths or 1 0 rates. Also, the dil,~ensions of the matrix could be altered to increase or decrease the interleaved distance between consecutively input groups of data symbols.
The interleaved groups of data symbols 210 are then input to a mapper 212. The mapper 212 derives a sequence of fixed length 1 5 orthogonal codes 214 from the interleaved groups of data symbols 210.
Each interleaved group of data symbols 210 selects one orthogonal code from a group of mutually orthogonal codes to represent the group of data symbols 210. The mapper 212 outputs a sequence of orthogonal codes 214 which correspond to the input data symbols 210 from encoding portion 200 of the communication system at a fixed data symbol rate related to the input data symbol rate. For example, the interleaved distance could be increased by loading the interleaver 208 matrix, shown in FIG. 4, with groups of data symbols in a row by row manner, and subsequently emptying the matrix in a column by column manner.
Tuming now to the particular portion of the detailed example concerning the mapper 212, mapper 212 preferably receives interleaved groups of six data symbols at a rate of 28.8 ksymbols/second. The mapper 212 preferably derives a 64 bit length Walsh code from each input group of six data symbols 210. The six data symbols of each group are used as a binary index to select one of 64 mutually orthogonal Walsh codes. The 64 mutually orthogonal Walsh codes preferably correspond to single rows or columns of a 64 by 64 Hadamard matrix. The mapper 212 outputs a sequence of Walsh codes 214 which correspond to the input groups of data symbols 210 at a fixed data symbol rate of 307.2 ksymbols/second. The increase in the data symbols rate is due to the mapping function of the mapper 212 in which a 64 bit length orthogonal code replaces each input group of six data symbols (i.e., 64 bit length -25- 207~

orthogonal code (64 data symbols) divided by six data symbols times the 28.8 ksymbols/second input rate of the data symbols equals 307.2 ksymbols/second). It will be apprec~ed by those shlled in the art that other types and lengths of orthogonal codes could be used without departing 5 from the scope of the present invention.
In an altemative embodiment of the present invention which is roughly equivalent to the preferred embodiment described above, the order of input of the groups of data symbols 206 to the group level block interleaver 208 and mapper 212 is reversed. The groups of data symbols 1 0 206 are input to a mapper 212. The mapper 212 derives a sequence of fixed length orthogonal codes 214 from the groups of data symbols 206.
Each group of data symbols 206 selects one orthogonal code from a group of mutually orthogonal codes to represent the group of data symbols 206.
The mapper 212 outputs a sequence of orthogonal codes which 1 5 correspond to the input data symbols 206 at a fixed data symbol rate related to the input data symbol rate. Subsequently, the sequence of orthogonal codes are input into an interleaver 208. Interleaver 208 block interleaves the input sequence of orthogonal codes by orthogonal code. In the interleaver 208, each orthogonal code is individually input into a matrix 20 which defines a predetermined size block of orthogonal codes. The orthogonal codes are input into locations within the matrix so that the matrix is filled in a column by column manner similar to the groups of data symbols described above. Then, the orthogonal codes are individually output from locations within the matrix so that the matrix is emptied in a row by row 25 manner similar to the groups of data symbols described above. The interleaved orthogonal codes 214 are output from encoding portion 200 of the communication system by the interleaver 208 at the same data symbol rate that they were input to the interleaver 208.
An example of such an alternative arrangement of mapper 212 and 30 interleaver 208 which could replace the preferred embodiment detailed example interleaver 208 and mapper 212 combination follows. The groups of six data symbols 206 are preferably input to a mapper 212 at a rate of 28.8 ksymbols/second. The mapper 212 derives a 64 bit length Walsh code from each input group of six data symbols 206. The six data symbols 35 of each group are used as a binary index to select one of 64 mutually orthogonal Walsh codes. Due to the mapping function of the mapper 212 in which a 64 bit length orthogonal code replaces each input group of six data 21~74595 symbol, the mapper 212 outputs a sequence of Walsh codes at a fixed data symbol rate of 307.2 ksymbols/second. Subsequently, the sequenoe of Walsh codes are input into an interleaver 208 at a rate of 307.2 ksymbolstsecor~. Interleaver 208 bbck interleaves the input sequence of Walsh codes by Walsh code. In the interleaver 208, each Walsh code is individually input into a 16 by 6 matrix which defines a predetermined size block of 6144 data symbols (i.e., 96 Walsh codes). The Walsh codes are input into bcations within the matnx so that the matrix is filled in a column bycolumn "~anner similar to the groups of data symbols described abovs in 1 0 reference to FIG. 4. Then, the Walsh codes are individually output from bcations within the matrix so that the matrix is emptied in a row by row manner similar to the groups of data symbols desaibed above in referenoe to FIG. 4. The interleaved Walsh codes 214 are output from encoding portion 200 of the communication system by the interleaver 208 at the 1 5 same data symbol rate of 307.2 ksymbolstsecond that they were input to the interleaver 208.
The sequence of orthogonal codes 214 is input to a trans",illing portion 216 of the communication system. The sequence 214 is pr~par~d for tran~";ssion over a communication channel by a mo~ul~or 217.
Subsequently, the modulated sequence is provided to an antenna 218 for l,~ns",;s~n ovsrthe communication dlannel 220.
Tuming now to the particular portion of the ~ l~d exa" ,~1~
corceming the mo~ul~or 217, modu'~tor 217 pre~e,~ly receives the sequence 214 at a data symbol rate of 307.2 ksymbols/second and prepares the sequence 214 for direct sequence code div~ded spread spectnum transmission by spreading the sequenoe 214 with a long PN
spreading code. lt will be appredated by those skilled in the art that other types of spreading codes could be used to spread sequence 214. The PN
spreading code is a user spedfic sequence of symbols or unique user code which is mixed with the sequence 214 at a fixed chip rate of 1.228 Mchips/second. As a result of this mixing function, the sequence 214 is spread with the PN spreading code such that 256 bit length sequences are fommed which represent each 64 bit length Walsh code. In addition to providing an identification as to which user sent the encoded traffic channel data bits 202 (i.e., the Walsh code sequence 214) over the communication channel 220, the unique user PN code enhances the security of the communication in the communication channel by scrambling the encoded -27- 2~74~9~

traffic channel data bits 202. In addition, the user code spread encoded data bits are spread by a pair of short PN spreading codes (i.e., short when compared to the long PN spreading code) to generate an l-channel and Q-channel code spread sequence. The l-channel and Q-channel code spread sequences are used to bi-phase modulate a quadrature pair of sinusoids by driving the power level controls of a the pair of sinusoids. The sinusoids output signals are summed, bandpass filtered, ~ slaled to an RF
frequency, amplified, filtered and radiated by an antenna 218 to complete s",;ss 011 of the traffic channel data bits 202 in a communication channel 1 0 220 as a spread spectrum signal. As a result of the encoding and modulating operations, each pair of input data bits 202 are represented by 256 bit length sequences which are trans",itl~ in communication channel 220.
A receiving portion 222 of the communication system receives the 1 5 l,dns",illed spread spectrum signal from overthe communication channel 220 through antenna 224. The received signal is sampled into data samples by demodul~tor 226. Subsequently, the data samples 228 and 229 are output to the decoding portion 230 of the communication system.
Turning now to the particular portion of the detailed example conceming the demodulator 226, the demodulator 226 preferably samples the received spread spectnum signal by filtering, demodulating, translating from the RF frequencies, and sampling at a predetermined rate of 1.2288 Msamples/second. Subsequently, the in-phase sampled signal and quadrature sampled signal are independently despread by correlating the received sampled signals with the short PN spreading codes and the long PN spreading code. The resulting despread in-phase 228 and quadrature 229 sampled signals are sampled a predetermined rate of 307.2 ksamples/second so that a sequence of four samples of the received spread spectrum signal is despread and/or represented by a single data sample.
The sampled signals 228 and 229 are independently input to a decoding portion 230 of the communication system which non-coherently detects/decodes the sampled signals 228 and 229 into estimated data bits 268. In order to decode the sampled signals 228 and 229, predetermined length groups of sampled signals are independently input to orthogonal code transformers 232 and 234, respectively. The orthogonal code transformers 232 and 234 output a plurality of transformer output signals 233 -28- 207 l~9~i and 235 respectively. Each transformer output signal corresponds to a measure of confidence that a particular group of sampled signals corresponds to a particular orll ,Ggonal code from within a set of mutually G,li,o~onal codes. In addition each l,ansfu""eroutput signal has an ~Ofid~Qd index data symbol which ind;cates which particular ûrthogûnal code from within the set of mutually o,ll~gonal codes that the l,ansfor",er output signal corresponds to. The index data symbol also corresponds to a possible transition within a maximum likelihood decoding trellis which decoder 266 will subsequently be determining. ~Subsequently each 1 0 transformer output signal within the groups of transformer output signals 233 and 235 is squared by transformer output signal squaring mechanisms 236 and 238 respectively. Subsequently a group of decision values 242 is generated by aWing mechanism 240 which aWs together each pair of squared transformer output signals (i.e. one from each of the tran~fur",er 1 5 output signal squaring mechanisms 236 and 238) having associ~ted index data symbols which indicate that the l,~hsfu""er output signals correspond to the same orthogonal code.
Tuming now to the particular portion of the detailed example concerning the transfommers 232 and 234 the squaring mechanisms 236 and 238 and the aWing mechanism 240 the in-phase 228 and quadrature 229 sampled signals are independently input to a decoding portion 230 of the communication system which non-coherently detecVdecode the sampled signals 228 and 229 into estimated data bits 268. In order to decode the sampled signals 228 and 229 64 sample length groups of sampled signals are independently input at a rate of 307.2 ksamples/second to fast Hadamard transformers 232 and 234 respectively. Each fast Hadamard transformers 232 and 234 output 64 transformer output signals 233 and 235 respectively. Each transformer output signal corresponds to a measure of conhdenoe that a particular group of 64 sampled signals corresponds to a particular 64 bit length Walsh code from within a set of 64 mutually orthogonal Walsh codes. In addition each transfomler output signal has an ~soci~ted 6 bit length index data symbol which indicates which particular Walsh code from within the set of 64 mutually orthogonal Walsh codes that the transformer output signal corresponds to. Suhsequently each transformer output signal within each group of 64 transformer output signals 233 and 235 is squared by transformer output signal squaring mechanisms 236 and 238 respectively. Subsequently a group of 64 decision data 242 -29- 207~9~

is generated and output at a rate of 307.2 kdata/second for each pair of groups of squared transformer output signals by adding mechanism 240 which aWs together each pair of squared trar,sf~r",er output signals (i.e. one from each of the transformer output signal squaring mechanisms 236 and 238) having ~ ted index data symbols which indicate that the ,a,)slo""er output signals correspond to the same Walsh code.
The several groups of decision data 242 are then input into a deinterleaver 244 which block deinterleaves the input decision data 242 by group. In the deinterleaver 244, each group of decision data is individually 1 0 input into a matrix which defines a precJele""ined size block of decision data.
Each group of deci~ion data is input into bcations within the matrix so that thematrix is filled in a row by row manner. The groups of decision data 246 are individually output from locations within the matrix so that the matrix is emptied in a column by column manner. Typically, the matrix is a square 1 5 matrix having a number of rows equal to the number of columns; however, other matrix fomms can be chosen to match the fomm of the matrix used by interleaver 208. The predetermined size of the block of decision data defined by the matrix is derived from the number of decision data generated for each group of data samples, the number of data samples in each group of data samples and the maximum number of data samples, representing transmitted data symbols, which can be sampled at a predetermined chip rate from a received predetermined length transl";ssion block The deinterleaved groups of decision data 246 are output by the deinterleaver 244 at the same rate that they were input.
Tuming now to the particular portion of the detailed example concerning the deinterleaver 244, deinterleaver 244 preferably receives several groups of 64 decision data 242 at a rate of 307.2 kdata/second.
Deinterleaver 244 block deinterleaves the input groups of 64 dedsion data 242 by group. In the deinterleaver 244, each group of 64 dedsion data is individually input into a matrix which defines a predetemmined size block of 6144 dedsion data. A 16 by 6 matrix of deinterleaver 244 is substantially similarly baded and unloaded in an inverse mannerto the manner in which the preferred embodiment 16 by 6 matrix of interleaver 208 was loaded and unloaded with groups of data symbols 206 as shown in FIG. 4. Each group of decision data is loaded into a single box of the matrix (e.g. box 400). Each group of dedsion data is input into locations (i.e., boxes) within the matrix so that the matrix is filled in a row by row manner. For example, a 20~59~

first row of boxes in the matrix is filled with the first six groups of decisiondata 242 input into the deinterleaver 244. The first row includes a first group of 64 decision data which is input into box 400 of the matrix and a second group of 64 decision data which is input into box 404 of the matrix. The second column of boxes is filled with the next six groups of decision data 242. The second column includes a seventh group of 64 decision data which is input into box 402 of the matrix. The other fourteen rows are filled ina similar manner. The groups of 64 decision data are individually output from locations (i.e., boxes) within the matrix so that the matrix is emptied in a 1 0 column by column manner. For example, the first column including box 400 and box 402 are output prior to the second column including box 404. The other column of the matrix are output in a similar manner. The stream of output groups of data symbols 246 is deinterleaved such that, for example, the first group of 64 dedsion data now immediately precedes the seventh 1 5 group in the output stream 246 of groups of dedsion data. Further the second group input to the deinterleaver is separated by fifteen other groups from the first group in the output stream 246 of data symbols. The deinterleaved groups of decision data 246 are output by the deinterleaver 244 at the same rate of 307.2 kdata/second that they were input to the interleaver 244. The predetermined size of the block of decision data defined by the matrix is derived from the number of decision data generated for each group of data samples, the number of data samples in each group of data samples and the maximum number of data samples, representing transmitted data symbols, which can be sampled at a predetermined chip rate from a received predele""ined length trans",ission block. In the preferred embodiment shown in FIG. 2, 64 decision data are generated for each group of 64 data samples. Further, the maximum number of data samples, representing transmitted data symbols, which can be sampled at a predetermined chip rate of 307.2 ksampleslsecond from a received predetermined length transmission block of 20 milliseconds is 307.2 ksampleslsecond times 20 milliseconds which equals 6144 data samples.
Therefore, the predetermined size of the block of decision data is 64 decision data per 64 data samples times 61 44 data samples which equals 61 44 decision data.
In an altemative embodiment of the present invention which is roughly equivalent to the preferred embodiment described above, the order in which the groups of data samples 228 and 229 are converted to - 31 - 2 0 7 ~ ~ 9 decision data and the deinterleaving is reversed. In order to decode the sampled signals 228 and 229, predetermined length groups of sampled signals are independently input to two separate deinterleavers similar to deinterleaver 244 described above. Several groups of data samples are 5 input into each deinterleaver which block deinterleaves the input data samples by group. In the deinterleaver, each group of data samples is individually input into a matrix which defines a predetermined size block of data samples. Each group of data samples is input into locations within the matrix so that the matrix is filled in a row by row manner. The groups of data 1 0 samples are individually output from locations within the matrix so that thematrix is emptied in a column by column manner. The deinterleaved groups of data samples are output by each deinterleaver at the same rate that they were input. The deinterleaved groups of data samples from each deinterleaver are independently input to G.ll,ogonal code l,d"s~u,r"ers similar 1 5 to 232 and 234, respectively. The orthogonal code transformers output a plurality of transformer output signals similar to 233 and 235, respectively.
Each transformer output signal corresponds to a measure of confidenoe that a particular group of deinterleaved sampled signals corresponds to a particular orthogonal code from within a set of mutually orthogonal codes. In addition, each transfommer output signal has an ~ssoci~ed index data symbol which indicates which particular orthogonal code from within the set of mutually orthogonal codes that the transformer output signal co"~spor,.Js to.
hseqlJently, each transformer output signal within the groups of transfommer output signals is squared by transfommer output signal squaring mechanisms similar to 236 and 238, respectively. Subsequently, a group of deinterleaved decision values similar to 246 is generated by adding mechanism similar to 240 which adds together each pair of squared transformer output signals (i.e. one from each of the transfommer output signal squaring mechanisms) having ~sso~ted index data symbols which indicate that the transfommer output signals correspond to the same orthogonal code.
The aWing mechanism generates groups of deinterleaved decision data similar to those output by deinterleaver 244 of the preferred embodiment, becAI Ise the data sample signals 228 and 229 where deinterleaved prior to being input to the Gl lh ogonal code transfommers and as a result the orthogonal code transformers produced deinter!eaved output signals from which deinterleaved decision data were formed.

--32-- 2 Q 7 4 ~

An example of such an altemative position of the deinterleaver which could replace the preferred embodiment detailed example position of deinterleaver 244 follows. 64 bit length groups of sampled signals 228 and 229 are independently input to two separ~le interleavers similar to interleaver 244 described above at a rate of 307.2 kdata/second. Each deinterleaver block deinterleaves the input groups of 64 data samples by group. In the deinterleaver each group of 64 data samples is individually input into a 16 by 6 matrix which defines a pr~ ermined size block of 6144 data samples. Each deinterleaver is loaded and unloaded with groups 1 0 of 64 data samples in a manner similar to the manner in which the preferred embodiment 16 by 6 matrix of interleaver 244 was loaded and unloaded with groups of decision data as shown in FIG. 4. Each group of 64 data samples is input into locations within the matrix so that the matrix is filled in a row by row manner. The groups of 64 data samples are individually output 1 5 from locations within the matrix so that the matrix is emptied in a column by column manner. The deinterleaved groups of data samples are output by each deinterleaver at the same rate of 307.2 kdata/second that they were input. The deinterleaved groups of 64 data samples from each deinterleaver are independently input to fast l la~",ard transfommers similar to 232 and 234 respectively. The fast Ha.Ja"lar~ code transfommers output 64 transformer output signals similar to 233 and 235 respectively. Each transformer output signal corresponds to a measure of confidence that a particular group of deinterleaved sampled signals corresponds to a particular Walsh code from within a set of mutually orthogonal Walsh codes. In addition each transformer output signal has an ~ ted six bit length index data symbol which indicates which particular Walsh code from within the set of mutually o, Ll ,ogonal Walsh codes that the transfommer output signalcorresponds to. Subsequently each transformer output signal within the groups of 64 transformer output signals is squared by transformer output signal squaring mechanisms similar to 236 and 238 respectively.
Subsequently a group of 64 deinterleaved decision values similar to 246 is generated by aWing mechanism similar to 240 which aWs together each pair of squared transfommer output signals (i.e. one from each of the transformer output signal squaring mechanisms) having ~ ted six bit length index data symbols which indicate that the transformer output signals correspond to the same Walsh code.

-33- 2 0 7 ~ ~ 9 ~
The deinterleaved groups of decision data 246 are input to metric computation unit 248. The metric compln~tion unit 248 corlverts the groups of decision data 246 into groups of soft decision decoding metrics 250. The conversion typically involves scaling the groups of decision data 246 so that decoder 266 is able to use the decision data as soft decision decoding metrics. This scaling operation may include e~ ;on of decision data 246 according to received signal strength infommation or l,~ns",itled power infomnation related to the received spread spectrum signal. It will be appreciated by those skilled in the art that the deco~er 266 could also be 1 0 designed to include such compensation functions. The metric computation unit 248 also serves as an addressing mechanism for generating ad~esses in which to put the groups of soft decision decoding metrics in the metric lookup table 260. The index data symbols ~-~soci~ted with each soft decision metric (i.e., scaled decision data) are used as part of the lookup 1 5 table address generated by the metric computation unit 248. The groups of soft decision metrics 250 are output by the metric computation unit 248 at the same rate that the decision data 246 were input. However, it will be appreciated by those skilled in the art that metric computation unit 248 may also serve as a buffer mechanism for metric lookup table 260. In particular, metric computation unit 248 may temporarily store the soft dedsion metrics 250 and output the soft decision metrics 250 to lookup table 260 as needed.
Tuming now to the particular portion of the detailed example conceming the metric computation unit 248, metric computation unit 248 preferably receives deinterleaved groups of 64 dedsion data 246 at a rate of 307.2 kdaWsecond. The metric computation unit 248 converts the groups of 64 decision data 246 into groups of 64 soft decision decoding metrics 250. In addition, the metric computation unit 248 generates addresses 250' in which to put the groups of 64 soft decision decoding metrics in the metric lookup table 260. The six bit length index data symbols associated with each soft decision metric are used as part of the lookup table address 250' generated by the metric computation unit 248.
The groups of soft decision metrics 250 are output by the metric computation unit 248 at the same rate of 307.2 kmetrics/second that the decision data 246 were input.
The groups of soft decision metrics 250 are input to a metric lookup table 260. A preferred embodiment memory-based lookup table 260 is -34- ~7i~35 shown in FIG. 3. The lookup table 260 includes a memory portion 256 and address buses 252 and 254. Metric computation unit 248 provides a write address 250' for each ~soci~tecl soft decision metric 250 to metric lookup table 260. The write address consists of a group address portion which identifies a particular group of soft decision metrics from which each soft decision metric 250 is in and also an offset address portion which identifies the particular soft decision metric 250 of the particular group of soft decisionmetrics. The group address portion, which co"~sponds to data bits originally encoded by encoder 204, also corresponds to a particular time 1 0 state in the maximum likelihood sequence estimation decoder 266. The offset address portion, which corresponds to the index data symbol Q J with the particular soft ~ecisbn metric, also corresponds to a possible transition within a maximum likelihood decoding trellis which decoder 266 will subsequently be determining. The offset address portion 1 5 and group aWress portion of the write ach~less 250' are placed on the databuses 252 and 254, respectively. Subsequently, each particular soft decision metric 250 ~ with the particular write aWress 250' is stored within a bcation in the memory 256.
Tuming now to the particular portion of the detailed example concerning the metric bokup table 260, metric bokup table 260 preferably receives the groups of soft decision metrics 250 at a rate of 307.2 kmetrics/second. However, as previously noted the lookup table may receive the soft decision metrics from a buffering mechanism of the metric computation unit 248 as needed. In the preferred embodiment memory-based lookup table 260 is shown in FIG. 3, the memory 256 consists of random access memory (RAM) 256 which is segmented into groups of 64.
Metric computation unit 248 provides a write address 250' for each associated soft decision metric 250 to metric lookup table 260. The write address consists of a group aWress portion which identifies a particular group of 64 soft decision metrics to which each soft decision metric 250 belongs and also a six bit length offset address portion which identifies the particular soft decision metric 250 of the particular group of 64 soft decision metrics. The group address portion, which corresponds to two data bits originally encoded by 2/6 encoder 204, also correspond to a particular time state in the maximum likelihood sequence estimation decoder 266. The six bit length offset address portion, which corresponds to the six bit length index data symbol ~socY~ted with the particular soft decision metric, also 2 ~ 7 1 ~ 9 S

corresponds to a possible transition within a maximum likelihood decoding trellis which decoder 266 will subsequently be detemmining while generating estimated data bits 268. The six bit length offset address portion and group address portion of the write address 250' are placed on the data buses 252 and 254, respectively. Subse~llJently, each particular soft decision metric 250 ~ ted with the particular write aWress 250' is stored within a location in the RAM-based lookup table 256.
Since, the soft decision metrics 250 have been stored in metric table 260, decoder 266 which uses maximum likelihood decoding techniques to 1 0 generate estimated traffic channel data bits 268 can begin decoding operations. These maximum likelihood deco~l ng techniques may be augmented by using an algGi ilhl l l which is substantially similar to a Viterbidecoding algorithm. The .Jecoc er 266 uses groups of the soft decision metrics ~ ted with possible l,~nsitions at each particular time state of the 1 5 maximum likelihood sequence estimation decoder 266 to generate the estimated data bits 268. Decoder 266 provides a read aWress 262 to the lookup table 260 to retrieve particular soft decision metrics. The read aWress 262 includes an offset a~less portion which corresponds to a possible transition within the MLSE decoding aborithm and a group aWress portion which corresponds to a particular time state within the MLSE dea)~ler 266. The offset address portion and group address portion of the read address 262 are placed on the aWress buses 252 and 254, respectively.
Subsequently, each particular soft decision metric 264 ~ ted with the particular read a~Jress 262 is retrieved from within a location in the memory 256. The estimatQd data bits 268 are generated at a rate related to the rate that the soft decision data 264 are retrieved into the decoder 266 and the number of estimated data bits 268 generated per group of soft decision metrics 264 retrieved.
Tuming now to the particular portion of the det,- led example concerning the decoder 266, deco~er 266 preferably uses maximum likelihood decoding techniques to generate eslirll~ed traffic channel data bits 268. These maximum likelihood decoding techniques preferably are augmented by using an algorithm which is substantially similar to a Viterbi decoding algorithm. The decoder 266 preferably is a 2/6 convolutional decoder related to the encoder 204 originally used to encode traffic channel data bits 202. The decoder 266 uses groups of 64 soft decision metrics ted with 64 possible transitions at each particular time state of the -36- 2074~95 maximum likelihood sequence estimation decoder 266 to generate two e~i",aled data bits 268 per group of 64 soft decision metrics retrieved into decoder 266. Decoder 266 provides a read address 262 to the lookup table 260 to retrieve particular soft decision metrics. The read aWress 262 includes a six bit length offset address portion which corresponds to one of a possible 64 transitions within the MLSE decoding aboritb,m and a group address portion which corresponds to a particular time state within the MLSE
decoder 266. The six bit length offset a.hl~ess portion and group address portion of the read aWress 262 are placed on the data buses 2~2 and 254, 1 0 respectively. ~Subselluently~ each particular soft decision metric 264 ted with the particular read aWress 262 is retrieved from within a location in the memory 256. The estimated data bits 268 are generated at a rate related to the rate that the soft decision data 264 are retrieved into the decoder 266 and the number of estimated data bits 268 generated per 1 5 group of soft decision metrics 264 retrieved. If the soft decision data 264 are retrieved into the decoder 266 at a rate of 307.2 kmetrics/second and two estimated data bits are generated per 64 metrics input, then the estimated data bits are generated at a rate of 307.2 k",el,icslsecond time two bits per 64 metrics which is equal to 9600 estimated bits/second.
Although the invention has been described and illustrated with a certain degree of particularity, it is understood that the present .J;sclos,Jre of embodiments has been made by way of example only and that numerous changes in the arrangement and combination of parts as well as steps may be resorted to by those skilled in the art without departing from the spirit andscope of the invention as claimed. For example, the modulator, antennas and demodulator portions of the preferred embodiment communication system as described were directed to CDMA spread spectrum signals transmitted over a radio communication channel. However, as will be understood by those skilled in the art, the encoding and decoding techniques described and claimed herein can also be adapted for use in other types of transmission systems like those based on TDMA and FDMA. In addition the communication channel could altematively be an electronic data bus, wireline, optical fiber link, or any other type of communication channel.

Claims (11)

1. An apparatus comprising a signal encoder, the signal encoder comprising:
(a) encoding means for encoding input data bits of a signal into data symbols and grouping the data symbols, the data symbols being encoded with an encoding algorithm wherein the encoding algorithm produces data symbols which are subsequently decoded into data signal bits with maximum likelihood decoding; and (b) translating means, operatively coupled to the encoding means, for translating the groups of data symbols according to an algorithm selected from the group consisting essentially of (i) interleaving by group each group of data symbols within a predetermined size block and subsequently deriving an orthogonal code from each group of interleaved data symbols and (ii) deriving an orthogonal code from each group of data symbols and subsequently interleaving by orthogonal code each orthogonal code within a predetermined size block.
2. The apparatus of claim 1 further comprising a signal transmitting means, operatively coupled to the signal encoder, for transmitting the translated groups of data symbols over a communication channel.
3. The apparatus of claim 2 wherein the signal transmitting means comprises means for preparing the translated groups of data symbols for transmission over the communication channel by spreading the translated groups of data symbols with a spreading code prior to transmission over the communication channel.
4. The apparatus of claim 2 further comprising:
(a) signal receiving means for sampling a signal received from over the communication channel into data samples; and (b) a signal decoder, operatively coupled to the signal receiving means, the signal decoder comprising:
(i) grouping means for grouping received data samples;
(ii) transforming means, operatively coupled to the grouping means, for transforming the groups of data samples according to an algorithm selected from the group consisting essentially of (1) generating a plurality of soft decision similarity metrics and index data symbols for each group of data samples such that one index data symbol is associated with each soft decision metric and subsequently deinterleaving by group each group of soft decision metrics within a predetermined size block and (2) deinterleaving by group each group of data samples within a predetermined size block and subsequently generating a plurality of soft decision similarity metrics and index data symbols for each deinterleaved group of data samples such that one index data symbol is associated with each soft decision metric, each soft decision metric corresponding to a measure of confidence that a particular group of data samples is substantially similar to a particular orthogonal code from within a set of mutually orthogonal codes;
and ii) decoding means, operatively coupled to the transforming means, for generating at least one estimated data bit by utilizing maximum likelihood decoding techniques to derive the at least one estimated data bit from the soft decision metrics and associated index data symbols.
5. The apparatus of claim 4 wherein the signal receiving means comprises means for despreading the received signal with a spreading code to derive data samples.
6. The apparatus of claim 4 wherein:
(a) the signal encoder encoding means comprises means for convolutionally encoding two input data bits of the signal into six data symbols and grouping the six data symbols derived from the two input data bits;
(b) the signal encoder translating means comprises means for translating the groups of data symbols according to an algorithm selected from the group consisting essentially of (i) interleaving as a group each group of six data symbols within the predetermined size block and subsequently deriving a 64 bit length orthogonal code from each group of six data symbols and (ii) deriving a 64 bit length orthogonal code from each group of six data symbols and subsequently interleaving as a group each 64 bit length orthogonal code within the predetermined size block;
(c) the signal transmitting means comprises means for spreading each 64 bit length orthogonal code with a predetermined spreading code such that predetermined bit length sequences are formed which represent each 64 bit length orthogonal code and subsequently transmitting the predetermined bit length sequences over the communication channel whereby each two input data bits are represented by a predetermined bit length transmitted sequence;
(d) the signal receiving means comprises means for despreading the received signal with the predetermined spreading code to derive data samples such that each data sample represents a 4 bit length sequence of the received signal;
(e) the signal decoder grouping means comprises means for grouping the data samples into 64 bit length groups;

(f) the signal decoder transforming means comprises means for transforming the groups of data samples according to an algorithm selected from the groups consisting essentially of (i) generating 64 soft decision metrics and index data symbols for each 64 bit length group of data samples such that one index data symbol having at least a 6 bit length is associated with each soft decision metric and subsequently deinterleaving as a group each group of 64 soft decision metrics within the predetermined size block and (ii) deinterleaving as a group each 64 bit length group of data samples within the predetermined size block and subsequently generating 64 soft decision metrics and index data symbols for each deinterleaved 64 bit length group of data samples such that one index data symbol having at least a 6 bit length is associated with each soft decision metric each soft decision metric corresponding to a measure of confidence that a particular group of data samples is substantially similar to a particular 64 bit length orthogonal code from within a set of 64 mutually orthogonal 64 bit length codes; and (g) the signal decoder decoding means comprises means for generating at least one estimated data bit by utilizing maximum likelihood decoding techniques including using the at least 6 bit length index data symbols and associated soft decision metrics.
7. An apparatus comprising a signal decoder, the signal decoder comprising:
(a) grouping means for grouping received data samples of a signal;
(b) transforming means, operatively coupled to the grouping means, for transforming the groups of data samples into index data symbols and associated deinterleaved soft decision metrics according to an algorithm selected from the group consisting essentially of (i) generating a plurality of soft decision similarity metrics and index data symbols for each group of data samples such that one index data symbol is ted with each soft decision metric and subsequently deinterleaving by group each group of soft decision metrics within a predetermined size block and (ii) deinterleaving by group each group of data samples within a predetermined size block and subsequently generating a plurality of soft decision similarity metrics and index data symbols for each deinterleaved group of data samples such that one index data symbol is associated with each soft decision metric, each soft decision metric corresponding to a measure of confidence that a particular group of data samples is substantially similar to a particular orthogonal code from within a set of mutually orthogonal codes; and (c) decoding means, operatively coupled to the transforming means, for generating at least one estimated data bit by utilizing maximum likelihood decoding techniques to derive the at least one estimated data bit from the index data symbols and associated soft decision metrics.
8. The apparatus of claim 7 further comprising signal receiving means, operatively coupled to the signal decoder, for sampling a signal received from over a communication channel into data samples.
9. The apparatus of claim 7 wherein the signal decoder data sample transforming means comprises means for generating soft decision similarity metrics by utilizing a Hadamard transform matrix algorithm on a group of data samples.
10. The apparatus of claim 7 wherein the signal decoder decoding means comprises means for generating at least one estimated data bit by utilizing maximum likelihood decoding techniques which are substantially similar to the Viterbi decoding algorithm.
11. The apparatus of claim 7 wherein:
(a) the signal decoder transforming means comprises:
(i) means for determining each index data symbol such that each index data symbol corresponds to a possible transition within a maximum likelihood decoding trellis; and (ii) means for storing each soft decision metric in a particular address of a memory based lookup table such that the associated index data symbol comprises a portion of the particular address in the lookup table; and (b) the signal decoder decoding means comprises means for generating at least one estimated data bit by utilizing maximum likelihood decoding techniques in which such transition corresponding index data symbols are used to address and retrieve at least one soft decision metric from the memory based lookup table.
CA002074595A 1991-08-28 1992-07-24 Method and apparatus for using orthogonal coding in a communication system Expired - Lifetime CA2074595C (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/751,372 US5159608A (en) 1991-08-28 1991-08-28 Method and apparatus for using orthogonal coding in a communication system
US751,372 1991-08-28

Publications (2)

Publication Number Publication Date
CA2074595A1 CA2074595A1 (en) 1993-03-01
CA2074595C true CA2074595C (en) 1997-01-14

Family

ID=25021699

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002074595A Expired - Lifetime CA2074595C (en) 1991-08-28 1992-07-24 Method and apparatus for using orthogonal coding in a communication system

Country Status (5)

Country Link
US (1) US5159608A (en)
JP (1) JPH0831839B2 (en)
KR (1) KR960008988B1 (en)
CA (1) CA2074595C (en)
IL (1) IL102766A (en)

Families Citing this family (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2673389B2 (en) * 1991-03-07 1997-11-05 松下電器産業株式会社 Data transmission equipment
JP2876497B2 (en) * 1991-08-23 1999-03-31 松下電器産業株式会社 Error correction code decoding method and apparatus
US5737358A (en) * 1992-03-11 1998-04-07 Geotek Communications, Inc. Multiplexed radio communication system
US5353352A (en) * 1992-04-10 1994-10-04 Ericsson Ge Mobile Communications Inc. Multiple access coding for radio communications
US5550809A (en) * 1992-04-10 1996-08-27 Ericsson Ge Mobile Communications, Inc. Multiple access coding using bent sequences for mobile radio communications
DE69325844T2 (en) * 1992-04-17 2000-08-31 Ericsson Telefon Ab L M Mobile-assisted handoff with code division multiple access
US5297161A (en) * 1992-06-29 1994-03-22 Motorola Inc. Method and apparatus for power estimation in an orthogonal coded communication system
US5857112A (en) * 1992-09-09 1999-01-05 Hashemi; Ebrahim System for achieving enhanced performance and data availability in a unified redundant array of disk drives by using user defined partitioning and level of redundancy
US5274667A (en) * 1992-10-23 1993-12-28 David Olmstead Adaptive data rate packet communications system
US5442627A (en) * 1993-06-24 1995-08-15 Qualcomm Incorporated Noncoherent receiver employing a dual-maxima metric generation process
US5509031A (en) * 1993-06-30 1996-04-16 Johnson; Chris Method of transmitting and receiving encoded data in a radio communication system
US5515375A (en) * 1993-07-30 1996-05-07 Motorola, Inc. Method and apparatus for multiplexing fixed length message data and variably coded speech
EP0644661B1 (en) * 1993-09-20 2000-06-14 Canon Kabushiki Kaisha Signal processing apparatus
US5383219A (en) * 1993-11-22 1995-01-17 Qualcomm Incorporated Fast forward link power control in a code division multiple access system
FI97661C (en) * 1993-12-10 1997-01-27 Nokia Mobile Phones Ltd Procedures for data communication, CDMA transmitters and receivers
US5406629A (en) * 1993-12-20 1995-04-11 Motorola, Inc. Apparatus and method for digitally processing signals in a radio frequency communication system
US5493584A (en) * 1993-12-27 1996-02-20 Emeott; Stephen P. Method for determining a channel quality metric in a receiver
US5533065A (en) * 1993-12-28 1996-07-02 At&T Corp. Decreasing length tracebacks
US5450453A (en) * 1994-09-28 1995-09-12 Motorola, Inc. Method, apparatus and system for decoding a non-coherently demodulated signal
US5604765A (en) * 1994-12-23 1997-02-18 Stanford Telecommunications, Inc. Position enhanced communication system including system for embedding CDMA navigation beacons under the communications signals of a wireless communication system
US5754597A (en) * 1994-12-29 1998-05-19 Motorola, Inc. Method and apparatus for routing a digitized RF signal to a plurality of paths
US5748683A (en) * 1994-12-29 1998-05-05 Motorola, Inc. Multi-channel transceiver having an adaptive antenna array and method
US5579341A (en) * 1994-12-29 1996-11-26 Motorola, Inc. Multi-channel digital transceiver and method
US5668836A (en) * 1994-12-29 1997-09-16 Motorola, Inc. Split frequency band signal digitizer and method
DE19581533C2 (en) * 1994-12-29 1999-02-25 Motorola Inc Method for digitizing a broadband frequency signal and associated broadband frequency signal digitizer
US5602874A (en) * 1994-12-29 1997-02-11 Motorola, Inc. Method and apparatus for reducing quantization noise
US5854813A (en) * 1994-12-29 1998-12-29 Motorola, Inc. Multiple access up converter/modulator and method
US5623485A (en) * 1995-02-21 1997-04-22 Lucent Technologies Inc. Dual mode code division multiple access communication system and method
US6137840A (en) * 1995-03-31 2000-10-24 Qualcomm Incorporated Method and apparatus for performing fast power control in a mobile communication system
TW347616B (en) * 1995-03-31 1998-12-11 Qualcomm Inc Method and apparatus for performing fast power control in a mobile communication system a method and apparatus for controlling transmission power in a mobile communication system is disclosed.
US6977967B1 (en) 1995-03-31 2005-12-20 Qualcomm Incorporated Method and apparatus for performing fast power control in a mobile communication system
ZA965340B (en) 1995-06-30 1997-01-27 Interdigital Tech Corp Code division multiple access (cdma) communication system
US5710763A (en) * 1995-07-31 1998-01-20 Motorola, Inc. Filtered fast Fourier transmultiplexer and method
US5862190A (en) * 1995-12-29 1999-01-19 Motorola, Inc. Method and apparatus for decoding an encoded signal
FI100565B (en) * 1996-01-12 1997-12-31 Nokia Mobile Phones Ltd Communication method and apparatus for encoding a signal
US5764649A (en) * 1996-03-29 1998-06-09 Amati Communications Corporation Efficient address generation for convolutional interleaving using a minimal amount of memory
US6678311B2 (en) 1996-05-28 2004-01-13 Qualcomm Incorporated High data CDMA wireless communication system using variable sized channel codes
US5893035A (en) * 1996-09-16 1999-04-06 Qualcomm Incorporated Centralized forward link power control
US6009117A (en) * 1996-09-17 1999-12-28 Kabushiki Kaisha Toyoda Jidoshokki Seisakusho Spread spectrum communication system
US5892774A (en) * 1996-12-12 1999-04-06 Qualcomm Incorporated Phase shift encoded subchannel
US5881093A (en) * 1997-02-10 1999-03-09 Motorola, Inc. Method of interleaving a convolutionally coded signal in a spread spectrum communication system
US5991284A (en) * 1997-02-13 1999-11-23 Qualcomm Inc. Subchannel control loop
US5991262A (en) * 1997-03-31 1999-11-23 Motorola, Inc. Method and apparatus for reducing peak-to-average power ratio of a composite carrier signal
US6560461B1 (en) 1997-08-04 2003-05-06 Mundi Fomukong Authorized location reporting paging system
US6097972A (en) * 1997-08-29 2000-08-01 Qualcomm Incorporated Method and apparatus for processing power control signals in CDMA mobile telephone system
GB2329557B (en) * 1997-09-19 2002-05-01 Motorola As Method and apparatus for viterbi decoding of punctured codes
US6167552A (en) * 1997-10-02 2000-12-26 Harris Corporation Apparatus for convolutional self-doubly orthogonal encoding and decoding
US6351498B1 (en) * 1997-11-20 2002-02-26 Ntt Mobile Communications Network Inc. Robust digital modulation and demodulation scheme for radio communications involving fading
US6215813B1 (en) * 1997-12-31 2001-04-10 Sony Corporation Method and apparatus for encoding trellis coded direct sequence spread spectrum communication signals
KR100407342B1 (en) * 1998-05-30 2003-11-28 삼성전자주식회사 Apparaus and method for communication in cdma communication system
EP0975118B1 (en) 1998-07-24 2007-05-09 Matsushita Electric Industrial Co., Ltd. CDMA radio communication system and method
WO2000008771A1 (en) * 1998-08-06 2000-02-17 Qualcomm Incorporated Method and apparatus for rotating modulation symbol indices
AU5675499A (en) * 1998-08-17 2000-03-06 Hughes Electronics Corporation Turbo code interleaver with near optimal performance
US6104761A (en) * 1998-08-28 2000-08-15 Sicom, Inc. Constrained-envelope digital-communications transmission system and method therefor
US6351832B1 (en) 1999-05-28 2002-02-26 Lucent Technologies Inc. Turbo code symbol interleaver
US6535500B1 (en) * 1999-08-06 2003-03-18 Samsung Electronics, Co., Ltd. Transmitter of a mobile station in a CDMA communications system and method therefor
AU6388999A (en) * 1999-09-13 2001-04-17 Sony Electronics Inc. Method and apparatus for encoding of trellis coded direct sequence spread spectrum communication signals
EP1173963A1 (en) * 1999-12-29 2002-01-23 Koninklijke Philips Electronics N.V. Communication systems using hadamard coding
US7558310B1 (en) 2001-01-09 2009-07-07 Urbain Alfred von der Embse Multi-scale code division frequency/wavelet multiple access
US7394792B1 (en) * 2002-10-08 2008-07-01 Urbain A. von der Embse Multi-scale CDMA
US8199696B2 (en) 2001-03-29 2012-06-12 Qualcomm Incorporated Method and apparatus for power control in a wireless communication system
CN1288560C (en) * 2001-11-05 2006-12-06 诺基亚有限公司 Partially filling block interleaver for a communication system
US6996230B1 (en) 2003-06-13 2006-02-07 Adtran, Inc. Echo-canceler for precoded fractionally spaced receiver using signal estimator
US7071866B2 (en) * 2004-03-26 2006-07-04 Northrop Grumman Corporation 2-d range hopping spread spectrum encoder/decoder system for RF tags
US7596191B2 (en) * 2005-12-08 2009-09-29 Nokia Corporation Apparatus, method and computer program product providing a computationally efficient maximum likelihood joint synchronization and channel estimation algorithm
DE102006026895B3 (en) * 2006-06-09 2007-11-08 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Convolution interleaver device for processing code word, has interlacing device changing sequence of interlacing units to receive interlaced code words, where interlacing device does not change sequence of symbols within interlacing units
KR101486373B1 (en) * 2007-07-29 2015-01-26 엘지전자 주식회사 Digital broadcasting system and method of processing data in digital broadcasting system
CN102185631B (en) * 2011-04-28 2014-05-14 意法·爱立信半导体(北京)有限公司 Method and device for activating code channel
JP5935613B2 (en) * 2012-09-14 2016-06-15 富士通株式会社 Receiver and soft decision data processing method
JP6652760B2 (en) * 2015-10-30 2020-02-26 国立大学法人京都大学 Communication method and communication device

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4901307A (en) * 1986-10-17 1990-02-13 Qualcomm, Inc. Spread spectrum multiple access communication system using satellite or terrestrial repeaters
US4811357A (en) * 1988-01-04 1989-03-07 Paradyne Corporation Secondary channel for digital modems using spread spectrum subliminal induced modulation
FR2639781B1 (en) * 1988-11-25 1991-01-04 Alcatel Thomson Faisceaux INTERLEAVING METHOD FOR DIGITAL TRANSMISSION DEVICE
US5101501A (en) * 1989-11-07 1992-03-31 Qualcomm Incorporated Method and system for providing a soft handoff in communications in a cdma cellular telephone system
US5103459B1 (en) * 1990-06-25 1999-07-06 Qualcomm Inc System and method for generating signal waveforms in a cdma cellular telephone system

Also Published As

Publication number Publication date
US5159608A (en) 1992-10-27
KR960008988B1 (en) 1996-07-10
JPH0831839B2 (en) 1996-03-27
IL102766A (en) 1996-01-19
KR930005407A (en) 1993-03-23
JPH05219015A (en) 1993-08-27
CA2074595A1 (en) 1993-03-01
IL102766A0 (en) 1993-05-13

Similar Documents

Publication Publication Date Title
CA2074595C (en) Method and apparatus for using orthogonal coding in a communication system
US5204874A (en) Method and apparatus for using orthogonal coding in a communication system
US5193102A (en) Method and apparatus for improving detection of data bits in a slow frequency hopping communication system
US5515396A (en) Method and apparatus for selecting a spreading code in a spectrum spread communication system
US5204876A (en) Method and apparatus for providing high data rate traffic channels in a spread spectrum communication system
US5465269A (en) Method and apparatus for encoding and decoding a supplementary signal
US5862190A (en) Method and apparatus for decoding an encoded signal
US6138261A (en) Concatenated coding system for satellite communications
AU678874B2 (en) Communication method in a radiotelephone system
CN1048837C (en) Method of decoding a non-coherently demodulated signal and circuits of decoder and system thereof
CN1114521A (en) Method and apparatus for power estimation in a communication system
US6122310A (en) Method and apparatus for facilitating multi-rate data transmission by selecting a plurality of spreading codes
US6490260B1 (en) Transmitter with increased traffic throughput in digital mobile telecommunication system and method for operating the same
EP0700612A1 (en) Method and apparatus for time division multiplexing the use of spreading codes in a communication system
KR960008960B1 (en) Orthogonal coding method in communication system
JP3285475B2 (en) Spread spectrum communication equipment
AU651298B2 (en) Method and apparatus for improving detection of data bits in a slow frequency hopping communication system
EP1055291A1 (en) Method and apparatus for performing rate determination using orthogonal rate-dependent walsh covering codes
Liu Soft decision decoding of a bit-interleaved convolutionally encoded code division multiple access system over Rayleigh fading channels
Rahman et al. A concatenated coded modulation scheme for spread spectrum multiple access system
Testard et al. Tight approximation of bit error probability for L-diversity non-coherent M-ary FSK frequency hopping system with binary convolutional code and soft Viterbi decoder: diversity, bit interleaver size and Reed-Solomon outer code effects analysis on receiver performance for M= 8
MXPA00007890A (en) Method and apparatus for performing rate determination using orthogonal rate-dependent walsh covering codes

Legal Events

Date Code Title Description
EEER Examination request
MKEX Expiry