Você está na página 1de 12

UNIVERSIDADE POLITÉCNICA - A POLITÉCNICA

Instituto Superior de Estudos Universitários de Nampula – ISEUNA

Licenciatura em Engenharia Informática e de Telecomunicações

Análise de erros na transmissão digital usando códigos de blocos

Araújo Ernesto

Nampula

2022
Araújo Ernesto

Análise de erros na transmissão digital usando códigos de blocos

Trabalho de caráter científico e individual da


cadeira de Processamento de Sinais Digitais
apresentado como requisito de avaliação.

Docente:
Eng. Diamantino Amisse

Nampula

2022

I
Índice
Introdução ....................................................................................................................................... 1

Objetivos ..................................................................................................................................... 2

Objetivo Geral ......................................................................................................................... 2

Objetivos Específicos .............................................................................................................. 2

1. Códigos de Blocos ................................................................................................................... 3

1.1. Peso de Hamming e distância de Hamming ..................................................................... 3

1.2. Matriz de Paridade ........................................................................................................... 3

1.3. Matriz Geradora ............................................................................................................... 4

1.4. Matriz de verificação de paridade .................................................................................... 4

1.5. Ortogonalidade de vetores ................................................................................................ 5

2. Resolução de problema por de código de blocos .................................................................... 6

Conclusão........................................................................................................................................ 8

Referências Bibliográficas .............................................................................................................. 9

II
Introdução
A transmissão digital é uma tecnologia que tem sido amplamente utilizada em diversas aplicações,
como comunicações de dados, televisão digital, telefonia celular e internet, entre outras. No
entanto, a transmissão de dados digitais não é imune a erros, e esses erros podem ser causados por
diversos fatores, como interferência eletromagnética, ruído térmico, atenuação do sinal, entre
outros.

Para minimizar o impacto desses erros na transmissão de dados digitais, foram desenvolvidos
diversos códigos de correção de erros, e um dos mais utilizados são os códigos de blocos. Os
códigos de blocos são códigos lineares que codificam um bloco de bits em outro bloco de bits com
um tamanho maior, adicionando bits de redundância que permitem detectar e corrigir erros na
transmissão.

Os códigos de blocos têm diversas aplicações, como em sistemas de armazenamento de dados, em


comunicações de dados e em sistemas de transmissão de imagens e áudio. Eles melhoraram
significativamente a transmissão digital, permitindo uma maior confiabilidade e integridade dos
dados transmitidos.

A análise de erros na transmissão digital é fundamental para garantir a qualidade da transmissão,


e os códigos de blocos são uma importante ferramenta nessa análise. Nesse trabalho, será abordada
a matriz de paridade, matriz geradora, matriz de verificação de paridade e a ortogonalidade de
vetores, que são conceitos fundamentais na análise de erros em códigos de blocos.

Além disso, será exemplificado com a resolução de um problema que utiliza código de blocos,
mostrando como esses códigos são utilizados para detecção e correção de erros na transmissão
digital. Com este trabalho, espera-se proporcionar uma melhor compreensão dos códigos de blocos
e sua importância na transmissão digital, além de demonstrar a aplicação prática desses códigos
na análise de erros.

1
Objetivos
Objetivo Geral
Apresentar uma análise detalhada sobre os códigos de blocos e sua aplicação na transmissão
digital, destacando a importância da detecção e correção de erros na transmissão de dados.

Objetivos Específicos
 Discutir os conceitos fundamentais na análise de erros em códigos de blocos, incluindo a
matriz de paridade, matriz geradora, matriz de verificação de paridade e a ortogonalidade
de vetores.
 Exemplificar a aplicação prática dos códigos de blocos na detecção e correção de erros na
transmissão digital.

2
1. Códigos de Blocos

De acordo com Haykin & Moher (2008: 431) ‘Um código de bloco é uma coleção de blocos
binários chamados de palavras de código, todos de mesmo tamanho’. Os códigos de blocos são
usados em várias aplicações, como comunicação de dados, armazenamento de dados em
dispositivos de memória e transmissão de informações digitais através de canais ruidosos.

A notação utilizada para descrever um código de bloco é (n, k), onde "n" representa o tamanho do
bloco codificado e "k" representa o tamanho do bloco original não codificado. A taxa de
codificação de um código de bloco é definida como a razão entre o tamanho do bloco original e o
𝑘
tamanho do bloco codificado, ou seja: 𝑟 = 𝑛. Essa taxa é medida em bits por símbolo.

1.1. Peso de Hamming e distância de Hamming

Para analisar a detecção de erro e a capacidade de correção de códigos de bloco, é necessário


definir o peso de Hamming e a distância de Hamming..

