As the name implies, this is not a single number. It is a sequence of special numbers. You can find quite a lot of materials on this sequence from internet (try with Wikipedia).
LTE needs sequences that a receiver can detect reliably, even when it does not know the exact timing or the exact cell. A Zadoff-Chu sequence serves this purpose. It keeps a constant amplitude, and every cyclic shift of it is orthogonal to the original. This page shows how the sequence is built, which properties make it useful, and where 36.211 uses it.
Followings are the topics to be covered in this page.
- Generating a Zadoff-Chu Sequence
- Properties of Zadoff-Chu Sequence
- Zadoff-Chu Sequences in LTE
- Reference
Generating a Zadoff-Chu Sequence
How is a Zadoff-Chu sequence built? A single formula with two parameters produces the whole sequence: the root index q and the length NZC. The spreadsheet below computes one sequence from that formula, so each number can be checked by hand.
Let's first think about how this sequence is generated. Various kinds of number sequences are used in many different kind of technologies (e.g, Walsh code in CDMA, OVSF code in WCDMA) and usually these numbers are created by a special rules or formula. Same to Zadoff-Chu sequence. The basic form of Zadoff chu sequence can be created by the formula as shown in the following spreadsheet (click on the picture to see in magnified view. Please click here if you want to have this spreadsheet).
Zadoff-Chu sequence with q = 25 and Nzc = 63. Columns B and C hold the real and imaginary parts, and columns D and E hold the same sequence shifted by one. The scatter plot shows the values on the unit circle.
The formula at the top of the spreadsheet is xq(m) = exp(-j pi q m(m+1) / NZC), for m = 0 to NZC - 1. Each value is a phase on the unit circle, so the real part is cos(theta) and the imaginary part is -sin(theta). For example, row 1 gives theta = 2 pi x 25 / 63, which is -0.7971 - j0.6038, as the spreadsheet shows.
The parameters q = 25 and NZC = 63 are not arbitrary. They are the root and the length of the PSS for NID(2) = 0 in 36.211 v19.3.0 Table 6.11.1.1-1. So the spreadsheet computes the sequence that a real LTE cell sends. The PSS then drops the middle value of the 63, which would fall on the DC subcarrier, and uses the remaining 62.
Video Tutorial : http://www.youtube.com/watch?v=xCm_1bdVwlU
One formula, two parameters : the root q and the length Nzc.Every value has magnitude 1 : a phase exp(-j theta) on the unit circle.q = 25 and Nzc = 63 : the PSS sequence for NID(2) = 0.
Properties of Zadoff-Chu Sequence
Why did we chose to use these sequence ? It is because this sequence has a couple of special properties that can be very useful for LTE low layer implementation.
Followings are the special properties of the sequence :
i) This sequence has a constant amplitude. If you look into the formula, it is in the form of e^(-j theta). You may learned about this in high school math. If you convert this into Euler form, you will get e^(-j theta) = cos(theta) - j sin(theta). First, you will see this is a complex number which is made up of real and imaginary part. If you plot the numbers onto a complex plan (Real part - horizontal axis and Imaginary part on vertical axis), all the numbers will lie on the perimeter of a circle. This means the amplitude of these number is constant. See the plot above. (Column B, C is one example of Zadoff Sequence. B is the real part and C is imaginary part. The plot is the scatter plot of column B, C)
ii) Zero Autocorrelation. If you create a sequence using this formula and create another sequence just by shifting the same sequence by N (N can be 1,2,....,size of sequence -1). And if you take the correlation of the two sequence, the result become 0. Taking the spreadsheet shown above as an example, Column B,C is a sequence created by formula. and Column D,E is not the one created by the formula.. it is just shifted version of Column B, C. Cell F70 and G70 shows the correlation of Column B,C and D,E which gives almost 0. It should be 0 theoretically, but the F70,G70 is not exactly 0 because of numerical errors.. but it is almost 0. If you have two sequence of number and the correlation of the two sequence is 0, we say "the two sequences are orthogonal to each other". It means that you can create many of orthogonal sequences just by shifting a Zadoff Chu sequence. How convenient it is to create orthogonal sequences.. and you know how important to create orthogonal sequences in many wireless communication.
Any sequences that has the two properties explained above are called CAZAC sequence (constant amplitude zero autocorrelation waveform).
iii) Cross correlation of two Zadoff Chu sequence is 1/Sqrt(Nzc). If you create two sequences using the formula shown on the spreadsheet just by changing 'q' (this holds when Nzc is a prime number) and take the correlation of the two sequences, the result will be 1/Sqrt(Nzc).
There are a couple of more special properties of Zadoff Chu sequences, but I don't think they are important for LTE implementation. So I would leave it to you to refer to other sources.
The zero autocorrelation holds for cyclic shifts. The shifted copy wraps the last values around to the start, as column D does, and the correlation is taken over one full period. A Python check of the spreadsheet sequence gives an off-peak value of about 1e-13 for every shift from 1 to 62. The -5.5e-13 and 1.9e-12 in cells F70 and G70 are the same result with the rounding of the spreadsheet.
The cross-correlation value depends on the two roots. When the difference of the two roots shares no factor with NZC, the cross-correlation has the magnitude 1/sqrt(NZC) at every shift. The table below shows this for the three PSS roots, where NZC = 63 is not a prime number, and for two PRACH lengths, which are prime numbers.
Sequences | Nzc | Root difference | Cross-correlation magnitude | 1/sqrt(Nzc) |
PSS roots 25 and 29 | 63 | 4 | 0.126 at every shift | 0.126 |
PSS roots 29 and 34 | 63 | 5 | 0.126 at every shift | 0.126 |
PSS roots 25 and 34 | 63 | 9, shares the factor 9 with 63 | 0 to 0.378, depending on the shift | 0.126 |
PRACH roots 1 and 2 | 839 | 1 | 0.0345 at every shift | 0.0345 |
PRACH roots 1 and 5 | 139 | 4 | 0.0848 at every shift | 0.0848 |
The values were computed with Python over all cyclic shifts, and normalized by the length. The PSS roots 29 and 34 add up to 63, so the two sequences are complex conjugates of each other.
Constant amplitude : every value lies on the unit circle.Zero cyclic autocorrelation : every cyclic shift is orthogonal to the original.Cross-correlation 1/sqrt(Nzc) : when the root difference shares no factor with Nzc, always true for a prime Nzc.
Zadoff-Chu Sequences in LTE
Where in LTE we use this Zaddoff Chu sequence. In short, the sequence are used in the following part of LTE. (I will update the details of these topics later)
i) Primary Synchronization Signal (PSS) (so called primary synchronization channel)
ii) random access preamble (PRACH)
iii) PUCCH DMRS
iv) PUSCH DMRS
The list above names five places. In 36.211 v19.3.0, a Zadoff-Chu sequence is used directly in three of them: the PSS, the PRACH preamble, and the uplink reference signal base sequences of 36 subcarriers or more. The table below gives the length and the roots in each case.
Where | Clause of 36.211 | Length Nzc | Roots |
PSS | 6.11.1.1 | 63, with the middle value removed | 25, 29, 34 for NID(2) = 0, 1, 2 |
PRACH, formats 0 to 3 | 5.7.2 | 839 | 1 to 838, in the logical order of Table 5.7.2-4 |
PRACH, format 4 | 5.7.2 | 139 | 1 to 138 |
PUSCH DMRS and SRS, 36 subcarriers or more | 5.5.1.1 | largest prime below the length | from the group number u and the base sequence number v |
The uplink base sequences are longer than the prime NZC. So clause 5.5.1.1 repeats the Zadoff-Chu sequence cyclically to fill the allocation. For example, 3 RB are 36 subcarriers, and the largest prime below 36 is 31. Shorter base sequences, of 12 or 24 subcarriers, are not Zadoff-Chu sequences. Clause 5.5.1.2 defines them from tables of QPSK phase values instead, because a prime length of 11 or 23 leaves too few roots for 30 sequence groups.
This matters for the PUCCH DMRS in the list. A PUCCH occupies one RB, so its DMRS uses the 12-subcarrier base sequences of Table 5.5.1.2-1, which are computer-generated rather than Zadoff-Chu sequences. They share the constant amplitude and the cyclic-shift orthogonality, and the PUCCH relies on those. The PRACH uses the same zero autocorrelation: it creates the 64 preambles of a cell from cyclic shifts of one or more roots.
PSS: length 63, roots 25, 29 and 34 : one root per NID(2).PRACH: length 839 or 139 : preambles made from cyclic shifts of a root.Uplink base sequences of 36 subcarriers or more : Zadoff-Chu, extended cyclically.12 and 24 subcarriers, including the PUCCH DMRS : computer-generated QPSK sequences.
Reference
[1] 3GPP TS 36.211 v19.3.0 - clauses 5.5.1, 5.7.2 and 6.11.1.1: uplink base sequences, random access preamble and primary synchronization signal