4G/LTE - Basic Procedures

 

 

 

PUSCH Frequency Hopping

 

A radio channel is never equally good across the whole band. A UE holding the same resource blocks all frame depends on one slice of that band staying usable. Sometimes it does not.

Frequency hopping removes that dependence. The UE moves its allocation around the band so that a bad patch of spectrum damages part of the transmission rather than all of it. This page follows that idea from the pictures through to the signalling, the formulas and a live capture.

 

Everybody would know what the frequency hopping is ? It is a special transmission technique sending data with changing crarrier frequency in a certain pattern. Same definition applies to LTE frequency hopping as well.

So I will talk more on why we need freuqency and what kind of hopping pattern it use. One think to be noticed is that LTE use frequency hopping only for Uplink.

Why does the uplink need frequency hopping ?

Following is the illustration of a uplink frame. I allocated a resource for a user at a portion of the operation band and the location does not changes throughout the frame.

 

Uplink frame grid with the allocation fixed in Subband 0 for every subframe, showing no frequency hopping

Figure 1. One frame with no hopping. The allocation sits in Subband 0 and stays there, which is the arrangement the rest of this section argues against.

  • The vertical axis carries a PUCCH Region at the top and the bottom, with Subband 0 to Subband 3 between them. The brackets along the top mark 1 frame, 1 subframe and 1 slot.
  • Solid vertical lines are subframe boundaries and dashed lines are slot boundaries. The blue stripes inside the allocation are the reference symbols, one per slot.
  • The coloured block never leaves Subband 0, and the jagged break in the middle only means the frame continues.

 

With a bad luck, what if some impairment happens at the specific frequency region as shown below that the data is carried. In this case, the data for the poor user will be currupted so badly.

 

The same fixed allocation in Subband 0 with burst symbols drawn over it, showing interference striking every subframe

Figure 2. The same allocation with an impairment sitting on Subband 0. Because the allocation never moves, every subframe takes the damage.

  • The burst marks are drawn on the allocation itself rather than on the empty subbands. The impairment is narrow, and it happens to overlap the one subband in use.
  • Subbands 1 to 3 stay clean all the way across. The band as a whole is usable, and only this UE’s slice of it is not.
  • Nothing in the picture recovers. A fixed allocation has no way to reach the clean spectrum beside it.

 

How can we avoid this kind of issue ? There is no perfect solution for this, but there may be many partial solutions for this. Frequency hopping can be one of those partial solutions. If the frequency (basically Start RB of the data) changes, large portions of the data would be able to avoid the impairment even thopugh there still be some unlucky data hit by the noise.

What hopping patterns does LTE use ?

Hopping is not one behaviour but a family of them. The pattern can change between subframes or inside one. The jump can be a fixed distance or a varying one, and the allocation can be reflected as well as moved. The drawings below add one of those choices at a time.

Now let's think of what kind of hopping pattern (method) is used in LTE.

First we can think of a pattern as follows. As you see, frequency change (hopping) does not happens within a subframe. It happens only between a subframe and another subframe. This kind of hopping is called "inter subframe" hopping. Another characteristics you may notice from the following figure would be that the hopping pattern is simple and does not change.

 

Inter subframe hopping where the allocation alternates between Subband 0 and Subband 3 from one subframe to the next

Figure 3. Inter subframe hopping. The subband changes between subframes and holds still inside each one, so the dashed slot boundary runs through an unbroken block.

  • The block alternates between Subband 0 and Subband 3 and repeats on that two subframe cycle.
  • Each block spans both slots of its subframe. The dashed slot line crosses it without the allocation moving, and that is what inter subframe means.
  • The pattern is regular, so the next position follows from the previous one.

 

Next pattern we can think of is as follows. Do you recognize the difference between the previous one and this one ? You would notice that hopping happens within a subframe in this case. This kind of hopping is called 'Intra Subframe' hopping.

 

Intra subframe hopping where each subframe carries one narrower block in Subband 0 and another in Subband 3

Figure 4. Intra subframe hopping. The change now happens at the slot boundary inside a subframe, so each subframe holds two blocks rather than one.

  • Every subframe carries two narrower blocks, one on each side of the dashed slot line.
  • One sits in Subband 0 and the other in Subband 3, so a single subframe is already spread across the band.
  • The pair of subbands does not change from subframe to subframe. Only the position within the subframe does.

 

Now let's look into another type of hopping. Now you may recognize this is a kind of IntraSubframe hopping as in previous pattern, but you would see that hopping distance between the one slot and another slot is not constant. It may look as if the distance is arbitrary.(It is not totally random, but it would LOOK Like a random)

 