Haykin & Moher (2008: 432) definem o peso de Hamming de um bloco binário como ‘o número
de 1s do bloco’. Para um bloco binário A, representa-se o peso de Hamming de A por w(A). Por
exemplo, o peso de Hamming de [1 0 0 1] é dois.

Já a distância de Hamming entre dois blocos binários é o número de lugares nos quais eles
diferem’. Como a expressão A ⊕ B possui 1 em cada posição na qual A e B diferem e zeros em
todos os outros locais, a distância de Hamming d(A, B) pode ser expressa como:

𝑑 (𝐴, 𝐵) = 𝑤 (𝐴 ⊕ 𝐵)

1.2. Matriz de Paridade

No contexto de códigos de bloco, a matriz de paridade é uma matriz usada para detectar erros em
um vetor de codificação. Lin & Costello (2004: 24) definem a matriz de paridade como ‘uma
matriz de dimensões (n-k) x n cujas colunas são os vetores de paridade’.

1 0 0
𝐺 = [0 1 0]
0 0 1

3
1.3. Matriz Geradora

A matriz geradora é um conceito fundamental em códigos de bloco. Lin & Costello (2004: 25)
definem a matriz geradora como ‘uma matriz (k x n) cujas linhas são vetores geradores que é usada
para gerar os vetores de codificação de um código de bloco linear’.

𝑔0 𝑔00 𝑔01 𝑔02 𝑔0,𝑛−1


𝐺 = [ 𝑔1 ] = [ 𝑔10 𝑔11 𝑔12 𝑔1,𝑛−1 ]
𝑔𝑛 𝑔𝑘−1,0 𝑔𝑘−1,1 𝑔𝑘−1,2 𝑔𝑘−1,𝑛−1

𝐺 = [𝑃𝑘𝑥(𝑛∙𝑘) ⋮ 𝐼𝑘𝑥𝑘 ]

Onde os elementos 𝑔1 , 𝑔2 , 𝑔𝑛 são vetores geradores.

Os vetores de codificação de um código linear podem ser gerados a partir dos vetores geradores
multiplicando-se um vetor de mensagem por uma matriz geradora.

𝐶𝑗 = 𝑚𝑗 ∙ 𝐺

Onde: m: vetor de mensagem, 𝑚 = (𝑚1 , 𝑚2 , … , 𝑚𝑘−1 )

Para Haykin & Moher (2008: 434) considerando primeiro o código de Hamming (7,4) e seja mj =
[m1, m2, m3, m4] a representação dos quatro bits de informação, para codificar estes bits, define-
se a matriz geradora k por n do código de Hamming (7,4) dada por:

Observa-se que as quatro primeiras colunas de G são a matriz identidade e mapeiam os bits de
informação neles mesmos. As três últimas colunas de G formam as equações de verificação de
paridade do código. Cada código de bloco possui sua própria e única matriz geradora, apesar de
matrizes geradoras diferentes produzirem códigos com propriedades equivalentes.

1.4. Matriz de verificação de paridade

A matriz de verificação de paridade é outro conceito importante em códigos de bloco. Segundo


Lin & Costello (2004: 25) a matriz de verificação de paridade é ‘uma matriz (n-k) x n cujas linhas

4
são os vetores de paridade, é usada para verificar se um vetor de codificação recebido contém
erros’. Para verificar se um vetor de codificação recebido contém erros, calcula-se o produto
interno desse vetor com a matriz de verificação de paridade.

𝐻 = [𝐼(𝑛−𝑘)∙(𝑛−𝑘) ⋮ 𝑃𝑇 ]

Se o produto interno for igual a zero, significa que o vetor de codificação recebido não contém
erros. Se o produto interno for diferente de zero, isso indica a presença de pelo menos um erro no
vetor de codificação recebido.

Para Haykin & Moher (2008: 435) ‘uma estratégia de decodificação computacional é, portanto,
uma alternativa preferível ao invés do decodificador de lista’. Para isto, para o código de Hamming
(7, 4), pode-se definir a matriz de verificação (n – k) por n, H:

Desta forma, Haykin & Moher (2008: 435) afirmam que:

A porção 3 × 3 inferior de H forma uma matriz unitária e a parte acima da matriz unitária é a porção
direita da matriz geradora. Logo, as colunas da matriz de verificação H formam os coeficientes das
equações de paridade que as palavras do código de Hamming devem satisfazer. Para um código
linear (n, k), as colunas da matriz H descrevem (n – k) equações independentes pelas quais os (n –
k) bits de paridade são calculados.

1.5. Ortogonalidade de vetores

A ortogonalidade de vetores é um conceito importante no estudo de códigos de bloco. De acordo


com Lin & Costello (2004: 2) os vetores ortogonais são ‘vetores que têm um produto interno igual
a zero, no contexto de códigos de bloco, a ortogonalidade de vetores é importante porque permite

