Você está na página 1de 36

Sequências pseudo-aleatórias e outras

Sílvio A. Abrantes
DEEC/FEUP
Códigos ou sequências
para espalhamento espectral

Propriedades desejáveis dos códigos espalhadores

• Devem ter dois valores.

• Devem ter uma função de autocorrelação com um único pico estreito, para ajudar na
sincronização do código.

• Devem ter funções de correlação cruzada com valores baixos, para permitir mais
utilizadores simultâneos.

• Devem ser balanceados (equilibrados) no número de “0” e “1”, para que a densidade
espectral de potência esteja bem repartida nas frequências.

Códigos encontrados em sistemas de espalhamento espectral

• Códigos de Walsh-Hadamard

• Códigos de Barker

• Códigos (sequências) PN de comprimento máximo

• Códigos de Gold

• Códigos de Kasami

Podemos dividir os códigos em ortogonais e não-ortogonais. Os códigos de


Walsh-Hadamard são ortogonais e os outros não.

Os termos “códigos” e “sequências” serão usados indistintamente.

Sequências pseudo-aleatórias e outras 2


Funções de correlação

Considerações prévias

• É autocorrelação se as sequências forem iguais

• É correlação cruzada se as sequências forem distintas

• É correlação periódica se o deslocamento for cíclico

• É correlação aperiódica se o deslocamento não for cíclico

• É correlação de período parcial se só uma parte das sequências estiver envolvida no


cálculo

Definições

• Correlação cruzada periódica entre sequências c e d binárias ±1 de comprimento N

N
Rc ( j ) = ∑ ci di + j 0 ≤ j ≤ N −1
i =1

• Correlação cruzada aperiódica entre sequências c e d binárias ±1 de comprimento N

N− j
Ra ( j ) = ∑ ci di+ j 0 ≤ j ≤ N −1
i =1

• Se as sequências c e d forem iguais passamos a ter funções de autocorrelação.

Sequências pseudo-aleatórias e outras 3


Sequências e funções de Walsh
• As sequências e funções de Walsh baseiam-se nas matrizes de Walsh-Hadamard.

• Estas matrizes são matrizes quadradas 2n × 2n de elementos ±1 e linhas (e colunas)


ortogonais entre si. São construídas recursivamente a partir de H1 = [1]:
⎡1 1 1 1⎤
⎡ H 2n −1 H 2n −1 ⎤ ⎡1 1⎤ ⎡H H 2 ⎤ ⎢1 −1 1 −1⎥
H 2n = ⎢ H2 = ⎢ =⎢ 2 ⎢ ⎥

−H 2n −1 ⎥⎦ ⎥ H4
− ⎥ = ⎢1 1 −1 −1⎥
⎢⎣ H 2n −1 ⎣1 −1⎦ ⎣ 2
H H 2⎦
⎢ ⎥
⎣1 −1 −1 1⎦
⎡1 1 1 1 1 1 1 1⎤
⎢1 −1 1 −1 1 −1 1 −1⎥⎥

⎢1 1 −1 −1 1 1 −1 −1⎥
⎢ ⎥
⎡H H 4 ⎤ ⎢1 −1 −1 1 1 −1 −1 1⎥
H8 = ⎢ 4 = e assim por diante.
⎣H4 −H 4 ⎥⎦ ⎢1 1 1 1 −1 −1 −1 −1⎥
⎢ ⎥
⎢1 −1 1 −1 −1 1 −1 1⎥
⎢1 1 −1 −1 −1 −1 1 1⎥
⎢ ⎥
⎢⎣1 −1 −1 1 −1 1 1 −1⎥⎦

• Cada linha da matriz define uma sequência de Walsh.

• As sequências e funções de Walsh são ortogonais entre si (logo, não há interferência


entre sinais sincronizados transmitidos da mesma estação CDMA).

Exemplo:
Tomando H4 como ponto de partida criamos quatro sequências e quatro funções:
Sequências de Walsh Funções de Walsh
s1(t)
1
s1 = +1 +1 +1 +1
-1 T t
s2(t)
1
s2 = +1 -1 +1 -1
-1 t
si•sj = 0, i ≠ j
s3(t)
1
s3 = +1 +1 -1 -1
-1 t
s4(t)
1
s4 = +1 -1 -1 +1
-1 t

T
As funções de Walsh são ortogonais entre si. Por exemplo, ∫0 s1(t )s3 (t )dt = 0 .
Sequências pseudo-aleatórias e outras 4
Sequências de Barker

Uma sequência de Barker é uma sequência de N valores ai = ±1 , i = 1,… , N tais que


N− j
∑ ai ai+ j ≤ 1 para 1 ≤ j ≤ N − 1 . Por outras palavras, a função de autocorrelação
i =1
N− j
aperiódica Ra ( j ) satisfaz Ra ( j ) = ∑ ai ai+ j ≤ 1 para j = 1,… , N − 1 .
i =1

Só se conhecem as seguintes sequências de Barker:

Comprimento, Sequência
N

2 ++/+-
3 ++-
4 +++-/++-+
5 +++-+
7 +++--+-
11 +++---+--+-
13 +++++--++-+-+
(+ significa +1 e – significa -1)

Sabe-se 1 que, se existir outra sequência de Barker, esta tem de ter comprimento
N > 1 898 884.

As sequências de Barker são provavelmente o exemplo mais conhecido de


sequências com valores baixos da função de autocorrelação aperiódica.

Exemplo com a sequência +1 +1 +1 -1 +1 (N = 5):

j=1 +++- + Ra (1) = 1 + 1 − 1 − 1 = 0


+ ++-+

j=2 +++ -+ Ra (2) = 1 − 1 + 1 = 1