Intra subframe hopping where the slot pairs land on all four subbands and the jump distance changes from subframe to subframe

Figure 5. The same intra subframe hopping with a varying jump. All four subbands are used and the distance between the two slots is no longer constant.

  • Blocks now appear in Subband 0, 1, 2 and 3 rather than only the outermost two.
  • The gap between the two slots of a subframe changes as the frame goes on. It looks arbitrary, and the prose above notes that it is not truly random.
  • Reaching more subbands means an impairment on any one of them costs a smaller share of the transmission.

 

Now let's look at another types of pattern. Did you recognize the difference from the previous one ? You would notice that the resource allocation gets flipped around as it hops from the previous one. The resource allocation of a slot is a mirror image of the previous one. This is called "mirroring".

 

The same hopping pattern with the resource allocation vertically flipped in alternate slots, illustrating mirroring

Figure 6. Mirroring. The block contents are turned over as the allocation hops. That changes which subcarrier a given bit uses, even when the block sits in the same place.

  • Compare the colour order inside a block with Figure 5. Where Figure 5 reads dark at the top and green at the bottom, several blocks here read in the opposite order.
  • The reference symbol stripe moves with the rest of the block, so the whole allocation is reflected rather than relabelled.
  • Mirroring changes the mapping inside the allocation and hopping changes where the allocation sits. A network can apply both.
  • A fixed allocation has no defence : Figure 2 shows the whole transmission sitting inside one damaged subband, with clean spectrum unused beside it.
  • Inter and intra subframe are about when, not how far : the first changes subband between subframes and the second changes it at the slot boundary.
  • Distance and mirroring are separate choices : Figure 5 varies the jump and Figure 6 reflects the block, and neither requires the other.

I just tried to give you some intuitive understanding of the UL frequency hopping. For exact hopping rules/patterns, refer to 36.211 - 5.3.4

How does the network signal the pattern ?

How would the eNodeB in what pattern the UL data would hop ? It is simple. Network determine all the hopping patterns and let UE hop as it instructs.

Network informs UE of the details of hopping pattern via SIB2 and DCI 0 as follows.

Decoded SIB2 from a live capture, shown as the decoder printed it. The values in square brackets are what one network sent, not what the specification requires.

+-sib2 ::= SEQUENCE [00]
  +-ac-BarringInfo ::= SEQUENCE OPTIONAL:Omit
  +-radioResourceConfigCommon ::= SEQUENCE
  | +-rach-Config ::= SEQUENCE
  | +-bcch-Config ::= SEQUENCE
  | +-pcch-Config ::= SEQUENCE
  | +-prach-Config ::= SEQUENCE
  | +-pdsch-Config ::= SEQUENCE
  | +-pusch-Config ::= SEQUENCE
  | | +-pusch-ConfigBasic ::= SEQUENCE
  | | | +-n-SB ::= INTEGER (1..4) [1]
  | | | +-hoppingMode ::= ENUMERATED [interSubFrame]
  | | | +-pusch-HoppingOffset ::= INTEGER (0..98) [4]
  | | | +-enable64QAM ::= BOOLEAN [FALSE]
  | | +-ul-ReferenceSignalsPUSCH ::= SEQUENCE
  | |   +-groupHoppingEnabled ::= BOOLEAN [TRUE]
  | |   +-groupAssignmentPUSCH ::= INTEGER (0..29) [0]
  | |   +-sequenceHoppingEnabled ::= BOOLEAN [FALSE]
  | |   +-cyclicShift ::= INTEGER (0..7) [0]

 

    Decoder view of a DCI Format 0 for a 10 MHz cell, with ResoureAllocation set to Hopping and the NUL-hop field boxed in red

    Figure 7. DCI Format 0 as the decoder printed it. ResoureAllocation reads Hopping, and the boxed NUL-hop field is the one that chooses which hopping type applies.

    • The tree is headed DCI-FORMAT-0-10MHz, so this is a 10 MHz cell and the hopping field is two bits wide.
    • ResoureAllocation reads Hopping, which is what puts NUL-hop and RIV underneath it. The spelling is the decoder’s own.
    • NUL-hop is boxed in red and reads 00, while RIV reads 270. The two together fix the starting position and the hop.
    • The rest is ordinary DCI 0 content: MCS 8, NDI 0, TPC 01, CyclicShift 000, UlIndex-or-DAI 00 and CqiRequest 0.

 

