munotes®

Frequency Hopping Spread Spectrum

Get access to whole semester resourcesSemester Pass

Chapter Eighty-Four

Syllabus topic Module 2, "Wireless Transmission: Spread spectrum"

Pages 636 to 643 of 862

In one line

Frequency hopping spreads a signal by moving it: the transmitter changes carrier many times a second on a pseudo-random sequence the receiver follows, so a narrowband interferer or a fading channel can spoil only the hops that happen to land on it, and two systems sharing a band collide only occasionally instead of constantly.

In the wording a student can write in an examination: in frequency hopping spread spectrum (FHSS) the carrier frequency is changed repeatedly according to a hop sequence known to both ends; the signal therefore occupies a wide band over time although it is narrow at any instant. In slow frequency hopping one hop carries several symbols (GSM hops once per burst); in fast frequency hopping one symbol is spread over several hops, which gives frequency diversity within a symbol at the cost of a much faster synthesiser. The processing gain is the number of channels hopped over. The benefits are resistance to narrowband interference and jamming (only the hops that land on the interferer are hurt), frequency diversity against frequency-selective fading, and sharing, since two networks with different sequences collide only when their hops coincide. The costs are synchronisation (both ends must know the sequence and the time), the settling time of the synthesiser between hops, and collisions with other hoppers. GSM hops once per TDMA frame using a mobile allocation (MA) of up to 64 carriers, a hopping sequence number (HSN) shared by the cell and a mobile allocation index offset (MAIO) that differs per mobile, so mobiles in one cell never collide while mobiles in different cells collide only at random. DSSS spreads by multiplying with a fast code and is narrow in time but wide in frequency at every instant; FHSS is narrow at every instant and wide over time.

Hopping, and why it spreads

A direct sequence system is wide all the time. A hopping system is narrow at any instant, and wide only when watched over many hops. Both satisfy the definition of spread spectrum, because the bandwidth is decided by a code rather than by the data.

What hopping buys is avoidance by movement. An interferer on one channel, a channel in a deep fade, another network that is busy: all of them cost only the hops that land there. The rest of the sequence is untouched, so error-correcting coding across hops can repair the loss. That is the whole strategy, and it is why hopping is at its best when the enemy is narrow and fixed, as a microwave oven or another network's carrier is.

Slow and fast. If a hop lasts longer than a symbol, the hopping is slow: GSM, Bluetooth and TSCH are all slow hoppers, and a hop carries hundreds of symbols. If a symbol is spread over several hops, the hopping is fast: every symbol then samples several channels, so even a symbol whose hop lands in a fade is partly received elsewhere, which is diversity within the symbol. Fast hopping needs a synthesiser that settles in a fraction of a symbol, which is expensive, so it belongs to military systems.

munotes.in636

Frequency Hopping Spread Spectrum

The sequence. Both ends must generate the same sequence at the same time. It should look random, so that an adversary cannot predict the next channel and other systems collide only at chance; it should use every channel about equally; and, where several users share the band, sequences must be chosen so that they do not collide systematically. GSM's algorithm does all three, and the program runs it.

GSM's hopping, exactly as specified

3GPP TS 45.002 defines the mapping from a frame number to a carrier. Three parameters set it up:

  • MA, the mobile allocation: "Mobile allocation of radio frequency channels, defines the set of radio frequency channels to be used in the mobiles hopping sequence. The MA contains N radio frequency channels, where 1 <= N <= 64."
  • MAIO, the mobile allocation index offset, "(0 to N-1, 6 bits)".
  • HSN, the hopping sequence (generator) number, "(0 to 63, 6 bits)".

The algorithm gives "the index to an absolute radio frequency channel number (ARFCN) within the mobile allocation (MAI from 0 to N-1, where MAI=0 represents the lowest ARFCN in the mobile allocation".