++ +-+

Valores de Ra(j) para j= 0,1, …,4: {5 0 1 0 1}.

1 Fonte: The Mobile Communications Handbook, Jerry D. Gibson (ed.), CRC Press/IEEE Press, 2ª ed., 1999.
Sequências pseudo-aleatórias e outras 5
Sequências de Barker

Valores da autocorrelação aperiódica Ra(j)

N Sequência {Ra (0) Ra (1) … Ra ( N − 1)}

2 +1 +1 {2 1}
+1 -1 {2 -1}

3 +1 +1 -1 {3 0 -1}

4 +1 +1 +1 -1 {4 1 0 1}
+1 +1 -1 +1 {4 -1 0 1}

5 +1 +1 +1 -1 +1 {5 0 1 0 1}

7 +1 +1 +1 -1 -1 +1 -1 {7 0 -1 0 -1 0 -1}

11 +1 +1 +1 -1 -1 -1 +1 -1 -1 +1 -1 {11 0 -1 0 -1 0 -1 0 -1 0 -1}

13 +1 +1 +1 +1 +1 -1 -1 +1 +1 -1 +1 -1 +1 {13 0 1 0 1 0 1 0 1 0 1 0 1}

A função de autocorrelação periódica de qualquer sequência só assume dois


valores. Por exemplo, para N = 7:

{R(0) R (1) … R(6)} = {7 −1 −1 −1 −1 −1 −1} .

Sequências pseudo-aleatórias e outras 6


Sequências pseudo-aleatórias

• Uma sequência pseudo-aleatória (ou sequência PN, de “Pseudo Noise”) é gerada por
um circuito com um registo de deslocamento, portas “OU exclusivo” e uma malha de
realimentação.

• A sequência é periódica e tem características que a tornam parecida com uma


sequência verdadeiramente aleatória.

• O período de uma sequência é, no máximo, N = 2n − 1 , sendo n o número de andares


do registo de deslocamento.

• Uma sequência de período máximo chama-se sequência de comprimento máximo, ou


sequência m.

• É desejável que o período da sequência PN seja elevado para que esta seja
aparentemente mais aleatória:

⇒ número de andares, n, deve ser elevado.

⇒ a sequência deve ser de comprimento máximo.

• Um gerador de sequências é definido por um polinómio de grau n de coeficientes


binários – o polinómio gerador, ou polinómio característico (ver exemplo abaixo). Se
a sequência tiver comprimento máximo o polinómio diz-se primitivo.

Exemplo de um gerador de sequências PN (n=6)


(Configuração de Fibonacci)

+ +

1 1 0 1 0 0

O seu polinómio gerador, ou polinómio característico, é

g ( x) = x 6 + x 4 + x + 1

O conteúdo inicial, 110100, corresponde ao polinómio a ( x) = x5 + x 4 + x 2 .

Sequências pseudo-aleatórias e outras 7


Sequências pseudo-aleatórias

Polinómios e seus recíprocos

Vamos lidar com polinómios de coeficientes binários, habitualmente representados


de três maneiras:

• Polinómio binário propriamente dito

g ( x) = x5 + x + 1 (note-se a ordem decrescente das potências)

• Vector binário

g ( x) = x5 + x + 1 → 100011 (são os coeficientes do polinómio)

• Representação em octal

g ( x) = x5 + x + 1 → 100.011 → 438

O polinómio recíproco, g r ( x) , de um polinómio binário g ( x) de grau n obtém-se


invertendo a representação binária de g ( x) .

Analiticamente os dois polinómios estão relacionados por

g r ( x) = x n g (1 x )

Exemplo:

g ( x) = x5 + x + 1 → 100011 → 110001 → g r ( x) = x5 + x 4 + 1

ou

g r ( x) = x n g ( x −1 ) = x5 ( x −5 + x −1 + 1) = x5 + x 4 + 1

Sequências pseudo-aleatórias e outras 8


Sequências pseudo-aleatórias

Como calcular analiticamente a saída do gerador PN,


sabendo o polinómio gerador e o conteúdo inicial?

Vamos tomar o gerador anterior como exemplo.


Polinómio: g ( x) = x 6 + x 4 + x + 1 . Recíproco: g r ( x) = x 6 g ( x −1 ) = x 6 + x5 + x 2 + 1

1. Multiplica-se o polinómio do conteúdo inicial pelo recíproco do polinómio gerador:

(
a ( x) g r ( x) = x5 + x 4 + x 2 )( x6 + x5 + x2 + 1) = x11 + x9 + x8 + x6 + x5a′+( xx) 2
2. Obtém-se o polinómio a′( x) de grau ≤ n − 1 com os n termos de menor grau de
a ( x ) g r ( x) :

a′( x) = x5 + x 2

3. A sequência PN (isto é, a saída do gerador) é o quociente


a′( x) x5 + x 2
b( x ) = = 6 = x 2 + x 4 + x5 + x6 + x9 + x11 + x12 + …
g r ( x) x + x5 + x 2 + 1

A divisão faz-se escrevendo os polinómios por ordem crescente do grau, como se


mostra a seguir:

x 2 + x5 1 + x 2 + x5 + x 6
x 2 + x 4 + x7 + x8 x 2 + x 4 + x5 + x6 + x9 + x11 + x12 + …
x 4 + x 5 + x 7 + x8
x 4 + x6 + x9 + x10
b( x )
x +x +x +x +x +x
5 6 7 8 9 10

x5 + x7 + x10 + x11 ⇓
x6 + x8 + x9 + x11
Saída: 0010111001011…
x +x +x +x
6 8 11 12