There are two different types of hopping and the Hopping Bit field (NUL-hop) in DCI 0 specify which hopping type should be applied. The mapping between Hopping Bit Value and Hopping Type is as follows.

 

System BW

Hopping Bit Field

Hopping Type

1.4, 3, 5

0

Type 1

1

Type 2

10, 15, 20

0

Type 1

1

Type 1

2

Type 1

3

Type 2

 

Type 1 : Frequency offset between the first slot and the second slot is explicitely determined by DCI 0.

Type 2 : Frequency offset between the first slot and the second slot is configured by a predefined pattern. When there is multiple subbands, hopping is done from one subband to another subband.

 

  • The network decides everything : the UE does not choose a hopping pattern, it follows the one SIB2 configures and DCI 0 selects.
  • SIB2 sets the frame, DCI 0 picks within it : n-SB, hoppingMode and pusch-HoppingOffset are broadcast once, while the hopping bits arrive with each grant.
  • The bit width follows the bandwidth : one hopping bit below 50 resource blocks and two at or above it. That is why the table has two groups of rows.

How is the hopping position calculated ?

The pictures so far show what hopping looks like. Turning that into a resource block number takes two specifications working together, because the grant supplies one part of the answer and SIB2 supplies the other. The two figures below trace that calculation for each hopping type in turn.

Following is the detailed process of calculating the PUSCH location in hopping. (Described in 36.213)

 

Annotated derivation of the PUSCH start resource block, combining the decoded DCI 0, 36.213 Table 8.4-2 and the definitions of N RB PUSCH

Figure 8. How the hopping bits become a start resource block. 36.213 Table 8.4-2 sits in the middle of the chain, and the green arrows carry one value through it.

  • The decoded DCI 0 at the top left supplies NUL-hop, and a green arrow carries that value into the Information in hopping bits column.
  • 36.213 Table 8.4-2 splits on system bandwidth. NRBUL of 6 to 49 gets one hopping bit, and 50 to 110 gets two.
  • In the two bit case the entries 00, 01 and 10 give three different offsets and 11 selects Type 2 PUSCH Hopping. In the one bit case 0 is Type 1 and 1 is Type 2.
  • The red note on the right names the output: the calculated location of the start RB of PUSCH at sub frame (i).
  • The lower group defines NRBPUSCH three ways, one for Type 1 and two for Type 2 depending on whether Nsb is 1 or larger.
  • The chain ends at pusch-HoppingOffset in SIB2, which the capture above shows as 4.

 

Following is the detailed process of calculating the PUSCH location in Frequency Hopping Type 2. (Described in 36.211)

 

Annotated Type 2 hopping formulas from 36.211, showing n tilde VRB, the mirroring function f m of i, the hopping function f hop of i and the resulting n PRB

Figure 9. Type 2, where the position comes from a pattern rather than from the grant. No DCI 0 value appears anywhere in it; n-SB and pusch-HoppingOffset from SIB2 drive the whole thing.

  • n-SB in SIB2 enters at the top, and several definitions below it split on whether Nsb is 1 or greater than 1.
  • fm(i) is the mirroring function. It is i mod 2 for one subband with intra and inter subframe hopping, CURRENT_TX_NB mod 2 for one subband with inter subframe hopping, and c(i·10) otherwise.
  • fhop(i) is the hopping function and it is 0 when Nsb is 1. For two or more subbands it is built from the pseudo-random sequence c(k), which is why Figure 5 looks arbitrary without being random.
  • The red note on the left names the same output as Figure 8, the calculated location of the start RB at sub frame (i).
  • pusch-HoppingOffset appears at the foot again, so both hopping types end at the same SIB2 field.
  • Type 1 reads the grant, Type 2 reads the configuration : the NUL-hop value selects between them, and only Type 1 takes an offset from DCI 0.
  • Both types end at pusch-HoppingOffset : the SIB2 field sets aside the band edge that hopping is allowed to use, whichever type is running.
  • n-SB decides how much of Type 2 applies : with Nsb = 1 the hopping function collapses to zero and only the mirroring term is left.

What does it look like on a real device ?

Everything above is drawn or derived. A spectrum analyser settles it differently, by showing where the energy actually went. The four captures below change one setting only, the hopping bit in DCI 0, and leave the rest of the configuration alone.

Following four screenshot is an example of PUSCH Frequence Hopping with a commercialized device.

 

Following is the result of

      System BW = 10 Mhz

      n_SB = 1

      hoppingMode = IntraInterSubframe

      pusch-HoppingOffset = 4

      Hopping bit value in DCI 0 = 0 (Type 1)