With HSN = 0 the hopping is cyclic: "MAI = (FN + MAIO) modulo N", simply stepping through the list. With any other HSN the sequence is pseudo-random, computed from the frame number through three time parameters and a fixed table of 114 numbers, the RNTABLE, and finally offset by the MAIO.

The design has a neat property. Mobiles in the same cell are given the same HSN and different MAIOs, so their sequences are the same sequence shifted, and two mobiles never land on the same carrier in the same frame. Mobiles in different cells are given different HSNs, so their sequences are unrelated and collisions happen only at random, which spreads interference between cells evenly instead of concentrating it on one unlucky pair. The program verifies both.

Hopping, computed

The program implements GSM's generator with its own RNTABLE and prints the sequences for a cyclic and a pseudo-random case, checks that two MAIOs never collide and that the carriers are used evenly, measures what a jammer sitting on one of eight channels costs for different hop rates, and separates slow from fast hopping by counting symbols per hop.

munotes.in637

Frequency Hopping Spread Spectrum

# Frequency hopping: slow and fast, what a jammer on one channel can do, and
# GSM's own hopping sequence generator, run.
import random

# 1. GSM's algorithm, 3GPP TS 45.002 clause 6.2.3, with its RNTABLE.
RNTABLE = [48, 98, 63, 1, 36, 95, 78, 102, 94, 73, 0, 64, 25, 81, 76, 59, 124, 23, 104, 100,
           101, 47, 118, 85, 18, 56, 96, 86, 54, 2, 80, 34, 127, 13, 6, 89, 57, 103, 12, 74,
           55, 111, 75, 38, 109, 71, 112, 29, 11, 88, 87, 19, 3, 68, 110, 26, 33, 31, 8, 45,
           82, 58, 40, 107, 32, 5, 106, 92, 62, 67, 77, 108, 122, 37, 60, 66, 121, 42, 51, 126,
           117, 114, 4, 90, 43, 52, 53, 113, 120, 72, 16, 49, 7, 79, 119, 61, 22, 84, 9, 97,
           91, 15, 21, 24, 46, 39, 93, 105, 65, 70, 125, 99, 17, 123]