x9 + x12
x9 + x11 + x14 + x15
x11 + x12 + x14 + x15
x11 + x13 + x16 + x17
x12 + x13 + x14 + x15 + x16 + x17

Sequências pseudo-aleatórias e outras 9


Sequências pseudo-aleatórias

Outro exemplo de cálculo algébrico de uma sequência PN

+ +
g ( x) = x3 + x 2 + x + 1
a( x) = x 2
a b c d

1 0 0 b( x)

Polinómio recíproco: g ( x) = x3 + x 2 + x + 1 → 1111 → 1111 → g r ( x) = x3 + x 2 + x + 1 ( = g ( x) )

1. ( )
a ( x) g r ( x ) = x 2 x 3 + x 2 + x + 1 = x5 + x 4 + x3 + x 2

2. a′( x) = x 2

a′( x) x2
3. b( x ) = = = x 2 + x3 + x 6 + x7 + x10 + x11 + …
g r ( x) 1 + x + x + x
2 3

A sequência de saída é, portanto, b = 001100110011… e tem período 4.

Confirmação através do circuito:

a b c d (saída)
1 1 0 0
0 1 1 0
0 0 1 1
1 0 0 1
1 1 0 0
0 1 1 0
0 0 1 1
1 0 0 1
1 1 0 0
: : : :

Esta não é uma sequência de comprimento máximo pois o seu período não é o
maior possível, N = 2n − 1 = 7 . Logo, o polinómio x3 + x 2 + x + 1 não é primitivo.

Sequências pseudo-aleatórias e outras 10


Sequências pseudo-aleatórias

O período de uma sequência PN depende do conteúdo inicial, excepto se


a sequência for de comprimento máximo

Exemplo com o mesmo gerador mas com conteúdo inicial 101 ( a( x) = x 2 + 1 )

( )( )
a ( x) g r ( x) = x 2 + 1 x3 + x 2 + x + 1 = x5 + x 4 + x + 1
a′ ( x )

a′( x) 1+ x
b( x ) = = = 1 + x 2 + x 4 + x6 + x8 + x10 + x12 + …
g r ( x) 1 + x + x 2 + x3

Sequência de saída: 101010101010… (período: 2)

Confirmação através do circuito:

a b c d (saída)
0 1 0 1
1 0 1 0
0 1 0 1
1 0 1 0
0 1 0 1
1 0 1 0
0 1 0 1
1 0 1 0
0 1 0 1
… … … …

Se o polinómio característico fosse primitivo qualquer conteúdo inicial originaria


uma sequência de comprimento máximo.

Se experimentar com o polinómio x3 + x + 1 (um polinómio primitivo) verificará

que o período é 7, independentemente do conteúdo inicial.

Vamos ver em seguida como determinar o maior período atingível com um dado
polinómio gerador.

Sequências pseudo-aleatórias e outras 11


Sequência pseudo-aleatórias

Como calcular o período máximo que é possível obter com um dado


gerador de sequências PN

O período máximo é o menor inteiro m para o qual x m + 1 é múltiplo de g ( x)

Vamos tomar como exemplo o polinómio g ( x) = x3 + x 2 + x + 1 atrás usado:

x4 x3 + x 2 + x + 1

10000 1111
1111 11
01110
1111
x +1
0001

Dividiu-se o polinómio x m (dado na forma vectorial 100000…) por x3 + x 2 + x + 1

(1111) até dar resto 1. Depois basta contar o número de zeros.

( )
(Porquê? Porque se x m mod g ( x) = 1 então x m + 1 mod g ( x) = 0 )

( )
Como x 4 mod x3 + x 2 + x + 1 = 1 então o período máximo atingível por g(x) é 4.

Outros exemplos:

1. g ( x) = x 4 + x 2 + x + 1

O menor m tal que x m + 1 é múltiplo de g ( x) é 7:

( x + 1) mod ( x
7 4
+ x2 + x + 1 = 0) ⇒ período máximo é 7 com este g(x)

2. g ( x ) = x8 + x 6 + x 4 + x 2 + 1

O menor m tal que x m + 1 é múltiplo de g ( x) é 10:

( x10 + 1) mod ( x8 + x6 + x4 + x2 + 1) = 0 ⇒ período máximo é 10

Sequências pseudo-aleatórias e outras 12


Sequências de comprimento máximo

Algumas propriedades das sequências de comprimento máximo

1. Propriedade do balanço

Em cada período de uma sequência m o número de “uns” é igual ao número de “zeros”


mais um:

Número de “uns”: 2n −1

Número de “zeros”: 2n−1 − 1

2. Propriedade das séries

• Uma série é uma subsequência de bits iguais (0 ou 1). O número de bits iguais
é o comprimento da série.

n −1
• Número total de séries (de zeros e uns): ( N + 1) 2 = 2

Em cada período metade das séries de “uns” ou “zeros” têm comprimento 1, um quarto
têm comprimento 2, um oitavo têm comprimento 3, etc.

Qualquer grupo não nulo de s bits, s ≤ n , ocorre 2n − s vezes e o grupo de s bits

nulos ocorre 2n − s − 1 vezes. Assim, qualquer grupo de n bits ocorre só uma vez.

3. Função de autocorrelação

A função de autocorrelação é periódica (período N) e vale

⎧⎪ N j = 0
R( j ) = ⎨ (só tem dois valores)
⎪⎩−1 1 ≤ j ≤ 2 − 2
n

Uma maneira possível de calcular a função de autocorrelação é a seguinte:


conta-se em quantos lugares a sequência a1a2 …aN concorda com o seu deslocamento
a j a j+1 …aN a1…a j−1 . Se C for esse valor e D o número de lugares discordantes, então

R( j ) = C − D

Sequências pseudo-aleatórias e outras 13