Spectrum and spectrogram capture of PUSCH with hopping bit 0, showing two occupied frequency positions in a 10 MHz channel

Figure 10. Hopping bit 0, Type 1. Two occupied positions appear rather than one, and the spectrogram underneath shows them alternating in time.

 

Following is the result of

      System BW = 10 Mhz

      n_SB = 1

      hoppingMode = IntraInterSubframe

      pusch-HoppingOffset = 4

      Hopping bit value in DCI 0 = 1 (Type 1)

Spectrum and spectrogram capture of PUSCH with hopping bit 1, showing two occupied frequency positions in a 10 MHz channel

Figure 11. Hopping bit 1, Type 1. Two occupied positions appear rather than one, and the spectrogram underneath shows them alternating in time.

 

Following is the result of

      System BW = 10 Mhz

      n_SB = 1

      hoppingMode = IntraInterSubframe

      pusch-HoppingOffset = 4

      Hopping bit value in DCI 0 = 2 (Type 1)

Spectrum and spectrogram capture of PUSCH with hopping bit 2, showing two occupied frequency positions in a 10 MHz channel

Figure 12. Hopping bit 2, Type 1. Two occupied positions appear rather than one, and the spectrogram underneath shows them alternating in time.

 

Following is the result of

      System BW = 10 Mhz

      n_SB = 1

      hoppingMode = IntraInterSubframe

      pusch-HoppingOffset = 4

      Hopping bit value in DCI 0 = 3 (Type 2)

Spectrum and spectrogram capture of PUSCH with hopping bit 3, showing two occupied frequency positions in a 10 MHz channel

Figure 13. Hopping bit 3, Type 2. Two occupied positions appear rather than one, and the spectrogram underneath shows them alternating in time.

  • All four captures share the same settings apart from the hopping bit: 10 MHz system bandwidth, n_SB = 1, hoppingMode IntraInterSubframe and pusch-HoppingOffset 4.
  • The span runs from 1.717 5 GHz to 1.742 5 GHz in every one, and the cyan markers bracket the 10 MHz channel inside it.
  • The upper trace is the spectrum and the lower panel is the spectrogram, covering roughly 7.2 ms to 42.8 ms.
  • Every capture shows two occupied positions, which is the hop. What changes between them is where the pair sits and how far apart it is.
  • Figures 11 and 13 place the two positions near the edges of the channel, while Figures 10 and 12 keep them closer together.
  • The separation also depends on the starting resource block, so these pictures cannot be read back into 36.213 Table 8.4-2 without knowing RIV as well.
  • The hop is visible without any decoding : two occupied positions in a spectrogram are enough to tell that hopping is switched on.
  • The hopping bit changes the geometry, not the fact : all four settings hop, and they differ only in where the second position lands.
  • A capture cannot confirm the offset on its own : the start RB comes from RIV, so the picture and the grant have to be read together.

 

Why is there no downlink frequency hopping ?

One quick question. Why we need this kind PUSCH frequency hopping only for uplink whereas we do not have this feature for downlink. It is because there are other mechnisms in downlink to avoid such a case where a large portions of allocated resources get currupted at once. One of the way is to use 'Distributed' resource allocation and the other way is to scatter the downlink resources over the wide range using special 'Resource Allocation Type'. But in uplink, you cannot implement such a distributed resource allocation since uplink is using 'Single Carrier' FDMA. (Why Single Carrier FDMA does not allow 'distributed resource allocation'? Try to think out the answer yourself. It would be a good practice of understanding one important aspect of 'Single Carrier' FDMA -:)

The downlink side of the contrast is worth stating too. A downlink transmission can be scattered across the band because OFDMA lets the network place resource blocks wherever it likes. An uplink transmission cannot, because SC-FDMA needs its subcarriers contiguous to keep the low peak to average ratio that makes the UE power amplifier efficient.

Hopping is the compromise that follows. The allocation stays contiguous within a slot, and the diversity comes from moving that contiguous block between slots or subframes instead.

  • The downlink already has frequency diversity : distributed resource allocation scatters a transmission across the band without moving it in time.
  • SC-FDMA rules that out for the uplink : the subcarriers of one UE have to stay contiguous, so scattering is not available.
  • Hopping buys the same diversity a slot at a time : the block stays contiguous and moves instead, which costs nothing in peak to average ratio.

Reference

  • TS 36.211 v19.3.0 (Release 19) - E-UTRA Physical channels and modulation. Clause 5.3.4 Mapping to physical resources, which holds the PUSCH hopping rules this page cites.