5
que os vetores de paridade sejam independentes dos vetores de informação. Os vetores de paridade
são escolhidos de forma que sejam ortogonais a todos os vetores de informação.

Para avaliar a ortogonalidade é preciso encontrar primeiro o vetor correspondente e multiplicar


pela transposta da verificação de paridade. Desta forma, tem-se:

𝑜𝑟𝑡𝑜𝑔𝑜𝑛𝑎𝑙𝑖𝑑𝑎𝑑𝑒 = 𝐶 ∙ 𝐻 𝑇

2. Resolução de problema por de código de blocos

A submatriz de paridade de um código sistemático (6,3) é dada por Q.

1 0 0
𝑄 = [1 0 1]
0 1 1

a) Determine a matriz geradora.

1 0 0 1 0 0
𝑃 = 𝑄 = [1 0 1] 𝐼 = [0 1 0]
0 1 1 0 0 1

𝐺 = [𝑃𝑘𝑥(𝑛∙𝑘) ⋮ 𝐼𝑘𝑥𝑘 ]

1 0 0 1 0 0
𝐺 = [1 0 1 0 1 0 ]
0 1 1 0 0 1

b) A matriz verificadora de paridade.

𝐻 = [𝐼(𝑛−𝑘)∗(𝑛−𝑘) ⋮ 𝑃𝑇 ]

1 0 0 1 1 0
𝑃 = [1 0 1 ] 𝑃 𝑇 = [0 0 1]
0 1 1 0 1 1

1 0 0 1 1 0
c) 𝐻 = [0 1 0 0 0 1]
0 0 1 0 1 1
d) Diga se a palavra de código 110 pertence ao conjunto de mensagens transmitidas.
Fundamente a sua resposta.

6
𝐶 ∙ 𝐻𝑇 = ?

𝐶 =𝑚∗𝐺

1 0 0 1 0 0
𝐶 = 110 ∙ [1 0 1 0 1 0]
0 1 1 0 0 1

𝐶 = 1(1001100) + 1(101010) + 0(011001)

𝐶 = 100100 + 101010

𝐶 = 001110

1 0 0
0 1 0
𝐻𝑇 = 0 0 1
1 0 0
1 0 1
[0 1 1]
1 0 0
0 1 0
𝐶 ∙ 𝐻 𝑇 = 001110 ∙ 0 0 1
1 0 0
1 0 1
[0 1 1]

𝐶 ∙ 𝐻 𝑇 = 0(100) + 0(010) + 1(001) + 1(100) + 1(101) + 0(011)

𝐶 ∙ 𝐻 𝑇 = 0(100) + 0(010) + 1(001) + 1(100) + 1(101) + 0(011)

𝐶 ∙ 𝐻 𝑇 = 001 + 100 + 101

𝐶 ∙ 𝐻 𝑇 = 001 + 100 + 101

𝐶 ∙ 𝐻 𝑇 = 101 + 101

𝐶 ∙ 𝐻 𝑇 = 000

R: condição de ortogonalidade verificada, o código 110 pertence ao conjunto das mensagens


transmitidas.

7
Conclusão
Ao longo deste trabalho, foi possível compreender a importância dos códigos de blocos na
transmissão digital e como eles podem melhorar a confiabilidade e integridade dos dados
transmitidos. Além disso, foram discutidos conceitos fundamentais na análise de erros em códigos
de blocos, como a matriz de paridade, matriz geradora, matriz de verificação de paridade e a
ortogonalidade de vetores.

Através da resolução de um problema prático que utiliza código de blocos, foi possível ilustrar de
forma concreta como esses códigos são aplicados na detecção e correção de erros na transmissão
digital.

Conclui-se, portanto, que os códigos de blocos são uma ferramenta essencial na transmissão digital
e que seu uso pode garantir uma maior confiabilidade e integridade dos dados transmitidos. O
estudo dos conceitos fundamentais na análise de erros em códigos de blocos pode contribuir para
a compreensão de como esses códigos funcionam e como eles podem ser implementados em
diferentes aplicações.

Por fim, é importante ressaltar que a evolução tecnológica continua a demandar uma maior
confiabilidade e integridade na transmissão digital, o que faz com que o uso de códigos de blocos
se torne cada vez mais relevante e necessário. Por isso, o estudo desses códigos deve continuar
sendo aprimorado e desenvolvido para atender às necessidades das aplicações futuras.

8
Referências Bibliográficas
Haykin, Simon. & Moher Michael (2008). Introdução aos sistemas de comunicação. 2. ed. Porto
Alegre: Bookman.

Lakatos, E. M. & Marconi, M. de A. (2007). Fundamentos de Metodologia Ciêntifica. 6.ed. São


Paulo: Atlas.

Lin, S., & Costello Jr, D. J. (2004). Error Control Coding: Fundamentals and Applications.
Pearson Education.

Você também pode gostar