Cellular Telephony
    Peter Dordal, Loyola University CS Department 
    
    
    
    Cellular telephony involves mobile phones communicating with a base
      station. The base station and its connected phones is called a cell.
    Cells have approximate but not strict geographic boundaries; a phone near
    the border can belong to the cell on either side.
    
    When a mobile phone moves from one cell to another, it is transferred via a
    handoff. This can apply whether a call is in progress or
    not.
    
    Cellular issues: neighboring cells interfere with each other!
    Cellular phones must also resist eavesdropping (though encryption is the
    "right" way to do that)
    Cell phones must somehow deal with multipath distortion!!
    
    Three modulation techniques:
    
      - FDMA: Frequency Division Mulitple Access: essentially FM; everyone
        talks on a different channel
 
      - TDMA: Time Division Multiple Access: essentially time-division
        multiplexing; everyone talks one at a time, quickly, during their own
        time slot
 
      - CDMA: Code Division Multiple Access: everyone talks in a different
        language? Or listen to multiple people speaking simultaneously; it's
        usually not too hard to follow one particular speaker.
 
    
    
    CDMA handles multipath distortion (reflected, delayed copies of the original
    signal) better than the others. While all three are theoretically equally
    efficient in terms of signal bandwidth, in practice the latter two need
    guard bands to handle multipath distortion, and so CDMA allows more
    channels. CDMA allows reuse of frequencies from adjoining
    cells, for a seven-fold improvement over TDMA/FDMA. It also may allow more
    graceful signal degradation as the channel is oversubscribed.
    
    Hedy Lamarr, b. 1914, Vienna
    One of the great actresses of Hollywood's golden era: wikipedia.org/wiki/Hedy_Lamarr
    Inventor of Frequency-Hopping Spread Spectrum
    
    Spread Spectrum
    9.2: FHSS & Hedy Lamarr /
    George Antheil
    
    Both parties generate the same PseudoNoise [PN] sequence. The carrier
    frequency jumps around according to PN sequence.
    
    In Lamarr's version, player-piano technology would have managed this; analog
    data was used. Lamarr's intent was to avoid radio eavesdropping (during
    WWII); an eavesdropper wouldn't be able to guess the PN sequence and thus
    would only hear isolated snippets.
    
    Here is a diagram illustrating basic MFSK (multiple frequency-shift keying),
    in which we use 2L frequencies to transmit L bits at a time (see
    Fig 5.9)
    
    
    With Frequency-Hopping Spread Spectrum (FHSS) we duplicate
    the above encoding on any of several frequency bands, each large enough to
    contain all the frequencies above.
    
    Here's a colorized version of Stallings fig 9.4. We will use a
    "pseudo-noise" or pseudo-random (PN) sequence to spread the frequencies of
    MFSK over multiple "blocks"; each MFSK instance uses one block. Each
    endpoint can compute the PN sequence, but to the world in between it appears
    random. For each distinct PN symbol we will use a band like the MFSK band
    above, but we'll have multiple such bands all stacked together, a different
    band for each distinct PN symbol.
    
      -  Tc: time for each unit in the PN sequence
 
      -  Ts: time to send one block of L bits
 
    
    The PN sequence chooses the appropriate broad color band; the four possible
    values of a data symbol choose one of the four sub-bands within a broad
    colored band.
    
    
    Note one individual frequency is used to encode L bits; we need 2L frequencies
