The present invention relates to communication generally and, more particularly, to a method and/or apparatus for implementing a fast calculation of the beginning of pseudo random sequences for LTE.
In a cellular system implementing a third generation mobile network technology compliant with the 3rd Generation Partnership Project (3GPP) Long Term Evolution (LTE) standard (document 3GPP TS 36.211 V9.1.0 (2010-03)), pseudo-random sequences are defined by a length-31 Gold sequence (section 7.2 of document 3GPP TS 36.211 V9.1.0 (2010-03)). The output sequence c(n) of length MPN, where n=0, 1, MPN−1, is defined by the following equations:
c(n)=(x1(n+NC)+x2(n+NC))mod 2 Eq. 1
x1(n+31)=(x1(n+3)+x1(n))mod 2, Eq. 2
x2(n+31)=(x2(n+3)+(x2(n+2)+x2(n+1)+x2(n))mod 2. EQ. 3
The term NC represents a constant having a value of 1600. The terms x1(n+NC) and x2(n+NC) are referred to as a first m-sequence and a second m-sequence, respectively. The first m-sequence is initialized with x1(0)=1, x1(n)=0, n=1, 2, . . . , 30. The initialization of the second m-sequence is denoted by the following equation:
c
init=Σi=030x2(i)·2i. EQ. 4
The initialization value of the second m-sequence depends on the application of the pseudo-random sequence.
When samples c(0), c(1), . . . , c(31) are available, the sequence can be calculated easily. However, the samples c(0), c(1), . . . , c(31) have to be calculated based on the initialization sequence of x2 and x1. While the initialization sequence of x1 is constant and, therefore, can be pre-calculated, the sequence for x2(1600), . . . , x2(1630) should be calculated for each different application of the pseudo-random sequence. In a conventional system, the samples x2(1600), . . . , x2(1630) are calculated directly by iteratively calculating x2(0) through x2(1600) using Equation 4 above. The main disadvantage of the conventional method is that calculating 1600 samples utilizes real-time resources of the system and can create real-time problems.
It would be desirable to have a method and/or apparatus for implementing a fast calculation of the beginning of pseudo random sequences for LTE.
The present invention concerns an apparatus including a first circuit and a second circuit. The first circuit may be configured to generate pseudo-random sequences in response to a first m-sequence and a second m-sequence, where the first m-sequence is initialized with a pre-calculated constant and the second m-sequence is initialized based on a pre-defined initial sequence and a table of pre-calculated values indicating which components of the initial sequence participate in initializing the second m-sequence. The second circuit may be configured to store the table of pre-calculated values.
The objects, features and advantages of the present invention include providing a method and/or apparatus for fast calculation of the beginning of pseudo random sequences for LTE that may (i) reduce the complexity of calculating the first samples of the m-sequence x2, (ii) be implemented in software, (iii) be implemented in hardware, and/or (iv) improve the total real-time performance of a LTE system.
These and other objects, features and advantages of the present invention will be apparent from the following detailed description and the appended claims and drawings in which:
Referring to
The processing units 110 and 120 may include a lookup memory embodying a table of values that may be used in pseudo-random sequence calculations performed by either hardware incorporated in, or software executed on the processing units 110 and 120. The values in the table of values may be pre-calculated. The values are not generally changed during run time. In one example, the table of values may be stored in a read only memory (ROM). However, any type of memory or lookup table (LUT) may be implemented accordingly to store the table of values. For example, the table of values may be written to a Flash memory or other nonvolatile memory (e.g., programmable read only memory (PROM), erasable programmable read only memory (EPROM), electrically erasable programmable read only memory (EEPROM), bubble memory, etc.). Additionally, even volatile memory, such as dynamic random access memory (DRAM) or static random access memory (SRAM), may be used. For example, the table values may be calculated at power-up or transmitted to the apparatus at, for example, initiation or establishment of the uplink/downlink. In another example, a simple transformation of the table values may be stored in ROM that may be used to obtain the values. The values may be converted and then stored in RAM and accessed there.
Referring to
Pseudo-random sequences may be utilized in a variety of processes performed in the system 100 (described below in connection with
In order to determine the pseudo-random sequences, a low complexity method for calculating the first samples of the pseudo-random sequence in accordance with an embodiment of the present invention may be implemented by either software (SW) or hardware (HW). The method in accordance with an embodiment of the present invention for calculating the first samples of the pseudo-random sequence may be implemented to generate the pseudo-random sequences for LTE. The method in accordance with an embodiment of the present invention may be used in place of the conventional brute force technique at each location in the LTE specification document 3GPP TS 36.211 where Section 7.2 is referenced.
It can be shown that each sample n of the second m-sequence x2 may be calculated using the following Equation 5:
x2(n)=(Σi=030k2(i,n)x2(i))mod 2, EQ. 5
where k2(i,n) is either 0 or 1. The value k2(i,n) is not a function of the initialization sequence x2(0 to 30). In one example, the samples of x2(n) for n=1600 to 1630 may be calculated by using the following steps:
Referring to
Referring to
In one example, the baseband signal representing a downlink physical channel may be defined in terms of a process 320. The process 320 may comprise scrambling stages 322, modulation mapper stages 324, a layer mapper stage 326, a precoding stage 328, resource element mapper stages 330, and OFDM signal generation stages 332. The scrambling stages 322 may be configured to scramble coded bits in each of a plurality of codewords to be transmitted on a physical channel prior to modulation. The modulation mapper stages 324 generally provide modulation of the scrambled bits to generate complex-valued modulation symbols. The layer mapper stage 326 generally provides mapping of the complex-valued modulation symbols onto one or several transmission layers. The precoding stage 328 generally provides precoding of the complex-valued modulation symbols on each layer for transmission on the antenna ports. The resource element mapper stages 330 generally provide mapping of the complex-valued modulation symbols for each antenna port to resource elements. The OFDM signal generations stages 332 generally provide generation of a complex-valued time-domain OFDM signal for each antenna port. Each of the stages 322-332 may utilize a pseudo-random sequence generated by a pseudo-random sequence generator 334 in accordance with an embodiment of the present invention. For example, when the stages 302-310 are compliant with the 3GPP LTE specification, a pseudo-random sequence generated by the pseudo-random sequence genera for 312 may be utilized at any point where section 7.2 is referenced.
Referring to
The values of the function k2(i,n) may be pre-calculated using the Equation 5 from above:
x2(n)=(Σi=0+k2(i,n)x2(i))mod 2. EQ. 5
As described in the 3GPP specification, when the first 31 bits of the m-sequence x2 (e.g., x2(i), i=0, 1, . . . , 30) are known, the m-sequence x2(n), where n is greater than or equal to 31 may be derived using Equation 3 from above.
x2(n+31)=(x2(n+3)+x2(n+2)+x2(n+1)+x2(n))mod 2. EQ. 3
For example, from Equation 3, for m-sequence bit x2(31), n=0. Using Equation 3 with n=0,
x2(31)=(x2(3)+x2(2)+x2(1)+x2(0))mod 2. EQ. 6
Every bit x2(n), n=0 to N may be recursively described as a function of x2(0, 1, . . . , 30). For example, for x2(59) n=28. Using Equation 3 with n=28,
x2(59)=(x2(31)+x2(30)+x2(29)+x2(28))mod 2.
Applying Equation 6 to substitute for x2(31),
Using Equation 7, k2(i,59) may be defined as follows:
The functions performed by the diagrams of
The present invention may also be implemented by the preparation of ASICs (application specific integrated circuits), Platform ASICs, FPGAs (field programmable gate arrays), PLDs (programmable logic devices), CPLDs (complex programmable logic device), sea-of-gates, RFICs (radio frequency integrated circuits), ASSPs (application specific standard products), one or more monolithic integrated circuits, one or more chips or die arranged as flip-chip modules and/or multi-chip modules or by interconnecting an appropriate network of conventional component circuits, as is described herein, modifications of which will be readily apparent to those skilled in the art(s).
The present invention thus may also include a computer product which may be a storage medium or media and/or a transmission mediumi or media including instructions which may be used to program a machine to perform one or more processes or methods in accordance with the present invention. Execution of instructions contained in the computer product by the machine, along with operations of surrounding circuitry, may transform input data into one or more files on the storage medium and/or one or more output signals representative of a physical object or substance, such as an audio and/or visual depiction. The storage medium may include, but is not limited to, any type of disk including floppy disk, hard drive, magnetic disk, optical disk, CD-ROM, DVD and magneto-optical disks and circuits such as ROMs (read-only memories), RAMs (random access memories), EPROMs (electronically programmable ROMs), EEPROMs (electronically erasable ROMs), UVPROM (ultra-violet erasable ROMs), Flash memory, magnetic cards, optical cards, and/or any type of media suitable for storing electronic instructions.
The elements of the invention may form part or all of one or more devices, units, components, systems, machines and/or apparatuses. The devices may include, but are not limited to, servers, workstations, storage array controllers, storage systems, personal computers, laptop computers, notebook computers, palm computers, personal digital assistants, portable electronic devices, battery powered devices, set-top boxes, encoders, decoders, transcoders, compressors, decompressors, pre-processors, post-processors, transmitters, receivers, transceivers, cipher circuits, cellular telephones, digital cameras, positioning and/or navigation systems, medical equipment, heads-up displays, wireless devices, audio recording, storage and/or playback devices, video recording, storage and/or playback devices, game platforms, peripherals and/or multi-chip modules. Those skilled in the relevant art(s) would understand that the elements of the invention may be implemented in other types of devices to meet the criteria of a particular application.
While the invention has been particularly shown and described with reference to the preferred embodiments thereof, it will be understood by those skilled in the art that various changes in form and details may be made without departing from the scope of the invention.