Espalhamento espectral

Introdução

Definição. Espalhamento espectral.

Espalhamento espectral (spread spectrum) é uma técnica de comunicação que satisfaz as seguintes propriedades:

  1. A banda do sinal transmitido é muito maior que o mínimo necessário para transmitir a informação.
  2. Um código de espalhamento, independente da mensagem, é usado na transmissão para “espalhar” o sinal, e na recepção para “desespalhar” o sinal.
ss-system.svg

Algumas técnicas de espalhamento espectral são:

  • FHSS (Frequency-hopping spread spectrum). Utilizado no Bluetooth, aplicações militares, etc.
  • DSSS (Direct-sequence spread spectrum). Utilizado no GPS, WiFi 802.11b, ZigBee, 2G/3G, etc.
  • CSS (Chirp spread spectrum). Utilizado no LoRA, etc.

Espalhamento espectral fornece os seguintes benefícios:

  • Resistência ao ruído.
  • Ocultar o sinal transmitido (low probability of interception — LPI).
  • Robustez a interferência de banda estreita (ex: jamming).
  • Combate à interferência intersimbólica causada pelo multipercurso (ex: receptor rake).
  • Novas técnicas de múltiplo acesso (CDMA).

Espalhamento espectral por salto de frequência

No espalhamento espectral por salto de frequência (FHSS, do inglês frequency-hopping spread spectrum), o sinal de informação é modulado por uma portadora cuja frequência varia pseudoaleatoriamente com o tempo, de acordo com um código de espalhamento. O diagrama de blocos a seguir mostra um sistema FHSS.

fhss-block.svg
Exemplo.

Aqui.

Solução.
fhss-example.jpg

Dependendo da relação entre a taxa de símbolos, $\Rs$, e a taxa de saltos (hop rate), $\Rh$, um sistema FHSS pode ser classificado como:

  • Lento. Nesse caso, $\Rs$ é um múltiplo inteiro de $\Rh$, de modo que vários símbolos são transmitidos entre saltos consecutivos.
  • Rápido. Nesse caso, $\Rh$ é um múltiplo inteiro de $\Rs$, de modo que ocorrem vários saltos dentro de um mesmo símbolo.
fhss-slow-fast.svg

Espalhamento espectral por sequência direta

No espalhamento espectral por sequência direta (DSSS, do inglês direct-sequence spread spectrum), o sinal de informação é multiplicado por uma sequência de espalhamento pseudoaleatória. Sejam:

  • $x(t)$ a representação polar dos bits de informação $b_n$, à taxa de $\Rb$.
  • $c(t)$ a representação polar do código de espalhamento $c_n$, à taxa de $\Rc$.
A palavra chip é usada para se referir a um bit do código de espalhamento. Assim, $\Rc$ é a taxa de chips.

A razão $N = \Rc / \Rb$, ou seja, o número de chips por bit, é chamada de fator de espalhamento ou ganho de processamento, e deve ser um inteiro positivo. O período (ou comprimento) do código de espalhamento é denotado por $L$.

O diagrama de blocos a seguir mostra um sistema DSSS.

dsss-block.svg

Espalhamento

O espalhamento consiste em multiplicar o sinal de informação pelo código de espalhamento: s(t) = c(t) \, x(t)
Exemplo.

Considere um sistema DSSS com $N = 4$ chips/bit, em que:

  • Bits de informação: $b_n = \bit{101}$, transmitidos à taxa de $\Rb = 100~\text{kbps}$.
  • Código de espalhamento: $c_n = \bit{100110}...$, de período $L = 6$.

Esboce os sinais $x(t)$, $c(t)$ e $s(t)$.

Solução.
  • Taxa de chips: $\Rc = N \Rb = 400~\text{kchips/s}$.
  • Duração de bit: $\Tb = 1 / \Rb = 10~\text{μs}$.
  • Duração de chip: $\Tc = 1 / \Rc = 2{,}5~\text{μs}$.
dsss-example.svg

Espectro do sinal transmitido

O espectro do sinal transmitido de fato está espalhado:

\[ S(f) = C(f) \star X(f) \]

Portanto, $B_s \approx B_c + B_x \approx N B_x$.

Desespalhamento

O desespalhamento também consiste em multiplicar o sinal recebido pelo código de espalhamento:

y(t) = c(t) \, r(t)

Assumindo um canal com AWGN, ou seja, $r(t) = s(t) + w(t)$, tem-se:

\[ \begin{aligned} y(t) & = c(t) \, r(t) \\ & = c(t) \, [s(t) + w(t)] \\ & = c(t) \, [c(t) \, x(t) + w(t)] \\ & = c^2(t) \, x(t) + c(t) \, w(t) \\ & = x(t) + w'(t), \end{aligned} \]

em que foi utilizado o fato de que $c^2(t) = 1$ e $w'(t) = c(t) \, w(t)$ é o ruído branco espalhado, que tem as mesmas propriedades estatísticas do ruído branco original.

Observação: É necessário sincronismo em nível de chip.

Robustez a interferência de banda estreita

Seja $j(t)$ um sinal de interferência (ex: jamming) de banda $B_j \approx B_x$.

Caso sem espalhamento espectral.

Nesse caso, o sinal recebido é $r(t) = x(t) + j(t) + w(t)$, cujo espectro é $R(f) = X(f) + J(f) + W(f)$.

dsss-jamming-1.svg

Caso com espalhamento espectral.

Nesse caso, o sinal recebido é $r(t) = s(t) + j(t) + w(t)$, cujo espectro é $R(f) = S(f) + J(f) + W(f)$.

dsss-jamming-2.svg

O sinal após o desespalhamento é

\[ \begin{aligned} y(t) & = c(t) \, r(t) \\ & = c(t) \, [s(t) + j(t) + w(t)] \\ & = x(t) + c(t) \, j(t) + w'(t), \end{aligned} \]

cujo espectro é $Y(f) = X(f) + C(f) \star J(f) + W'(f)$.

dsss-jamming-3.svg
Conclusão: Ao desespalhar o sinal recebido, o sinal de interferência é espalhado e sua potência é “diluída” no espectro.

Combate a interferência intersimbólica

Considere um canal com interferência intersimbólica causada pelo multipercurso, além do AWGN.

dsss-block-isi.svg

Por simplicidade, será considerado um canal com apenas dois caminhos:

\[ h(t) = h_0 \, \delta(t) + h_1 \, \delta(t - \tau_1). \]

O sinal recebido é dado por

\[ \begin{aligned} r(t) & = h(t) \star s(t) + w(t) \\ & = h_0 \, s(t) + h_1 \, s(t - \tau_1) + w(t). \end{aligned} \]

A saída do desespalhador é

\[ \begin{aligned} y(t) & = c(t) \, r(t) \\ & = c(t) \, \big[ h_0 \, s(t) + h_1 \, s(t - \tau_1) + w(t) \big] \\ & = h_0 \, c(t) \, s(t) + h_1 \, c(t) \, s(t - \tau_1) + c(t) \, w(t). \end{aligned} \]

Lembrando que $s(t) = c(t) \, x(t)$, temos que

\[ \begin{aligned} y(t) & = h_0 \, c^2(t) \, x(t) + h_1 \, c(t) \, c(t - \tau_1) \, x(t - \tau_1) + c(t) \, w(t) \\ & = h_0 \, x(t) + h_1 \, c(t) \, c(t - \tau_1) \, x(t - \tau_1) + w'(t). \end{aligned} \]

Para simplificar a exposição, será considerado apenas o primeiro símbolo (isto é, $n = 0$). Além disso, será assumido (com perda de generalidade) que $\tau_1$ seja um múltiplo inteiro do intervalo de símbolo, ou seja, $\tau_1 = k \Tb.$ Nesse caso, a saída do correlator será

\[ \begin{aligned} \tilde{x}[0] & = \frac{1}{\Tb} \int_{0}^{\Tb} y(t) \, dt \\ & = h_0 \frac{1}{\Tb} \int_{0}^{\Tb} x(t) \, dt ~~~ + ~~~ h_1 \frac{1}{\Tb} \int_{0}^{\Tb} c(t) \, c(t - k\Tb) \, x(t - k\Tb) \, dt ~~~ + ~~~ \frac{1}{\Tb} \int_{0}^{\Tb} w'(t) \, dt \\ & = h_0 \, x[0] ~~~ + ~~~ h_1 \, x[-k] \, \frac{1}{\Tb} \int_{0}^{\Tb} c(t) \, c(t - k\Tb) \, dt ~~~ + ~~~ w'[0]. \end{aligned} \]

A parcela do meio, referente à interferência intersimbólica, está intimamente ligada à função autocorrelação temporal do código de espalhamento $c[n]$ no formato polar:

R_c[\ell] = \frac{1}{L} \sum_{n=0}^{L-1} c[n] \, c[n - \ell].

Portanto, é desejável que $R_c[\ell]$ seja pequeno para $\ell \neq 0$ para que a interferência intersimbólica seja minimizada.

Sequências binárias aleatórias

Considere uma sequência (verdadeiramente) aleatória de bits independentes e uniformes cujo comprimento tende a infinito. Esta sequência terá as seguintes propriedades:

  • Balanceamento. A frequência de ocorrência de $\bit{0}$s é igual à frequência de ocorrência de $\bit{1}$s.
  • Comprimento das corridas. Metade das corridas tem comprimento 1; um quarto tem comprimento 2; um oitavo tem comprimento 3; e assim por diante. De modo geral, uma fração de $1 / 2^i$ das corridas tem comprimento $i$, para $i = 1, 2, 3, \ldots$
  • Deslocamento. Se a sequência for deslocada de qualquer número não-nulo (para a esquerda ou para a direita), então metade dos bits permanecerá igual, enquanto a outra metade será invertida. Como consequência,a função autocorrelação temporal dessa sequência em formato polar é um impulso unitário:
    random-autocorr.svg

Sequências de máximo comprimento

Definição. Sequência de máximo comprimento (MLS).

Uma sequência de máximo comprimento (MLS, do inglês maximum length sequence) é uma sequência binária pseudoaleatória gerada através de um registrador de deslocamento com realimentação linear (LFSR, do inglês linear-feedback shift register) cujo período $L$ é o maior possível, ou seja, $L = 2^m - 1$, em que $m$ é a memória do LFSR.

Solomon_Wolf_Golomb.jpg
Solomon Wolf Golomb
(1932–2016).
Nem todo LFSR gera uma MLS. A teoria matemática por trás das MLSs está fora do escopo deste apontamento.
Exemplo.

Considere o LFSR abaixo, cuja memória é $m = 3$. Determine a sequência de bits gerada em sua saída, supondo que o estado inicial seja $\bit{100}$, e mostre que a sequência gerada é uma MLS.

mls-lfsr-example.svg
Solução.

Sequência de estados: $\bit{100} \to \bit{110} \to \bit{111} \to \bit{011} \to \bit{101} \to \bit{010} \to \bit{001} \to \cdots$

Saída: $c_n = \bit{0011101} \ldots$ (de período $L = 7$).

Como o período é $L = 2^m - 1$, a sequência gerada é uma MLS.

As MLSs satisfazem aproximadamente as propriedades de balanceamento, comprimento das corridas e deslocamento.

Teorema. (Golomb, 1967.)

Uma MLS gerada por um LFSR de memória $m$, com período $L = 2^m - 1$, tem as seguintes propriedades:

  • Balanceamento. Em um período, o número de $\bit{0}$s é $(L - 1) / 2$ e o de $\bit{1}$s é $(L + 1) / 2$.
  • Comprimento das corridas. Em um período, há um total de $(L + 1) / 2$ corridas. Destas, $2^{m-i-1}$ têm comprimento $i$, para $1 \leq i < m$, e exatamente uma tem comprimento $m$.
  • Deslocamento. Se a sequência for deslocada de qualquer número não-múltiplo de $L$, então, em um período, $(L - 1) / 2$ bits permanecerão iguais, enquanto $(L + 1) / 2$ bits serão invertidos. Como consequência,a função autocorrelação dessa sequência em formato polar é dada por \[ R_c[\ell] = \begin{cases} 1, & \ell = 0, \pm L, \pm 2L, \ldots, \\ -1/L, & \text{caso contrário.} \end{cases} \]
    mls-autocorr.svg
Exemplo.

Considere a MLS gerada no exemplo anterior. Verifique as propriedades de balanceamento, comprimento das corridas e deslocamento.

Solução.

Sequência: $c_n = \bit{0011101} \ldots$

Neste caso, $L = 7$, de modo que $(L - 1) / 2 = 3$ e $(L + 1) / 2 = 4$.

Bit Quantidade
$\bit{0}$ $3$
$\bit{1}$ $4$
Comprimento Número de corridas
1 $2$
2 $1$
3 $1$
Total $4$
Deslocamento Bits Iguais Invertidos
0 $\bit{0}$ $\bit{0}$ $\bit{1}$ $\bit{1}$ $\bit{1}$ $\bit{0}$ $\bit{1}$ $7$ $0$
1 $\bit{1}$ $\bit{0}$ $\bit{0}$ $\bit{1}$ $\bit{1}$ $\bit{1}$ $\bit{0}$ $3$ $4$
2 $\bit{0}$ $\bit{1}$ $\bit{0}$ $\bit{0}$ $\bit{1}$ $\bit{1}$ $\bit{1}$ $3$ $4$
3 $\bit{1}$ $\bit{0}$ $\bit{1}$ $\bit{0}$ $\bit{0}$ $\bit{1}$ $\bit{1}$ $3$ $4$
4 $\bit{1}$ $\bit{1}$ $\bit{0}$ $\bit{1}$ $\bit{0}$ $\bit{0}$ $\bit{1}$ $3$ $4$
5 $\bit{1}$ $\bit{1}$ $\bit{1}$ $\bit{0}$ $\bit{1}$ $\bit{0}$ $\bit{0}$ $3$ $4$
6 $\bit{0}$ $\bit{1}$ $\bit{1}$ $\bit{1}$ $\bit{0}$ $\bit{1}$ $\bit{0}$ $3$ $4$
7 $\bit{0}$ $\bit{0}$ $\bit{1}$ $\bit{1}$ $\bit{1}$ $\bit{0}$ $\bit{1}$ $7$ $0$

Receptor rake

O receptor rake é um receptor que utiliza múltiplos correlatores, cada qual “sintonizado” em um componente de multipercurso diferente. A saída dos correlatores é combinada de maneira coerente para aumentar a razão sinal-ruído.

Acesso múltiplo por divisão de código

Espalhamento espectral permite uma nova forma de vários usuários compartilharem o mesmo canal de transmissão: o acesso múltiplo por divisão de código (CDMA, do inglês code-division multiple access). A seguir serão apresentados os princípios básicos do DS-CDMA, isto é, o acesso múltiplo baseado no DSSS.

Considere um sistema DS-CDMA com $U$ usuários, em que cada usuário tem seu código de espalhamento, denotado por $c_u(t)$, para $u = 1, 2, \ldots, U$.

dsss-cdma.svg

O sinal recebido é dado por

\[ r(t) = c_1(t) \, x_1(t) + c_2(t) \, x_2(t) + \cdots + c_U(t) \, x_U(t) + w(t). \]

O sinal na saída do desespalhador 1, por exemplo, é dado por

\[ \begin{aligned} y_1(t) & = c_1(t) \, r(t) \\ & = c_1(t) \, \big[ c_1(t) \, x_1(t) + c_2(t) \, x_2(t) + \cdots + c_U(t) \, x_U(t) + w(t) \big] \\ & = x_1(t) ~ + ~ c_1(t) \, c_2(t) \, x_2(t) ~ + ~ \cdots ~ + ~ c_1(t) \, c_U(t) \, x_U(t) ~ + ~ w_1'(t). \end{aligned} \]

A saída do correlator 1, no primeiro instante de bit ($n = 0$), será

\[ \begin{aligned} \tilde{x}_1[0] & = \frac{1}{\Tb} \int_{0}^{\Tb} y_1(t) \, dt \\ & = \frac{1}{\Tb} \int_{0}^{\Tb} x_1(t) \, dt ~ + ~ \frac{1}{\Tb} \int_{0}^{\Tb} c_1(t) \, c_2(t) \, x_2(t) \, dt ~ + ~ \cdots ~ + ~ \frac{1}{\Tb} \int_{0}^{\Tb} c_1(t) \, c_U(t) \, x_U(t) \, dt ~ + ~ \frac{1}{\Tb} \int_{0}^{\Tb} w_1'(t) \, dt \\ & = x_1[0] ~~~ + ~~~ x_2[0] \, \frac{1}{\Tb} \int_{0}^{\Tb} c_1(t) \, c_2(t) \, dt ~~~ + ~~~ \cdots ~~~ + ~~~ x_U[0] \, \frac{1}{\Tb} \int_{0}^{\Tb} c_1(t) \, c_U(t) \, dt ~~~ + ~~~ w_1'[0]. \end{aligned} \]

Portanto, é desejável que a correlação cruzada entre as sequências de espalhamento, no formato polar, satisfaça

\frac{1}{L} \sum_{n = 0}^{L-1} c_i[n] \, c_j[n] = \begin{cases} 1, & \text{se } i = j, \\ 0, & \text{se } i \neq j, \end{cases}

ou seja, as sequências de espalhamento devem ser ortogonais.

Exemplo.

Considere um sistema DS-CDMA com $U = 4$ usuários e $N = 4$ chips/bit. Os códigos de espalhamento de cada usuário e a informação transmitida são:

  • Usuário 1:   $c_1 = \bit{1111}$,   $b_1 = \bit{00}$.
  • Usuário 2:   $c_2 = \bit{1010}$,   $b_2 = \bit{10}$.
  • Usuário 3:   $c_3 = \bit{1100}$,   (silencioso).
  • Usuário 4:   $c_4 = \bit{1001}$,   $b_4 = \bit{01}$.

Verifique a ortogonalidade das sequências, esboce as formas de onda do sistema e determine a saída de cada correlator. Assuma ausência de ruído.

Solução.

Tem-se:

\[ c_1[n] = [+1, +1, +1, +1], ~~~ c_2[n] = [+1, -1, +1, -1], ~~~ c_3[n] = [+1, +1, -1, -1], ~~~ c_4[n] = [+1, -1, -1, +1]. \]

Para verificar a ortogonalidade, calcula-se a correlação cruzada dois-a-dois, para $1 \leq i < j \leq 4$. Por exemplo, para $i = 3$ e $j = 4$, tem-se:

\[ \frac{1}{4} \sum_{n = 0}^{3} c_3[n] \, c_4[n] = \frac{1}{4} \big[ (+1)(+1) + (+1)(-1) + (-1)(-1) + (-1)(+1) \big] = 0. \]

Formas de onda:

dsss-cdma-example.svg

A saída de cada correlator é

\[ \begin{aligned} \tilde{x}_1[0] = \frac{-\Tc - \Tc + \Tc - 3 \Tc}{\Tb} = -1 \qquad \text{e} \qquad \tilde{x}_1[1] = \frac{-\Tc - \Tc - 3 \Tc + \Tc}{\Tb} = -1, \\[0.75em] \tilde{x}_2[0] = \frac{-\Tc + \Tc + \Tc + 3 \Tc}{\Tb} = +1 \qquad \text{e} \qquad \tilde{x}_2[1] = \frac{-\Tc + \Tc - 3 \Tc - \Tc}{\Tb} = -1, \\[0.75em] \tilde{x}_3[0] = \frac{-\Tc - \Tc - \Tc + 3 \Tc}{\Tb} = \phantom{+}0 \qquad \text{e} \qquad \tilde{x}_3[1] = \frac{-\Tc - \Tc + 3 \Tc - \Tc}{\Tb} = \phantom{+}0, \\[0.75em] \tilde{x}_4[0] = \frac{-\Tc + \Tc - \Tc - 3 \Tc}{\Tb} = -1 \qquad \text{e} \qquad \tilde{x}_4[1] = \frac{-\Tc + \Tc + 3 \Tc + \Tc}{\Tb} = +1, \end{aligned} \]

o que está de acordo com a informação transmitida por cada usuário.

Códigos para DS-CDMA

Existem várias opções de códigos para DS-CDMA. Alguns exemplos são:

As sequências de Gold e de Kasami são derivadas das sequências de máximo comprimento (MLS) e fornecem ortogonalidade aproximada.

As sequências de Walsh-Hadamard fornecem ortogonalidade exata. Podem ser construídas recursivamente da seguinte maneira:

\[ H_n = \begin{cases} [1], & n = 1, \\[2ex] \begin{bmatrix} H_{n/2} & \phantom{+}H_{n/2} \\ H_{n/2} & -{H}_{n/2} \end{bmatrix}, & n = 2, 4, 8, \ldots \end{cases} \]

Seguindo essa construção, obtém-se:

\[ H_1 = [1], \qquad H_2 = \begin{bmatrix} 1 & \phantom{+}1 \\ 1 & -1\end{bmatrix}, \quad H_4 = \begin{bmatrix} 1 & \phantom{+}1 & \phantom{+}1 & \phantom{+}1 \\ 1 & -1 & \phantom{+}1 & -1 \\ 1 & \phantom{+}1 & -1 & -1 \\ 1 & -1 & -1 & \phantom{+}1\end{bmatrix}, \quad \text{etc.} \]

As matrizes em questão são todas simétricas e apresentam linhas (e colunas) ortogonais. Os códigos de espalhamento de cada usuário correspondem a linhas (ou a colunas) da matriz $H_n$.

Bibliografia

  1. Andrea Goldsmith: Wireless Communications, Cambridge University Press, 2005.
  2. Simon Haykin: Communication Systems, 4th edition, John Wiley & Sons, 2001.