# Patent

## Title
Receiving station for CDMA wireless system and method

## Abstract

A communication station, such as a UE or Node B of a 3GPP system, configured to receive channelization coded signals on physical channels of at least one composite channel within timeslots of a system time frame. The actual number of channelization codes received for the composite channel within a system time frame is determined. The transmitted channelization codes are then identified by performing a channelization code identification algorithm based on the determined number.

## Background
CROSS-REFERENCE TO RELATED APPLICATION
This application is a continuation of U.S. parent application Ser. No. 10/417,586, filed Apr. 17, 2003, which claims priority from U.S. Provisional Application No. 60/374,018, filed Apr. 19, 2002, which are incorporated by reference herein.


FIELD OF INVENTION
The present invention relates to receiving stations for CDMA wireless communication systems and, in particular, systems which utilize sets of channelization codes in connection with the transmission of selectively sized data blocks for wireless transport of data.
BACKGROUND OF THE INVENTION
Wireless communication systems are well known in the art. Generally, such systems comprise communication stations which transmit and receive wireless communication signals between each other. Typically, base stations are provided which are capable of conducting wireless concurrent communications with a plurality of subscriber stations. In CDMA systems specified by the Third Generation Partnership Project (3GPP), base stations are called Node Bs, subscriber stations are called User Equipments (UEs) and the wireless interface between the Node Bs and UEs is known as the Uu interface. FIG. 1 illustrates a typical 3GPP CDMA system.
The Uu radio interface of a 3GPP system uses Transport Channels (TrCHs) for transfer of user data and signaling between UEs and Node Bs. In 3GPP Time Division Duplex (TDD) communications, TrCH data is conveyed by one or more physical channels defined by mutually exclusive physical resources. TrCH data is transferred in sequential groups of Transport Blocks (TBs) defined as Transport Block Sets (TBSs). Each TBS is transmitted in a given Transmission Time Interval (TTI) which may span a plurality of consecutive system time frames. A typical system time frame is 10 microseconds and TTIs are currently specified as spanning 1, 2, 4 or 8 of such time frames.
FIG. 2a illustrates the processing of TrCHs in TTD mode into a Coded Composite TrCH (CCTrCH) and then into one or more physical channel data streams in accordance with 3GPP TS 25.222 v3.8.0. Starting with the TBS data, Cyclic Redundancy Check (CDC) bits are attached and Transport Block concatenation and Code Block segmentation is performed. Convolution coding or turbo coding is then performed, but in some instances no coding is specified. The steps after coding, include radio frame equalization, a first interleaving, radio frame segmentation and rate matching. The radio frame segmentation divides the data over the number of frames in the specified TTI. The rate matching function operates by means of bit repetition or puncturing and defines the number of bits for each processed TrCH which are thereafter multiplexed to form a CCTrCH data stream.
The processing of the CCTrCH data stream includes bit scrambling, physical channel segmentation, a second interleaving and mapping onto one or more physical channels. The number of physical channels corresponds to the physical channel segmentation. For uplink transmissions, UE to Node B, the maximum number of physical channels for transmission of a CCTrCH is currently specified as two. For downlink transmissions, Node B to UEs, the maximum number of physical channels for transmission of a CCTrCH is currently specified as sixteen. Each physical channel data stream is then spread with a channelization code and modulated for over air transmission on an assigned frequency.
In the reception/decoding of the TrCH data, the processing is essentially reversed by the receiving station. Accordingly, UE and Node B physical reception of TrCHs require knowledge of TrCH processing parameters to reconstruct the TBS data. For each TrCH, a Transport Format Set (TFS) is specified containing a predetermined number of Transport Formats (TFs). Each TF specifies a variety of dynamic parameters, including TB and TBS sizes, and a variety of semi static parameters, including TTI, coding type, coding rate, rate matching parameter and CRC length. The predefined collection of TFSs for the TrCHs of a CCTrCH for a particular frame is denoted as a Transport Format Combination (TFC).
Receiving station processing is facilitated by the transmission of a Transport Format Combination Indicator (TFCI) for a CCTrCH. For each TrCH of a particular CCTrCH, the transmitting station determines a particular TF of the TrCH's TFS which will be in effect for the TTI and identifies that TF by a Transport Format Indicator (TFI). The TFIs of all the TrCHs of the CCTrCH are combined into the TFCI. For example, if two TrCHs, TrCH1 and TrCH2, are multiplexed to form CCTrCH1, and TrCH1 has two possible TFs, TF10 and TF11, in its TFS and TrCH2 has four possible TFs, TF20, TF21, TF22, and TF23, in its TFS, valid TFCIs for CCTrCH1 could include (0,0), (0,1), (1,2) and (1,3), but not necessarily all possible combinations. Reception of (1,2) as the TFCI for CCTrCH1 informs the receiving station that TrCH1 was formatted with TF11 and TrCH2 was formatted with TF21 for the received TTI of CCTrCH1.
3GPP optionally provides for “blind transport format detection” by the receiving station, in which case the receiving station considers the potential valid TFCIs. Where there is only one valid TFCI, that TFCI is used in either case.
In 3GPP, time slot transmissions are made in predefined bursts where the transmitted physical channel data is divided into a beginning time slot portion and an ending time slot portion. A selected midamble is included between the two physical channel data portions. The TFCI is currently specified as transmitted in two parts on either side of the midamble and also between the two physical channel data portions. Two examples from 3GPP TR 25.944 V3.5.0 are illustrated in FIGS. 2b and 2c respectively where the block labeled MA represents the midamble and the block labeled T represents the parts of the TFCI. In second example, FIG. 2c, the CCTrCH is mapped to two physical, but only one physical channel includes the TFCI.
The midamble and TFCI are initially processed and then the results can be used to process the physical channel data. There is a brief period of time between reception of a TFCI and the end of both the time slot and the time frame in which it is received which the inventor has recognized can be efficiently used for processing the TFCI.
In 3GPP TDD mode, for each radio frame and for each CCTrCH with physical channels or channelization codes allocated in the frame, the transmitter (Node B or UE) autonomously determines the number of bits, denoted Ndata, to be transmitted in the frame based on the TFC in effect for the frame. The 3GPP algorithm in accordance with TS 25.222 v4.0.0, part 4.2.7.1 is in pertinent part as follows:

    
    
        Denote the number of data bits in each physical channel by Up,Sp, where p refers to the sequence number 1≦p≦Pmax of this physical channel, and the second index Sp indicates the spreading factor with the possible values {16, 8, 4, 2, 1}, respectively. For each physical channel, an individual minimum spreading factor Spmin is transmitted by means of the higher layers. Then, for Ndata one of the following values in ascending order can be chosen:

{U1,S1min,U1,S1min+U2,S2min,U1,S1min+U2,S2min+ . . . +UPmax,(SPmax)min}

        Optionally, if indicated by higher layers for the UL the UE shall vary the spreading factor autonomously, so that Ndata is one of the following values in ascending order:
    
    






  
    {
    
      
        
          
            
              U
              
                1
                ,
                16
              
            
            ,
            ...
            ⁢
            
              
            
            ,
            
              U
              
                1
                ,
                
                  S
                  ⁢
                  
                    
                  
                  ⁢
                  
                    1
                    min
                  
                
              
            
            ,
            
              
                U
                
                  1
                  ,
                  
                    S
                    ⁢
                    
                      
                    
                    ⁢
                    
                      1
                      min
                    
                  
                
              
              +
              
                U
                
                  2
                  ,
                  16
                
              
            
            ,
            ...
            ⁢
            
              
            
            ,
            
              
                U
                
                  1
                  ,
                  
                    S
                    ⁢
                    
                      
                    
                    ⁢
                    
                      1
                      min
                    
                  
                
              
              +
            
          
        
      
      
        
          
            
              U
              
                2
                ,
                
                  S
                  ⁢
                  
                    
                  
                  ⁢
                  
                    2
                    min
                  
                
              
            
            ,
            ...
            ⁢
            
              
            
            ,
            
              
                U
                
                  1
                  ,
                  
                    S
                    ⁢
                    
                      
                    
                    ⁢
                    
                      1
                      min
                    
                  
                
              
              +
              
                U
                
                  2
                  ,
                  
                    S
                    ⁢
                    
                      
                    
                    ⁢
                    
                      2
                      min
                    
                  
                
              
              +
              ...
              +
            
          
        
      
      
        
          
            
              U
              
                
                  P
                  max
                
                ,
                16
              
            
            ,
            ...
            ⁢
            
              
            
            ,
            
              
                U
                
                  1
                  ,
                  
                    S
                    ⁢
                    
                      
                    
                    ⁢
                    
                      1
                      min
                    
                  
                
              
              +
              
                U
                
                  2
                  ,
                  
                    S
                    ⁢
                    
                      
                    
                    ⁢
                    
                      2
                      min
                    
                  
                
              
              +
              ...
              +
              
                U
                
                  
                    P
                    max
                  
                  ,
                  
                    
                      (
                      
                        SP
                        max
                      
                      )
                    
                    min
                  
                
              
            
          
        
      
    
    }
  
   




    
    
        Ndata,j for the transport format combination j is determined by executing the following algorithm:

SET1={Ndata such that

    
    






  
    
      
        (
        
          
            min
            
              1
              ≤
              y
              ≤
              I
            
          
          ⁢
          
            {
            
              RM
              y
            
            }
          
        
        )
      
      ×
      
        N
        data
      
    
    -
    
      PL
      ×
      
        
          ∑
          
            x
            =
            1
          
          I
        
        ⁢
        
          
            RM
            x
          
          ×
          
            N
            
              x
              ,
              j
            
          
          ⁢
          
            
          
          ⁢
          is
          ⁢
          
            
          
          ⁢
          non
          ⁢
          
            
          
          ⁢
          negative
        
      
    
  
  }




    
    
        Ndata,j=min SET1
    
    


Implicit in the above is that only a subset of allocated physical channels is transmitted in the frame. The receiver (BS or UE) can exploit the knowledge of transmitted codes (whether from the signaled TFCI or blindly detected) to improve performance.
To use the signaled TFCI to determine the identity of the transmitted codes, two obvious methods can be applied:
1. upon receipt of a TFCI, the inverse of the 3GPP transmission processing algorithms described in TS 25.222 can be used to:

    
    
        a. determine transport block set size after CRC(s) are appended;
        b. determine code block number and size and number of filler bits;
        c. determine number of bits after coding;
        d. determine size of frame size after equalization (before rate matching); and
        e. determine frame size (number of transmitted bits) after rate matching;
    
    