in
    all to send all L-bit patterns. We are also sending the data two bits at a
    time, using the two bits to choose one of four frequencies. If we switched
    to binary (one bit at a time, L=1), then we would only need two frequencies
    (two of the narrow horizontal bands). But for the same data rate we'd only
    have half as much time (Ts
    / 2) to identify each frequency, so each narrow band would have to be twice
    as wide. Bottom line: we'd have the same bandwidth requirement.
    
    MFSK does a simple form of frequency hopping already. The goal of FHSS/MFSK
    is to greatly increase the hopping range
    
    
    slow v fast FHSS/MFSK: Fig 9.4 (above) v Fig
      9.5
    slow: Tc >= Ts: send >= 1 block of bits for each
    PN tick
    fast: Tc < Ts: use >1 PN tick to send each block
    of bits
    
    feature of fast: we use two or more frequencies to transmit each symbol; if
    there's interference on one frequency, we're still good.
    
    Consider 1 symbol = 1 bit case
    
    If we use three or more frequencies/symbol, we can resolve errors with
    "voting"
    
    What is this costing us?
    
    9.3: Direct-Sequence Spread Spectrum
        (DSSS)
    Each bit in original becomes multiple bits, or chips.
    We end up using a lot more bandwidth for the same amount of information! The
    purpose: resistance to static and interference (especially multipath
    interference).
    
    Same spreading concept as fast FHSS, but stranger.
    
    Basically we modulate the signal much "faster", which spreads the bandwidth
    as a natural consequence of modulation. We no longer have a discrete set of
    "channels" to use.
    
    Suppose we want to use n-bit spreading. Each side, as before, has access to
    the same PN sequence. To send a data bit, we do the following:
    
      - get n bits from the PN sequence
 
      - XOR the data bit with the entire n-bit sequence (that is, if the data
        bit is 1, we invert)
 
      - transmit those n bits
 
    
    Note that we are transmitting n
    bits in order to communicate one
    bit. The receiver then:
    
      - receives n bits
 
      - XORs them with the next n bits of the PN sequence
 
      - expects all 0's or else all 1's.
       
    
    See Figure 9.6.
    
    For every data bit, we will actually receive n bits. Those n bits, XORed
    with the appropriate n bits from the PN sequence, should give either n
    0-bits or n 1-bits. A few wrong bits won't matter; we can simply go with the
    majority.
    
    Recall that AM band-width was proportional to the band-width of the signal.
    The same thing is happening here: if sending the data 1 bit at a time needed
    a band-width of B, then sending n bits at a time will likely need a
    band-width of about nB. Thus, like FHSS, we've greatly expanded the
    band-width requirement.
    
    Sometimes it is easier to think of the signal as taking on values +1 and -1,
    rather than 0/1. Then, we can multiply
    the data bit by the n-bit PN sequence; multiplication by -1 has the effect
    of inverting.
    
    Figure 9.9 shows the resultant
    spectrum. Because we're sending at a n-times-faster signaling rate, our
    spectrum is also n times wider. Why would we want that? Because jamming
    noise is likely to be isolated to a small part of the frequency range; after
    the decoding process, the jamming power is proportionally less.
    
    9.4:  CDMA
    Here, each sending channel is assigned a k-bit chipping
      code; each data bit becomes k "chips" (k is often ~128, though in
    our examples we'll use k=4 or k=6); these replace the PN sequence (mostly;
    see below). Each receiver has the corresponding chipping code. The chips are
    sent using FHSS or DSSS; for DSSS, the sender sendsthe chipping code for a
    0-bit and the inverted chipping code for a 1-bit. 
    
    As with FHSS and DSSS, one consequence is that data is spread out over a
    range of frequencies, each with low power.
    
    Unlike these, however, we are now going to allow multiple transmissions simultaneously, at least in the forward
    (tower to cellphones) direction. The signals to each phone, each with a
    unique chipping code, are added together and transmitted together; the
    receivers need to pick their own data bit out of the chaos.
    
    basic ideas: 
    
    chipping codes: These are the
    sequences of k bits that we give each user, eg ⟨1,0,1,1,0,0⟩. 
    
    The algebra is more tractable if we instead treat 0 as -1, so the code above
    would become ⟨1,-1,1,1,-1,-1⟩.
    
    dot product: Given two sequences of
    numbers A = ⟨a1,a2,a3,a4,a5⟩ and B = ⟨b1,b2,b3,b4,b5⟩, the dot product, or inner product, is 
        A∙B = a1×b1 + a2×b2 + a3×b3 + a4×b4 + a5×b5
    If our sequences represent vectors in 3-dimensional space (that is, the
    sequences have length 3), then A∙B=0 if and only if A and B are
    perpendicular, or orthogonal.
    Suppose we have some pairwise-orthogonal sequences, say A, B, C, and D, of
    any dimension (length); that is, A∙B = B∙C = A∙C = A∙D = B∙D = C∙D = 0; any
    two are perpendicular. Then, if we're given a vector E = a×A + b×B + c×C +
    d×D (where a,b,c,d are ordinary real numbers; multiplying a vector by a real
    number just means multiplying each component by that number: 2×⟨3,5,7⟩ =
    ⟨6,10,14⟩), we can immediately solve for a,b,c,d, regardless of our
    geometrical interpretation:
        E = a×A + b×B + c×C + d×D
        E∙A = a×A∙A + b×B∙A + c×C∙A + d×D∙A
               =
    a×A∙A     (because B∙A = C∙A = D∙A = 0)
    and so a = E∙A / A∙A. Similarly we can recover b, c and d. Usually we'll
    scale each of the A,B,C,D so A∙A = 1, so a = A∙E. (We don't do this below,
    so A∙A = 6.)
    
    The simplest set of orthogonal vectors, or chipping codes, is 
    ⟨1,0,0,0,0,0⟩, ⟨0,1,0,0,0,0⟩, ⟨0,0,1,0,0,0⟩, etc. But it's not the only set,
    as we'll see below.
    
    Suppose we have K users wanting to transmit using CDMA. Each user will be
    given a vector of 0's and 1's (or -1's and 1's, depending on our
    perspective) of length k; this is the user's chipping code. Each user
    transmits k "chips" on k frequencies at the same time. Ideally we use K=k,
    but in practice K can be rather larger. All the transmissions add together,
    linearly (actually, we'll have to adjust the individual cellphone power
    levels so that, at the base antenna, all the signals have about the same
    power). The transmissions are done in such a way that the receiver can
    extract each individual signal, even though all the signals overlap.
    Similarly, when the base station wants to transmit to all K users, combines
    all K bits for each of k positions and transmits the whole mess; each
    individual receiver can extract its own signal.
    
    Trivial way to do this: ith sender sends on frequency i only, and does
    nothing on other frequencies. This is just FDM, corresponding to the
    chipping codes ⟨1,0,0,0,0,0⟩, ⟨0,1,0,0,0,0⟩, ⟨0,0,1,0,0,0⟩, etc. We don't
    want to use this, though.
    
    Example from Table 9.1:
    
      
        
          codeA 
           | 
           1 
           | 
          -1 
           | 
          -1 
           | 
           1 
           | 
          -1 
           | 
           1 
           | 
        
        
          codeB 
           | 
           1  
           | 
           1 
           | 
          -1 
           | 
          -1 
           | 
           1 
           | 
           1 
           | 
        
        
          codeC 
           | 
           1 
           | 
           1 
           | 
          -1 
           | 
           1 
           | 
           1 
           | 
          -1 
           | 
        
      
    
    
    codeA∙codeB = 0, codeA∙codeC = 0, codeB∙codeC = 2 (using ∙ for "dot
    product")
    
    userA sends (+1)×codeA or (-1)×codeA
    
    suppose D = data = a×codeA + b×codeB, a,b = ±1
    
    Then D∙codeA = a×codeA∙codeA + b×codeB∙codeA = a×6 + b×0 = 6a; we have
    recovered A's bit!
    Similarly D∙codeB = a×codeA∙codeB + b×codeB∙codeB = a×0 + b×6 = 6b, and we
    have recovered B's bit!
    
    Now suppose the transmission D = -1×codeA + 1×codeB + 1×codeC. Can we
    recover the respective -1, 1 and 1?
    
    
      
        
          combined data D 
           | 
          1 
           | 
          3 
           | 
          -1 
           | 
          -1 
           | 
          3 
           | 
          -1 
           | 
           
           | 
        
        
          codeA 
           | 
          1 
           | 
          -1 
           | 
          -1 
           | 
          1 
           | 
          -1 
           | 
          1 
           | 
           
           | 
        
        
          products w D 
           | 
          1 
           | 
          -3 
           | 
          1 
           | 
          -1 
           | 
          -3 
           | 
          -1 
           | 
          sum = -6 
           | 
        
        
          codeB 
           | 
          1 
           | 
          1 
           | 
          -1 
           | 
          -1 
           | 
          1 
           | 
          1 
           | 
           
           | 
        
        
          products w D 
           | 
          1 
           | 
          3 
           | 
          1 
           | 
          1 
           | 
          3 
           | 
          -1 
           | 
          sum = 8 
           | 
        
        
          codeC 
           | 
          1 
           | 
          1 
           | 
          -1 
           | 
          1 
           | 
          1 
           | 
          -1 
           | 
           
           | 
        
        
          products w D 
           | 
          1 
           | 
          3 
           | 
          1 
           | 
          -1 
           | 
          3 
           | 
          1 
           | 
          sum = 8 
           | 
        
      
    
    
    Algebraically, D∙codeA = -1×codeA∙codeA = -6, because codeA is orthogonal to
    codeB and codeC
    D∙codeB = -1×codeA∙codeB + 1×codeB∙codeB + 1×codeC∙codeB = -1×0 + 1×6 + 1×2
    = 8. codeB and codeC are not orthogonal but they are "close"; codeB∙codeC is
    "small" relative to 6.
    Similarly, D∙codeC = -1×codeA∙codeC + 1×codeB∙codeC + 1×codeC∙codeC = -1×0 +
    1×2 + 1×6 = 8.
    
    Whenever codeB and codeC appear in the mix, we'll have an extra ±2 in the
    mix. But the expected answer is -6, 0, or 6, so if we round to the nearest
    such value we'll get the correct result.
    
    Cell phones
    analog
    The AMPS standard used FDMA (Freq Division Multiple Access): allocates a
    30kHz channel to each call (2 channels!), held for duration of call.
    
    TDMA
    digitizes voice, compresses it 3x, and then uses TDM to send 3 calls over
    one 30kHz channel.
    
    GSM
    form of TDMA with smaller cells, more dynamic allocation of cells. Note that
    if everyone talks at once, there might not be enough cells for all! 
    Data form: GPRS (General Packet Radio Service)
    
    CDMA
    sprint PCS, US Cellular, others
    code division multiple access: kind of weird. This is a form of "spread
    spectrum". Signals are encoded, and spread throughout the band. Any one bit
    is sent as ~128 "chips", but chips may be used by multiple senders.
    Demultiplexing is achieved because codes are "orthogonal", as above.
    
    This strategy may give good gradual degradation as the number of calls
    increases (assuming suitable chipping codes can be found), and good
    eavesdropping prevention (though not as good as strong encryption). It also
    gives excellent bandwidth utilization.
    
    Note that we can only use this orthogonal-chipping-code strategy in the forward direction (tower to cellphones);
    for orthogonal codes to work, all the transmissions must be precisely
    synchronized. In the reverse
    direction, we might have had all the cellphones obey some synchronization
    protocol, but we don't; instead of orthogonal codes we use pseudorandom
      sequences. Given two random sequences A and B, of length N, the
    inner product A∙B is typically 0.8×sqrt(N) (unless A=B, in which case A∙B =
    N). We can't have N cellphones transmit simultaneously and expect the
    antenna to decode, but we can have sqrt(N), and furthermore the phones do
    not have to be synchronized in any way.
    
    There is some debate about exactly why CDMA works better than TDMA;
    theoretically, bandwidth use should be the same. However, the big wins for
    CDMA appear to be in avoiding multipath distortion and in frequency
      reuse in neighboring cells. If one or two frequencies are affected
    by multipath (which is usually very frequency-dependent), the other
    frequencies over which CDMA spreads the signal can take up the slack. 
    
    Here is Stallings figure 14.2 (at least the N=4 and N=7 cases; the book also
    illustrates a N=19 example). 
    
    We can also do this for N=3:
    
    
    
    As for cell reuse, TDMA requires that neighboring cells do not reuse the
    same frequencies. CDMA allows adjacent-cell frequency reuse. This is perhaps
    the biggest win for CDMA over TDMA; realistic gains are probably in the
    range of threefold.
    
    Finally, CDMA may allow for more
    gradual signal degradation as the service is slightly "oversubscribed"; TDMA
    simply does not support that.
    
    There is a deep relationship in CDMA between power and bandwidth, but in a
    good way: phones negotiate to use the smallest power for their needs
    
    second reason for CDMA: allows gradual performance falloff with
    oversubscription
    
     Cell sizes
    A full-sized cell diameter is typically a few miles, though in cities it can
    be much less.
    We already considered frequency-reuse patterns over cells, above; here are
    some other strategies for squeezing out more capacity
    
      - cell sectoring
 
      - cell splitting (works down to ~ 100 m; cells smaller than ~1km are
        known as microcells)
 
      - adding frequencies ($$$)
 
      - frequency borrowing
 
      - microcells
 
    
    Phones can stay in touch with towers either by having the phone check in or
    having the tower page the phone. The latter is pretty rare; phones instead
    "check in" regularly.
    
    A microcell is a cell transmitter (a "tower") that might
    cover one building, or part of an airport.
    
    A picocell is even smaller: one airplane, one floor, or
    something like that.
    
    A femtocell is sort of the cellular equvalent of Wi-Fi.
    You can get one for your house (for a little over $100), but be aware that
    you may have to have your cellular provider's cooperation to get your phone
    to "trust" the femtocell. Alternatively, the femtocell can be configured to
    accept only certain numbers. Someone in control of the femtocell can easily
    eavesdrop on all calls through it.
    
    Fading
    
    Fast (half-wavelength, or 6") fading v slow fading. Here's a diagram from
    the IEEE 802.11 wi-fi specification, illustrating the power-level
    fluctuations within a room. The wavelength here is about 5 inches,
    corresponding to the usual spacing between peaks.
    
    
    
    
    AMPS: FDMA, analog
    channel spacing 30kHz!!! This is so big because of multipath distortion
    (interference)
    
    Multipath distortion:
    
      - reflection
 
      - diffraction
 
      - scattering
 
    
    Stallings Figure 14.7. Note there is no direct path in this figure!
    Normally, the reflected path is the worst offender, when compared with the
    direct path. 
    
    
    Phase distortion: multipath can lead to different copies arriving sometimes
    in phase and sometimes out of phase (this is the basic cause of "fast
    fading"). 
    
    Intersymbol interference (ISI) and Fig 14.8. Pulses might be sent 1 unit
    apart, but multipath distortion might create "echo" pulses at times, say,
    0.3, 0.5 and 0.9 units following the original pulse. That last echo is
    likely to interfere with the next data pulse.
    
    Note that CDMA requires good power control
    by the phones so that all signals are roughly equal when received at the
    cell tower. Phones all adjust signal strength downwards if received base
    signal is stronger than the minimum.
    
    Go through Andrews presentation at http://users.ece.utexas.edu/~jandrews/publications/cdma_talk.pdf
    
      - Walsh codes at base station (below)
       
      - PN codes in receivers (because we no longer can guarantee
        synchronization)
 
      - Frequency reuse issues
       
    
    SMS (text messaging)
    This originated as a GSM protocol, but is now universally available under
    CDMA as well, and these can be transmitted within SS7. Basically, the
    message piggybacks on "system" packets.
    
    
    Walsh Codes
    How are we going to get orthogonal codes? I tried (using brute-force search)
    to find a third code orthogonal to the length-6 A&C above or to A&B;
    there are none!
    
    If k is a power of 2, we can do this with Walsh
      codes. We will create a k×k matrix of +1 and -1 where all the rows
    are orthogonal. This is done recursively.
    
    k=1: the matrix is just [+]
    
    k=2: the matrix is
    
    
    
    k=4: 
    
    
      
        
          + 
           | 
          + 
           | 
          + 
           | 
          + 
           | 
        
        
          + 
           | 
          − 
           | 
          + 
           | 
          − 
           | 
        
        
          + 
           | 
          + 
           | 
          − 
           | 
          − 
           | 
        
        
          + 
           | 
          − 
           | 
          − 
           | 
          + 
           | 
        
      
    
    
    k=2r. Let M be the Walsh matrix of size 2r-1. Arrange
    four copies of M in a 2r × 2r matrix as follows, where
    −M is the result of flipping every entry in M:
    
    
    
    Note that this is what we did to go from k=1 to k=2 above, and from k=2 to
    k=4.
    
    
    
    GSM phones
    GSM uses a fully-packetized approach to transmitting voice. The part that
    corresponds to the CDMA mechanisms we looked at last week is known as GPRS:
    General Packet Radio Service. 
    
    When a call is in progress, the cell-to-tower and tower-to-cell directions
    are each assigned a frequency channel. Within that channel, each transmits
    packetized voice.
    
    For the tower-to-cell direction (where CDMA uses the complicated
    linear-algebra strategy), there are no collisions: the tower is the only
    transmitter. The tower can arrange for the sequencing of packets however it
    wishes, with the understanding that a tower cannot keep accepting calls
    indefinitely as it will run out of bandwidth for transmission.
    
    For the cell-to-tower direction, some mechanism must be in place to limit
    packet collisions. This is done using Reservation-ALOHA, derived from
    Slotted Aloha. The original ALOHA protocol allowed for an effective
    bandwidth utilization of about 1/2e ~ 13.5%. Slotted ALOHA doubled this by
    having everyone coordinate transmission attempts so they always started on
    slot boundaries. 
    
    Reservation-ALOHA entails having mobiles make reservations, which gives them
    predictable options to transmit. A mobile device might be allowed to
    transmit one in every N slots, for a modestly large N.
    
    
    CDMA is to power control as GSM is to timing
      control
    
    CDMA may use the linear algebra approach from mobile to base if
      possible. This may depend on relatively few users moving fast, for
    example.
    
    
    Wi-Fi, Wi-Fi PCF and WiMAX/LTE
    In standard "infrastructure" Wi-Fi, stations directly communicate only with
    the access point (AP). 
    
    Normally Wi-Fi resolves contention with collisions. 
    
    Also, two ordinary (non-AP) stations are supposed to at least try to be
    aware of each others' presence; this helps reduce collisions.
    
    Wi-Fi
      PCF is a Wi-Fi mode of operation in which stations do not transmit
    unless "polled" by the AP. If there are no competing Wi-Fi's on the same
    channel set, this in principle means collision-free operation. 
    
    WiMAX/LTE:
    
    
      - RTT is too long (Wi-Fi max range: 0.1 Km; WiMAX max range: 10-50 Km)
 
      - uplink scheduling
 
      - ranging
 
      - network entry and collisions
 
      - mobility
 
      
        - handoffs
 
        - range change
 
        - doppler