Sequências de comprimento máximo
Exemplo de um gerador de sequência PN de comprimento máximo

5 4 3 2 1

• Período da sequência: N = 2n − 1 = 31

(⇒ é uma sequência de comprimento máximo, ou sequência m)

• Modos de representação de sequências PN:

• através dos andares interligados

Neste caso: andares 1 e 3.

• através de um vector (binário ou em octal)


Neste caso: 1001012 = 458

• através de um polinómio binário (polinómio gerador ou característico)


5 2
Neste caso: x + x + 1

Um polinómio primitivo é um polinómio que gera uma sequência m. Logo, o


5 2
polinómio x + x + 1 é um polinómio primitivo.

• Exemplo de sequência:

1111100011011101010000100101100…

• Função de autocorrelação (normalizada)

0.5

-0.5
-30 -20 -10 0 10 20 30

Sequências pseudo-aleatórias e outras 14


Sequências de comprimento máximo
Exemplo de sequência PN de comprimento máximo (cont.)

As sequências m satisfazem a propriedade das séries:

Comprimento Fracção
da série
1 12
2 14
3 18

i
i 12

N +1
e ao todo existem séries de “zeros” e “uns”.
2

Neste exemplo a sequência PN tem o seguinte período:

1111100011011101010000100101100…

• Número de séries:
N +1
= 16 (oito séries de “zeros” e oito séries de “uns”)
2

Comprimento Número Fracção


da série
1 4 séries de “zeros” 50%
4 séries de “uns”
2 2 séries de “zeros” 25%
2 séries de “uns”
3 1 série de “zeros” 12,5%
1 série de “uns”
4 1 série de “zeros” 6,25%
0 séries de “uns”
5 1 série de “uns” 6,25%

Quantas vezes num período surgem padrões de bits? Por exemplo, os grupos 110 e
0010 ocorrem 2n− s = 25−3 = 4 vezes e 2n − s = 25− 4 = 2 vezes, respectivamente. Por seu
lado o grupo 00 aparece 2n− s − 1 = 25−2 − 1 = 7 vezes. Confirmou?

Sequências pseudo-aleatórias e outras 15


Sequências de comprimento máximo

Definição alternativa de polinómios primitivos

O polinómio de grau n g(x) é um polinómio primitivo se o menor m para o qual


x + 1 é divisível por g(x) for igual a m = 2n – 1.
m

Uma tabela de factorizações dos polinómios xm + 1 é útil para a determinação de


polinómios primitivos.

O polinómio recíproco de um polinómio primitivo também é primitivo.

Exemplos (n = 5):

• g ( x) = x5 + x 4 + x 2 + x + 1 é primitivo pois o menor m para o qual xm + 1 é múltiplo de


g(x) é m = 2n − 1 = 25 − 1 = 31 :

x31 + 1 = g ( x)Q ( x) (Q(x) é o quociente)

Pode provar-se que m = 31 é o menor possível dividindo-se a palavra binária 1000…0


(correspondente a xm ) por 110111 (representação de g(x) em binário) e terminando a
divisão quando o resto for 1; depois é só contar o número de zeros do dividendo (31)
para saber o valor de m.

Um gerador de sequências PN baseado neste polinómio gera sequências de


comprimento 31 (ou seja, de comprimento máximo).

• g ( x) = x5 + x 4 + x3 + x 2 + x + 1 não é primitivo pois m = 2n − 1 = 31 não é o menor inteiro


para o qual x m + 1 = x31 + 1 é múltiplo de g(x). De facto o menor m é 6, para o qual
x 6 + 1 = ( x + 1) g ( x) .

Um gerador de sequências PN baseado neste polinómio gera sequências de período


não superior a 6 (em vez de 31).

Sequências pseudo-aleatórias e outras 16


Sequências de comprimento máximo

Número de sequências m com um determinado comprimento

P.: Com um registo de deslocamento de n andares quantas sequências PN de


comprimento máximo se podem obter?

R.: Existem diversas interligações (ou polinómios primitivos) que conduzem a


sequências de comprimento máximo. O seu número é dado por

φ (2n − 1)
n

em que φ ( x ) é a função de Euler, que indica o número de inteiros não superiores e


primos com x.

Exemplo: φ (35) = 24 (confirme!)

Número de sequências m

n Período, Nº de
N = 2n − 1 sequências m

3 7 2

4 15 2

5 31 6

6 63 6

7 127 18
8 255 16

9 511 48

10 1023 60

Por exemplo, os polinómios x5 + x3 + 1 (=518) e x5 + x 4 + x3 + x + 1 (=738) produzem


duas das seis sequências m de comprimento 31.

Sequências pseudo-aleatórias e outras 17


A função de Euler

Como calcular a função de Euler?

Se quisermos calcular a função de Euler de um determinado número inteiro


devemos em primeiro lugar factorizá-lo. Assim:

Se pi , i = 1, 2,… , I , forem os I factores primos de N então:

I
pi −1
φ(N) = N∏
i =1
pi

3 2
Exemplo: N = 360 = 2 × 3 × 5 ⇒ p1 = 2 , p2 = 3 e p3 = 5
3
pi −1 1 2 4
φ (360) = 360 ∏ = 360 × × × = 96
i =1
pi 2 3 5

Casos particulares
r
1. Se N for a potência de um número primo p, isto é, se N = p , sendo r inteiro, então

p −1
φ (N ) = φ ( pr ) = pr
p

2. Se N tiver dois factores primos, p e q, isto é, se N = p r q s , sendo r e s inteiros, então

φ ( N ) = φ ( p r q s ) = p r −1q s −1 ( p − 1)(q − 1)