in order to determine the identity of the transmitted codes, or
2. pre-compute and store along with the TFC the identity of the transmitted codes.
The first method requires that computations necessary to determine the identity of the transmitted codes be performed upon receipt of the TFCI, but before other received data in the frame is demodulated. The second method does not require the computation in real time of the identity of transmitted codes but does require storage of the identity of up to 136 transmitted codes for each of up to 1024 TFCs.
The inventor has recognized that a third, non-obvious method can be implemented which entails less processing without the need for pre-computing and storing all of the channelization codes.
SUMMARY OF THE INVENTION
In a communication station, such as a UE or Node B of a 3GPP system, where channelization coded signals are received on physical channels of at least one coded composite transport channel (CCTrCh) within timeslots of a system time frame, the actual number of channelization codes transmitted for the CCTrCh within a system time frame is determined. The transmitted channelization codes are then identified by performing a channelization code identification algorithm based on the determined number. Preferably, the identified channelization codes are stored in a code list by first ordering all channelization codes that are allocated and selecting codes in order from the code list until the calculated and stored number of transmitted codes is reached.
Typically, each transmitted CCTrCH is comprised of a selected number of Transport Channels (TrCHs). Each TrCH has a data stream arranged in a predetermined Transport Format (TF) of a Transport Format Set (TFS) of that TrCH which is in effect for a given Transmission Time Interval (TTI) of timeframes. A Transport Format Indicator (TFI) identifies the TF of the TrCH's TFS in effect for the particular TrCH. The TFIs of all the TrCHs of a CCTrCH are combined into a Transport Format Combination Indicator (TFCI) from which the formatting and channelization codes of the transmitted CCTrCH in a given TTI can be determined. The TFCI is transmitted with the corresponding CCTrCH in at least one timeslot of each TTI in which the CCTrCH is transmitted so that the communication station receives a TFCI in conjunction with a CCTrCH in a TTI.
The communication station is preferably configured so that the received TFCI is processed in background processing to determine a value Ncodes representing the number of transmitted channelization codes, The received TFCI is then processed a second time at a timeslot processing rate utilizing the determined value Ncodes to identify a list corresponding to the channelization codes of the CCTrCH in the TTI.
Preferably, a received TFCI is processed to determine a value Ncodes in background processing only if a currently valid value Ncodes has not been determined. Preferably, a received TFCI is processed to identify a list corresponding to the transmitted channelization codes at a timeslot processing rate only if a currently valid value transmitted channelization code list has not been identified. Preferably, a received TFCI is processed at a time frame processing rate to determine demodulation parameters at a time frame processing rate.
In a 3GPP system, either the CCTrCHs are transmitted by a Node B and the CCTrCHs and corresponding TFCIs are received and processed by a User Equipment (UE) or the CCTrCHs are transmitted by a User Equipment (UE) and the CCTrCHs and corresponding TFCIs are received and processed by a Node B.
In a preferred embodiment, the communication station, either a UE or a Node B of a 3GPP system, is configured to receive channelization coded signals on physical channels of at least one coded composite transport channel (CCTrCh) within timeslots of a system time frame. Each transmitted CCTrCH is comprised of a selected number of Transport Channels (TrCHs). Each TrCH has data streams arranged in a predetermined Transport Format (TF) of a Transport Format Set (TFS) of the TrCH which is in effect for a given Transmission Time Interval (TTI) of timeframes. A Transport Format Indicator (TFI) identifies the TF of the TrCH's TFS in effect for that TrCH. The TFIs of all the TrCHs of a CCTrCH are combined into a Transport Format Combination Indicator (TFCI) from which the formatting and channelization codes of the transmitted CCTrCH in a given TTI can be determined and the TFCI is transmitted with the corresponding CCTrCH in at least one timeslot of each TTI in which the CCTrCH is transmitted.
The communication station has a receiver that includes a TFCI processing component. The TFCI processing component preferably has a first section configured to process received TFCIs to produce a value representing the number of transmitted channelization codes of a corresponding CCTrCH. The TFCI processing component preferably has a second section configured to process received TFCIs using the values produced by said first section to identify a list of the transmitted channelization codes for each corresponding CCTrCH. A memory is associated with the TFCI processing component such that the first section stores the produced values representing the number of transmitted channelization codes in the memory and those values are retrieved from the memory for use by the second section.
Preferably, the first section of the TFCI processing component is configured to process received TFCIs in background processing such that at least 50 values can be produced in a given time frame and the second section is configured to process received TFCIs at a timeslot processing rate. The TFCI processing component preferably has a third section configured to process received TFCIs to produce demodulation parameters for each corresponding CCTrCH at a time frame processing rate.
Other objects and advantages will be apparent to those skilled in the art from the following detailed description.



BRIEF DESCRIPTION OF DRAWINGS
FIG. 1 is a schematic diagram of a typical CDMA system in accordance with current 3GPP specifications.
FIG. 2a is a processing diagram of TrCH data for a CCTrCH in accordance with 3GPP TDD specifications.
FIGS. 2b and 2c are diagrams of channel coding and multiplexing examples in accordance with 3GPP TDD specifications.
FIG. 3 is a block diagram of a receiving portion of a communication station made in accordance with the teachings of the present invention.
FIG. 4 is a flowchart illustrating the generation of a list of transmitted codes based on the intermediate parameter Ncodes in accordance with the teachings of the present invention.



TABLE OF ACRONYMS


    3GPP Third Generation Partnership Project
    BCD Blind Code Detection
    BS Base Station
    CCTrCH Coded Composite Transport Channel
    CDMA Code Division Multiple Access
    CRC Cyclic Redundancy Check
    DL Downlink (Node B to UE)
    DTX Discontinuous Transmission
    Iu Interface between UTRAN and Core Network
    Iub Interface between Node Bs and RNC
    Iur Interface between RNCs
    MUD Multi-User Detection
    Nbits Number of Bits In a Radio Frame For a TrCH
    Ncodes Number of Channelization Codes for a TTI of a CCTrCH
    Ndata Number of Bits In a Radio Frame For a CCTrCH
    Node B 3GPP Base Station
    PhCH Physical Channel
    RNC Radio Network Controller
    SUD Single User Detection
    rxTFCI received Transport Format Combination Indicator
    TB or TrBk Transport Block
    TDD Time Division Duplex
    TF Transport Format
    TFC or tfc Transport Format Combination
    TFCI Transport Format Combination Indicator
    TFI Transport Format Indicator
    TFS Transport Format Set
    TPC Transmit Power Control
    TrCH Transport Channel
    TTI Time Transmission Interval
    UE User Equipment
    UL Uplink (UE to Node B)
    UMTS Universal Mobile Telecommunications System
    UTRAN UMTS Terrestrial Radio Access Network
    Uu Interface between UEs and UTRAN Node Bs


DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT(S)
A wireless communication station, such as a User Equipment (UE) or a base station, Node B, is provided for use in a CDMA communication system, such as the 3GPP system illustrated in FIG. 1. Each station includes a receiver configured to receive selectively formatted, encoded TDD wireless communication signals. Preferably, a system time frame format is established with each frame being 10 microseconds in duration with 15 time slots per time frame wherein timeslots can be used for either uplink (UL), UE to Node B, or downlink (DL), Node B to UE, communication signals during a given time period.
As described above, Transport Channels (TrCHs) are used for the transfer of user data and signaling between UEs and Node Bs. Multiple TrCHs are multiplexed into a Coded Composite TrCH (CCTrCH). The CCTrCH data stream is mapped onto one or more physical channel data streams which are encoded with channelization codes, preferably Orthogonal Variable Spreading Factor (OVSF) codes.
For each TrCH of a particular CCTrCH, the transmitting station determines a particular Transport Format (TF) of the TrCH's Transport Format Set (TFS) which will be in effect for a given Transmission Time Interval (TTI) and identifies that TF by a Transport Format Indicator (TFI). The TFIs of all the TrCHs of the CCTrCH are combined into a Transport Format Combination Indicator (TFCI) from which the formatting and channelization codes of the transmitted signals can be determined.
Referring to FIG. 3, a TFCI processing component 10 for the receiver of a communication station, such as a UE or Node B, is provided for processing received (Rx) TFCIs in a novel and efficient manner. An intermediate parameter, the number of transmitted physical channels or channelization codes, denoted Ncodes is pre-computed or computed on demand and stored with its corresponding TFC parameters. Ncodes can then be looked up per the received TFCI, so that the task to determine the identity of transmitted channelization codes is simplified. Preferably, the identity of transmitted channelization is performed by, timeslot-by-timeslot, counting the number of allocate channelization codes in the allocation order specified in 3GPP for the multiplexing of different TrCH onto one CCTrCH and mapping of one CCTrCH onto physical channels until Ncodes is reached, and declaring that channelization codes in allocation order up to and including Ncodes were transmitted and that all other channelization codes were not transmitted.
The TFCI processing component 10 includes a background processing section 10a, a time slot rate processing section 10b and a frame rate processing section 10c. An input 20 provides the TFCI processing component 10 with decoded TFCIs of the received CCTrCHs. The TFCI processing component 10 processes the received TFCI in the background, at the end of each timeslot and again at the end of each time frame.
The background processing segment 10a determines the intermediate parameter of the number of channelization codes, Ncodes, in use for each CCTrCH received in each TTI. The time slot rate processing section 10b then provides fast TFCI processing to produce the list of the channelization codes using the Ncodes parameter determined in the background section 10a. The frame rate processing section 10c determines the TrCH parameters and rate matching parameters of each TrCH of each received CCTrCH based on the TFCIs in a conventional manner, that are used for demapping and demodulation of the CCTrCHs and their associated TrCHs. FIG. 3 depicts these functions for one CCTrCH. Preferably, these functions are applied to all CCTrCHs.
An associated memory device 40 is provided wherein TFC data is stored that is used in connection with controlling the operation of the TFCI processing component 10. The data stored in the memory device 40 includes values for the novel parameter Ncodes which is computed by the processing component section 10a along with a flag NcodesValid which indicates whether or not Ncodes has been computed for a particular TFCI for a particular TTI.
Preferably the inputs for the processing component 10 includes a data input 20 for the received TFCI for all CCTrCHs which may be designated as rxTFCI[maxCCTrCH] and a control input 22 for TFC related parameters. The TFC control signals received via the control input 22 preferably include:
the number of codes transmitted per frame, per TFCI, per CCTrCH which may be designated as Ncodes[1024, maxCCTrCH],
a flag which is set if the Ncodes value has been computed, per TFCI, which may be designated as NcodesValid[1024, maxCCTrCH],
TFCS parameters, per TrCHi, per CCTrCH, as function of current TFCI including:

    
    
        Rate Matching Factor
        Coding Method
        Coding Rate
        Li, CRC Length
    
    


TFCS parameters, indexed by TFCI, per TrCH per CCTrCH including:

    
    
        Transport Block Set Sizei 
        Transport Block Sizei 
        TTIi 
    
    


A second control input 24 provides Physical Channel Map control signals, preferably of length 240 (15 timeslots, 16 codes), of the form:
pcmCodeNumber[240], code number;
pcmTimeslot[240], timeslot of this code;
pcmMinSF[240], minimum spreading factor of this code;
pcmCCTrCH[240], CCTrCH number of this code;
pcmTFCI[240], set if this code contains a TFCI;
burstType[15], burst type of each of the 15 timeslots;
TFCI Format & Map, indicated locations of TFCI bits and length of the TFCI fields;
puncLimit, the puncturing limit; and
timeslotNumber, the current timeslot;
where pcmTFCI[240] is the first code number in the timeslot, in the index order of this list.
The output of the TFCI processing component 10 is time dependent due to its three different processing sections. When invoked in the background, an output 30a of processing section 10a provides data output in the form of:
the number of codes transmitted per frame for this TFCI and CCTrCH, Ncodes[TFCI], and
a signal to set the flag indicating that Ncodes for the TFCI of a CCTrCH has been computed, NcodesValid[TFCI].
When invoked to process the fast TFCI, an output 32 of processing section 10b provides data output in the form of a table of transmitted codes and indicators for all CCTrCHs, as determined by the received TFCI, preferably designated tfcCodeTable[maxCCTrCH] and including:
a list of transmitted codes in the current frame (14 timeslots×16 codes maximum), tfcCodeList[224]; and
a flag that is set if the txCodeList contains valid data, tfcCodeListValid.
When invoked after a frame has been received, three outputs 30b, 35 and 37 of processing section 10c provide data output in the form of:
the number of bits per frame per CCTrCH after rate matching, Ndata, from output 30b; 
the number of bits per frame after frame size equalization and before rate matching, for TrCHi, N, or Nbitsi, from output 35; and
from output 37, TrCH and Rate Matching parameters, where the TrCH parameters are preferably of the form:

    
    
        X1i, number of bits for all concatenated transport blocks after CRC insertion, for TrCHi;
        Ci, number of code blocks, for TrCHi;
        Y1i, number of code block filler bits, for TrCHi;
        Ki, number of bits per code block, before channel coding, for TrCHi;
        Y2i, number of bits per code block, after channel coding, for TrCHi;
        Ei, number of bits per TTI before frame size equalization, for TrCHi; and
        Ti, number of bits per TTI after frame size equalization, for TrCHi;

and the Rate matching parameters are preferably of the form:

        e_inii,f,b, initial value of e, the rate-matching counter, for frame, sequence b, for TrCHi;
        e_plusi,b, increment value of e, the rate-matching counter, sequence b, for TrCHi;
        e_minusi,b, decrement value of e, the rate-matching counter, sequence b, for TrCHi;
        Xi,b, number of bits before rate matching, sequence b, for TrCHi; and
        nMod3i, number of first and/or second parity turbo coded bits in the first sequence, for TrCHi.
    
    