def mai(fn, n, hsn, maio):
    """The index into the mobile allocation for frame number fn."""
    if hsn == 0:                                    # cyclic hopping
        return (fn + maio) % n
    t1r, t2, t3 = (fn // (26 * 51)) % 64, fn % 26, fn % 51
    m = t2 + RNTABLE[(hsn ^ t1r) + t3]
    nbin = n.bit_length()
    mp, tp = m % (2 ** nbin), t3 % (2 ** nbin)
    s = mp if mp < n else (mp + tp) % n
    return (s + maio) % n

MA = [12, 20, 28, 36, 44, 52, 60, 68]               # 8 carriers a mobile may use
print("GSM hopping (TS 45.002, 6.2.3) over %d carriers %s" % (len(MA), MA))
for hsn, maio, label in ((0, 0, "HSN 0, MAIO 0: cyclic"), (13, 0, "HSN 13, MAIO 0"), (13, 3, "HSN 13, MAIO 3")):
    seq = [MA[mai(fn, len(MA), hsn, maio)] for fn in range(16)]
    print("  %-24s %s" % (label, " ".join("%3d" % f for f in seq)))
print("  two mobiles in one cell share the HSN and differ in MAIO, so they never collide:")
a = [mai(fn, len(MA), 13, 0) for fn in range(2000)]
b = [mai(fn, len(MA), 13, 3) for fn in range(2000)]
print("  in 2000 frames, MAIO 0 and MAIO 3 land on the same carrier %d times" % sum(x == y for x, y in zip(a, b)))

# how evenly the sequence uses the carriers
from collections import Counter
counts = Counter(mai(fn, len(MA), 13, 0) for fn in range(20000))
print("  over 20000 frames each of the 8 carriers is used %d to %d times" % (min(counts.values()), max(counts.values())))

# 2. A jammer parks on one channel. With hopping, only the hops that land on it
#    are lost; without, everything is.
print("\nOne channel of %d jammed, and what a frame loses:" % len(MA))
print("  hops per frame   frames lost outright   frames with some hops lost   bits lost on average")
for hops in (1, 4, 8, 26):
    trials, lost, damaged, total_bits = 20000, 0, 0, 0.0
    rnd = random.Random(84)
    for _ in range(trials):
        landed = [rnd.randrange(len(MA)) == 0 for _ in range(hops)]
        lost += all(landed)
        damaged += any(landed)
        total_bits += sum(landed) / hops
    print("  %14d %22.2f%% %28.2f%% %20.2f%%"
          % (hops, 100 * lost / trials, 100 * damaged / trials, 100 * total_bits / trials))
print("  hopping does not avoid the jammer; it spreads the damage so that coding can repair it.")

# 3. Slow against fast hopping: how many hops a symbol or a frame spans.
print("\nSlow and fast hopping:")
for name, hop_rate, symbol_rate in (("GSM, one hop a burst", 217.0, 270833.0),
                                    ("Bluetooth, 1600 hops/s", 1600.0, 1e6),
                                    ("a fast hopper", 20000.0, 10000.0)):
    per_hop = symbol_rate / hop_rate
    kind = "slow: many symbols a hop" if per_hop >= 1 else "fast: many hops a symbol"
    print("  %-24s %8.1f symbols a hop   %s" % (name, per_hop, kind))
munotes.in638

Frequency Hopping Spread Spectrum

GSM hopping (TS 45.002, 6.2.3) over 8 carriers [12, 20, 28, 36, 44, 52, 60, 68]
  HSN 0, MAIO 0: cyclic     12  20  28  36  44  52  60  68  12  20  28  36  44  52  60  68
  HSN 13, MAIO 0            20  60  68  28  68  28  12  36  68  12  20  12  44  28  44  52
  HSN 13, MAIO 3            44  20  28  52  28  52  36  60  28  36  44  36  68  52  68  12
  two mobiles in one cell share the HSN and differ in MAIO, so they never collide:
  in 2000 frames, MAIO 0 and MAIO 3 land on the same carrier 0 times
  over 20000 frames each of the 8 carriers is used 2455 to 2558 times

One channel of 8 jammed, and what a frame loses:
  hops per frame   frames lost outright   frames with some hops lost   bits lost on average
               1                  12.29%                        12.29%                12.29%
               4                   0.03%                        41.09%                12.38%
               8                   0.00%                        65.53%                12.47%
              26                   0.00%                        96.91%                12.50%
  hopping does not avoid the jammer; it spreads the damage so that coding can repair it.

Slow and fast hopping:
  GSM, one hop a burst       1248.1 symbols a hop   slow: many symbols a hop
  Bluetooth, 1600 hops/s      625.0 symbols a hop   slow: many symbols a hop
  a fast hopper                 0.5 symbols a hop   fast: many hops a symbol

The sequences. With HSN 0 the mobile walks its eight carriers in order: 12, 20, 28, 36, 44, 52, 60, 68, and round again. With HSN 13 the order is scrambled and repeats nothing obvious: 20, 60, 68, 28, 68, 28, 12, 36. Notice that the same carrier can come twice in a row and that 68 appears twice in the first five hops: a pseudo-random sequence is allowed to do that, and does.

munotes.in639

Frequency Hopping Spread Spectrum

No collisions within a cell. MAIO 3 produces the same sequence shifted three places along the allocation, and in 2,000 frames the two mobiles landed on the same carrier zero times. That is worth pausing on: two mobiles hopping pseudo-randomly over eight carriers would collide about a quarter of the time if their sequences were independent. GSM gets orthogonality inside a cell and randomness between cells out of one generator, by splitting the parameters into a shared HSN and a per-mobile MAIO.

Evenness. Over 20,000 frames the eight carriers were used between 2,455 and 2,558 times, against an ideal 2,500: even to within about 2 per cent. A hop sequence that favoured some carriers would waste the diversity that hopping exists to provide.

What a jammer costs. With one hop per frame, 12.29 per cent of frames land on the jammed channel and are lost outright. With four hops per frame, only 0.03 per cent of frames are wholly lost, but 41 per cent are damaged somewhere; with 26 hops, essentially every frame is damaged and none is lost. The average fraction of bits lost is the same 12.5 per cent in every case, which is the honest lesson: hopping does not reduce the interference, it redistributes it. What it buys is that the damage arrives as scattered errors inside many frames, which an error-correcting code can repair, instead of as whole frames destroyed, which it cannot.

Slow and fast. GSM hops 217 times a second and sends 270,833 symbols a second, so 1,248 symbols ride on each hop: slow hopping. Bluetooth's 1,600 hops a second at about 1 Msymbol/s gives 625 symbols a hop: also slow. Only a hopper faster than its own symbol rate, 20,000 hops a second against 10,000 symbols, gets several hops into one symbol, which is fast hopping.

Distinctions

Direct sequence (DSSS)Frequency hopping (FHSS)
At any instantWide: the whole spread bandNarrow: one channel
Over timeThe same bandThe whole hopping band
Spreading done byMultiplying by a fast codeChanging the carrier on a sequence
Processing gainChips per symbolNumber of channels
Against a narrowband jammerAverages it down by the gainAvoids it except on the hops that land there
Against another userSeen as noise, alwaysCollides only when hops coincide
NeedsChip-level synchronisationHop timing and the sequence
HardwareA correlatorA fast synthesiser
Examples802.15.4, W-CDMA, GPSGSM, Bluetooth, 802.15.4e TSCH
Slow hoppingFast hopping
DefinitionSeveral symbols per hopSeveral hops per symbol
DiversityAcross symbols, so coding is neededWithin a symbol
SynthesiserModestFast and expensive
ProgramGSM 1,248 symbols a hop; Bluetooth 6250.5 symbols a hop
Used byGSM, Bluetooth, TSCHMilitary systems
munotes.in640

Frequency Hopping Spread Spectrum

Same cellDifferent cells
HSNThe sameDifferent
MAIODifferent per mobileIrrelevant
ResultSequences shifted: never collideUnrelated: collide at random
Program0 collisions in 2,000 framesNot modelled

What it does not mean

Hopping does not dodge interference. The average fraction of time spent on a jammed channel is unchanged; the damage is spread out so that coding can repair it.

A hopping signal is not wideband at an instant. It is a narrowband signal that moves; its instantaneous spectrum is that of the underlying modulation.

A pseudo-random sequence is not a secret. GSM's generator is published; secrecy needs cryptography, and military hoppers keep their sequence key secret for that reason.

More hops per second is not automatically better. Each hop costs settling time, and the sequence must still be tracked; the gain comes from spreading damage, which a modest hop rate already achieves.

FHSS and DSSS are not rivals in every system. 802.15.4 spreads with a code, and its 2012 amendment hops as well; the two are combined in TSCH.

Quick revision

  • FHSS: the carrier moves on a pseudo-random hop sequence known to both ends; narrow at any instant, wide over time. Processing gain = number of channels.
  • Slow hopping: several symbols per hop (GSM 1,248, Bluetooth 625). Fast hopping: several hops per symbol; diversity inside a symbol, expensive synthesiser.
  • Benefits: interference and jamming resistance, frequency diversity, sharing with other hoppers. Costs: synchronisation, settling time, collisions.
  • GSM (TS 45.002, 6.2.3): MA (up to 64 carriers), HSN (0 to 63; 0 = cyclic, MAI = (FN + MAIO) mod N), MAIO (0 to N-1). Same cell: same HSN, different MAIO, so no collisions; different cells: different HSN, random collisions.
  • Program: 8 carriers used 2,455 to 2,558 times in 20,000 frames; MAIO 0 and 3 collided 0 times in 2,000; a jammer on 1 of 8 channels loses 12.29 per cent of frames outright at one hop a frame, but with 26 hops a frame no frame is lost and 96.91 per cent are merely damaged, the same 12.5 per cent of bits either way.
  • DSSS against FHSS: wide always against narrow and moving; correlator against synthesiser; averaging against avoidance.

Test yourself

1. What is frequency hopping spread spectrum, and how does it spread a signal? The transmitter changes its carrier frequency repeatedly according to a hop sequence known to the receiver, so that although the signal is narrowband at any instant, over many hops it occupies a wide band. The spreading is therefore in time rather than in instantaneous bandwidth, and the processing gain is the number of channels hopped over. Both ends must be synchronised to the sequence and to the hop timing.

munotes.in641

Frequency Hopping Spread Spectrum

2. Distinguish slow and fast frequency hopping. In slow hopping a hop lasts longer than a symbol, so several symbols, often hundreds, are sent on each carrier; GSM sends 1,248 symbols per hop and Bluetooth about 625. In fast hopping a single symbol is spread over several hops, so every symbol samples several channels and gains diversity within itself, but the frequency synthesiser must settle in a fraction of a symbol period, which is costly, so fast hopping is used mainly in military systems.

3. Explain GSM's hopping parameters and how two mobiles in one cell avoid each other. A mobile is given a mobile allocation, the set of up to 64 carriers it may use; a hopping sequence number from 0 to 63, which selects the pseudo-random generator, with 0 meaning cyclic hopping; and a mobile allocation index offset from 0 to N-1. For each frame the algorithm computes an index into the allocation from the frame number and the hopping sequence number and then adds the offset modulo N. Mobiles in the same cell share the hopping sequence number and are given different offsets, so their sequences are the same sequence shifted and they never occupy the same carrier in the same frame; mobiles in different cells use different hopping sequence numbers, so their sequences are unrelated and collisions occur only at random.

4. Does frequency hopping reduce the effect of a jammer? Explain with the chapter's measurements. It does not reduce the total interference: with one channel of eight jammed, about one eighth, 12.5 per cent, of the transmitted bits are hit whatever the hop rate. What it changes is the distribution. With one hop per frame, 12.29 per cent of frames land on the jammed channel and are destroyed entirely. With 26 hops per frame, no frame is entirely lost, although 96.91 per cent contain some damaged bits. Scattered bit errors within a frame can be corrected by an error-correcting code, while a wholly destroyed frame cannot, so hopping converts unrecoverable loss into recoverable loss.

5. Compare DSSS and FHSS. DSSS multiplies each symbol by a fast chipping code, so the signal is wide at every instant; the receiver correlates with the code, which averages narrowband interference down by the processing gain, and multipath echoes past a chip can be separated or combined. FHSS keeps the signal narrow at each instant and moves it between channels on a pseudo-random sequence, so an interferer or a fade costs only the hops that land on it. DSSS needs chip-level synchronisation and a correlator; FHSS needs hop timing and a fast synthesiser. IEEE 802.15.4, W-CDMA and GPS use DSSS; GSM, Bluetooth and the TSCH mode of 802.15.4e hop.

munotes.in642

Frequency Hopping Spread Spectrum

6. Why must a hop sequence use every channel about equally? Because the diversity that hopping provides comes from sampling many channels: if some were visited more often than others, a fade or an interferer on a favoured channel would cost more than its share, and the benefit of hopping would fall. The chapter's run of GSM's generator over 20,000 frames used each of eight carriers between 2,455 and 2,558 times against an ideal 2,500, which is even to within about 2 per cent.

munotes.in643

The rest of this subject

These notes are cut from the University's printed syllabus. Open the syllabus itself for the same subject.

Issue
Done!