Exemplo: N = 63 = 32 × 7 ⇒ p = 3, q = 7 , r = 2 e s =1

φ (63) = φ (32 × 7) = 31 × 70 × 2 × 6 = 36

Sequências pseudo-aleatórias e outras 18


A função de Euler

I
pi −1
φ (N ) = N ∏
i =1
pi

100

90

80

70

60

φ(x) 50

40

30

20

10

0
0 20 40 60 80 100
x

Sequências pseudo-aleatórias e outras 19


Sequências de comprimento máximo

Alguns polinómios primitivos para geração de sequências m

n Polinómios
primitivos

3 x3 + x + 1
4 x4 + x + 1
5 x5 + x2 + 1
6 x6 + x + 1
7 x7 + x3 + 1
8 x8 + x4 + x3 + x2 + 1
9 x9 + x4 + 1
10 x10 + x 3 + 1

• Além dos polinómios da tabela existem outros polinómios primitivos com o mesmo
grau (ver Tabela da página seguinte). Todos eles geram sequências de comprimento
máximo.

• O número de polinómios primitivos de um determinado grau é igual ao número de


φ (2n − 1)
sequências m, isto é, .
n

Exemplo: como existem 16 sequências m de comprimento 255 (logo, n = 8)

concluimos que existem 16 polinómios primitivos de grau 8.

• Estes polinómios indicam os andares do registo de deslocamento a interligar em


“feedback”.

• Existem tabelas de polinómios primitivos publicadas. Um exemplo é o livro clássico


de W. Peterson e E. Weldon, “Error Correcting Codes”, MIT Press, 1972.

Sequências pseudo-aleatórias e outras 20


Sequências pseudo-aleatórias

Tabela de polinómios primitivos

A tabela seguinte indica metade dos polinómios primitivos de grau ≤10. A outra
metade é constituída pelos seus recíprocos, pois estes também são primitivos.

Exemplos:

g ( x) = x 4 + x + 1 → 238 → 10.011 → 11.001 → 318 → g r ( x) = x 4 + x3 + 1


g ( x) = x3 + x + 1 → 138 → 1.011 → 1.101 → 158 → g r ( x) = x3 + x 2 + 1

Polinómios primitivos de grau n ≤ 10

Grau Representação em octal


n (menor potência à direita)
2 7*
3 13*
4 23*
5 45*, 75, 67
6 103*, 147, 155
7 211*, 217, 235, 367, 277, 325, 203*, 313, 345
8 435, 551, 747, 453, 545, 537, 703, 543
9 1021*, 1131, 1461, 1423, 1055, 1167, 1541,
1333, 1605, 1751, 1743, 1617, 1553, 1157
10 2011*, 2415, 3771, 2157, 3515, 2773, 2033,
2443, 2461, 3023, 3543, 2745, 2431, 3177

Nota 1: o asterisco indica um circuito com apenas duas interligações. O circuito torna-se mais
simples.
Nota 2: a tabela não inclui polinómios recíprocos pelo que só estão indicados metade dos polinómios
primitivos possíveis.
Nota 3: Tabela extraída de R. Peterson, R. Ziemer e D. Borth, “Introduction to Spread Spectrum
Communications”, Prentice-Hall, 1995.

Sequências pseudo-aleatórias e outras 21


Sequências binárias periódicas

Função de autocorrelação: definição genérica

Seja a sequência a = [a1a2 … aN ] uma sequência binária {0,1} e periódica (com


período N). A sua função de autocorrelação é definida como *

N
R ( j ) = ∑ (2ai − 1)(2ai + j − 1) 0 ≤ j ≤ N −1
i =1

Como já se disse antes, uma maneira prática de calcular a função de


autocorrelação é contar em quantos lugares a sequência a1a2 … aN concorda com o seu
deslocamento a j a j +1 … a N a1 … a j −1 . Se C for esse valor e D o número de lugares
discordantes, então

R( j ) = C − D

• A função de autocorrelação é periódica:

R( j + rN ) = R( j ) , para r inteiro.

• Se c representar uma sequência polar {±1}:

N
R ( j ) = ∑ ci ci + j 0 ≤ j ≤ N −1
i =1

Caso particular: sequências PN de comprimento máximo

• As funções de autocorrelação de sequências m só têm dois valores, N e -1 (ou 1 e


-1/N, na versão normalizada).

* Há quem defina esta função normalizando-a por divisão por N.


Sequências pseudo-aleatórias e outras 22
Sequências binárias periódicas
Função de correlação cruzada e minorante de Welch

Se a = [a1a2 … aN ] e b = [b1b2 … bN ] forem duas sequências binárias de valores {0,1} e


periódicas (com período N), a função de correlação cruzada entre a e b é definida como

N
Rc ( j ) = ∑ (2ai − 1)(2bi + j − 1) 0 ≤ j ≤ N −1
i =1

Normalmente é desejável que a função de correlação cruzada entre sequências


tenha valores baixos.

Minorante de Welch
O valor absoluto máximo da correlação cruzada entre qualquer par de sequências
binárias com período N retirado de um conjunto de M sequências respeita

M −1
Rc ( j ) max ≥ N
MN − 1

Se M e N elevados: Rc ( j ) max ≥ N

Caso particular: sequências PN de comprimento máximo

• As funções de correlação cruzada entre sequências m diferentes têm vários valores,


com picos relativamente elevados.

• Se as funções de correlação cruzada só tiverem três valores diz-se que as sequências


constituem um par preferido, ou que se trata de sequências preferidas.

Esses três valores estão centrados em -1 e são:

( n + 2) 2⎦⎥
{−t (n), −1, t (n) − 2} , com t (n) = 2⎣⎢ +1.