Preferably, the TFCI processing component is configured based upon two overall operating parameters: the number of received (Rx) CCTrCHs and the background processing capacity for computing Ncodes values. The maximum number of Rx CCTrCHs, which may be designated as maxCCTrCH, is preferably set at 4 for UEs and 96 in Node Bs. Preferably, the processing section 10a can compute at least 50 Ncodes values in the background, 50 per frame. These preferred values are based upon current 3GPP specifications and can be adjusted when various system operating parameters are changed.
The background processing section 10a includes three processing elements, Ncodes Computation Control 12, TrCH Parameter Determination processing 14 and Partial Discontinuous Transmission (DTX) processing where there is no Dynamic Spreading Factor 16. The latter two processing elements 14, 16 are preferably of conventional design used for preprocessing TFCS control signal based on a particular TFCI to provide required inputs for Rate Matching Parameter processing and accordingly are preferably configured for operation in the Frame Rate processing section 10c as well.
The Ncodes Computation Control 12 includes the rxTFCI input 20 as data and a modified TFC control input 22a which provides the flag signal NcodesValid associated with the particular rxTFCI received via input 20. This processing element 12 controls the computation of Ncodes, for each CCTrCH. For each received TFCI value, if Ncodes has not yet been computed for that TFCI value, i.e. NcodesValid for the TFCI of the CCTrCH is FALSE, Ncodes is computed such that it is available at the start of the next frame. Accordingly the operation of the processing section 10a is preferably controlled such that background processing, i.e. using any available computational resource at no particular time, is used to compute Ncodes:
for all TFCIs of all CCTrCHs until all have been computed;
for the affected TFCI(s) of the CCTrCH when the PhCH associated with the CCTrCH is assigned, configured or reconfigured; and
for the affected TFCI(s) of the CCTrCH assigned to a PhCH when the CCTrCH is assigned, configured or reconfigured.
Preferably sufficient resources are available so that at least 50 Ncodes values may be computed in a given frame and so that Ncodes for a newly received TFCI is computed by the start of the next frame.
The Ncodes Computation Control 12 includes an output 31 which is passed as data to the downstream processing elements 14 and 16 of processing section 10a. The output 31 passes the TFCI and CCTrCH which may be designated as TFCI/CCTrCH, which represent a rxTFCI for which Ncodes needs to be computed. This function operates whenever a TFCI is received and in the background.
The TrCH Parameters Determination element 14 is of conventional design and computes parameters for various TrCH demodulation functions and Nbits, the number of bits before rate matching per TrCH. This function is called in the background section 10a as part of the Ncodes. It is also called after a frame has been received in the frame rate processing section 10c such that the block set of the TTI containing the frame can be reconstructed. When invoked as part of the Ncodes computation, the various TrCH parameters are used only as intermediate variables to compute Nbits.
The TrCH Parameters Determination element 14 receives as an input the output 31 from the Ncodes Computation Control which invokes its modified processing functions in the background processing section 10a. After reception of a time frame is completed, the TrCH Parameters Determination element 14 receives as an input the rxTFCI input 20 which invokes its full processing functions in the frame rate processing section 10c. In both cases, the TrCH Parameters Determination element 14 utilizes a modified TFC control input 22b which provides all of the TFC related control signals except the flag signal NcodesValid and Ncodes which are not necessary to its operation.
Full operation of the TrCH Parameters Determination element 14 includes a TFCI Validity Check which is not required for background processing. If the received TFCI does not correspond to a valid TFCI of the TFCS, the TFCI of the CCTrCH from the previous frame is used instead. If this is not available, the lowest non-zero valued valid TFCI is used instead.
The TrCH Parameters Determination element 14 computes a variety of parameters. CRC Parameters are determined based on the knowledge that:
each of the Transport Block Set Sizei transport blocks of size Transport Block Sizei has a CRC of length Li appended, where Li is {0,8,16,24} bits; and,
the total number of bits after CRC insertion, X1i, is:

X1i=Transport Block Set Sizei*(Transport Block Sizei+Li)

Channel Decoding Parameters are determined by knowing that the channel coding function operates on blocks up to the following size, denoted Z:
Convolutional coding: Z=504 bits
Turbo coding: Z=5114 bits.
For the case of the total number of bits after CRC insertion, X1i, is greater than Z, the data is partitioned into Ci code blocks of length Ki each and each code block is channel coded separately. Filler bits are added as required to the start of the first block such that all blocks are of equal length and for the unique case of turbo coded data of length less than 40, to the start of the single block. The number of code blocks, Ci is: Ci=┌X1i/Zi┐. The number of bits in each code block, Ki, is Ki=40 if X1i<40 and turbo coding is used or else Ki=┌X1i/Ci┐. The number of filler bits in the first code block, Y1i, is: Y1i=CiKi−X1i 
For the case of no coding, the number of code blocks, Ci, is simply 1 and the length of the code block is simply Ki. The number of bits per code block after coding, Y2i, is:
convolutional coding with rate 1/2: Y2i=2*Ki+16
convolutional coding with rate 1/3: Y2i=3*Ki+24
turbo coding with rate 1/3: Y2i=3*Ki+12
no coding: Y2i=Ki 
Interframe Interleaving Parameters are determined based on the knowledge that the total number of bits from all Ci code blocks after channel coding, Ei, is: Ei=Ci*Y2i. The interframe interleaver consists of an array of Fi columns and Ni, rows (the number of bits in each column), where: Ni=┌Ei/Fi┐. Filler bits are appended to the end of the Ei bits, such that all columns of the array contain data. After appending the bits, the total number of bits for the TTI, Ti, is: Ti=Ei*Ni. Filler Bits are determined based on the knowledge that the number of filler bits is: Ti−Ei.
These parameters are used to compute the number of bits per TrCHi per frame before rate matching, Nbitsi=Ni. An output 34 provides Ni, or Nbitsi, the number of bits per frame after frame size equalization and before rate matching, for TrCHi to the Partial Discontinuous Transmission (DTX) processing element 16 and, in the case of frame rate processing in section 10c, also to the Rate Matching Determination element 18.
An additional output 35 of the TrCH Parameters Determination element 14 is provided for all of the determined parameters from the frame rate processing in section 10c such that the block set of the TTI containing the frame can be reconstructed. Preferably, from this output 35, TrCH parameters are provided of the form:
X1i, number of bits for all concatenated transport blocks after CRC insertion, for TrCHi.
Ci, number of code blocks, for TrCHi.
Y1i, number of code block filler bits, for TrCHi.
Ki, number of bits per code block, before channel coding, for TrCHi.
Y2i, number of bits per code block, after channel coding, for TrCHi.
Ei, number of bits per TTI before frame size equalization, for TrCHi.
Ti, number of bits per TTI after frame size equalization, for TrCHi.
The per-TTI parameters need be computed only once per TTI, not for every frame of the TTI. Also there are generally no floating/fixed point or performance issues.
The Partial DTX processing element 16 is of conventional design and computes the codes transmitted based on the number of bits per TrCH before rate matching and physical channel data. This element 16 is called in the background section 10a to perform in a modified mode as part of the Ncodes computation. It is also called after a frame has been received in the frame rate processing section 10c for its full functions to provide an output such that Physical Channel De-mapping knows which codes were transmitted and to determine the number of bits transmitted in a frame.
The Partial DTX processing element 16 receives as an input the output 31 from the Ncodes Computation Control which invokes its modified processing functions in the background processing section 10a. After reception of a time frame is completed, the Partial DTX processing element 16 receives as an input the rxTFCI input 20 and invokes its full processing functions in the frame rate processing section 10c. In both cases, the Partial DTX processing element 16 receives as an input the output 34 from the TrCH Parameters Determination element 14, the physical channel control input 24 and utilizes the modified TFC control input 22b which provides all of the TFC related control signals except the flag signal NcodesValid and Ncodes which are not necessary to its operation.
The Partial DTX processing element 16 has in its modified operation in the background processing section 10a provides the output 30a which produces an Ncodes value and set the associated flag NcodeValid. In its conventional full operational mode in the frame rate processing section 10c, the Partial DTX processing element 16 has an output 30b which produces values representing the number of bits per frame per CCTrCH, denoted Ndata, which is used for the determination of rate matching parameters.
Although the Partial DTX processing element 16 functions in a receiver of a communication station, it is conveniently described in terms of its opposite transmitter function, e.g., the meaning of “before” and “after” are with respect to the transmitter functions. Ndata, the number of bits per frame per CCTrCH, i.e. for all TrCHi, after rate matching, and Sp, the spreading factor of the pth physical channel assigned to the CCTrCH are determined from the following:

    
    
        Denote the number of data bits, which is a function of burst type, (not including TFCI or TPC bits, the number of which are found from TFCI Format and Physical Channel Map) in each code by Up,Sp. p refers to the sequence number 1≦p≦Pmax of this physical channel as follows: in ascending order of the timeslots in which they appear; if more than one physical channel appears in a timeslot, they shall be allocated the sequence number in order of the timeslot first and then of their channelization codes; the channelization codes shall be ordered in ascending order of the minimum spreading Factor and then channelization index (k). The second index Sp indicates the spreading factor with the possible values {16, 1}, respectively. For each code an individual minimum spreading factor Spmin is included in the physical channel map. Then, for Ndata one of the following values in ascending order and the identification from the set of allocated codes which codes are transmitted are determined from:

{U1,S1min,U1,S1min+U2,S2min,U1,S1min+U2,S2min+ . . . +UPmax,(SPmax)min}  (1)

        Ndata SET1 ={ Ndata such that
    
    






  
    
      
        (
        
          
            min
            
              1
              ≤
              y
              ≤
              I
            
          
          ⁢
          
            {
            
              RM
              y
            
            }
          
        
        )
      
      ×
      
        N
        data
      
    
    -
    
      puncLimit
      ×
      
        
          ∑
          
            x
            =
            1
          
          I
        
        ⁢
        
          
            RM
            x
          
          ×
          
            N
            x
          
          ⁢
          
            
          
          ⁢
          is
          ⁢
          
            
          
          ⁢
          non
          ⁢
          
            
          
          ⁢
          negative
        
      
    
  
  }




    
    
        Ndata=min SET1

Ncodes is the number of channelization codes within SET1 so this value is determined and output when then operating in the modified mode in background processing section 10a. There are generally no floating/fixed point or performance issues.

    
    


In its conventional full operational mode in the frame rate processing section 10c, the Ndata output 30b of the Partial DTX processing element 16 provides a required input for a Rate Matching Parameter Determination element 18. The Rate Matching Parameter Determination element 18 operates in a conventional manner to determine the initial, increment and decrement values used by the counters of the rate matching puncture/repeat data algorithm. Preferably, this includes ΔNi, the number of bits added due to repetition or deleted due to puncturing per frame for TrCHi that is determined from the following:



  
    
      Z
      0
    
    =
    0
  




  
    
      Z
      i
    
    =
    
      ⌊
      
        
          (
          
            
              (
              
                
                  ∑
                  
                    m
                    =
                    1
                  
                  i
                
                ⁢
                
                  
                    RM
                    m
                  
                  ×
                  
                    N
                    m
                  
                
              
              )
            
            ×
            
              N
              data
            
          
          )
        
        
          
            ∑
            
              m
              =
              1
            
            I
          
          ⁢
          
            
              RM
              m
            
            ×
            
              N
              m
            
          
        
      
      ⌋
    
  




  
    
      Δ
      ⁢
      
        
      
      ⁢
      
        N
        i
      
    
    =
    
      
        Z
        i
      
      -
      
        Z
        
          i
          -
          1
        
      
      -
      
        N
        i
      
    
  



For all uncoded and convolutionally coded and repeated turbo coded TrCHs the additional parameters:

    
    
        e_inii,f,1, the initial value of e, the rate matching counter, for frame f, sequence 1,
        e_plusi,1, the increment value of e, the rate matching counter, sequence 0, and
        e_minusi,1, the decrement value of e, the rate matching counter, sequence b=0, for TrCHi,

are determined by the Rate Matching Parameter Determination element 18 from the following:

        a=2;
        Xi=Ni,j;
        R=ΔNi,j mod Ni,j;
        where ΔNi,j mod Ni,j is in the range of 0 to Ni,j−1 i.e. −1 mod 10=9 and
    
    


if R≠0 and 2×R≦Ni,j, then q=┌Ni,j/R┐ otherwise q=┌Ni/(R−Ni)┐

    
    
        where q is a signed quantity such that if q is even q′=q+gcd(|q|, Fi)|Fi 
        
            where gcd (|q|, Fi) means greatest common divisor of |q| and Fi and q′ is not an integer, but a multiple of 1/8,
        
        
        otherwise q′=q; and
        S[|└x×q′┘ mod Fi]=(|└x×q′┘| div Fi) for x=0 to Fi−1;