• Não há pares preferidos para sequências com número de andares múltiplo de 4.

Sequências pseudo-aleatórias e outras 23


Sequências de comprimento máximo

Exemplos de funções de correlação cruzada

• N = 63 , polinómios x6 + x5 + x 4 + x + 1 (1638) e x6 + x5 + x 2 + x + 1 (1478)

• N = 63 , polinómios x6 + x5 + x 4 + x + 1 (1638) e x6 + x5 + 1 (1418)

Esta função de correlação cruzada só tem três valores, isto é, as sequências


geradas por 1638 e 1418 são um par preferido.

Sequências pseudo-aleatórias e outras 24


Sequências de comprimento máximo

Exemplos de funções de autocorrelação e correlação cruzada

Seja n = 10, para o qual o comprimento máximo é 1023. Assim:

φ (1023) ⎛ 60 ⎞
• Existem = 60 sequências. Com estas sequências podem-se formar ⎜ ⎟ = 1770
10 ⎝2⎠
pares. Destes há três (apenas!) que entre si são pares preferidos.

• A função de autocorrelação R( j ) tem dois valores: {1023, −1} .

• O valor máximo absoluto das funções de correlação cruzada Rc ( j ) entre as sessenta


sequências m é igual a 383, isto é, 37% do valor máximo da autocorrelação, R(0) * .

• Com um par preferido Rc ( j ) assume três valores:

t (10) = 2 ⎣⎢
(10+ 2) 2 ⎦⎥
+ 1 = 65 ⇒ Rc ( j ) ∈ {−65, −1,63}

O valor máximo absoluto de Rc ( j ) vale Rcmax = t (n) = 65 , isto é, 6% de R(0) .

Repare-se que, enquanto no conjunto das 60 sequências o pico da função de


correlação cruzada é 37% de R(0) , no caso dos pares preferidos esse pico baixou para 6%
(cerca de seis vezes menos!).

Existem sequências derivadas das sequências m que têm funções de correlação


cruzada periódica com melhores propriedades: as sequências de Gold e de Kasami.

* Ver tabela 8.2.1 de J. Proakis, “Digital Communications”, McGraw-Hill, 2ª edição, 1989.


Sequências pseudo-aleatórias e outras 25
Sequências de comprimento máximo

Decimações e pares preferidos

• O que é uma decimação?

A decimação de uma sequência por 4 (por exemplo) é obtida colhendo elementos


da sequência de quatro em quatro valores.

Chamemos a a[q ] a decimação da sequência a por q.

A decimação por 2 ou por uma potência de 2 é simplesmente uma versão ciclicamente


deslocada da sequência original.

• Uma sequência m de comprimento N = 2n − 1 pode ser obtida a partir de outra


sequência m de igual comprimento: faz-se a decimação da sequência por um inteiro q
que seja primo com N:

m.d .c.( N , q) = 1

Uma decimação que origina uma sequência de igual comprimento diz-se própria.

N
• Período da sequência a[q ] , em que a é uma sequência m:
m.d .c.( N , q)

Exemplo: a = 1110100 ⇒ N = 7

Se q = 6 ⇒ m.d.c.(7,6) = 1 ⇒ é decimação própria ⇒ a[6] = 1001011.

Condições suficientes para que duas sequências a e b de comprimento máximo


N = 2n − 1 constituam um par preferido

1. n ≠ 0 mod 4 (isto é, n não é múltiplo de 4)

2. b = a[q] , em que q é ímpar e

q = 2k + 1 ou q = 22 k − 2k + 1

⎧1 n ímpar
3. m.d .c.(n, k ) = ⎨
⎩2 n=2 mod 4

Sequências pseudo-aleatórias e outras 26


Sequências de comprimento máximo

Exemplo de obtenção de pares preferidos

P.: Determinar um par preferido de sequências m de comprimento 31. Uma das


sequências é gerada pelo polinómio 45.

R.: N = 31, n = 5

A determinação da outra sequência do par é feita decimando a primeira sequência


por um inteiro ímpar q: b = a[q] .

Para que b = a[q] tenha o mesmo comprimento 31 a decimação tem de ser própria,
isto é, q e N têm de ser primos entre si:

m.d .c(31, q) = 1

Seja q = 3 . Esta escolha é adequada porque satisfaz as três condições suficientes


para obtenção de pares preferidos:

1. O grau n = 5 não é múltiplo de 4.

2. q = 3 é ímpar.

⇒ q = 3 = 2k + 1 ⇒ k =1

3. Sendo n ímpar: m.d .c(n, k ) = m.d .c(5,1) = 1

As sequências preferidas obtidas são as seguintes:

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
a =1 0 1 0 1 1 1 0 1 1 0 0 0 1 1 1 1 1 0 0 1 1 0 1 0 0 1 0 0 0 0
b=1 0 1 1 0 1 0 1 0 0 0 1 1 1 0 1 1 1 1 1 0 0 1 0 0 1 1 0 0 0 0

Sequências pseudo-aleatórias e outras 27


Sequências de comprimento máximo

Pares preferidos

As figuras seguintes apresentam todos os pares preferidos de comprimento 31 e 63.


Os pares preferidos são aqueles que estão ligados através de uma linha.

Período 31

73 45

57 75

51 67

Período 63

133 103

163 147

141 155

In Sarwate, D. V. e Pursley, M. B., "Crosscorrelation Properties of Pseudorandom and Related


Sequences", Proceedings of the IEEE, Maio de 1980, pp. 593-619.

Sequências pseudo-aleatórias e outras 28


Sequências de Gold

Uma sequência de Gold é obtida combinando duas sequências PN preferidas por


deslocamento de uma delas relativamente à outra.