so that:

        e_inii,f,1=(a×S[P1Fi(f)]×|ΔNi|+1) mod (a'Ni);
        e_plusi,1=a×Xi;
        e_minusi,1=a×|ΔNi|; and
        e_inii,f,b, e_plusi,b, e_minusi,b, for b=0; b=1,2 are unused
    
    


For punctured turbo coded TrCHs, e_inii,f,b, the initial value of e, the rate matching counter, for frame f, sequence b, e_plusi,b, the increment value of e, the rate matching counter, sequence b, and e_minusi,b, the decrement value of e, the rate matching counter, sequence b, for TrCHi, where index b is used to indicate systematic (b=0), 1st parity (b=1), and 2nd parity bit (b=2), and nMod3i, number of first and/or second parity turbo coded bits in the first sequence, for TrCHi., are preferably determined by the Rate Matching Parameter Determination element 18 from the following.












for b=0:









e_inii,f,b=1 = 1 (or any positive integer) for all f;



e_plusi,b=1 = 0 (not used);



e_minusi,b = 0; and



nMod3i = Ni mod 3;







for b={1,2}:












  
    
      
        Δ
        ⁢
        
          
        
        ⁢
        
          N
          i
        
      
      =
      
        {
        
          
            
              
                
                  ⌊
                  
                    Δ
                    ⁢
                    
                      
                    
                    ⁢
                    
                      
                        N
                        i
                      
                      /
                      2
                    
                  
                  ⌋
                
                ,
              
            
            
              
                b
                =
                1
              
            
          
          
            
              
                
                  ⌈
                  
                    Δ
                    ⁢
                    
                      
                    
                    ⁢
                    
                      
                        N
                        i
                      
                      /
                      2
                    
                  
                  ⌉
                
                ,
              
            
            
              
                b
                =
                2
              
            
          
        
        }
      
    
    ;
  




  
    
      
        X
        i
      
      =
      
        ⌊
        
          
            N
            i
          
          /
          3
        
        ⌋
      
    
    ;
  




  
    q
    =
    
      ⌊
      
        
          X
          i
        
        /
        
          
          
            ΔN
            i
          
          
        
      
      ⌋
    
  





 



where









if(q≦2), S[(3×r+b−1) mod Fi] = r mod 2 for r =0 to Fi−1



otherwise









if q is even, q′ = q − gcd(q, Fi) / Fi









where gcd (q, Fi) means greatest common 



divisor of q and Fi and q′ is not an integer,



but a multiple of 1⁄8,









otherwise q′ = q; and









r=┌x×q′┐ mod Fi and S[(3×r+b−1) mod Fi]=┌x×q′┐ div Fi; 



for x=0 to Fi−1;









such that:









e_inii,f,b = (b×S[P1 Fi (f)]×· |ΔNi| + Xi) mod (b×Xi)









where if e_inii,f,b = 0, e_inii,f,b = b×Xi;









e_plusi,b = b×Xi; and



e_minusi,b = b× |ΔNi|.









Additional parameters that are determined by the Rate Matching Parameter Determination element 18 include: αi,b, the TTI dependent offset for bit separation for a sequence b, and βi,f, the frame dependent offset for bit separation for a frame f, for TrCHi, are given by:
αi,b, the TTI dependent offset needed for bit separation
















TTI (ms)
α0
α1
α2









10, 40
0
1
2



20, 80
0
2
1










βi,f, the Radio frame dependent offset needed for bit separation


















TTI (ms)
β0
β1
β2
β3
β4
β5
β6
β7







10
0
NA
NA
NA
NA
NA
NA
NA


20
0
1
NA
NA
NA
NA
NA
NA


40
0
1
2
0
NA
NA
NA
NA


80
0
1
2
0
1
2
0
1









A further parameter that is determined by the Rate Matching Parameter Determination element 18 is X2i, the number of bits per sequence after bit separation. For a TrCHi, this is given by X2i,=floor(Ni/3).
In addition to the Ndata input 30b from the Partial DTX processing element 16, the Rate Matching Parameter Determination element 18 receives as inputs the rxTFCI input 20, the Ni output 34 from the TrCH Parameters element 14 and the modified TFC control input 22b which provides all of the TFC related control signals except the flag signal NcodesValid and Ncodes which are not necessary to its operation.
The Rate Matching Parameter Determination element 18 provides via an the output rate matching parameters, of the form:

    
    
        e_inii,f,b, initial value of e, the rate-matching counter, for frame f, sequence b, for TrCHi.
        e_plusi,b, increment value of e, the rate-matching counter, sequence b, for TrCHi.
        e_minusi,b, decrement value of e, the rate-matching counter, sequence b, for TrCHi.
        Xi,b, number of bits before rate matching, sequence b, for TrCHi, and
        nMod3i, number of first and/or second parity turbo coded bits in the first sequence, for TrCHi.

These parameters are produced at the frame rate. Also, there are generally no floating/fixed point or performance issues.

    
    


The time slot rate processing section 10b provides fast TFCI processing to produce the list of the channelization codes by means of a Fast TFCI processing element 13. The Fast TFCI processing element 13 uses the rxTFCI as data and the previously computed values of Ncodes and other TFC parameters as control signals via inputs 20 and 22 respectively, to determine a list of transmitted codes of all CCTrCHs in the current frame. The Fast TFCI processing element 13 also includes the control Physical Channel Map input 24 and a timeslot number control input 25 since it operates per timeslot.
The list of transmitted codes for each CCTrCH, denoted CodeList, and an associated flag, preferably denoted CodeList Valid, is provided via output 32 preferably to Blind Code Detection (BCD) functions of a UE or Code Decision functions of a Node B, Multi-User Detection (MUD) or Single User Detection (SUD), Physical Channel Demapping and Transmit Power Control (TPC) for a UE. If either the received TFCI or Ncodes for the received TFCI of a particular CCTrCH is not available, the list remains empty for that CCTrCH.
The preferred functioning of the Fast TFCI processing element 13 is illustrated in the flow diagram of FIG. 4. The process is conducted for each CCTrCH allocated for reception in a particular time slot. An initial check is made to see if the code list for the particular CCTrCH has already been generated by checking the flag CodeListValid which is set when a code list is generated. This flag is preferably cleared at the beginning of each new TTI for a CCTrCH.
If the CCTrCH has not already been processed, the rxTFCI is checked to determine if it is decoded. If the rxTFCI of a CCTrCH has not yet been decoded, generally it is because the selected timeslot is the first timeslot in the frame of the CCTrCH. In that case, no processing of the fast TFCI is possible and no code list is output for the CCTrCH. If the rxTFCI has been decoded, a further check is conducted against the control TFC parameters to ascertain that the TFCI is a valid defined value for the TFCS of the particular CCTrCH. If not, no code list is output for the CCTrCH.
If the received TFCI of a CCTrCH has been decoded and is valid, the computed number of codes transmitted in the frame, Ncodes, is then looked up. If the number of transmitted codes of the CCTrCH, Ncodes, has already been computed, the CodeListValid flag is set for that CCTrCH and the transmitted channelization codes in the current frame are determined and output. If the number of transmitted codes has not yet been computed, no code list is output for the CCTrCH.
The list of transmitted channelization codes in the current frame for a CCTrCH is preferably determined by ordering the allocated codes of the CCTrCH first by ascending timeslot number and then by code index within each timeslot. For each code of the CCTrCH, if its order within the ordered list (ordinal number) is less than or equal to Ncodes, the channelization code is added to the transmitted code list. The processing of the channelization codes to form the code list can be stopped as soon as the channelization code is added that has an ordinal index number equal to the value of Ncodes for the CCTrCH being processed.
Once the transmitted list for a CCTrCH in a given frame has been determined, it remains fixed for the remainder of the frame. This is implemented by the initial check of the CodeListValid flag of the Fast TFCI processing element 13 as discussed above. Preferably, it is required that the transmitted code list is determined in time for use by the MUD to demodulate the next timeslot. There are generally no floating/fixed point issues.
Although the above invention has been described with reference to specific preferred parameters and implementation processes and components, it is not intended to be limited to only the preferred embodiment. Other variations will be apparent to the skilled artisan which are within the scope of the present invention.

## Claims

1. A communication station for a wireless communication system wherein coded signals are received via physical channels of a composite channel within timeslots of a system time frame, the communication station comprising:
an initial signal processing circuit configured to determine a number of coded signals received for the composite channel within a system time frame; and
a second circuit configured to identify the coded signals by performing a code identification algorithm based on the determined number of coded signals received for the composite channel within the system time frame.

2. The communication station of claim 1 wherein the second circuit includes a memory device configured to store the identified codes for the coded signals in a code list by defining an order of possible allocable codes and adding codes to the code list up to and including the determined number, based on the defined order.

3. The communication station of claim 1 where the composite channel is comprised of a selected number of Transport Channels (TrCHs), each TrCH having a data streams arranged in a predetermined Transport Format (TF) of a Transport Format Set (TFS) of that TrCH which is in effect for a given Transmission Time Interval (TTI) of timeframes and a Transport Format Indicator (TFI) that identifies the TF of the TrCH's TFS in effect for that TrCH, the TFIs of all the TrCHs of the composite channel being combined into a Transport Format Combination Indicator (TFCI) from which the formatting and codes of the coded signals received in the composite channel in a given TTI can be determined and where the TFCI is received in conjunction with the composite channel in at least a first timeslot of each TTI in which the composite channel is received, wherein:
the initial signal processing circuit is configured to process a received TFCI to determine a value Ncodes representing the determined number of coded signals; and
the second circuit is configured to process the received TFCI a second time utilizing the determined value Ncodes to produce a list corresponding to the codes of the coded signals transmitted in the composite channel in the TTI.

4. The communication station of claim 3 wherein the second circuit includes a memory device configured to store the identified codes for the coded signals in a code list by defining an order of possible allocable codes and adding codes to the code list up to and including the determined number, based on the defined order.

5. The communication station of claim 3 wherein the initial signal processing circuit is configured to operate at a background processing rate and the second circuit is configured to operate at a timeslot processing rate.

6. The communication station of claim 5 further including a third circuit configured to process the received TFCI a third time to determine demodulation parameters that is configured to operate at a time frame processing rate.

7. The communication station of claim 6 wherein the second circuit includes a memory device configured to store the identified codes for the coded signals in a code list by defining an order of possible allocable codes and adding codes to the code list up to and including the determined number, based on the defined order.

8. The communication station of claim 1 configured as a User Equipment (UE) for a 3GPP system.

9. The communication station of claim 1 configured as a Node B for a 3GPP system.

10. The communication station of claim 3 configured as a User Equipment (UE) for a 3GPP system.

11. The communication station of claim 3 configured as a Node B for a 3GPP system.

12. A method for a communication system wherein coded signals are received on physical channels of a composite channel within timeslots of a system time frame comprising:
determining a number of coded signals received for the composite channel within a system time frame; and
identifying the coded signals by performing a code identification algorithm based on the determined number.

13. The method of claim 12 where the identified codes of the coded signals are stored in a code list by first defining an order of possible allocable codes and the adding each code, up to and including the determined number, to the code list based on the defined order.

14. The method of claim 12 where the composite channel is comprised of a selected number of Transport Channels (TrCHs), each TrCH having a data streams arranged in a predetermined Transport Format (TF) of a Transport Format Set (TFS) of that TrCH which is in effect for a given Transmission Time Interval (TTI) of timeframes and a Transport Format Indicator (TFI) that identifies the TF of the TrCH's TFS in effect for that TrCH, the TFIs of all the TrCHs of a CCTrCH being combined into a Transport Format Combination Indicator (TFCI) from which the formatting and codes of the coded signals received in the composite channel in a given TTI can be determined and where the TFCI is received in conjunction with the composite channel in at least a first timeslot of each TTI in which the composite channel is received, wherein:
the received TFCI is processed first to determine a value Ncodes representing the determined number of codes; and
the received TFCI is processed a second time utilizing the determined value Ncodes to produce a list corresponding to the codes of the coded signals transmitted in the composite channel in the TTI.

15. The method of claim 14 where the identified codes of the coded signals are stored in a code list by first defining an order of possible allocable codes and the adding each code, up to and including the determined number, to the code list based on the defined order.

16. The method of claim 14 wherein the received TFCI is processed first to determine a value Ncodes in background processing and is processed the second time at a timeslot processing rate.

17. The method of claim 16 wherein the received TFCI is processed a third time to determine demodulation parameters at a time frame processing rate.

18. The method of claim 17 where the identified codes of the coded signals are stored in a code list by first defining an order of possible allocable codes and the adding each code, up to and including the determined number, to the code list based on the defined order.

19. The method of claim 14 wherein TFCIs and corresponding CCTrCHs are received and processed by a User Equipment (UE) in a 3GPP system.

20. The method of claim 14 wherein TFCIs and corresponding CCTrCHs are received and processed by a Node B in a 3GPP system.