• { }
SGold = a, b, a ⊕ b, a ⊕ Tb,… , a ⊕ T N −1b Tib – b é deslocada de i bits

• Como são possíveis N = 2n − 1 deslocamentos de uma sequência relativamente à


outra, existem N + 2 = 2n + 1 sequências de Gold de comprimento N (incluindo as duas
sequências originais).

• As funções de correlação cruzada só têm três valores, como já acontecia com os


pares preferidos originais:

{−t (n), −1, t (n) − 2} .

n Período N Rc ( j) Frequência de
ocorrência
n ímpar N = 2n − 1 −1 ≈ 0,50
−t(n) ≈ 0,25
t(n) − 2 ≈ 0,25

n par e N = 2n − 1 −1 ≈ 0,75
não divisível −t(n) ≈ 0,125
por 4 t(n) − 2 ≈ 0,125

• A vantagem relativamente às sequências m é que passa a haver mais sequências (de


Gold) com funções de correlação cruzada só com três valores. Isso é desejável em
certas aplicações (CDMA, por exemplo).

Exemplo: existem 3 (três!) sequências m preferidas de comprimento 1023;

existem 1025 sequências de Gold de comprimento 1023.

• As sequências preferidas originais são sequências m mas as outras N sequências não


são, embora tenham o mesmo período; logo, as funções de autocorrelação destas
têm mais de dois valores. Os valores fora do pico (j ≠ 0) são retirados do mesmo trio
de valores acima.

Sequências pseudo-aleatórias e outras 29


Sequências de Gold

Geração de sequências de Gold

A partir de um par preferido a = [a1a2 … aN ] e b = [b1b2 … bN ] constrói-se um


conjunto de novas sequências de igual comprimento N somando (módulo 2) uma das
sequências com cada um dos N = 2n − 1 deslocamentos possíveis da outra. Obtêm-se
assim N novas sequências periódicas de período N = 2n − 1 .

Exemplo: Os polinómios x5 + x 2 + 1 e x5 + x 4 + x 2 + x + 1 geram sequências preferidas de


comprimento 31. Então podemos usar os geradores destas sequências para obter
sequências de Gold:

Sequência
de Gold
+

+ + +

Consoante o conteúdo inicial dos registos de deslocamento assim vamos obter


N + 2 = 33 sequências de comprimento 31 cujas funções de correlação cruzada só têm
três valores,

{−t (5), −1, t (5) − 2} = {−9, −1, 7}

Repare-se que só existem seis sequências m de comprimento 31; destas nem todas
têm funções de correlação cruzada só com três valores. Em contrapartida, existem 33
sequências de Gold nessas condições.

Sequências pseudo-aleatórias e outras 30


Sequências de Kasami
Com um procedimento análogo ao usado para gerar sequências de Gold constrói-se
um conjunto mais pequeno de sequências com propriedades de correlação cruzada ainda
melhores: as sequências de Kasami (melhor dizendo, o "pequeno conjunto" de sequências
de Kasami).

Uma sequência do pequeno conjunto de Kasami é obtida combinando uma


sequência de comprimento máximo a (de período 2n − 1 , com n par) com uma sua versão
decimada, a ' = a[q] .

• q = 2n 2 + 1 ⇒ a' tem período 2n 2 − 1 .

• Repetindo a' q vezes obtém-se uma nova sequência, b, de comprimento N = 2n − 1


⇒ b = a′a′… a′
q

• Com a e b formamos um novo conjunto de sequências somando (mód. 2) a a b e a


2n 2 − 2 deslocações cíclicas de b:


S K = ⎨a, a ⊕ b, a ⊕ Tb,… , a ⊕ T
( 2n 2 − 2 ) b ⎫

⎩ ⎭

• Ao todo (incluindo a) temos 2n 2 sequências no pequeno conjunto de Kasami.

• A função de correlação cruzada entre sequências de Kasami assume três valores


centrados em -1:

{− s(n), −1, s(n) − 2} , com s (n) = 2n 2 + 1 =


1
[t (n) + 1]
2

Estes valores são ainda mais baixos que os obtidos com sequências de Gold.

• A função de autocorrelação (j ≠ 0) assume os mesmos três valores.

• Rc ( j ) max = s(n) aproxima-se bastante do menor valor possível (o minorante de


Welch) ⇒ nesse respeito as sequências do pequeno conjunto de Kasami são
assimptoticamente óptimas.

Sequências pseudo-aleatórias e outras 31


Pequeno conjunto de sequências de
Kasami: um exemplo

Seja a uma sequência m com n = 6 e período 63.

• Se se fizer uma decimação de a por q = 2n 2 + 1 = 9 a sequência a' obtida tem período


2n 2 − 1 = 7 .

• Considerem-se q = 9 repetições de a'. A nova sequência é b.

• Como obter as sequências de Kasami?

a Sequência
de Kasami
+

• Existem 2n 2 − 2 + 2 = 8 sequências de Kasami de grau n = 6 .

• A função de correlação cruzada entre sequências toma três valores:

{− s(6), −1, s(6) − 2} = {−9, −1, 7}

1
visto s (6) = [t (6) + 1] = 9 .
2

• Comparação com sequências m e de Gold de igual período:

• Sequências m: 6 sequências (das quais 2 são preferidas)

• Sequências de Gold: 65 sequências e Rc ( j ) ∈ {−17, −1, 15}

Sequências pseudo-aleatórias e outras 32


Pequeno conjunto de sequências de
Kasami: outro exemplo

Seja n = 4 e o polinómio primitivo x 4 + x + 1 produzindo a sequência m


a = 100010011010111.

• q = 2n 2 + 1 = 22 + 1 = 5

• Decimando a por 5 obtemos a sequência a', de período 2n 2 − 1 = 22 − 1 = 3 :

a′ = a[5] = 101

• Repetindo a' cinco vezes obtemos

b = 101101101101101

• Existem ao todo 2n 2 = 4 sequências no pequeno conjunto de Kasami: uma delas é a


própria sequência a e as outras três são obtidas somando essa sequência a b e aos
seus deslocamentos:

a→ 100010011010111
b→ ⊕ 101101101101101
a⊕b → 001111110111010

a→ 100010011010111
Tb → ⊕ 011011011011011
a ⊕ Tb → 111001000001100

a→ 100010011010111
T b→
2
⊕ 110110110110110
a ⊕ T 2b → 010100101100001

Pode confirmar-se que a função de correlação cruzada entre quaisquer duas


⎛ 4⎞
sequências dos ⎜ ⎟ = 6 pares de sequências só tem valores do conjunto {−5, −1, 3} . O
⎝ 2⎠
mesmo se passa com a função de autocorrelação para j ≠ 0. Em a ⊕ b , por exemplo:
R (1) = 3 , R(3) = −1 e R(5) = −5 .

Sequências pseudo-aleatórias e outras 33


O “grande conjunto” de
sequências de Kasami
• O grande conjunto de sequências de Kasami contém as sequências de Gold e o
pequeno conjunto de sequências de Kasami.

• Tal como as do pequeno conjunto, também as sequências do grande conjunto têm


período 2 − 1 , em que n tem de ser par.
n

• Vantagem sobre sequências de Gold: há mais sequências.

• Desvantagem sobre sequências do pequeno conjunto: correlação cruzada mais


elevada.

Como obter estas sequências?

1. A partir de uma sequência a de comprimento máximo N = 2n − 1 , n par, obtêm-se


duas outras sequências m por decimação:

b = a[t (n)] = a[2( n + 2) 2 + 1]

c = a[ s (n)] = a[2n 2 + 1] , período 2n 2 − 1

2. As sequências do grande conjunto são formadas adicionando as três sequências a, b


e c com diferentes deslocamentos de b e c:

Se n = 0 (mod 4) :
{ }
S KL = a, a ⊕ T k ′b ( j ) , a ⊕ T mc, b ( j ) ⊕ T m′c, a ⊕ T k ′b ( j ) ⊕ T mc

j = 0,1, 2 k ′ = 0,… , (2n − 1) 3 − 1


m = 0,… , 2n 2 − 2 m′ = 0,… , (2n 2 − 1) 3 − 1

( )
b(j), j = 0,1,2 é a decimação de Tja por t(n): b( j ) = T j a [t (n) ] .

Se n = 2 (mod 4) :
k = 0,… , 2n − 2
{
S KL = a, b, a ⊕ T b, a ⊕ T c, b ⊕ T c, a ⊕ T b ⊕ T c
k m m k m
} m = 0,… , 2n 2 − 2

Sequências pseudo-aleatórias e outras 34


O “grande conjunto” de
sequências de Kasami
• Número de sequências do grande conjunto de Kasami:
⎧⎪ M = 23n 2 + 2n 2 − 1 n = 0 (mod 4)

⎪⎩ M = 2 + 2n 2 n = 2 (mod 4)
3n 2

• As funções de correlação cruzada e de autocorrelação (para j ≠ 0) têm cinco valores:

{−t (n), − s(n), −1, s(n) − 2, t (n) − 2} = {−1, −1 ± 2n 2 , −1 ± 2( n+ 2) 2 }

Exemplo: seja n = 4 e a sequência m a = 100010011010111.

• b = a[t (n)] = a[2( n+ 2) 2 + 1] = a[9] = 100101001010010 (período N/3 = 5)


3 repetiçoes

• c = a[ s (n)] = a[2n 2 + 1] = a[5] = 101101101101101 (período 2


n2
−1 = 3 )
n 2
2 +1=5 repetiçoes
• Rc ( j ) ∈ {−9, −5, −1,3, 7}

• Existem 23n 2 + 2n 2 − 1 = 67 sequências:


j = 0,1, 2
k ′ = 0,1,… , 4
{ }
S KL = a, a ⊕ T k ′b ( j ) , a ⊕ T mc, b ( j ) ⊕ c, a ⊕ T k ′b ( j ) ⊕ T mc
m = 0,1, 2
m′ = 0
Vamos obter duas delas:

a→ 100010011010111
T b 2 (1)
= T ( (Ta)[9]) → ⊕ 111011110111101
2

a ⊕ T 2b(1) → 011001101101010

a→ 100010011010111

T 3b(2) → 110001100011000

T 2c → ⊕ 110110110110110

a ⊕ T 3b(2) ⊕ T 2c → 100101001111001

Sequências pseudo-aleatórias e outras 35


Valores absolutos máximos da
função de correlação cruzada

n Sequências Sequências Sequências Sequências Minor. de


m de Gold de Kasami de Kasami Welch,
(peq. conj.) (grande conj.)
Nº Valor Nº Valor Nº Valor Nº Valor N
máximo máximo máximo máximo

3 2 5 9 5 — — — — 2,6

4 2 9 — — 4 5 67 9 3,9

5 6 11 33 9 — — — — 5,6

6 6 23 65 17 8 9 520 17 7,9

7 18 41 129 17 — — — — 11,3

8 16 95 — — 16 17 4111 33 16,0

9 48 113 513 33 — — — — 22,6

10 60 383 1025 65 32 33 32800 65 32,0

11 176 287 2049 65 — — — — 45,2

12 144 1407 — — 64 65 26220 129 64,0


7

Sequências pseudo-aleatórias e outras 36

Você também pode gostar