PROJETO DE ENTRELAÇADORES

Tamanho: px
Começar a partir da página:

Download "PROJETO DE ENTRELAÇADORES"

Transcrição

1 UNIVERSIDADE FEDERAL DE PERNAMBUCO CENTRO DE TECNOLOGIA E GEOCIÊNCIAS PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA MARCEL JAR E SILVA PROJETO DE ENTRELAÇADORES PARA CÓDIGOS TURBO RECIFE, DEZEMBRO DE 2006.

2 MARCEL JAR E SILVA PROJETO DE ENTRELAÇADORES PARA CÓDIGOS TURBO Dissertação submetida ao Programa de Pós- Graduação em Engenharia Elétrica da Universidade Federal de Pernambuco como parte dos requisitos para obtenção do grau de Mestre em Engenharia Elétrica ORIENTADOR: PROF. CECILIO JOSÉ LINS PIMENTEL, PH.D. Recife, Dezembro de c Marcel Jar e Silva, 2006

3

4

5 À minha esposa, Fernanda

6 AGRADECIMENTOS No decorrer destes quase dois anos que permaneci no programa de mestrado muitas foram as pessoas que de uma forma ou outra me ajudaram na elaboração desta dissertação. Dessa forma gostaria de expressar aqui o meu mais profundo agradecimento: À Fernanda que me faz a cada dia querer ser alguém melhor e a minha família, em especial a minhã mãe, um exemplo para mim, e aos meus irmãos pelo apoio e incentivos constantes. Ao meu orientador, Cecílio J. Lins Pimentel, pela constante presença em todas etapas do mestrado, seu incentivo, sua amizade e dedicação constantes. Aos professores do Departamento de Eletrônica e Sistemas, em especial a Ricardo Campello, Márcia Mahon, Hélio Magalhães e Valdemar Rocha que durante todo este meu percurso na UFPE foram fontes de inspiração constante em disciplinas e conversas dentro e fora das salas de aulas. Aos amigos e colegas do laboratório de telecomunicações e da sala 402, pelas conversas tão agradáveis e produtivas e pela disposição em ajudar sempre que possível. À Leandro Rocha, Humberto Neto e Dyanna Gomes, três irmãos que eu ganhei durante esses anos, com os quais passei os bons (muitos) e maus (poucos) momentos nestes últimos anos e que estarão sempre comigo, não importa onde estiverem. Ao Conselho Nacional de Desenvolvimento Científico e Tecnológico (CNPq) e ao Programa de Pós-Graduação em Engenharia Elétrica, especialmente na figura do professor Joaquim Martins, pelo apoio financeiro e a estrutura. Por fim, ao professor Fernando Campello, cuja paixão com a qual trabalha é um exemplo a todos ao seu redor e à Tania Campello, uma segunda mãe pra mim. MARCEL JAR E SILVA Universidade Federal de Pernambuco 12 de Dezembro de 2006

7 Il faut savoir s instruire dans la gaieté. Le savoir triste est un savoir mort. L intelligence est joie. Voltaire

8 Resumo da Dissertação apresentada à UFPE como parte dos requisitos necessários para a obtenção do grau de Mestre em Engenharia Elétrica PROJETO DE ENTRELAÇADORES PARA CÓDIGOS TURBO Marcel Jar e Silva Dezembro/2006 Orientador: Prof. Cecilio José Lins Pimentel, Ph.D. Área de Concentração: Comunicações Palavras-chaves: códigos turbo, decodificação iterativa, entrelaçadores Número de páginas: 86 Os entrelaçadores possuem um papel crucial para que os códigos turbo atinjam desempenho próximo da capacidade do canal. Apesar de terem sido introduzidos primeiramente como simples permutações aleatórias, atualmente existem várias classes de entrelaçadores, tais como, S-aleatórios, DRP, polinomiais e quasi-cíclicos, que produzem melhor desempenho para códigos turbo em um canal AWGN e/ou são mais simples de serem armazenados. Este trabalho tem dois objetivos principais. O primeiro é fazer estudos comparativos entre classes de entrelaçadores que apresentam a propriedade da economia de memória em relação aos entrelaçadores aleatórios. Este estudo visa suprir uma lacuna na literatura, que normalmente compara novas classes de entrelaçadores com a classe dos entrelaçadores S-aleatórios. O segundo objetivo é o desenvolvimento de uma nova classe de entrelaçadores que também apresenta a característica da economia de memória, além de garantir altos fatores de espalhamento. Os entrelaçadores pertencentes a esta classe são batizados como entrelaçadores quasi-retangulares.

9 Abstract of Dissertation presented to UFPE as a partial fulfillment of the requirements for the degree of Master in Electrical Engineering INTERLEAVERS DESIGN FOR TURBO-CODES Marcel Jar e Silva December/2006 Supervisor: Prof. Cecilio José Lins Pimentel, Ph.D. Area of Concentration: Communications Keywords: turbo codes, iterative decoding, interleavers Number of pages: 86 Interleavers perform a central role in the near channel capacity performance of turbo codes. Besides been introduced as simple random permutations, nowadays there are several classes of interleavers like s-random, DRP, polynomial, and quasi-cyclic that provide a better performance for turbo codes in an AWGN channel and/or are simpler to store. This work has two main goals. The first one is to perform comparisons between interleaver classes which have the property of memory economy for their allocation, this study aim to fill a lack in the literature, which normally only compares interleavers of new classes with s-random interleavers. The second goal is to develop a new class of interleavers which also have the property of memory economy, besides the fact that it guarantees high spread factors. Interleavers that belong to this class are called quasi-block interleavers.

10 LISTA DE FIGURAS 1.1 Sistema de comunicações digitais Codificadorturbo Decodificadorturbo Patamar de erro na curva de desempenho de um código turbo Curvas de desempenho para entrelaçadores pseudo-aleatórios, N = 256, 512 e 1024 (R =1/2) Curvas de desempenho para entrelaçadores pseudo-aleatório e S-aleatório, N = Padrão de mapeamento de índices para um entrelaçador aleatório, N = Padrão de mapeamento de índices para um entrelaçador retangular, N = 256 (16 16) Padrão de mapeamento de índices para um entrelaçador polinomial, N = 256 (a = 15,b= 32) Padrão de mapeamento de índices para um entrelaçador S-aleatório, N = 256 (S =8) Padrão de mapeamento de índices para um entrelaçador quasi-cíclico, N = OperaçõesrealizadasnoentrelaçadorDRP Entrelaçador DRP, N = Curvas de desempenho para vários entrelaçadores. N = 256, C 1 = C 2 =[75],16 iterações, R =1/ Curvas de desempenho para vários entrelaçadores. N = 256, C 1 = C 2 = [13 15], 16 iterações, R =1/ Curvas de desempenho para vários entrelaçadores. N = 1024, C 1 = C 2 = [13 15], 16 iterações, R =1/ FER versus número de iterações. N = 256, C 1 = C 2 = [13 15],E b /N 0 =3dB Entrelaçador quasi-retangular, N = 256, M 1 = M 2 = Curva de desempenho de um entrelaçador quasi-retangular. N = 256, C 1 = C 2 = [7 5] Curva de desempenho de um entrelaçador quasi-retangular. N = 256, C 1 = C 2 = [13 15] Curva de desempenho de um entrelaçador quasi-retangular. N = 1024, C 1 = C 2 = [13 15]

11 A.1 Módulo de obtenção de curvas de desempenho A.2 Módulo de obtenção de estatísticas de destribuição de erros A.3 Módulo de criação de entrelaçadores A.4 Módulo de análise de entrelaçadores

12 LISTA DE TABELAS 2.1 Espectrodedistâncias Seqüênciapermutadaparaelamesma Entrelaçadores DRP com N = 256, R =1/ Entrelaçadores DRP com N = 1024, R =1/ Entrelaçadores Quasi-Cíclicos com N = 256, R =1/ Entrelaçadores Quasi-Cíclicos com N = 1024, R =1/

13 SUMÁRIO 1 INTRODUÇÃO SistemasdeComunicaçõesDigitais CódigosCorretoresdeErros Organização da Dissertação CÓDIGOS TURBO OCodificadorTurbo O Processo de Codificação DecodificaçãoTurbo Algoritmo BCJR Algoritmo BCJR Modificado RegrasparaConstruçãodeBonsCódigosTurbo Análise de Desempenho dos Códigos Turbo ENTRELAÇADORES OEfeitodoComprimentodoEntrelaçador OEfeitodaEstruturadoEntrelaçador TiposdeEntrelaçadores Entrelaçadores Pseudo-Aleatórios EntrelaçadoresDeterminísticos EntrelaçadoresAleatórioscomEstrutura COMPARAÇÕES DE DESEMPENHO ENTRE CLASSES DE ENTRELAÇADORES PlataformadeSimulação EscolhadosParâmetrosdeSimulação EscolhadosEntrelaçadores Resultados ENTRELAÇADORES QUASI-RETANGULARES MétododeConstrução AnálisedoFatordeEspalhamento Resultados... 64

14 6 CONCLUSÕES, COMENTÁRIOS E SUGESTÕES ConclusõesFinaiseComentários SugestõesparaTrabalhosFuturos REFERÊNCIAS 71 Apêndice A IMPLEMENTAÇÃO COMPUTACIONAL 75 A.1 Implementação em MATLAB R A.1.1 FunçõesdeConversão A.1.2 Funções para Codificação Convolucional A.1.3 Funções para Codificação e Decodificação Turbo A.2ImplementaçãoemC A.2.1 CanalAditivoGaussiano A.2.2 Alocação Dinâmica de Memória A.2.3 Funções para Criação de Entrelaçadores A.2.4 InterfaceGráfica Apêndice B ESTABILIDADE NUMÉRICA 83

15 CAPÍTULO INTRODUÇÃO Information is the resolution of uncertainty. Claude E. Shannon OS últimos 20 anos testemunharam o aparecimento de novos serviços de telecomunicações, entre os quais destacamos a telefonia celular, a world wide web, o comércio eletrônico e a televisão digital, dentre outros. Este progresso extraordinário é fruto de importantes descobertas teóricas em telecomunicações, além do aparecimento de novas tecnologias que permitem a criação de dispositivos para telecomunicações cada vez melhores e mais baratos. Um dos principais objetivos de um sistema de telecomunicações é a transmissão (ou armazenamento) de dados, sejam estes voz, vídeo, imagens. Estes dados são produzidos por uma fonte de informação e são recebidos por um destinatário através de um meio de transmissão denominado de canal de comunicações, que pode ser um cabo coaxial, uma fibra ótica, o ar, etc. Devido a diversos fatores tais como interferência eletromagnética, dissipação de calor, dentre outras (fatores normalmente chamados de ruídos), o canal distorce o sinal que trafega por ele. Em sistemas de transmissão analógicos, existem pelo menos duas formas de minimizar os efeitos do ruído: Aumentando-se a potência de transmissão, o que demanda mais custos de transmissão; Aumentando-se a banda do canal [1] (em sistemas de modulação em fase), o que não é possível na maioria dos casos; A dificuldade de se contornar os efeitos do ruído do canal em transmissões analógicas, aliada ao aparecimento de circuitos lógicos rápidos com alta escala de integração fazem com que cada vez mais sistemas de telecomunicações analógicos migrem para sistemas digitais. Sistemas digitais

16 também são preferíveis aos analógicos por possibilitarem o uso de códigos corretores de erros, o uso de algoritmos de cifragem de dados, o tratamento de dados através de técnicas de processamento digital, além de possuírem esquemas de multiplexação que resultam num melhor aproveitamento da banda passante (CDMA, TDMA), dentre outras vantagens [2]. Por outro lado, a necessidade de sincronização e de protocolos sofisticados são algumas das desvantagens dos sistemas digitais. 1.1 Sistemas de Comunicações Digitais Um sistema de comunicação digital é caracterizado pelo fato do alfabeto de informação a ser transmitido é finito, ao contrário dos sistemas analógicos. Em 1948, Shannon [3] mostrou que é possível, com a utilização de sistemas de comunicações digitais, codificar os dados de forma a reduzir os erros induzidos pelo canal para qualquer nível desejado. Para tanto necessita-se que a taxa de codificação não ultrapasse a capacidade do canal. Desta forma, torna-se necessário a codificação dos dados que se deseje enviar e a posterior decodificação do mesmo ao recebe-lo. Um dispositivo que realiza esta codificação é denominado de codificador de canal, enquanto o dispositivo de decodificação é denominado de decodificador de canal. Um diagrama em blocos de parte de um sistema de comunicações digitais é mostrado na Figura 1.1. Fonte de Informação Codificador de Fonte Codificador de Canal Ruído Canal Destinatário Informação Decodificador de Fonte Decodificador de Canal Figura 1.1: Sistema de comunicações digitais. Note que este sistema possui, além do codificador e decodificador de canal, um codificador de fonte e o seu respectivo decodificador. Este codificador de fonte é usado para fins de compressão e controle das estatísticas do sinal que será enviado para o codificador de canal. A forma como este codificador funciona, entretanto, foge ao escopo deste trabalho. 14

17 1.2 Códigos Corretores de Erros Com a publicação do artigo A Mathematical Theory of Communications [3], Shannon lançou as bases para duas novas áreas do conhecimento, a teoria da informação e a teoria de códigos corretores de erros. Segundo este trabalho, uma das formas de se atingir a capacidade do canal é através do mapeamento aleatório de grupos de bits de comprimento k para palavras-código de comprimento n, o que é computacionalmente inviável. Desta forma se iniciou uma busca por códigos computacionalmente viáveis com taxas que se aproximem da capacidade do canal. Vários códigos corretores de erros viáveis foram encontrados no decorrer das décadas seguintes. Estes códigos podem ser separados basicamente em dois grupos, os códigos de bloco, cuja origem remonta ao trabalho de Hamming [4] em 1950 e os códigos convolucionais, criados por Elias [5] em Existem também códigos formados pela concatenação de dois ou mais códigos [6]. Porém, os melhores códigos encontrados até o começo dos anos 90 necessitavam de aproximadamente 3, 5 db a mais de potência, em canais do tipo aditivo gaussiano branco (AWGN, do inglês, additive white gaussian noise) para proverem a mesma proteção contra erros que um código que atingisse a capacidade do canal [7]. Isto significa que é necessário se prover o dobro da potência teoricamente necessária para se enviar um sinal através de um canal AWGN, de forma que a proteção contra erros seja igual à de códigos que atinjam a capacidade do canal. Em 1993, Berrou, Glavieux e Thitimajshima [8] introduziram uma nova classe de códigos, os códigos turbo, que podiam alcançar desempenhos apenas 0, 5 db inferiores em relação à capacidade do canal. É interessante mencionar que dado os excelentes desempenhos destes códigos, muitos pesquisadores receberam os resultados de Berrou et al com descrédito. Assim, só após a reprodução dos resultados por parte de outros pesquisadores a comunidade científica passou a prestar o devido reconhecimento aos autores desta classe de códigos. Esta nova classe se apoia em três princípios fundamentais [9]: 1. Códigos longos com características aleatórias. As pesquisas na área de códigos corretores de erros, nos anos seguintes à publicação pioneira de Shannon, concentraram-se na construção de códigos com bastante estrutura, de forma a garantir boas propriedades de distância mínima e algoritmos de decodificação eficientes. Entretanto, muita estrutura nem sempre resulta nas melhores propriedades de distância, e códigos muito estruturados normalmente atingem desempenhos muito abaixo dos prometidos por Shannon. Desta forma códigos com característi- 15

18 cas pseudo-aleatórias, mas com alguma propriedade que possibilite sua decodificação através de algoritmos eficientes, podem ter capacidade de correção maior. Nos códigos turbo um dispositivo denominado entrelaçador, que realiza uma permutação na seqüência de entrada, é o responsável pelas características pseudo-aleatórias do mesmo; 2. Concatenação. Este conceito, usado primeiramente por Forney [6], consiste na utilização de dois ou mais códigos, concatenados em série ou em paralelo, para realizar a codificação. Nos códigos turbo clássicos são utilizados codificadores convolucionais concatenados em paralelo; 3. Realimentação. O conceito de realimentação é utilizado há mais de cinqüenta anos nas áreas de eletrônica e sistemas de controle, dentre outras. Entretanto, somente com o aparecimento dos códigos turbo este conceito foi aplicado na decodificação de códigos corretores de erros. Nestes códigos, a decodificação é feita iterativamente, de forma a se reaproveitar informações passadas para se obter uma medida de confiabilidade sobre os dados a serem decodificados. Métodos para realizar a decodificação de forma rápida e eficiente de códigos turbo [10] [11] [12], assim como para melhorar o seu desempenho, são temas de vários artigos publicados na literatura [13] [14]. Entre os métodos propostos, a criação de classes de entrelaçadores com certas propriedades tem mostrado ótimos resultados [15] [16] [17]. Este trabalho tem dois objetivos principais. O primeiro é a realização de testes para comparações de desempenho de códigos turbo utilizando diferentes esquemas de entrelaçamento já propostos na literatura. O segundo objetivo é a proposição de uma nova classe de entrelaçadores para serem usados em códigos turbo, a classe de entrelaçadores quasi-retangulares. 1.3 Organização da Dissertação Esta dissertação é dividida em 6 capítulos. Neste primeiro capítulo é dada uma visão geral dos sistemas de comunicações e códigos corretores de erros, além de se apresentar o objetivo do presente trabalho. O segundo capítulo apresenta os códigos turbo, seus algoritmos de codificação e decodificação, além de certas propriedades e regras para obtenção de bons códigos. O terceiro capítulo aborda os entrelaçadores usados em códigos turbo, apresentando diversas classes de entrelaçadores já propostas na literatura. No Capítulo 4, descreve-se o método utilizado para a realização de comparações de desempenhos de códigos turbo utilizando diferentes entrelaçadores, além de resultados destas comparações. O Capítulo 5 trata da descrição de uma nova classe de entrelaçadores para códigos turbo, denominados entrelaçadores quasi-retangulares. Também apresenta-se neste capítulo 16

19 algumas propriedades destes entrelaçadores, além de curvas de desempenho. O Capítulo 6 apresenta as conclusões deste trabalho, além de alguns comentários e sugestões para trabalhos futuros. 17

20 CAPÍTULO Divide et Impera. CÓDIGOS TURBO Máxima Romana. ESTE capítulo descreve os processos de codificação e decodificação dos códigos turbo. Também apresentam-se algumas regras para a construção de bons códigos turbo e justificativas para o excelente desempenho obtido por estes códigos. 2.1 O Codificador Turbo A Figura 2.1 mostra a estrutura do codificador turbo utilizado por Berrou, Glavieux e Thitimajshima em seu trabalho pioneiro sobre o assunto [8]. O codificador turbo é formado pela concatenação em paralelo de dois ou mais codificadores convolucionais sistemáticos realimentados (doravante chamados de codificadores constituintes), que podem ou não serem iguais, e um entrelaçador. No caso de mais de dois codificadores constituintes cada novo codificador terá um entrelaçador distinto em sua entrada. A concatenação é dita ser em paralelo pois os codificadores operam sobre os mesmos blocos de informação de entrada, ao contrário da concatenação em série, onde o segundo codificador recebe como entrada a saída do primeiro codificador [18]. Neste trabalho serão analisados somente os códigos turbo com dois codificadores constituintes realimentados, sistemáticos utilizando um esquema de concatenação em paralelo. O esquema de modulação digital empregado é o BPSK (do inglês binary-phase shift keying). O papel do entrelaçador é o de fazer uma permutação de cada bloco de bits de entrada. Estas versões permutadas dos blocos de entrada atuam como entradas para o segundo codificador, de forma que os dois codificadores operem sobre versões entrelaçadas de um mesmo bloco de informação.

21 v (0) v (1) u Codificador v (2) + Π Entrelaçador Codificador 2 Figura 2.1: Codificador turbo O Processo de Codificação Os códigos turbo operam com blocos de informação que possuem exatamente o mesmo tamanho do entrelaçador. Isto se deve ao fato de que um entrelaçador de comprimento N só pode realizar a permutação após receber todos os N bits de informação. Como a codificação é realizada de forma sistemática, a seqüência de informação u é a seqüência de paridade v (0), logo: u = v (0) = O primeiro codificador gera a seqüência de paridade: v (1) = ( ) v (0) 0,v(0) 1,v(0) 2,...,v(0) N. (2.1) ( ) v (1) 0,v(1) 1,v(1) 2,...,v(1) N. (2.2) O entrelaçador reordena os N bits do bloco de informação de forma que o segundo codificador recebe uma seqüência de informação u diferente de u. A seqüência de paridade gerada pelo segundo codificador é: v (2) = A palavra código transmitida é portanto: ( ) v (2) 0,v(2) 1,v(2) 2,...,v(2) N. (2.3) 19

22 ( v = v (0) 0,v(1) 0,v(2) 0,v(0) 1,v(1) 1,v(2) 1,...,v(0) N,v(1) N,v(2) N )., (2.4) A taxa deste código turbo é R =1/3, como pode-se ver na Figura 2.1, porém esta pode ser aumentada através de puncionamento (perfuramento). Uma técnica muito comum é o puncionamento alternado dos bits de paridade v (1) l e v (2) l de forma que a seqüência de bits de informação u = ( (u 0,u 1,u 2,...,u N ) gera a palavra código v = v (0) 0,v(1) 0,v(0) 1,v(2) 1,...,v(0) N 1,v(1) N 1,v(0) N,v(2) N ),, obtendo-se assim uma taxa R =1/2. Normalmente o primeiro codificador constituinte é terminado, isto é, forçado para o estado zero ao fim da codificação de um bloco. É importante salientar que codificadores convolucionais realimentados não necessariamente retornam ao estado zero após uma seqüência de zeros. É necessário determinar em que estado o codificador está no final da transmissão de um bloco e enviar uma seqüência específica para cada estado (estes bits de terminação são normalmente chamados de tail bits). Devido à presença do entrelaçador, há uma grande probabilidade do segundo codificador não ser terminado. Apesar de alguns autores terem proposto técnicas para eliminar este problema [19] e [20], simulações mostram que esta não terminação resulta em uma degradação imperceptível do desempenho para entrelaçadores longos. A razão para a terminação do primeiro codificador constituinte é o fato de que, sem esta terminação, a seqüência contendo N 1 zeros seguidos de um 1 seria uma entrada válida. Esta seqüência é permutada para ela mesma em alguns permutadores e portanto a distância mínima de um código turbo puncionado seria de apenas 2 [18]. Outra razão para esta terminação é garantir que o próximo bloco de informação encontre o codificador inicialmente no estado zero [21]. É importante salientar que esta necessidade de terminação afeta muito pouco a taxa de codificação, pois normalmente o comprimento do entrelaçador é grande e são necessários, no máximo, apenas ν 1 bits para a terminação do codificador. Exemplo Para o codificador da Figura 2.1, atuando em blocos de comprimento 16, com entrelaçador: a entrada: Π=( ), 20

23 u =( ), gera, para um esquema de codificação não-puncionado, a palavra-código: v =( ). No caso de um esquema de codificação puncionado, onde os bits de paridade pares correspondem aos bits de paridade do primeiro codificador constituinte, e os bits de paridade ímpar aos do segundo, a palavra código formado pela mesma entrada seria: v =( ). 2.2 Decodificação Turbo A decodificação turbo usando um algoritmo de máxima verossimilhança, ignorando a estrutura dos codificadores constituintes, precisaria comparar as 2 N seqüências possíveis com a seqüência recebida, o que é claramente inviável computacionalmente [22]. A decodificação turbo é portanto realizada através da decodificação iterativa dos códigos constituintes, dividindo-se, assim o processo de decodificação total em processos de decodificação mais simples. Evidências empíricas mostram que este esquema de decodificação, apesar de sub-ótimo, quase sempre converge para uma solução ótima [18]. O diagrama esquemático de um decodificador turbo pode ser visto na Figura 2.2. No diagrama, r (0), r (1) e r (2) são as componentes do vetor recebido correspondentes à componente sistemática do sinal, v (0), e as componentes de paridade dos codificadores constituintes, v (1) e ( ) v (2), respectivamente. û representa o vetor decodificado. L (1) e = L (1) e (u 0 ),L (1) e (u 1 ),...,L (1) e (u N ) ( ) e L (2) e = L (2) e (u 0 ),L (2) e (u 1 ),...,L (2) e (u N ) são os vetores contendo as informações extrínsecas passadas de um decodificador para o outro durante o processo iterativo de decodificação. Na iteração inicial do decodificador 1, os valores L (2) e (u l ) são iguais às razões de verossimilhança (LLR, do inglês log-likelihood ratio) a priori: L a (u l ) = log P (u l =+1),l=0,...,N 1 (2.5) P (u l = 1) que, no caso de símbolos de informação equiprováveis, são todas nulas. 21

24 r (1) π 1 L (2) e + Desentrelaçador DEC 1 DEC 2 r (0) + L (1) e π û Entrelaçador r (2) r (0) π Entrelaçador Figura 2.2: Decodificador turbo. O melhor desempenho possível para os decodificadores constituintes (DEC1 e DEC2 na Figura 2.2) é obtido através da utilização de um algoritmo de máxima probabilidade a posteriori (MAP, do inglês maximun a posteriori probability) [23]. Outros decodificadores SISO (do inglês soft-in softoutput) mais simples, como o SOVA (do inglês, soft-output Viterbi algorithm), ou Max-log-MAP podem ser utilizados, porém possuem um desempenho inferior [24], [25] e [26]. O decodificador SISO escolhido para este trabalho é idêntico ao utilizado por Berrou et al [8]. Este é baseado no algoritmo BCJR, criado por Bahl et al [27] em Na seção seguinte o algoritmo BCJR é apresentado. Em seguida são apresentadas as modificações necessárias propostas por Berrou et al para o algoritmo levar em consideração o caráter recursivo dos códigos turbo Algoritmo BCJR O algoritmo BCJR busca a minimização da taxa de bits errados, (BER do inglês bit error rate), isto é, a probabilidade P (û l u l r). Para isto o algoritmo calcula as razões de verossimilhança de probabilidade a posteriori (APP LLR s, do inglês a posteriori probability log-likelihood ratios): [ ] P (ul =+1 r) L(u l ) = log,l=0,...,n 1. (2.6) P (u l = 1 r) De forma que cada bit de informação decodificado é obtido através da seguinte regra de decisão: 0, caso L(u l ) < 0; û l = 1, caso L(u l ) 0. l =0, 1,..., N 1. (2.7) 22

25 Para iniciar o desenvolvimento do algoritmo, utiliza-se a regra de Bayes para se obter: Porém, temos que: P (u l =+1 r) = P (u l =+1, r). (2.8) P (r) P (u l =+1)= P (u), (2.9) isto é, a probabilidade de u l ser igual a +1 é igual a soma das probabilidades de todos os vetores u tais que a l-ésima componente seja igual a +1 (o espaço destes vetores é representado por U + l ). Usando o resultado de (2.9) em (2.8) obtém-se: u U + l u U + l P (u, r) P (u l =+1 r) = P (r). (2.10) Usando novamente a regra de Bayes e lembrando que B P (A, B) =P (A),temos: P (u l =+1 r) = P (r u)p (u) u P (r, u) = u U + l u U + P (r u)p (u) l u P (r u)p (u). (2.11) Finalmente, lembrando que há uma relação determinística entre u e v, ficamos com: P (u l =+1 r) = u U + P (r v)p (u) l u P (r v)p (u), (2.12) o que, substituído em (2.6) fornece: L(u l ) = log [ u U + l u U l ] P (r v)p (u). (2.13) P (r v)p (u) O cálculo de L(u l ) através de (2.13) se torna inviável quando o comprimento dos vetores de entrada (N) é grande, devido ao fato de ser necessário a realização de 2 N 1 cálculos de somas e multiplicações de probabilidades. Por isto, o algoritmo BCJR se utiliza da estrutura em treliça dos códigos para diminuir a complexidade computacional do processo de decodificação. Usando-se a estrutura em treliça do código, pode-se reformular (2.8) para se obter: (s,s) S + l P (s l = s,s l+1 = s, r) P (u l =+1 r) =, (2.14) P (r) onde (s,s) S + l representa o espaço de todas as transições de estados s l = s e s l+1 = s que produzem o bit de saída u l =+1. Obtém-se assim: 23

26 [ (s L(u l ) = log,s) S + P (s ],s,r) l (s,s) S P (s. (2.15),s,r) l Embora seja equivalente à (2.13), a equação (2.15) apresenta a necessidade de se realizar apenas 2 v somas de probabilidades (uma para cada par de estados), o que a torna uma alternativa muito atraente quando o valor de N é elevado. A expressão (2.15) pode ser calculada recursivamente. Para isto, note que: P (s,s,r) =P (s,s,r t<l, r l, r t>l ), (2.16) onde, r t<l representa a porção da seqüência recebida até o instante l, r l representa a porção da seqüência recebida no instante l e r t>l representa a porção da seqüência recebida após o instante l. Aplicando a regra de Bayes, temos: P (s,s,r t<l, r l, r t>l )=P (r t>l s,s,r t<l, r l )P (s,s,r t<l, r l ) = P (r t>l s,s,r t<l, r l )P (s, r l s, r t<l )P (s, r t<l ). (2.17) Como a probabilidade r t>l só depende do estado e da entrada no tempo l, pode-se reescrever (2.17) como: P (s,s,r t<l, r l, r t>l )=P (r t>l s)p (s, r l s )P (s, r t<l ). (2.18) Os três termos do produto do lado direito de (2.18) são renomeados: α l (s ) P (s, r t<l ); (2.19a) β l+1 (s) P (r t>l s); (2.19b) γ l (s,s) P (s, r l s ). (2.19c) É importante perceber que cada um destes três termos tem um significado próprio: α l (s) : Probabilidade que a seqüência recebida até otempol seja r t<l, e o codificador esteja no estado s em l; β l+1 (s) : Probabilidade que a seqüência recebida após otempol seja r t>l, e o codificador esteja no estado s em l +1; γ l (s, r l s ): Probabilidade de transição para o estado s em l +1com seqüência recebida r l,dado que o codificador está no estado s em l. 24

27 Desta forma, pode-se reescrever (2.18) da seguinte forma: o que, substituindo em (2.15) fornece: P (s,s,r) =α l (s )β l+1 (s)γ l (s,s), (2.20) [ (s L(u l ) = log,s) S + α l (s )β l+1 (s)γ l (s ],s) l (s,s) S α l (s )β l+1 (s)γ l (s. (2.21),s) l Pode-se calcular os valores de α l (s) recursivamente da seguinte forma: α l+1 (s) =P (s, r t<l+1 ;) = P (s,s,r t<l+1 ); s σ l = P (s, r l s, r t<l )P (s, r t<l ); s σ l = P (s, r l s )P (s, r t<l ); s σ l = γ l (s,s)α l (s ), s σ l (2.22) onde σ l é o conjunto de todos os estados no tempo l. As condições de contorno (para um codificador iniciando no estado zero) são: 1, caso s =0; α 0 (s )= 0, caso s 0. (2.23) Pode-se calcular os valores de β l (s ) recursivamente fazendo-se: β l (s )=P (r t>l 1 s ); = P (r l, r t>l s ); = P (s, r l, r t>l s ); s σ l+1 = P (r t>l s, s, r l )P (s, r l s ); s σ l+1 = P (r t>l s)p (s, r l s ); s σ l+1 = β l+1 (s)γ l (s,s), s σ l+1 (2.24) 25

28 onde σ l+1 é o conjunto de todos os estados no tempo l +1. As condições de contorno para um codificador terminado são: 1, caso s =0; β N (s) = 0, caso s 0. (2.25) No caso de um codificador não terminado, assume-se que o codificador pode estar, ao final do processo, em qualquer um dos 2 ν estados com probabilidade igual. As condições de contorno, neste caso, são portanto: Pode-se reescrever (2.19c) como: β N (s) = 1, s. (2.26) 2ν γ l (s,s)=p(s, r l s ); = P (s, r l,s ) P (s ; ) [ P (s,s) = P (s ) ][ P (s, rl,s ) P (s,s) = P (s s )P (r l s,s). ] ; (2.27) Como a transição de s para s determina a porção da palavra código para esta transição, temos: γ l (s,s)=p (s s )P (r l v l ). (2.28) Finalmente, dado um certo estado, a sua transição para outro estado é completamente determinada pela entrada, portanto, caso seja possível a transição de s para s, temos: γ l (s,s)=p(u l )P (r l v l ). (2.29) O algoritmo BCJR possui problemas de estabilidade numérica. Desta forma, várias alternativas para se contornar estes problemas foram propostas. O Apêndice B apresentam algumas destas alternativas Algoritmo BCJR Modificado Para a decodificação iterativa, faz-se necessário extrair a informação extrínseca contida em (2.21). Usando-se a LLR em (2.5): 26

29 e as identidades (2.31) e (2.32): ( ) P (ul =+1) L a (u l ) log. (2.30) P (u l = 1) ( ) P (ul = 1) /P (u l =+1) P (ul =+1)/P (u l = 1) = P (u l =+1), (2.31) 1+P (u l = 1) /P (u l =+1) e ( ) P (ul = 1) /P (u l =+1) P (ul = 1) /P (u l =+1)=P (u l = 1), (2.32) 1+P (u l = 1) /P (u l =+1) é possível reescrever P (u l ) como: ( e L a (u l )/2 P (u l )= 1+e L a(u l )/2 ) e u ll a (u l )/2. (2.33) Como o termo entre parênteses de (2.33) é independente do valor de u l, esta equação é simplificada para: P (u l )=A l e u ll a (u l )/2. (2.34) De posse de (2.34), é necessária, para o cálculo de (2.29), uma expressão para a obtenção dos valores de P (r l v l ). Cada decodificador da Figura 2.2 recebe duas entradas, r (0) que é a porção do vetor recebido correspondente aos bits sistemáticos, e r (1), no caso do decodificador 1 ou r (2),no caso do decodificador 2, que são as porções do vetor recebido correspontentes aos bits de paridade dos dois codificadores constituintes. Para simplificar a notação, define-se r s r (0), v s v (0) = u, r p r (1) e v p v (1) para o codificador/decodificador 1, e r p r (2) e v p v (2) para o codificador/decodificador 2. A cada bit a ser decodificado, o decodificador (independente de qual) recebe um vetor r l = (rl s,rp l ), correspondente à versão corrompida pelo canal do vetor v l =(vl s,vp l )=(u l,v p l ). Desta forma, para um canal AWGN com variância σ 2 : ou [ ] P (r l v l ) exp (rs l u l) 2 2σ 2 (rp l vp l )2 2σ 2, (2.35) P (r l v l ) exp [ ( (r s l ) 2 +(u l ) 2 +(r p l )2 +(v p l )2) ] [ ul rl s 2σ 2 exp + vp l rp l σ 2 ]. (2.36) 27

30 Como o primeiro termo de (2.36) independe do valor de u l, a equação pode ser reescrita da seguinte forma: [ ul rl s P (r l v l ) B l exp + vp l rp l σ 2 Desta forma, observando-se (2.29), (2.34) e (2.37), temos: [ γ l (s ul rl s,s) A l B l exp [u l L a (u l ) /2] exp + vp l rp l σ 2 onde σ 2 = N 0 /2RE b. ]. (2.37) ], (2.38) Em (2.21) os valores de γ l (s,s) sempre aparecem simultaneamente no numerador e no denominador. Logo, pode-se fazer: onde [ γ l (s ul rl s,s) = exp[u l L a (u l ) /2] exp + ] vp l rp l σ 2 ; (2.39) [ 1 = exp 2 u l (L a (u l )+L c rl s )+ 1 ] 2 L cv p l rp l ; (2.40) [ ] [ ] 1 1 = exp 2 u l (L a (u l )+L c rl s ) exp 2 L cv p l rp l ; (2.41) [ ] 1 = exp 2 u l (L a (u l )+L c rl s ) γl e (s,s), (2.42) e L c 4RE b N 0, (2.43) [ ] 1 γl e (s,s) exp 2 L cr p l vp l. (2.44) Finalmente, pode-se reescrever (2.21) como: L(u l ) = log = log [ (s,s) S + l (s,s) S l [ (s,s) S + l (s,s) S l = L c r s l + L a (u l ) + log α l (s )β l+1 (s)γ l (s ],s) α l (s )β l+1 (s)γ l (s ; (2.45),s) α l (s )β l+1 (s)exp [ 1 2 u l (L a (u l )+L c rl s)] γl e ] (s,s) α l (s )β l+1 (s)exp [ 1 2 u l (L a (u l )+L c rl s)] γl e ; (2.46) (s,s) [ (s,s) S + l (s,s) S l α l (s )β l+1 (s)γl e ] (s,s) α l (s )β l+1 (s)γl e. (2.47) (s,s) 28

31 O primeiro termo de (2.47) é chamado de valor do canal, o segundo termo representa a informação a priori e o terceiro termo é a informação extrínseca que é enviada como informação a priori para o outro decodificador. Na última iteração, os valores L(u l ) são utilizados na regra de decisão (2.7) para a obtenção do vetor decodificado. 2.3 Regras para Construção de Bons Códigos Turbo A construção de bons códigos turbo ainda é um tema em constante desenvolvimento. Entretanto, existem algumas regras simples, já sedimentadas na literatura acerca do tema, para a construção dos mesmos: Escolhem-se codificadores constituintes realimentados: Em codificadores não realimentados, seqüências longas de zeros fazem o codificador retornar ao estado inicial e geram palavras código com baixo peso de Hamming. No caso dos codificadores realimentados, seqüências de zeros fazem os mesmos percorrerem um ciclo de estados o que gera palavras códigos com alto peso de Hamming; Escolhem-se polinômios primitivos para a realimentação: Esta regra é baseada na observação de que o peso de Hamming do ciclo mínimo possui maior probabilidade de ser maior em ciclos longos. É sabido da teoria dos registradores de deslocamento lineares realimentados que a escolha de um polinômio primitivo de grau ν como polinômio de realimentação resulta em um ciclo máximo. O comprimento deste ciclo é 2 ν 1. Escolhem-se entrelaçadores com fatores de dispersão apropriados: Esta regra trás em si um dilema. Entrelaçadores com padrões muito regulares podem apresentar fatores de espalhamento altos (isto é, mapeiam bits que originalmente se encontravam em posições próximas para posições afastadas), entretanto, não possuem bom desempenho devido às multiplicidades altas do seu espectro de distâncias. Entrelaçadores puramente aleatórios, por sua vez, resultam em códigos com baixas distâncias mínimas (d free ). É necessário se fazer então um compromisso entre estrutura e aleatoriedade na criação de entrelaçadores, como será visto no próximo capítulo. 2.4 Análise de Desempenho dos Códigos Turbo Em [28] a análise de desempenho dos códigos turbo é feita através de limitantes da probabilidade de erro que levam em conta o espectro de distâncias do mesmo. Para isto os autores analisaram 29

32 primeiramente o desempenho de códigos convolucionais para traçar um paralelo com os códigos turbo. Os passos principais desta análise estão descritos a seguir. A BER de um código convolucional, utilizando-se um algoritmo de máximo-verossimilhança (ML, do inglês, maximun-likelihood), em um canal AWGN, é limitada superiormente por: P b 2 N i=1 w i N Q ( d i 2RE b N 0 ), (2.48) [28] onde, w i corresponde ao peso de Hamming da i-ésima seqüência de informação e d i ao peso de Hamming da i-ésima palavra-código. Pode-se definir o peso médio de informação por palavra-código como: w d = W d, (2.49) N d onde W d é a soma dos pesos de Hamming de informação de todas as palavras-código de peso d, e N d é o número total de palavras-código de peso d. Desta forma, (2.48) pode ser reescrita como: P b 2(ν+N) N d w d N d=d free Q ( d 2RE b N 0 ). (2.50) Para N suficientemente grande, se um código convolucional possui Nd 0 palavras-código de peso d devido a seqüências de informação x cujo primeiro 1 ocorre no tempo 0, então ele também possui Nd 0 palavras-código de peso d devido a seqüências Dx, onde D representa um atraso, e assim sucessivamente. Desta forma: e N d lim N N = N d 0, (2.51) lim w W d d = lim = W d 0 N N N d Nd 0 w d, 0 (2.52) onde Wd 0 é a soma dos pesos de Hamming de todas as palavras-código de peso d obtidas através de seqüências de informação cujo primeiro 1 ocorre no tempo 0. Desta forma, podemos reescrever (2.50) como: P b 2(ν+N) d=d free N 0 d w d Q ( d 2RE b N 0 ) = 2(ν+N) d=d free W 0 d Q ( d 2RE b N 0 ), (2.53) 30

33 que é o limitante da união para decodificação de máxima verossimilhança. É devido a este resultado que a busca de bons códigos convolucionais é tradicionalmente feita através da procura de códigos que maximizem a distância mínima (d free ). O desempenho de códigos turbo empregando um esquema de decodificação ML também pode ser limitado através de (2.50). Entretanto, devido ao entrelaçador, o código é variante no tempo e, portanto, uma seqüência Dx possui baixa probabilidade de ser mapeada para Dx, onde x éa palavra-código gerada pela seqüência x. Desta forma, para entrelaçadores aleatórios N d w d é muito menor do que N para palavras-código de baixo peso. Isto se deve ao entrelaçador que mapeia, com alta probabilidade, seqüências que geram palavras-código de baixo peso no primeiro codificador constituinte para palavras código de alto peso no segundo codificador constituinte. Desta forma, em um código turbo, as primeiras componentes do espectro de distâncias são menos densas, em relação às primeiras componentes de códigos convolucionais. Este fenômeno foi denominado em [28] de spectral thinning. Em [23] é feita uma comparação entre os espectros de distâncias de códigos turbo e convolucionais com taxas iguais, mostrando claramente a vantagem do primeiro sobre o segundo. Os primeiros termos do espectro de distâncias de um código convolucional terminado (com seqüência de entrada de comprimento 32, sendo os quatro últimos bits de terminação) e um código turbo com mesmo comprimento, codificadores constituintes iguais e um entrelaçador pseudo-aleatório, são mostrados na Tabela 2.1. Como ambos os códigos da Tabela 2.1 possuem o mesmo número de palavras código, a menor densidade nos primeiros termos do espectro do código turbo é compensada por uma maior densidade nos termos de maior distância (não mostrados na tabela). O fenômeno de spectral thinning, aliado à decodificação iterativa, é a chave para a obtenção do excelente desempenho dos códigos turbo, sobretudo nas regiões de baixa relação sinal ruído. No caso de relação sinal ruído moderadas e altas, o limitante da união de (2.50) é dominado pelo termo da distância mínima, logo: P b N free w free = Q N ( d 2RE b N 0 ) (2.54) Como a inclinação da curva de desempenho nestas condições é essencialmente determinada pela distância mínima do código [28], pode-se concluir que o fenômeno do patamar de erro observado nas curvas de desempenho dos códigos turbo deve-se ao fato deste códigos possuírem uma distância mínima relativamente baixa 1. A Figura 2.3 mostra a curva de desempenho para o código turbo 1 No caso do código da Tabela 2.1, por exemplo, a distância mínima do código turbo é igual à do código convolucional constituinte. 31

34 Tabela 2.1: Espectro de distâncias. Código Convolucional Código Turbo Peso Multiplicidade Peso Multiplicidade apresentado em [8] após 18 iterações. Note o aparecimento do fenômeno do patamar de erro para E b /N 0 > BER E /N b 0 Figura 2.3: Patamar de erro na curva de desempenho de um código turbo. A partir destes resultados pode-se dividir a análise da performance de códigos turbo em duas 32

35 regiões: 1. Baixa relação sinal ruído: Nesta região, batizada de waterfall, há uma acentuada queda da BER com o aumento da relação sinal-ruído. Esta queda acentuada é conseqüência da baixa multiplicidade dos primeiros termos do espectro de distâncias; 2. Média e alta relação sinal ruído: Nesta região, batizada de patamar de erro, o decaimento da BER é suave, devido ao fato da distância mínima, que não é alta para códigos turbo, dominar o resultado de (2.50). A busca por códigos turbo bons tem se concentrado na procura de entrelaçadores que aumentem a distância mínima do código, sem perder a propriedade de spectral thinning. O capítulo seguinte apresenta detalhadamente o papel dos entrelaçadores para a codificação e decodificação turbo, além de apresentar vários tipos de entrelaçadores propostos na literatura. 33

36 CAPÍTULO ENTRELAÇADORES We can think of good codes, and even decode them. Battail Oentrelaçador de um codificador turbo realiza uma permutação da seqüência de bits de entrada. A seqüência permutada é a entrada do segundo codificador. Devido ao seu papel crucial na obtenção do excelente desempenho dos códigos turbo faz-se necessário estudá-los de forma detalhada. No decorrer deste capítulo são descritas as técnicas mais importantes de construção de entrelaçadores. 3.1 O Efeito do Comprimento do Entrelaçador O fenômeno de spectral thinning, definido no capítulo anterior, está intimamente conectado ao comprimento N do entrelaçador. De fato, as multiplicidades dos primeiros termos do espectro de distâncias são reduzidas por um fator de aproximadamente 1/N (no caso dos entrelaçadores aleatórios). Este fator é chamado de ganho do entrelaçador [29]. Como visto no capítulo anterior, o desempenho de um código turbo para baixas relações sinal ruído é fortemente influenciado por estas multiplicidades. O tamanho do entrelaçador é um fator dominante para o desempenho dos códigos turbo nesta região [21]. A Figura 3.1 ilustra esta propriedade. Esta apresenta curvas de desempenho de códigos turbo com codificadores constituintes [1 + D 2 + D 3, 1+D + D 3 ] 1, onde o primeiro termo representa a 1 Cuja representação em octal é [13 15], tomando-se os bits mais a esquerda como os mais significativos. Estes codificadores constituintes são os mesmos usados no padrão 3GPP [30].

37 realimentação, e diferentes comprimentos de entrelaçadores obtidas através de simulações. Figura 3.1: Curvas de desempenho para entrelaçadores pseudo-aleatórios, N = 256, 512 e 1024 (R =1/2). 3.2 O Efeito da Estrutura do Entrelaçador Como visto no capítulo anterior, o desempenho dos códigos turbo na região de alta relação sinal ruído é dominada pela distância mínima e pelos primeiros componentes do espectro de distâncias. Estes componentes são produzidos por seqüências de entrada de baixo peso de Hamming. Desta forma, a estrutura de um entrelaçador ideal deve sempre fazer com que as seqüências de entrada que geram as palavras-código de peso baixo sejam mapeadas para seqüências que geram palavras-códigos de peso alto. Uma característica importante dos entrelaçadores é o seu fator de espalhamento, que é uma medida que indica o quão afastadas estão duas posições que antes de serem entrelaçadas estavam próximas. Existem duas definições formais para o fator de espalhamento. Definição 1: Esta definição é usada quando se deseja criar um entrelaçador através de um algoritmo que tem como argumento um fator de espalhamento mínimo. Foi utilizada pela primeira vez em [15]. Seja J o fator de espalhamento mínimo requerido e sejam u i e u j duas posições distintas. Definimos S (J, u i,u j ) como: 35

38 S (J, u i,u j )= π(u i ) π(u j ), para u i u j <J, (3.1) a partir de S (J, u i,u j ) define-se S (J, u i ) como: S (J, u i )=min j,j i (S (J, u i,u j )), (3.2) finalmente, a partir de S (J, u i ) obtém-se o fator de espalhamento: S(J) =min(s (J, u i )). (3.3) i Normalmente S = J, isto é, o fator de espalhamento é igual ao fator de espalhamento mínimo requerido, entretanto J é somente um limitante inferior, portanto é possível se obter fatores de espalhamento maiores do que os requeridos. Definição 2: Esta definição, criada em [31], é mais flexível que a anterior, pois não necessita da especificação de um parâmetro de espalhamento mínimo e não é ligada a nenhuma classe de entrelaçadores específica. Sejam u i e u j duas posições distintas. Definimos S new(j, u i,u j ) como: a partir de S new(u i,u j ) define-se S (u i ) como: S new(u i,u j )= π(u i ) π(u j ) + u i u j, (3.4) S new(u i )=min j,j i (S new(u i,u j )), (3.5) finalmente, a partir de S new (u i ) obtem-se o fator de espalhamento: S new =min(s (u i )). (3.6) i A Figura 3.2 mostra as curvas de desempenho de um código turbo com um entrelaçador de comprimento N = 1024 pseudo-aleatório e de outro de mesmo comprimento, porém com um fator de espalhamento S =8(segundo a definição 1). 3.3 Tipos de Entrelaçadores É possível classificar os entrelaçadores propostos na literatura em categorias e descrever algumas classes de entrelaçadores mais importantes. A seguir são descritas diversas classes de entrelaçadores 36

39 Figura 3.2: Curvas de desempenho para entrelaçadores pseudo-aleatório e S-aleatório, N = pertencentes a cada categoria: entrelaçadores puramente aleatórios, entrelaçadores determinísticos e entrelaçadores aleatórios com estrutura Entrelaçadores Pseudo-Aleatórios Os códigos turbo originais [8] foram construídos utilizando entrelaçadores que realizam uma permutação aleatória da seqüência de entrada. Estes entrelaçadores apresentam a vantagem de não possuírem padrões de repetição. Desta forma, uma seqüência de entrada que gera uma palavra código de peso baixo, mapeada para outra seqüência que também gera uma palavra-código de peso baixo, possui uma baixa probabilidade de, ao ser deslocada, apresentar o mesmo problema. Suponha que a entrada: é permutada para: u(d) =(1+D t )D q 1, u (D) =(1+D t )D q 2. Logo, caso o valor de t seja um pequeno múltiplo do período fundamental do polinômio de realimentação do codificador, ambos codificadores geram seqüências com baixo peso de Hamming [21], gerando assim uma palavra-código com baixo peso. Como o entrelaçador não apresenta padrões, a 37

40 probabilidade de: u(d) =(1+D t )D q 1+τ, ser permutada para: u (D) =(1+D t )D q2+τ, é muito baixa. Veremos mais adiante que alguns entrelaçadores determinísticos mantém certos padrões, de forma que a probabilidade de uma seqüência manter uma permutação ruim após um deslocamento é bem maior que no caso dos entrelaçadores aleatórios. Os codificadores aleatórios apresentam duas desvantagens. A primeira é que estes permitem o mapeamento de índices próximos na entrada para índices próximos na saída, por exemplo, a seqüência (...u 6,u 7,u 8,u 9...) pode ser mapeada para (...u 6,u 32,u 86,u 9...). Isto permite o aparecimento de palavras-código de baixo peso de Hamming, fazendo que a distância mínima do código (d free ) seja baixa. Outra desvantagem é a necessidade de se armazenar todos os N índices do entrelaçador no codificador e todos os N índices do desentrelaçador no decodificador. O padrão de aleatoriedade do entrelaçador é investigado na Figura 3.3. Nesta figura, denominada de padrão de mapeamento de índices, o eixo das abcissas indica a posição dos bits antes do entrelaçamento, enquanto o eixo das cordenadas indica a posição dos mesmos após o entrelaçamento. Figura 3.3: Padrão de mapeamento de índices para um entrelaçador aleatório, N = 256. No padrão de mapeamento de índices, pontos que aparecem próximos uns dos outros significam 38

41 que a posição inicial (eixo das abcissas) e a posição após o entrelaçamento (eixo das ordenadas) dos mesmos estão próximas. Logo, o fator de espalhamento de um entrelaçador pode ser, grosso modo, determinado visualmente através deste tipo de figura. Na Figura 3.3 é possível observar que existem algumas regiões com vários pontos próximos uns dos outros. Isto mostra que os entrelaçadores aleatórios possuem um baixo fator de espalhamento Entrelaçadores Determinísticos Entrelaçadores Retangulares Uma forma simples de evitar o mapeamento de índices próximos na seqüência de entrada para índices próximos na seqüência de saída, além de evitar a necessidade de se armazenar os N elementos do entrelaçador, é através de um entrelaçador retangular. Sejam m e n dois inteiros tal que N = m n. Monta-se uma matriz com m linhas e n colunas e escreve-se os índices da seqüência de entrada na matriz preenchendo-a linha a linha e faz-se a leitura na saída do entrelaçador lendo-a coluna a coluna. Por exemplo, para o caso N =15pode-se usar uma matriz 3 5 como abaixo: Desta forma a permutação utilizada é, representandado-se a seqüência (u 0,u 1,...,u 14 ) pelos seus índices: π(u) =(0, 5, 10, 1, 6, 11, 2, 7, 12, 3, 8, 13, 4, 9, 14) Embora estes entrelaçadores sejam eficientes para evitar que seqüências de peso dois, com os dois 1 s próximos sejam mapeadas para outras seqüências com esta mesma propriedade, estes entrelaçadores não apresentam um bom desempenho. Isto é explicado pelo fato que estes entrelaçadores não quebram vários padrões de seqüências de entrada de pesos 4, 6, 9 dentre outros [32]. A Tabela 3.1 mostra um exemplo de uma seqüência de peso 4 que é permutada para ela mesma [18]. Para um entrelaçador retangular N = n n existirão (n 5) (n 5) seqüências desta forma. Então, a regularidade do entrelaçador faz com que as multiplicidades destas seqüências sejam muito altas prejudicando o desempenho do código (entrelaçadores retangulares apresentam desempenhos piores que os entrelaçadores aleatórios). 39

42 Tabela 3.1: Seqüência permutada para ela mesma A Figura 3.4 mostra o padrão de mapeamento de índices para um entrelaçador retangular. Notase a regularidade na distribuição dos bits, que é responsável tanto pelo alto fator de espalhamento como pelas altas multiplicidades que ocorrem no espectro de distâncias. Figura 3.4: Padrão de mapeamento de índices para um entrelaçador retangular, N = 256 (16 16). Entrelaçadores Polinomiais A classe dos entrelaçadores polinomiais foi introduzida por Takeshita e Sun em 2005 [17]. Estes utilizam polinômios de permutação sobre o anel Z N, para a geração de seqüências de permutações a partir dos índices das seqüências de entrada. Por exemplo, para um comprimento N = 8, pode-se fazer uma permutação utilizando-se o polinômio: 40

43 Os índices da seqüência permutada são, portanto: P (x) =8x 2 +3x (mod 8). π(u) =(0, 3, 6, 1, 4, 7, 2, 5). É importante salientar que, para que os polinômios gerem permutações, existem algumas restrições para os coeficientes dos mesmos [17]. Outras restrições são necessárias para que os polinômios possuam inversos [33]. Para simplificar as buscas por polinômios que geram bons entrelaçadores, os autores utilizaram apenas polinômios da forma bx 2 + ax. O critério utilizado para se determinar os melhores entrelaçadores foi o de maximizar a distância mínima (d free ) gerada por seqüências de entrada de peso 2m, onde m é um inteiro pequeno. Os autores mostraram que os códigos turbo utilizando estes entrelaçadores, apresentam desempenhos melhores que os que utilizam entrelaçadores aleatórios e os S-aleatórios, descritos a seguir, para comprimentos pequenos e médios, com a vantagem de armazenar apenas os coeficientes do polinômio (contra toda a seqüência N necessária em entrelaçadores S-aleatórios. A Figura 3.5 mostra o padrão de mapeamento de índices para um entrelaçador polinomial. Notase que este entrelaçador, assim como o entrelaçador retangular da Figura 3.4 também apresenta uma certa regularidade, porém esta regularidade é menos acentuada. O fator de espalhamento pode ser alto ou baixo, dependendo da escolha dos parâmetros a e b (no caso do entrelaçador da figura, o fator de espalhamento é alto) Entrelaçadores Aleatórios com Estrutura Entrelaçadores S-aleatórios Os entrelaçadores S-aleatórios, propostos em 95 [15], diferem dos entrelaçadores puramente aleatórios por exigir que haja uma distância S (spread factor, em inglês) entre os índices entrelaçados, isto é, índices próximos na seqüência de entrada do entrelaçador tem que ser separados por uma distância mínima na saída do mesmo. Cada inteiro selecionado aleatoriamente como próximo membro da permutação é comparado com os S inteiros previamente alocados. Caso o valor absoluto da diferença entre este número e qualquer um dos S inteiros precedentes seja menor que S, então este é temporariamente descartado e outro é testado. Este processo é repetido até completar-se os N inteiros do entrelaçador. 41

44 Figura 3.5: Padrão de mapeamento de índices para um entrelaçador polinomial, N = 256 (a =15,b= 32). O algoritmo para a obtenção de entrelaçadores S-aletórios, descrito acima, não necessariamente converge para uma solução. Há, por exemplo, uma possibilidade que dois inteiros vizinhos sejam exatamente os dois últimos inteiros a serem postos no entrelaçador. Entretanto, utilizando-se valores de S tais que S< N/2, é possível obter-se um entrelaçador em um tempo razoável [15]. Este esquema de permutação fornece bons entrelaçadores, pois, assim como o entrelaçador retangular, quebra as seqüências de peso dois (considerando-se que a distância entre os 1 s seja menor que S) e ainda apresenta um alto padrão de aleatoriedade. Devido aos bons desempenhos dos mesmos, a maioria das propostas de novos entrelaçadores comparam seus resultados com o destes. A Figura 3.6 mostra o padrão de mapeamento de índices para um entrelaçador S-aleatório. É fácil notar que, devido ao fator de espalhamento ser garantido pelo algoritmo de construção do entrelaçador, não há dois pontos muito próximos, como ocorre no caso do entrelaçador pseudo-aleatório da Figura 3.3. Entrelaçadores Quasi-Cíclicos Esta classe de entrelaçadores criada por Tanner [34], tenta combinar de maneira equilibrada as características determinísticas e aleatórias presentes no entrelaçador, de forma a se obter um entrelaçador que não necessite de tanta memória quanto os aleatórios e não tenha um desempenho baixo como os entrelaçadores de bloco. A formação dos entrelaçadores quasi-cíclicos é feita em três etapas:: 42

45 Figura 3.6: Padrão de mapeamento de índices para um entrelaçador S-aleatório, N = 256 (S =8). 1. O vetor de entrada (inteiros de 0 a N 1) é escrito linha a linha em uma matriz n 1 n 2, onde n 1 n 2 = N o comprimento do entrelaçador; 2. Utiliza-se um vetor permutação aleatório σ de comprimento n 2 para realizar uma permutação das colunas da matriz; 3. Utiliza-se um vetor aleatório X de comprimento n 2 em que cada elemento do mesmo serve para determinar o deslocamento cíclico dos elementos de cada coluna. O deslocamento cíclico dos elementos da j-ésima coluna é realizado através da operação: π(i) =i + X j (mod n 1 ) (3.7) A seguir tem-se o exemplo de um vetor de comprimento N =25, n 1 =5, n 2 =5. vetor permutação de colunas é σ =(3, 2, 0, 4, 1) e o vetor aleatório de deslocamento cíclico é dado por X =(0, 3, 4, 2, 1). Considere o vetor de entrada (representado pelos seus índices): u =(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) Escrevendo-o, linha a linha, numa matriz 5 5, obtemos a matriz 3.8: 43

46 (3.8) Aplicando em (3.8) a permutação das colunas definida por σ, obtém-se: (3.9) Em cada umas das colunas da Matriz é feito um deslocamento cíclico, definido por X j (j-ésimo termo do vetor X). O resultado pode ser visto na próxima matriz: (3.10) Desta forma, o vetor de permutações é obtido lendo-se esta última matriz linha a linha: π(u) =(3, 12, 5, 19, 21, 8, 17, 10, 24, 1, 13, 22, 15, 4, 6, 18, 2, 20, 9, 11, 23, 7, 0, 14, 16). Esta classe de entrelaçadores é interessante do ponto de vista da economia de memória, pois necessita armazenar apenas 2 N inteiros, ao invés de N. Boutros e Zémor [35] mostraram que os entrelaçadores desta classe ou não possuem palavras-código com baixo peso ou possuem várias palavras código com baixo peso. Utilizando entrelaçadores que se enquadram no primeiro caso, eles obtiveram recentemente desempenhos melhores que os códigos turbo que utilizam entrelaçadores S-aleatórios. A Figura 3.7 mostra o padrão de mapeamento de índices para um entrelaçador quasi-cíclico. Este entrelaçador, assim como o entrelaçador polinomial da Figura 3.5 apresenta uma certa regularidade. 44

47 Figura 3.7: Padrão de mapeamento de índices para um entrelaçador quasi-cíclico, N = 256. Entrelaçadores DRP Os entrelaçadores DRP (do inglês Dithered Relative Primes), introduzidos por Crozier e Guinand [31], são construídos em três etapas: 1. O vetor de entrada (a seqüência crescente de inteiros de 0 a N 1) é dividida em seções de comprimento n r (onde n r divide N) e cada uma destas seções é permutada localmente usando um vetor r; 2. O vetor resultante da operação acima é então permutado utilizando-se um entrelaçador RP (relativamente primo), que consiste na permutação: π(u l )=s + Pu l (mod N), (3.11) onde s é um inteiro menor do que N e P um inteiro relativamente primo em relação ao comprimento N do entrelaçador; 3. Divide-se então o vetor que resulta do entrelaçamento RP em seções de comprimento n w (onde n w divide N) e cada uma destas seções é permutada localmente usando um vetor w. A Figura 3.8 ilustra as operações realizadas para a construção desta classe de entrelaçadores. Esta classe também é interessante do ponto de vista da economia de memória pois só é necessário o armazenamento dos vetores r e w, além dos inteiros s e P. Mostra-se que também é possível 45

48 gerar estes entrelaçadores, iterativamente, armazenando-se apenas o mínimo múltiplo comum dos comprimentos de r e w, denotado por M,ovalordeP, além de um valor de inicialização [31]. r r s s+p s+2p w w... Figura 3.8: Operações realizadas no entrelaçador DRP. É importante notar que o entrelaçador RP é responsável pela obtenção de um bom fator de espalhamento. Este espalhamento depende, sobretudo, da escolha do primo P. Contudo, o fator de espalhamento é diminuído pelas duas permutações locais dos passos 1 e 3, que são responsáveis pelo carater aleatório destes entrelaçadores. Outro ponto a se considerar, no projeto de entrelaçadores DRP, é a escolha dos valores de r e w. Embora os mesmos possam ser quaisquer inteiros que dividam o comprimento do bloco, a escolha r = w normalmente fornece os melhores resultados [31]. A Figura 3.9 mostra o padrão de mapeamento de índices para um entrelaçador entrelaçador DRP. Assim como nos casos dos entrelaçadores polinomiais e quasi-cíclicos, este entrelaçador também apresenta certa regularidade (note que existem vários blocos de dois bits que se repetem). A literatura apresenta ainda vários outros entrelaçadores que não estão descritos neste trabalho. Entre eles vale a pena destacar os entrelaçadores par-ímpar [16], entrelaçadores casados com codificadores (code-matched interleavers, em inglês) [36], entrelaçadores que eliminam palavras código com peso de Hamming menores que um certo limite [37] e os entrelaçadores golden [38]. O capítulo seguinte trata da elaboração de métodos para análise comparativa de entrelaçadores pertencentes a classes distintas. 46

49 Figura 3.9: Entrelaçador DRP, N =

50 CAPÍTULO COMPARAÇÕES DE DESEMPENHO ENTRE CLASSES DE ENTRELAÇADORES Not everything that counts can be counted, and not everything that can be counted counts. Albert Einstein ESTE capítulo trata da obtenção de curvas de desempenho de códigos turbo que utilizam entrelaçadores pertencentes a certas classes definidas no capítulo anterior, afim de se poder fazer uma análise comparativa destas classes. Algumas classes apresentam a vantagem de oferecer desempenhos melhores tanto para a BER quanto para as taxas de blocos errados (FER, do inglês frame error rate), em relação aos entrelaçadores aleatórios (e também os dos entrelaçadores S-aleatórios para comprimentos pequenos e médios), além de não requerer o armazenamento de todos os N coeficientes da seqüência entrelaçada. As classes de entrelaçadores que apresentam estas vantagens são: Entrelaçadores Polinomiais: Esta classe necessita de apenas dois inteiros (os coeficientes do polinômio) para gerar a seqüência entrelaçada; Entrelaçadores Quasi-Cíclicos: Sendo n 1 e n 2 dois inteiros tais que, N = n 1 n 2, esta classe

51 precisa de apenas n 1 + n 2 inteiros para o armazenamento do entrelaçador. No caso de n 1 = n 2, deve-se de armazenar 2 N inteiros; Entrelaçadores DRP: Os entrelaçadores desta classe necessitam do armazenamento de apenas três inteiros: M, o mínimo múltiplo, comum dos comprimentos de r e w, ovalordep edeum valor de inicialização para a geração do entrelaçador através de um algoritmo iterativo [31]. Analisando comparativamente estas três classes do ponto de vista único da economia de memória, torna-se clara a vantagem dos entrelaçadores polinomiais e entrelaçadores DRP sobre os entrelaçadores quasi-cíclicos. Entretanto, é preciso se analisar o desempenho das mesmas, pois uma maior necessidade de memória pode ser compensada pelo ganho em desempenho. Os autores destas classes (assim como autores de outras classes que não serão analisadas aqui) só realizaram comparações de desempenho entre seus entrelaçadores, e entrelaçadores pseudo-aleatórios e S-aleatórios. A comparação de desempenho destas diversas classes, através dos resultados publicados pelos autores é impossível, pois diferentes comprimentos, codificadores constituintes, taxas e até mesmo diferentes esquemas de terminação são usados. Desta forma, para se realizar comparações entre estas classes faz-se necessário obter as curvas de desempenho de códigos que utilizam estes entrelaçadores, fixando-se os parâmetros do codificador turbo. 4.1 Plataforma de Simulação Para obter-se curvas de desempenho para as diferentes classes de entrelaçadores realizamos simulações computacionais. Portanto, uma plataforma de simulações foi desenvolvida usando-se a linguagem de programação C++. Detalhes acerca desta plataforma podem ser encontrados no Apêndice A. 4.2 Escolha dos Parâmetros de Simulação De posse de uma plataforma de simulações, é preciso se definir uma série de parâmetros, a fim de se obter curvas de desempenho satisfatórias. Estes parâmetros definem o codificador, o decodificador, o entrelaçador e o canal, além do critério de parada da simulação. Um código turbo com dois codificadores constituintes possui taxa R =1/3. Entretanto, é muito comum o aumento desta taxa através de um esquema de puncionamento que toma apenas saídas alternadas dos dois codificadores constituintes, obtendo-se taxa R = 1/2. Outras taxas também 49

52 podem ser obtidas através de outros esquemas de puncionamento e através do uso de codificadores constituintes com mais de uma entrada, entretanto estes métodos não serão explorados neste trabalho. Os pares de codificadores escolhidos para a realização das comparações foram [1 + D + D 2, 1+ D 2 ] e [1 + D 2 + D 3, 1+D + D 3 ] (em notação octal [7 5] e [13 15]), onde os primeiros termos de ambos denotam as realimentações. A escolha destes codificadores se deve ao fato de ambos aparecerem em diversos trabalhos já publicados acerca do assunto (o último dos pares foi escolhido como padrão 3GPP [30]). Normalmente um número de iterações de 10 a 40 é utilizado. Neste trabalho escolheu-se trabalhar com 16 iterações. Não obstante o fato dos códigos turbo somente apresentarem desempenhos próximos da capacidade do canal para grandes comprimentos de entrelaçadores (da ordem de 10 4 ), a utilização de entrelaçadores com esta ordem de comprimento é muitas vezes inviável, devido a restrições temporais e de memória. Desta forma, o foco principal da pesquisa em entrelaçadores é sobre entrelaçadores de comprimentos pequenos e médios. Neste trabalho são analisados entrelaçadores de comprimentos 256 e 1024; As simulações para determinação das curvas de desempenho são realizadas através do método Monte Carlo. Simula-se a transmissão de blocos de comprimento igual ao do entrelaçador até a obtenção de 100 blocos com erros de decodificação (mesmo valor utilizado em [35] e [38]). 4.3 Escolha dos Entrelaçadores Nos artigos onde os entrelaçadores DRP são apresentados, os entrelaçadores utilizados para obtenção das curvas de desempenho não são totalmente descritos. Apenas o valor (M = n r = n w ) e o fator de espalhamento obtido pelo entrelaçador são fornecidos. Nem o primo P e nem a semente para a iteração são fornecidos [38]. No caso dos entrelaçadores quasi-cíclicos, somente os entrelaçadores para comprimentos N = 400 e N = 1600 são completamente definidos[35]. Apenas o artigo sobre os entrelaçadores polinomiais, [17], fornece informação suficiente para a obtenção dos entrelaçadores com os comprimentos desejados aqui (isto é, N = 256 e N = 1024). Portanto, faz-se necessário definir os entrelaçadores DRP e quasi-cíclicos utilizados neste trabalho. A escolha destes entrelaçadores deve seguir um critério que garanta um mínimo de segurança de que os entrelaçadores escolhidos estão entre os melhores possíveis para cada classe. A escolha aleatória de um membro de cada classe pode acarretar na escolha de membros bons de uma e membros ruins da outra, resultando numa comparação injusta. 50

53 Foram gerados entrelaçadores DRP e quasi-cíclicos através da plataforma de simulação. Os entrelaçadores que apresentaram bons fatores de espalhamento (utilizando-se a segunda definição de fator de espalhento, S new ) foram selecionados para a realização de simulações de desempenho, enquanto os demais foram descartados. Estas simulações de desempenho visam obter a FER para cada um destes entrelaçadores em relações sinal-ruído suficientemente altas de forma a evitar posteriores cruzamentos da curva de desempenho. Os códigos constituintes, em representação octal, são [13 15], o número de iterações é 16 e a taxa de codificação R = 1/2. O entrelaçador escolhido para a realização das comparações em cada comprimento aparece em destaque no seu respectivo quadro. É importante salientar que a FER não é o único critério levado em consideração para a escolha dos entrelaçadores. No caso de dois entrelaçadores com desempenho semelhante para a relação sinal ruído em questão, o escolhido será o que apresente melhor fator de espalhamento. Os entrelaçadores DRP são definidos aqui porp (um inteiro relativamente primo ao comprimento N) além dos vetores r e w (que neste trabalho sempre possuem comprimentos iguais (M = n r = n w ), pois este foi melhor caso encontrado em [31]) 1. Os valores de P escolhidos foram os que apresentaram melhores fatores de espalhamento. Os vetores r e w foram obtidos de forma aleatória. As Tabelas 4.1 e 4.2 apresentam as análises de entrelaçadores DRP para N = 256 e N = 1024 que possuem bons fatores de espalhamento. Tabela 4.1: Entrelaçadores DRP com N = 256, R =1/2. M P r w S new FER (E b /N 0 =2.0) 4 17 (2013) (3021) (0231) (3021) (3210) (2301) (1203) (2301) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) Os entrelaçadores quasi-cíclicos são definidos pelo vetor aleatório de deslocamento cíclico X e pelo vetor permutação de colunas σ de comprimento N. Os mesmos foram obtidos aleatoriamente. As Tabelas 4.3 e 4.4 apresentam as análises para estes entrelaçadores. 1 O valor de s em (3.11) é considerado nulo. 51

54 Tabela 4.2: Entrelaçadores DRP com N = 1024, R =1/2. M P r r S new FER (E b /N 0 =1.5) 8 53 ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) Tabela 4.3: Entrelaçadores Quasi-Cíclicos com N = 256, R =1/2. X σ S new FER (E b /N 0 =2.0) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )

55 Tabela 4.4: Entrelaçadores Quasi-Cíclicos com N = 1024, R =1/2. X σ S new FER (E b /N 0 =1.5) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )

56 4.4 Resultados São apresentados aqui os resultados das simulações realizadas neste trabalho. Foram analisados três casos distintos: 1. N = 256, C 1 = C 2 =[75](dois elementos de memória) e R =1/2, 2. N = 256, C 1 = C 2 = [13 15] (três elementos de memória) e R =1/2, 3. N = 1024, C 1 = C 2 = [13 15] (três elementos de memória) e R =1/2. Em cada caso foram realizadas simulações para cinco classes de entrelaçadores: aleatórios, S- aleatórios (com S =8para N = 256 e S =15para N = 1024) 2, DRP, quasi-cíclicos e polinomiais. A Figura 4.1 apresenta as curvas de desempenho, tanto para FER, 4.1(a), quanto para BER, 4.1(b), para o primeiro caso. Nota-se que para a FER há um visível agrupamento dos entrelaçadores em três níveis de desempenho, o pior deles composto pelo entrelaçador aleatório, o seguinte pelos entrelaçadores S-aleatório e quasi-cíclico e o que apresenta melhor desempenho, composto pelos entrelaçadores DRP e polinomiais. Para a BER esta distinção em três níveis também ocorre, embora de uma maneira menos acentuada. Para o segundo caso, cujas curvas de desempenho podem se observadas nas Figuras 4.2(a) (FER) e 4.2(b) (BER), os dois melhores níveis de desempenho vistos no caso anterior estão muito próximos no caso da FER (o entrelaçador DRP só possui um desempenho melhor que o S-aleatório na última relação sinal ruído analisada), entretanto para E b /N 0 > 2.5dB o entrelaçadoer polinomial produz o melhor desempenho. Para as curvas da BER estes níveis se encontram ainda mais próximos, como pode ser observado em E b /N 0 = 2.5dB onde os quatro entrelaçadores possuem praticamente o mesmo desempenho. O último caso apresenta um entrelaçador de comprimento Neste caso a separação do desempenho dos entrelaçadores em três níveis, para o caso da FER, é bastante evidente, como pode ser visto na Figura 4.3(a). Cada nível apresenta um desempenho praticamente dez vezes maior que o do anterior. No caso da BER (Figura 4.3(b)) o entrelaçador S-aleatório apresentou um desempenho praticamente igual ao do entrelaçador DRP, podendo neste caso ser enquadrado no último nível de desempenho. A partir destas análises podemos citar, como regras gerais os seguintes fatos: 2 Em [15] afirma-se que é possível se obter entrelaçadores S-aleatórios com fator de espalhamento S = N/2, entretanto não foi possível se chegar a entrelaçadores com fatores tão altos em tempo hábil. Os fatores de espalhamento utilizados aqui foram os mesmos usados em [17]. 54

57 Aleatório S Aleatório DRP Quasi cíclico Polinomial 10 2 FER E b /N 0 (a) FER versus E b /N Aleatório S Aleatório DRP Quasi cíclico Polinomial 10 3 BER E b /N 0 (b) BER versus E b /N 0 Figura 4.1: Curvas de desempenho para vários entrelaçadores. N = 256, C 1 = C 2 =[75], 16 iterações, R =1/2. 55

58 (a) FER versus E b /N 0 (b) BER versus E b /N 0 Figura 4.2: Curvas de desempenho para vários entrelaçadores. N = 256, C 1 = C 2 = [13 15], 16 iterações, R =1/2. 56

59 Aleatório S Aleatório DRP Quasi cíclico Polinomial 10 2 FER E b /N 0 (a) FER versus E b /N Aleatório S Aleatório DRP Quasi cíclico Polinomial 10 3 BER E b /N 0 (b) BER versus E b /N 0 Figura 4.3: Curvas de desempenho para vários entrelaçadores. N = 1024, C 1 = C 2 = [13 15], 16 iterações, R =1/2. 57

60 As Tabelas 4.1 a 4.4 mostram claramente que, embora entrelaçadores com fator de espalhamento baixo possuam geralmente desempenhos ruins, não existe uma relação direta entre o fator de espalhamento e o desempenho dos entrelaçadores. Apenas na Tabela 4.1 o entrelaçador que obteve melhor desempenho em termos da FER foi também o que apresentou melhor fator de espalhamento. Desta forma este parâmetro deve ser levado em consideração apenas como um filtro inicial para a escolha de entrelaçadores. Em todos os gráficos FER E b /N 0, os entrelaçadores que apresentaram melhor desempenho foram os DRP e polinomiais. Estes entrelaçadores também apresentaram melhores resultados na quase totalidade dos gráficos BER E b /N 0. Estas duas classes são justamente as que requerem menos memória, como mostrado no capítulo anterior. Desta forma os membros das mesmas aparecem como fortes candidatos a entrelaçadores em sistemas de codificação turbo. Ao contrário do que é mostrado no artigo [35], os entrelaçadores quasi-cíclicos apresentaram um desempenho semelhante aos dos entrelaçadores S-aleatórios em todos os gráficos da FER (e não bastante superior, como no exemplo do artigo, que lidou com comprimentos N = 400 para codificadores [13 15] e N = 1600 para codificadores [37 21], ambos com taxa R =1/2). Existem pelo menos duas explicações possíveis para este fato: Os entrelaçadores quasi-cíclicos só apresentam uma diferença significativa em relação aos entrelaçadores S-aleatórios quando o número de iterações é bastante alto (o número de iterações utilizado em [35] foi de 40). Entretanto, uma análise da FER versus o número de iterações mostra que a convergência dos entrelaçadores quasi-cíclicos segue o mesmo padrão de um entrelaçador S-aleatório (com S=8). Os entrelaçadores quasi-cíclicos escolhidos neste trabalho podem não ser bons exemplos de entrelaçadores desta classe 3. Devido à complexidade computacional envolvida nos testes, não foi possível realizar uma grande quantidade dos mesmos. É preciso, entretanto, ressaltar que isto pode indicar que apenas alguns membros desta classe (para um dado comprimento) possuem um bom desempenho, o que implica na necessidade de se realizar muitos testes para se obter um bom entrelaçador para um dado comprimento. Isto é uma característica negativa desta classe, tendose em vista que para um dado comprimento N existem 2 N! entrelaçadores quasi-cíclicos. Portanto, a busca de entrelaçadores quasi-cíclicos para comprimentos arbitrários não é simples. 3 Embora apenas 8 entrelaçadores tenham sido testados no caso de um comprimento N = 256,e4nocasodeN = 1024, dezenas de outros entrelaçadores foram eliminados antes dos teses de desempenho por possuirem fatores de espalhamento muito baixo. O número de eliminações no caso dos entrelaçadores DRP foi bem menor. 58

61 10 0 Quasi cíclico S Aleatório FER Iterações Figura 4.4: FER versus número de iterações. N = 256, C 1 = C 2 = [13 15],E b /N 0 =3dB. 59

62 CAPÍTULO ENTRELAÇADORES QUASI-RETANGULARES The most exciting phrase to hear in science, the one that heralds new discoveries, is not Eureka! (I found it!) but That s funny... Isaac Asimov COMO visto no capítulo 3, a criação de entrelaçadores para uso em códigos turbo é feita mediante um compromisso entre a estrutura (que pode garantir uma maior distância mínima), e a aleatoriedade (que elimina padrões de repetição e consequentemente contribui para o fenômeno de Spectral Thinning). Tomando-se em conta estes dois fatores, uma nova classe de entrelaçadores, denominados entrelaçadores quasi-retangulares, é proposta. Esta classe possui tanto características dos entrelaçadores DRP (permutações mlocalizadas) quanto dos entrelaçadores quasi-cíclicos (permutação de colunas). A idéia é inserir uma certa aleatoriedade a entrelaçadores retangulares para aproveitar-se dos altos fatores de espalhamento destes, evitando-se as altas multiplicidades que são responsáveis pelos desempenhos ruins dos mesmos. As seções seguintes trazem uma descrição destes entrelaçadores, seu método de construção e seu fator de espalhamento mínimo. Também são realizadas simulações para a obtenção de curvas de desempenho de códigos turbo que utilizam estes entrelaçadores. 5.1 Método de Construção Assim como no caso dos entrelaçadores retangulares e quasi-cíclicos, é preciso definir as dimensões da matriz na qual será escrita a seqüência de entrada, linha por linha. A matriz (5.1), por

63 exemplo, possui dimensões n 1 =8en 2 =8, sendo utilizada, portanto, para obter-se um entrelaçador retangular de comprimento N = n 1 n 2 = (5.1) Define-se os comprimentos M 1 (tal que M 1 n 1 )em 2 (tal que M 2 n 2 ) das permutações localizadas. Em seguida, definem-se dois vetores, um vetor X de comprimento n 1 cujos elementos são inteiros obtidos aleatoriamente e um vetor permutação de colunas σ de comprimento n 2. Desta forma, cada linha da matriz é associada a um elemento de X e cada coluna da matriz é associada a um elemento de σ. Utilizando-se destes dois vetores são feitas então três operações: 1. Permutações localizadas nas linhas: Em cada linha da matriz são realizadas n 2 /M permutações localizadas. Na i-ésima linha cada permutação é gerada aleatoriamente usando-se como sementes X(i) e o elemento de σ que corresponde à primeira coluna do vetor onde a permutação é realizada; 2. Permutações localizadas nas colunas: Após a realização das permutações localizadas nas linhas, são feitas n 1 /M permutações localizadas em cada coluna. Na i-ésima coluna cada permutação é gerada de forma aleatória, tomando-se σ(i) e o elemento de X que corresponde à primeira linha do vetor onde a permutação é realizada como sementes; 3. Permutação das colunas: Por fim, as n 2 colunas da matriz são permutadas de acordo com o vetor de permutação σ; Estão operações foram projetadas para dar uma certa carga de aleatoriedade ao entrelaçador, mantendo-se um alto fator de espalhamento. Note que para se armazenar um entrelaçador quasi-retangular faz-se necessário o armazenamento de apenas n 1 + n 2 inteiros, o que no caso dos mesmos serem iguais, corresponde a 2 N inteiros (ou seja, a economia de memória desta classe é idêntica à dos entrelaçadores quasi-cíclicos). A seguir, temos um exemplo da construção de um entrelaçador quasi-retangular. 61

64 Exemplo Neste exemplo, tratamos de um entrelaçador de comprimento N =64,comn 1 = n 2 =8. As permutações localizadas possuem comprimentos M 1 = M 2 =4. Este exemplo é meramente ilustrativo, pois a utilização de valores tão próximos de n 1 e M 1,en e de M 2 resultam em um entrelaçador com baixo fator de espalhamento. Os vetores X e σ (gerados aleatoriamente) são, respectivamente: ( )e ( ). Para a primeira operação as permutações localizadas realizadas na i-ésima linhas são geradas tomando-se como sementes X i e σ 0 =4para a primeira permutação da linha e X i e σ 4 =2para a segunda permutação. A matriz (5.2) é o resultado desta operação (5.2) Na segunda operação as permutações localizadas realizadas na i-ésima coluna são geradas utilizando como sementes σ i e X 0 =64para a primeira permutação e σ i e X 4 =97para a segunda permutação. Obtém-se assim a matriz (5.3): (5.3) Finalmente, aplicando-se a terceira e última operação, isto é, a permutação de colunas de acordo com σ, obtêm-se a matriz (5.4). 62

65 (5.4) A seqüência entrelaçada é então obtida lendo-se a matriz (5.4) coluna a coluna (razão pela qual estes entrelaçdores foram batizados como quasi-retangulares): π(u) =( ). (5.5) A Figura 5.1 mostra o padrão de mapeamento de índices para um entrelaçador quasi-retangular. Nota-se claramente que o fator de espalhamento desta classe de entrelaçadores é excelente e não existe padrões de repetição no mesmo. Figura 5.1: Entrelaçador quasi-retangular, N = 256, M 1 = M 2 =4. 63

66 5.2 Análise do Fator de Espalhamento O método de construção desta classe de entrelaçadores permite a determinação de valores mínimos para o fator de espalhamento. Para tanto, é preciso partir do fator de espalhamento dos entrelaçadores retangulares (S new = N +1) e analisar o efeito de cada uma das três operações descritas na seção anterior: 1. A permutação localizada nas linhas acarreta em uma pequena diminuição do fator de espalhamento. O pior caso ocorre quando o primeiro termo de um dos blocos assume a posição do último, enquanto o bloco logo acima mantém seu último elemento inalterado. Por exemplo, na matriz (5.2), vemos que o bloco é permutado para e o bloco é permutado para , teremos um fator de espalhamento, S new, de apenas 6; 2. A permutação localizada nas colunas também pode resultar em uma pequena diminuição do fator de espalhamento, de uma maneira bastante similar ao caso das permutações localizadas nas linhas. O pior caso, desconsiderando-se as alterações causadas pela primeira permutação, ocorre quando o primeiro termo de um dos blocos assume a posição do último, enquanto o bloco ao seu lado permanece inalterado. Embora estas duas permutações diminuam o fator de espalhamento, os efeitos de ambas sobre o mesmo não são somados, pois as duas operam em direções ortogonais; 3. A permutação das colunas, por mover blocos inteiros ao invés de posições específicas, praticamente não interfere no fator de espalhamento. Esta operação apenas adiciona um pouco mais de aleatoriedade à seqüência entrelaçada. 5.3 Resultados Nesta seção apresenta-se os resultados de simulações para a obtenção de curvas de desempenho de entrelaçadores quasi-retangulares. Para fazer uma análise comparativa, foram utilizados os mesmos casos do capítulo anterior, isto é: 1. N = 256 e C 1 = C 2 =[75](dois elementos de memória), n 1 = n 2 =4, S =13, S new =14; 2. N = 256 e C 1 = C 2 = [13 15] (três elementos de memória), n 1 = n 2 = 4, S = 13, S new =14; 64

67 3. N = 1024 e C 1 = C 2 = [13 15] (três elementos de memória), n 1 = n 2 =8, S =24, S new =25. A Figura 5.2(a) apresenta a comparação entre o desempenho (medido através da FER) de um entrelaçador quasi-retangular para o primeiro caso, em relação aos entrelaçadores aleatório e S-aleatório (com S =8,paraN = 256 e S =15para N = 1024). Pode-se notar que, embora este esquema de entrelaçamento possua um desempenho melhor que o entrelaçador totalmente aleatório, o mesmo perde em termos de desempenho para os entrelaçadores S-aleatórios para relações sinal ruído altas. Um comportamento idêntico pode ser observado na Figura 5.2(b), que apresenta o desempenho dos mesmos entrelaçadores medido através da BER. Para o segundo caso estudado, a comparação de desempenho é idêntica ao caso anterior tanto em relação a FER (Figura 5.3(a)), quanto para a BER (figura 5.3(b)). Os entrelaçadores quasiretangulares obtêm desempenhos melhores que o de entrelaçadores purtamente aleatórios, porém, piores que o de entrelaçadores S-aleatórios. No último caso, nota-se que a diferença de desempenho dos entrelaçadores quasi-retangular e S-aleatório é bem menos acentuada, tanto em se tratando da curva da FER (Figura 5.4(a)), quanto da BER (Figura 5.4(b)). Isto significa que o aumento da carga de aleatoriedade no entrelaçador, ocasionado pela escolha de um valor maior para n 1 e n 2 (8, no lugar de 4 nos exemplos anteriores), apesar de diminuir o fator de espalhamento, trás benefícios para o entrelaçador por possuir maior capacidade de quebra de padrões de repetição. De modo geral, embora esta classe garanta altos fatores de espalhamento, os resultados das simulações não mostraram ganhos em relação aos S-aleatórios. Isto pode ser decorrência do fato desta classe ainda possuir estrutura em demasia, o que favorece o aparecimento de padrões. Entretanto, como os resultados tiveram uma melhora significativa com o aumento do comprimento do entrelaçador, esta classe pode obter resultados que a coloquem em posição de competir com outras classes de entrelaçadores para comprimentos maiores. 65

68 10 0 Aleatório S Aleatório Quasi retangular 10 1 FER E b /N 0 (a) FER versus E b /N Aleatório S Aleatório Quasi retangular BER E b /N 0 (b) BER versus E b /N 0 Figura 5.2: Curva de desempenho de um entrelaçador quasi-retangular. N = 256, C 1 = C 2 =[75]. 66

69 10 0 Aleatório S Aleatório Quasi retangular FER E b /N 0 (a) FER versus E b /N Aleatório S Aleatório Quasi retangular BER E b /N 0 (b) BER versus E b /N 0 Figura 5.3: Curva de desempenho de um entrelaçador quasi-retangular. N = 256, C 1 = C 2 = [13 15]. 67

70 10 0 Aleatório S Aleatório Quasi retangular FER E b /N 0 (a) FER versus E b /N Aleatório S Aleatório Quasi retangular 10 3 BER E b /N 0 (b) BER versus E b /N 0 Figura 5.4: Curva de desempenho de um entrelaçador quasi-retangular. N = 1024, C 1 = C 2 = [13 15]. 68

71 CAPÍTULO Science is facts; just as houses are made of stones, so is science made of facts; but a pile of stones is not a house and a collection of facts is not necessarily science. Jules Henri Poincaré CONCLUSÕES, COMENTÁRIOS E SUGESTÕES APRESENTAM-SE aqui as conclusões finais deste trabalho. Também são feitos comentários acerca dos resultados obtidos e algumas propostas de trabalhos futuros são sugeridas. 6.1 Conclusões Finais e Comentários Este trabalho teve como objeto de estudo os entrelaçadores para códigos turbo. Estes são fundamentais para a obtenção de excelentes níveis de desempenhosque tornaram este esquema de codificação um marco na história da teoria dos códigos corretores de erros. Após uma breve revisão bibliográfica da teoria de códigos turbo, várias classes de entrelaçadores sugeridas na literatura foram analisadas, dentre as quais, entrelaçadores pseudo-aleatórios [8], S- aleatórios [15], DRP [31], quasi-cíclicos [35], e polinomiais [17]. Foram feitas simulações computacionais com entrelaçadores membros destas classes. O objetivo destas simulações foi o de possibilitar comparações de desempenho entre estas classes, já que nos artigos aos quais as classes de entrelaçadores DRP, quasi-cíclicos e polinomiais ([31], [35] e [17] respectivamente) foram propostas, o desempenho dos mesmos é comparado unicamente ao desempenho de entrelaçadores aleatórios e S-aleatórios. Os resultados destas simulações, que podem ser vistos no Capítulo 4, mostram que as classes

72 de entrelaçadores DRP e polinomiais são as que apresentam melhor desempenho, principalmente tomando-se como parâmetro de desempenho a FER. Essa melhoria no desempenho é particularmente acentuada nas simulações realizadas para o comprimento N = 1024, o que pode indicar que esta vantagem é válida para comprimentos médios (na faixa de 4000 a 10000). Este trabalho também apresentou uma nova classe de entrelaçadores, denominada de classe de entrelaçadores quasi-retangulares, que visa alcançar altos fatores de espalhamento, sem apresentar as altas multiplicidades dos entrelaçadores retangulares. Simulações mostraram que o desempenho dos membros desta classe estão aquém do de outras classes já descritas na literatura. Entretanto, no caso do comprimento N = 1024, o entrelaçador quasi-retangular obteve um desempenho praticamente igual a de um entrelaçador S-aleatório, o que indica que para comprimentos médios esta classe pode gerar bons resultados. 6.2 Sugestões para Trabalhos Futuros Este trabalho teve um enfoque em entrelaçadores curtos (com comprimentos N = 256 e N = 1024). Simulações para comprimentos médios ( ) devem ser realizadas para se avaliar os desempenhos destas classes nesta situação. A classe dos entrelaçadores quasi-retangulares também foi analisada somente para o caso de entrelaçadores curtos. A simulação de entrelaçadores quasi-retangulares para comprimentos maiores pode verificar a suposição, feita no capítulo anterior, de que estes entrelaçadores possuem bons desempenhos neste casos. Além disto, foram analisados, nas simulações, apenas os entrelaçadores quasi-retangulares em que os comprimentos da matriz e das permutações localizadas são iguais. É possível, entretanto, se criar entrelaçadores sem estas duas restrições, o que abre um novo leque de entrelaçadores a serem pesquisados. 70

73 REFERÊNCIAS [1] B. P. LATHI, Modern Digital and Analog Communication Systems,3 a ed. Oxford University Press, Março [2] T.S.RAPPAPORT, Wireless Communications: Principles and Practice,2 a ed. Prentice Hall, [3] C. E. SHANNON, A mathematical theory of communications, Bell System Technical Journal, v. 27, p e , Julho e Outubro [4] R. W. HAMMING, Error detecting and error correcting codes, Bell System Technical Journal, v. 29, p , Abril [5] P. ELIAS, Coding for noisy channels, IRE Convention Record. Part 4, p , Março [6] G. D. FORNEY JR., Concatenated codes, Massachusetts Institute of Technology, Technical Report 440, Dezembro [7] E. GUIZZO, Closing in the perfect code, IEEE Spectrum, p , Março [8] C. BERROU, A. GLAVIEUX, & P. THITIMAJSHIMA, Near shannon limit error-correcting coding: turbo codes, Prooceedings of the 1993 IEEE International Conference on Communication, p , [9] G. BATTAIL, A conceptual framework for understanding turbo codes, IEEE Journal on Selected Areas in Communications, v. 16, p , Fevereiro [10] T. J. RICHARDSON, Turbo-decoding from a geometric perspective, Proceedings of the IEEE International Symposium on Information Theory, p. 278, [11] W. A., P. HOEHER, & N. WEHN, Turbo-decoding without SNR estimation, IEEE Communications Letters, p , Junho

74 [12] R. Y. SHAO, S. LIN,& M. P. C. FOSSORIER, Two simple stopping criteria for turbo decoding, IEEE Transactions on Communications, p , Agosto [13] D. RAPHAELI & Y. ZARAI, Combined turbo equalization and turbo decoding, Proceedings of the 1997 IEEE Global Telecommunications Conference, p , [14] C. BERROU, M.JÉZÉQUEL, C.DOUILLARD, &S.KEROUÉDAN, The advantages of nonbinary turbo codes, Proceedings of the 2001 IEEE Information Theory Workshop, p , [15] S. DOLINAR & D. DIVSALAR, Weight distributions for turbo codes using random and nonrandom permutations, JPL TDA Progress Report, v. 42, p , Agosto [16] A. S. BARBULESCU & S. PIETROBON, Interleaver design for turbo-codes, Electronics Letters, v. 30, p. 2107, Dezembro [17] J. SUN & O. Y. TAKESHITA, Interleavers for turbo codes using permutation polynomials over integer rings, IEEE Transactions on Information Theory, v. 51, p , Janeiro [18] C. SCHLEGEL &L.PEREZ, Trellis and Turbo Coding, 1 a ed. Wiley-IEEE Press, Maio [19] S. A. BARBULESCU & S. PIETROBON, Interleaver design for turbo codes, Electronics Letters, v. 30, p , Dezembro [20] O. JOERSSEN &H.MEYR, Terminating the trellis of turbo codes, Electronics Letters, v. 30, p , Agosto [21] B. VUCETIC, Turbo Codes: Principles and Applications, 1 a ed. Springer, Junho [22] W. E. RYAN, A turbo code tutorial, 1997, Invited talk at the Analytic Science Corporation, Reston, VA, [23] S. LIN &D.J.COSTELLO JR, Error-control coding, 2 a ed. Prentice-Hall, Abril [24] J. HAGENAUER & P. HOEHER, A viterbi algorithm with soft-decision outputs and its applications, Prooceedings of the 1989 IEEE Global Telecommunications Conference and Exhibition, v. 3, p , [25] J. HAGENAUER, S.LIN, F.BURKET, &M.FOSSORIER, On the equivalence between SOVA and max-log-map decodings, IEEE Communications Letters, v. 2, p , Maio

75 [26] P. V. ROBERTSON &P.E.HOEHER, A comparison of optimal and sub-optimal MAP decoding algorithms operating in the log domain, Proceedings of the 1995 International Conference on Communications, v. 2, p , [27] L. BAHL, J.COCKE, F.JELINEK, &J.RAVIV, Optimal decoding of linear codes for minimizing symbol error rate, IEEE Transactions on Information Theory, v. 20, p , Março [28] L. C. PEREZ, J. SEGHERS, & D. J. COSTELLO, A distance spectrum interpretation of turbocodes, IEEE Transactions on Information Theory, p , Maio [29] S. BENEDETTO & G. MONTORSI, Unveiling turbo codes: Some results onm parallel concatenated coding, IEEE Transactions on Information Theory, p , Março [30] 3RD GENERATION PARTERNERSHIP PROJECT 2, Physical layer standard for CDMA2000 spread spectrum systems, revision C, p , Julho [31] S. CROZIER & P. GUINAND, High-performance low-memory interleaver banks for turbo-codes, Proceedings of the 2001 IEEE Vehicular Technology Conference, v. 4, p , [32] C. BERROU & A. GLAVIEUX, Near optimun error correcting coding and decoding: Turbocodes, IEEE Transactions on Information Theory, p , Outubro [33] J. RYU & O. Y. TAKESHITA, On quadratic inverses for quadratic permutation polynomials over integer rings, April 2005, Submitted as a correspondence to the IEEE Transactions on Information Theory. [34] R. M. TANNER, Toward an algebric theory for turbo codes, Proceedings of the 2nd International Symposium on Turbo Codes and Related Topics, Setembro [35] J. J. BOUTROS & G. ZÉMOR, On quasi-cyclic interleavers for parallel turbo codes, IEEE Transactions on Information Theory, v. 52, p , Abril [36] W. FENG, J.YUAN, &B.S.VUCETIC, A code-matched interleaver design for turbo codes, IEEE Transactions on Communications, v. 50, p , Junho [37] A. ABBASFAR & K. YAO, Interleaver design for turbo codes by distance spectrum shapping, Proceedings of the 2004 IEEE Wireless Communications and Networking Conference, v.3,p , Março

76 [38] S. CROZIER, J. LODGE, P. GUINAND, & A. HUNT, Performance of turbo codes with relative prime and golden interleaving strategies, Proceedings of the 6th International Mobile Satellite Conference, p , [39] Y. WU, yufei/turbo.html, Visitada em 10 de agosto de [40] D. E. KNUTH, The Art of Computer Programming,2 a ed. Addison-Wesley, 1981, v. 2. [41] H. SCHILDT, Borland C++: Completo e Total. Makron Books, [42] B. ECKEL, Thinking in C++, 2 a ed. Makron Books, 1997, v

77 APÊNDICE IMPLEMENTAÇÃO COMPUTACIONAL A comparação entre diferentes sistemas de controle de erros é feita, normalmente, através da análise da curva de desempenho dos mesmos. Logo, torna-se necessário comparar os desempenhos dos códigos turbo utilizando entrelaçadores já propostos na literatura e os entrelaçadores propostos neste trabalho. Desta forma foram desenvolvidas várias funções em MATLAB e C++ para realizar a codificação turbo, simular um canal aditivo gaussiano, realizar a decodificação iterativa, além de algoritmos para a obtenção de entrelaçadores. Este apêndice apresenta as principais funções desenvolvidas. A.1 Implementação em MATLAB R Em um primeiro momento, foram criadas funções para a implementação computacional de um codificador e de um decodificador turbo para serem utilizadas em um ambiente MATLAB R. A escolha desta linguagem de programação foi tomada devido a sua praticidade (a linguagem usada no MATLAB R faz automaticamente a alocação dinâmica das variáveis) e ao fato do mesmo possuir uma vasta biblioteca para a simulação de canais e para o tratamento de matrizes e vetores. Devido ao grande número de operações necessárias para a codificação e decodificação turbo, uma série de funções em arquivos separados (m-files), cada uma realizando uma tarefa específica, foi criada de forma a ser ter um código final o mais estruturado e legível possível. A seguir, as funções criadas para a simulação de códigos turbo são descritas. A ordem de apresentação das mesmas é a de criação, e, normalmente as funções mais complexas fazem uso extensivo das mais simples.

78 A.1.1 Funções de Conversão Como os codificadores constituintes são definidos em octais, mas os cálculos tem de ser efetuados considerando-se a representação binária dos mesmos, foi necessário criar-se funções para a conversão de tipos. As funções criadas para conversão de tipos foram 1 : BI2DE: Conversão de uma representação binária para decimal; DE2BI: Conversão de uma representação decimal para binária; OCT2BI: Conversão de uma representação octal para binária. A.1.2 Funções para Codificação Convolucional Como os códigos turbo possuem códigos convolucionais como códigos constituintes, faz-se necessário a construção de funções para realizar a codificação convolucional. CODERTABLE: Obtém a tabela de codificação dada a descrição em octal do código convolucional, isto é, obtém uma tabela com todas as saídas possíveis de um código convolucional para os possíveis estados com todas as possíveis entradas; FINDTABLE: Obtém uma tabela contendo os bits de terminação de um código convolucional para todos os estados possíveis, dada a descrição em octal do código constituinte; CONVCODER: Realiza, através da utilização das duas funções acima, a codificação convolucional, dada a descrição em octal do código constituinte e a entrada em binário. A.1.3 Funções para Codificação e Decodificação Turbo Nesta seção são apresentadas as funções para codificação e decodificação turbo. TURBOENC: Obtém, utilizando-se das funções descritas na seção anterior, além da descrição do entrelaçador, a saída de um codificador turbo, dada a descrição dos codificadores constituintes e da entrada; BCJRDEC1, BCJRDEC2: Realizam a decodificação BCJR suave dos componentes da palavra código pertencentes ao primeiro codificador (BCJRDEC1) e do segundo (BCJRDEC2) enviando para o próximo decodificador a informação extrínseca necessária, até se completar o número especificado iterações; 1 Algumas destas funções já existem na biblioteca padrão do MATLAB R, entretanto, as mesmas fazem varias verificações de erros que as tornam lentas. Desta forma foram criadas funções sem estas verificações, visando um ganho na velocidade de execução. 76

79 BCJRDEC1P, BCJRDEC2P: Desempenham o mesmo papel das funções do item anterior, salvo pelo fato de serem utilizados no caso de códigos puncionados. Para realizar as simulações necessárias para a obtenção de curvas de desempenho de códigos turbo, foi criada uma rotina em MATLAB R que utiliza a funções acima descritas. O entrelaçador utilizado foi pseudo-aleatorio, obtido através da função randperm e o canal foi modelado através da função randn, ambas pertencentes a biblioteca padrão do programa. Foram realizadas simulações, utilizando-se o método monte carlo (exigindo-se ao menos 100 blocos errados como critério de parada), de códigos turbo utilizando entrelaçadores de comprimentos pequenos e médios e as curvas de desempenho concordaram satisfatoriamente com as curvas encontradas na literatura. Entretanto, como a linguagem de programação utilizada pelo MATLAB R é interpretada, ao invés de compilada, a mesma resulta em um tempo de execução usualmente maior do que no caso de linguagens compiladas. Desta forma, a simulação de códigos turbo com entrelaçadores longos ou simulações em regiões de altas relação sinal-ruído mostraram-se inviáveis 2. Outro problema desta linguagem é a necessidade de se ter o software MATLAB R instalado em cada máquina usada para as simulações. A.2 Implementação em C++ Devido as dificuldades encontrados durante as simulações de códigos turbo em MATLAB R, todas as funções escritas nesta linguagem foram reescritas em linguagem C++. A escolha desta linguagem se deu pela liberdade que a mesma oferece ao programador, por se tratar de uma linguagem de nível médio e gerar aplicativos com alta velocidade de execução. Algumas otimizações foram feitas nas funções, em relação as funções criadas para rodarem em ambiente MATLAB R, principalmente no que concerne a economia de memória. Algumas funções simples para tratamento de vetores tiveram de ser criadas, pois as mesmas existem na biblioteca padrão do MATLAB R, mas não na ANSI C++. Entre estas funções estão funções para inversão de vetores (de LSB para RSB), soma das componentes não nulas de um vetor e comparação um a um de componentes de um vetor. 2 Foi observado em [39] a simulação do código original de Berrou em MATLAB R, entretanto a simulação do mesmo em um PC leva vários dias para ser realizada, o que inviabilizaria o teste de vários entrelaçadores. 77

80 A.2.1 Canal Aditivo Gaussiano Não existe uma função na biblioteca padrão da ANSI C++ para a geração de váriaveis aleatóris com uma distribuição gaussiana. Desta forma o canal gaussiano foi simulado através da utilização da forma polar da transformação de Box-Muller [40]. A.2.2 Alocação Dinâmica de Memória Para se realizar a decodificação turbo faz-se necessário o cálculo e o armazenamento de γ l (s,s), α l (s) e β l (s ) para todas as possíveis transições de estados. Logo se faz necessário o armazenamento de matrizes de tamanho N 2 ν para o armazenamento de todos os valores possíveis de α l (s) e β l (s ), além de uma matriz de tamanho 2N 2 ν para o armazenamento de todos os valores possíveis de γ l (s,s) (só existem duas transições possíveis de um dado estado em um dado momento). Desta forma, um dos requisitos essenciais para a realização de simulações de códigos turbos da forma mais rápida possível é uma alocação dinâmica de memória eficiente. Neste trabalho, a alocação dinâmica de memória foi realizada através da utilização dos repositórios vector definidos na biblioteca de gabaritos padrão (STL) dopadrão ANSI C++ [41]. Estes repositórios, tratados cuidadosamente oferecem um método rápido e simples de alocação de matrizes cujo tamanho só é definido em tempo de execução [42]. A.2.3 Funções para Criação de Entrelaçadores Como a linguagem C++ não possui, em sua biblioteca padrão, funções para geração de permutações, todos os algoritmos para geração de entrelaçadores foram implementados em C++ pelo autor. Foram desenvolvidas funções para a criação de entrelaçadores pseudo-aleatórios, entrelaçadores S- random, entrelaçadores polinomiais, entrelaçadores quasi-ciclicos e entrelaçadores DRP, além de uma função para a criação dos entrelaçadores quasi-retangulares. A.2.4 Interface Gráfica Foi criada uma interface gráfica amigavel para a realização das simulações. ESta interface foi desenvolvida utilizando-se o programa Borland C++ Builder 6 R, da Borland R. Esta interface é dividida em 4 módulos, a seguir: Obtenção de curvas de desempenho: Neste módulo o usuário deve escolher vários parâmetros necessários para a simulação de códigos turbo: 78

81 A descrição dos códigos constituintes em octal; O modo de decodificação, BCJR, LOGBCJR, Max-BCJR ou Max*-BCJR 3 ; O comprimento do entrelaçador a ser utilizado; A presença ou ausência de puncionamento; O número de iterações; O número mínimo de blocos errados para finalizar a simulação; As sementes para a geração do sinal e do ruído aleatórios; As relações sinal-ruído desejadas. O programa então pede o nome do arquivo onde se encontra o entrelaçador desejado e também o nome do arquivo de texto onde o usuário deseja que sejam salvos os dados. É mostrada na tela a taxa de erro de bits, para cada relação sinal ruído, obtida através da simulação, para cada iteração. No arquivo de texto são salvas as informações relativas as taxas de erro de bit etaxadeerrode blocos. Este módulo pode ser visto na Figura A.1.; Obtenção de estatísticas de destribuição de erros: Neste módulo o usuário deve usar praticamente os mesmos parâmetros que no módulo anterior mas, ao contrário do caso anterior, deve-se escolher o número de blocos a serem simulados, e não o de blocos com erros, e deve-se escolher apenas um valor para a relação sinal ruído. O usuário deve escolher um entrelaçador e o nome do arquivo onde serão salvos os dados da simulação. O painel mostra, ao fim da simulação, o número total de erros em cada posição do bloco somando-se todos os blocos simulados. Este módulo pode ser visto na Figura A.2.; Criação de entrelaçadores: Neste módulo o usuário pode escolher entre cinco opções de entrelaçadores, a seguir: Entrelaçador pseudo-aleatório: Para gerar um entrelaçador deste tipo, o usuário precisa apenas indicar o comprimento do mesmo, além da semente; Entrelaçador S-aleatório: Para gerar um entrelaçador deste tipo o usuário deve especificar, além do comprimento e da semente, o fator de espalhamento, S. Também é preciso se especificar o número de tentativas de geração de entreçadores a serem feitas. Esta última especificação se faz necessária pois a convergência deste tipo de entrelaçador depende do fator de espalhamento e da semente. Após cada tentativa o programa automáticamente troca a semente para realizar uma nova tentativa. 3 Embora haja um painel para a seleção do modo de decodificação, o único modo implementado foi o BCJR. Os demais modos serão implementados futuramente 79

82 Entrelaçador DRP: Para este tipo de entrelaçador é preciso especificar o tamanho do vetor de escrita, R, e de leitura, W, sendo os dois divisores do comprimento N do bloco. Também é necessário se especificar a semente de cada um destes vetores; Entrelaçador Polinomial: Para este tipo de entrelaçador se faz necessário especificar os coeficientes do polinômio; Entrelaçador Quasi-cíclico: Neste tipo de entrelaçador o usuário deve especificar o número de linhas (n 1 ) e de colunas (n 2 ) além das respectivas sementes; Entrelaçador Quasi-Retangular: Neste tipo de entrelaçador o usuário deve fazer as mesmas especificação que o entrelaçador do ítem anterior. Após a escolha da classe de entrelaçador e dos parâmetros do emsmo, o usuário deve indicar o nome do arquivo no qual o entrelaçador obtido será salvo. Este módulo pode ser visto na Figura A.3. Análise de entrelaçadores: Neste módulo o usuário deve escolher um arquivo que contenha um entrelaçador e escolher um nome para que a análise do mesmo seja salva. A análise consiste na enumeração da quantidade de posições anteriormente separadas de x que passaram, após o entrelaçamento, a possuirem uma separação de y. Este módulo pode ser visto na Figura A.4. 80

83 Figura A.1: Módulo de obtenção de curvas de desempenho. Figura A.2: Módulo de obtenção de estatísticas de destribuição de erros. 81

84 Figura A.3: Módulo de criação de entrelaçadores. Figura A.4: Módulo de análise de entrelaçadores. 82

85 APÊNDICE ESTABILIDADE NUMÉRICA As Equações (2.22) e (2.24) produzem a cada passo valores de α l+1 (s) e β l (s ) que se aproximam a zero. Assim, erros devido a problemas de underflow podem ocorrer. Uma forma de se contornar este tipo de problema é realizar a cada passo as normalizações: α l (s) = α l (s) s σl α l (s ) ; (B.1) β l (s )= β l (s ) s σ l+1 β l (s). (B.2) Como os somatórios presentes nos denominadores de (B.1) e (B.2) estão presentes em todos os fatores de (2.21), os mesmos são cancelados, de forma que: (s L(u l ) = log,s) S + α l (s) β l+1 (s )γ l (s,s) l. (B.3) (s,s) S α l (s) β l+1 (s )γ l (s,s) l Uma outra forma de se contornar os problemas de estabilidade é através do uso do algoritmo log- BCJR. No algoritmo log-bcjr, utiliza-se: γ l (s,s) log(γ l (s,s)); (B.4) ( ) αl+1(s) log(α l+1 (s)) = log γ l (s,s)α l (s ) ; s σ l ( ) =log, e γ l (s,s)+α l (s ) s σ l (B.5)

86 e β l (s ) log(β l (s)) = log =log ( γ l (s,s)β l+1 (s) s σ l ( e γ s σ l ) l (s,s)+β l+1 (s) ) onde as condições de contorno (para um codificador terminado) são: 0, caso s =0; α0(s )=, caso s 0. 0, caso s =0; βn(s) =, caso s 0. No caso de um codificador não terminado, é substituída por: ;, (B.6) (B.7) (B.8) ( ) 1 βn(s) = log 2 ν, s. (B.9) Desta forma, a Equação (2.21) pode ser reescrita como: L(u l ) = log e α l (s )+β l+1 (s)+γ l (s,s) log e α l (s )+β l+1 (s)+γ l (s,s). (B.10) (s,s) S + l (s,s) S l Embora resolva o problema da estabilidade, o algoritmo log-bcjr demanda o cálculo de muitas funções exponenciais. Desta forma duas simplificações foram propostas para o mesmo. MAX-log-BCJR Neste algoritmo, adota-se a seguinte simplificação: max(x, y) = log (e x + e y ). (B.11) De forma que os valores de α l (s) e β l (s ) podem ser obtidos através das expressões: e α l+1(s) =max s σ l (γ l (s,s)+α l (s )), β l (s) = max s σ l+1 ( γ l (s,s)+β l+1(s ) ). (B.12) (B.13) 84

87 As APP LLR s são obtidas através da expressão: L(u l )= max (s,s) S + l [ α l (s )+β l+1(s)+γ l (s,s) ] max (s,s) S l [ α l (s )+β l+1(s)+γ l (s,s) ]. (B.14) Embora diminua bastante a complexidade do processo de decodificação esta simplificação implica em perdas. A seguir tem-se uma simplificação que, embora seja um pouco mais complexa que a Max-logBCJR, não resulta em perdas. MAX*-log-BCJR Neste algoritmo adota-se a identidade demonstrada em [26]: ( max = log (e x + e y )=max(x, y) + log 1+e x y ), (B.15) de forma que os valores de α l (s) e β l (s ) podem ser obtidos através das expressões: α l+1(s) = max s σ l (γ l (s,s)+α l (s )), (B.16) βl (s) = max ( γ s σ l (s,s)+β l+1 l+1(s ) ), e as APP LLR s são obtidas através da expressão: (B.17) L(u l )= max (s,s) S + l [ α l (s )+β l+1(s)+γ l (s,s) ] max (s,s) S l [ α l (s )+β l+1(s)+γ l (s,s) ]. (B.18) 85

88 SOBRE O AUTOR O autor nasceu em Recife, Pernambuco, no dia 31 de maio de Formado em Engenharia Elétrica, modalidade Eletrônica, pela Universidade Federal de Pernambuco (UFPE) em março de Trabalha na área de telecomunicações desde 2003, e suas áreas de interesse são códigos corretores de erros, processamento digital de sinais, teoria da informação Endereço: Avenida Rosa e Silva, 1620, apto. 201 Aflitos Recife PE, Brasil C.E.P.: marceljar@yahoo.com.br Esta dissertação foi diagramada usando L A TEX2ε 1 pelo autor. 1 LATEX2ε éumaextensãodolatex. LATEX é uma coleção de macros criadas por Leslie Lamport para o sistema TEX, que foi desenvolvido por Donald E. Knuth. TEX é uma marca registrada da Sociedade Americana de Matemática (AMS). O estilo usado na formatação desta dissertação foi escrito por Dinesh Das, Universidade do Texas. Modificado em 2001 por Renato José de Sobral Cintra, Universidade Federal de Pernambuco, e em 2005 por André Leite Wanderley. 86

Estudo sobre decodificação iterativa usando códigos de treliça

Estudo sobre decodificação iterativa usando códigos de treliça Revista de Engenharia e Pesquisa Aplicada, Volume 2, Número 1, 2016 Estudo sobre decodificação iterativa usando códigos de treliça Souza, I. M. M. Escola Politécnica de Pernambuco Universidade de Pernambuco

Leia mais

everywhere Turbo Sílvio A. Abrantes FEUP Como o princípio turbo está a mudar as técnicas de transmissão digital

everywhere Turbo Sílvio A. Abrantes FEUP Como o princípio turbo está a mudar as técnicas de transmissão digital Turbo everywhere Como o princípio turbo está a mudar as técnicas de transmissão digital Sílvio A. Abrantes FEUP Turbo-códigos Inventados por Claude Berrou, Alain Glavieux e Punya Thitimajshima (ENST, Brest,

Leia mais

Amanda Cunha Silva. Análise de Desempenho de Códigos Turbo DISSERTAÇÃO DE MESTRADO. Programa de Pós graduação em Engenharia Elétrica

Amanda Cunha Silva. Análise de Desempenho de Códigos Turbo DISSERTAÇÃO DE MESTRADO. Programa de Pós graduação em Engenharia Elétrica Amanda Cunha Silva Análise de Desempenho de Códigos Turbo DISSERTAÇÃO DE MESTRADO DEPARTAMENTO DE ENGENHARIA ELÉTRICA Programa de Pós graduação em Engenharia Elétrica Rio de Janeiro Dezembro de 2006 Amanda

Leia mais

Códigos convolucionais

Códigos convolucionais Códigos convolucionais Luis Henrique Assumpção Lolis 29 de novembro de 2013 Luis Henrique Assumpção Lolis Códigos convolucionais 1 Conteúdo 1 Introdução e definição 2 Diagrama de árvores, de treliça e

Leia mais

Universidade de Pernambuco Escola Politécnica de Pernambuco

Universidade de Pernambuco Escola Politécnica de Pernambuco Universidade de Pernambuco Escola Politécnica de Pernambuco TV Analógica e Digital Introdução Codificação de Canal Prof. Márcio Lima E-mail:marcio.lima@poli.br Introdução Visão Geral Introdução Motivação

Leia mais

Aula 3- Codificação de Canal. October 18, 2017

Aula 3- Codificação de Canal. October 18, 2017 ELE-32 Introdução a Comunicações Aula 3- Codificação de Canal October 18, 2017 1 Introdução Em muitas situações, a mensagem a ser transmitida por um sistema de comunicações é uma sequência de bits. Entretanto,

Leia mais

EET-61 Introdução a Teoria da Informação

EET-61 Introdução a Teoria da Informação EET-61 Introdução a Teoria da Informação Aula 3- Codificação de Canal October 24, 2018 1 Introdução Em muitas situações, a mensagem a ser transmitida por um sistema de comunicações é uma sequência de bits.

Leia mais

COM29008 LISTA DE EXERCÍCIOS #

COM29008 LISTA DE EXERCÍCIOS # INSTITUTO FEDERAL DE SANTA CATARINA CAMPUS SÃO JOSÉ COORDENADORIA DE ÁREA DE TELECOMUNICAÇÕES ENGENHARIA DE TELECOMUNICAÇÕES COM29008 LISTA DE EXERCÍCIOS #1 2016.2 Exercícios 1. Verifique se os seguintes

Leia mais

CÓDIGOS CORRETORES DE ERROS

CÓDIGOS CORRETORES DE ERROS Informação sobre a Disciplina CÓDIGOS CORRETORES DE ERROS INTRODUÇÃO Evelio M. G. Fernández - 27 Quartas e Sextas feiras das 9:3 às 11:3 horas Professor: Evelio Martín García Fernández Gabinete 1, Tel:

Leia mais

1 O esquema de Alamouti: Diversidade na transmissão

1 O esquema de Alamouti: Diversidade na transmissão 1 O esquema de Alamouti: Diversidade na transmissão 1.1 O Caso de uma antena receptora A Figura?? mostra a representação em banda básica do esquema de Alamouti com diversidade na transmissão. O esquema

Leia mais

Um Esquema de Equalização Turbo Aplicando Decodificação Turbo de Códigos Produto de Paridade Simples Multidimensionais

Um Esquema de Equalização Turbo Aplicando Decodificação Turbo de Códigos Produto de Paridade Simples Multidimensionais Um Esquema de Equalização Turbo Aplicando Decodificação Turbo de Códigos Produto de Paridade Simples Multidimensionais André Fonseca dos Santos Dissertação apresentada ao Instituto Nacional de Telecomunições,

Leia mais

Teoria das Comunicações

Teoria das Comunicações 1 - Introdução Enlace de um Sistema de Comunicação fonte mensagem transdutor Transmissor Modulador canal ruído receptor transdutor destino mensagem (estimada) sinal de entrada sinal com distorção sinal

Leia mais

ALGORITMOS DE DECODIFICAÇÃO POR DECISÃO SUAVE APLICADOS A CÓDIGOS BCH

ALGORITMOS DE DECODIFICAÇÃO POR DECISÃO SUAVE APLICADOS A CÓDIGOS BCH 2014 Universidade Federal de Pernambuco Graduação em Ciências da Computação Centro de Informática 2014.1 ALGORITMOS DE DECODIFICAÇÃO POR DECISÃO SUAVE APLICADOS A CÓDIGOS BCH Proposta de Trabalho de Graduação

Leia mais

Noções Sobre Decodificação Turbo: Um Estudo de Caso para os Códigos SPC-TPC

Noções Sobre Decodificação Turbo: Um Estudo de Caso para os Códigos SPC-TPC Noções Sobre Decodificação Turbo: Um Estudo de Caso para os Códigos SPC-TPC Dayan Adionel Guimarães Departamento de Telecomunicações Inatel. E-mail: dayan@inatel.br Resumo - Neste tutorial são apresentados

Leia mais

Descodificação iterativa

Descodificação iterativa Sílvio A. Abrantes DEEC/FEUP 26 Descodificação iterativa 2 Descodificação de códigos LDPC por transferência de mensagens em grafos de Tanner Introdução Diagrama de blocos de um sistema genérico de codificação

Leia mais

TÉCNICAS DE CODIFICAÇÃO DE SINAIS

TÉCNICAS DE CODIFICAÇÃO DE SINAIS Informação sobre a Disciplina TÉCNICAS DE CODIFICAÇÃO DE SINAIS INTRODUÇÃO Evelio M. G. Fernández - 2010 Terças e Quintas feiras das 07:30 às 11:20 horas Professor: Evelio Martín García Fernández Gabinete

Leia mais

Teoria da Informação

Teoria da Informação Charles Casimiro Cavalcante charles@gtel.ufc.br Grupo de Pesquisa em Telecomunicações Sem Fio GTEL Programa de Pós-Graduação em Engenharia de Teleinformática Universidade Federal do Ceará UFC http://www.gtel.ufc.br/

Leia mais

Comunicações Digitais

Comunicações Digitais 1 - Introdução Enlace de um Sistema de Comunicação fonte mensagem transdutor Transmissor Modulador canal ruído receptor transdutor destino mensagem (estimada) sinal de entrada sinal com distorção sinal

Leia mais

Universidade Federal de Pernambuco. Centro de Informática. Graduação em Ciência da Computação

Universidade Federal de Pernambuco. Centro de Informática. Graduação em Ciência da Computação Universidade Federal de Pernambuco Centro de Informática Graduação em Ciência da Computação ALGORITMOS DE DECODIFICAÇÃO POR DECISÃO SUAVE APLICADOS A CÓDIGOS BCH Lucas Minoru Ferreira Harada TRABALHO DE

Leia mais

Decodificação Turbo de Código Produto de Paridade Simples

Decodificação Turbo de Código Produto de Paridade Simples Revista Científica Periódica - Telecomunicações ISSN 56-338 Decodificação Turbo de Código Produto de Paridade Simples Dayani Adionel Guimarães - INATEL Resumo Esse artigo apresenta os resultados de uma

Leia mais

TRANSMISSÃO DE DADOS PROTEGIDOS POR CÓDIGOS CORRETORES DE ERRO

TRANSMISSÃO DE DADOS PROTEGIDOS POR CÓDIGOS CORRETORES DE ERRO TRANSMISSÃO DE DADOS PROTEGIDOS POR CÓDIGOS CORRETORES DE ERRO Aluno: Débora Almeida Oliveira Orientador: Weiler Alves Finamore 1.Introdução Este trabalho tem como objetivo demonstrar a utilização de códigos

Leia mais

III-1 Códigos detetores e corretores de erros

III-1 Códigos detetores e corretores de erros III-1 Códigos detetores e corretores de erros Comunicações 21 de novembro de 2017 ISEL-ADEETC-Comunicações 1 Sumário 1. Aspetos gerais sobre a comunicação digital Comportamento do canal Causas da existência

Leia mais

III-1 Códigos detetores e corretores de erros

III-1 Códigos detetores e corretores de erros III-1 Códigos detetores e corretores de erros Comunicações ISEL-ADEETC-Comunicações 1 Sumário 1. Aspetos gerais sobre a comunicação digital Comportamento do canal Causas da existência de erros 2. Códigos

Leia mais

II-6 Análise de Ruído e Capacidade de Canal

II-6 Análise de Ruído e Capacidade de Canal II-6 Análise de Ruído e Capacidade de Canal Comunicações ISEL - ADEETC - Comunicações 1 Sumário 1. Causa dos erros na transmissão Modelo AWGN (canal físico) Modelo BSC (canal discreto) Efeito do ruído

Leia mais

PTC TEORIA DAS COMUNICAÇÕES II - 25/08/ PJEJ EXERCÍCIOS RESOLVIDOS

PTC TEORIA DAS COMUNICAÇÕES II - 25/08/ PJEJ EXERCÍCIOS RESOLVIDOS PTC2433 - TEORIA DAS COMUNICAÇÕES II - 25/08/24 - PJEJ EXERCÍCIOS RESOLVIDOS São dados os valores: Q(2,32)= -2 ; Q(3,09)= -3 ; Q(3,71)= -4 ; Q(4,26)= -5 ; Q(4,75)= -6. Q1) Dada a equação s=r H T, que permite

Leia mais

Códigos de controle de erros: introdução

Códigos de controle de erros: introdução Códigos de controle de erros: introdução Luis Henrique Assumpção Lolis 11 de outubro de 2013 Luis Henrique Assumpção Lolis Códigos de controle de erros: introdução 1 Conteúdo 1 Introdução 2 Canais discretos

Leia mais

GABARITO DA OITAVA LISTA DE EXERCÍCIOS DE PTC TEORIA DA INFORMAÇÃO E CODIFICAÇÃO

GABARITO DA OITAVA LISTA DE EXERCÍCIOS DE PTC TEORIA DA INFORMAÇÃO E CODIFICAÇÃO GABARITO DA OITAVA LISTA DE EXERCÍCIOS DE PTC-3452 - TEORIA DA INFORMAÇÃO E CODIFICAÇÃO Questão Seja uma constelação 8-PSK. Determine as partições possíveis dessa constelação de modo a se gerar um sinal

Leia mais

Códigos de blocos lineares. Outubro de 2017

Códigos de blocos lineares. Outubro de 2017 Códigos de blocos lineares Outubro de 2017 Vamos introduzir alguns conceitos sobre códigos de blocos lineares. Definições: Deve-se assumir que a informação saída da fonte de informação é da forma binária

Leia mais

Teoria da Informação ( ) Exame de Recurso ( ) Resolução. (1 p), (1 p), p = H(0,4;0,4;0,2) = 1,522

Teoria da Informação ( ) Exame de Recurso ( ) Resolução. (1 p), (1 p), p = H(0,4;0,4;0,2) = 1,522 Teoria da Informação (4-) Exame de ecurso (-7-). Canais discretos sem memória e p =,: esolução X -p p p -p Y W ε ε ε -ε -ε -ε Z Canal A Canal B Vamos representar P(X = i) por P(X i ), etc. PY ( ) = P(

Leia mais

Códigos de Permutação para Compressão de Dados e Modulação 13. Codificador de fonte. Decodificador. Figura 1.1: Modelo de um sistema de comunicações.

Códigos de Permutação para Compressão de Dados e Modulação 13. Codificador de fonte. Decodificador. Figura 1.1: Modelo de um sistema de comunicações. 1 Introdução Neste trabalho, estamos interessados nos problemas da teoria de comunicações conhecidos como compressão de dados e modulação. Um modelo típico de um sistema de comunicações é mostrado na Fig.

Leia mais

2 Teoria da Informação

2 Teoria da Informação 2 Teoria da Informação Neste capítulo apresentamos alguns conceitos básicos sobre Teoria da Informação que utilizaremos durante este trabalho. 2.1 Alfabeto, texto, letras e caracteres Um alfabeto Σ = (σ

Leia mais

Teoria da Informação ( ) Exame de Recurso ( ) Resolução ( ) ( ) 2log2. log log

Teoria da Informação ( ) Exame de Recurso ( ) Resolução ( ) ( ) 2log2. log log Teoria da Informação (-6) Exame de Recurso (4-7-6) Resolução. Função densidade de probabilidade das amostras de U é constante: b a b pu ( ) a b a pu ( ) = b a. a) h ( U ) = p ( u ) log du = log( b a )

Leia mais

II-6 Análise de ruído e capacidade de canal

II-6 Análise de ruído e capacidade de canal II-6 Análise de ruído e capacidade de canal Comunicações ISEL - ADEETC - Comunicações 1 Sumário 1. Causa dos erros na transmissão Modelo AWGN e ISI Modelo BSC Efeito do ruído Relação sinal/ruído 2. Curvas

Leia mais

DISSERTAÇÃO apresentada à UTFPR para obtenção do grau de MESTRE EM CIÊNCIAS. por GILBERTO TITERICZ JUNIOR

DISSERTAÇÃO apresentada à UTFPR para obtenção do grau de MESTRE EM CIÊNCIAS. por GILBERTO TITERICZ JUNIOR UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ Programa de Pós-Graduação em Engenharia Elétrica e Informática Industrial DISSERTAÇÃO apresentada à UTFPR para obtenção do grau de MESTRE EM CIÊNCIAS por GILBERTO

Leia mais

Conceito de Comunicação Digital: Transmissão de informação em forma digital a partir de uma fonte geradora da informação até um ou mais destinatários.

Conceito de Comunicação Digital: Transmissão de informação em forma digital a partir de uma fonte geradora da informação até um ou mais destinatários. Conceito de Comunicação Digital: Transmissão de informação em forma digital a partir de uma fonte geradora da informação até um ou mais destinatários. Figura 1: Diagrama de blocos simplificado, contendo

Leia mais

SUMÁRIO FUNDAMENTOS E VISÃO GERAL 19 CAPÍTULO 1 PROCESSOS ALEATÓRIOS 49

SUMÁRIO FUNDAMENTOS E VISÃO GERAL 19 CAPÍTULO 1 PROCESSOS ALEATÓRIOS 49 SUMÁRIO FUNDAMENTOS E VISÃO GERAL 19 1. O processo de comunicação 19 2. Principais recursos de comunicação 21 3. Fontes de informação 21 4. Redes de comunicação 27 5. Canais de comunicação 33 6. Processo

Leia mais

1 Técnicas de Seleção de Antenas Transmissoras

1 Técnicas de Seleção de Antenas Transmissoras 1 Técnicas de Seleção de Antenas Transmissoras Como visto em aulas anteriores, para se atingir uma ordem de diversidade espacial maior é necessário o emprego de múltiplas antenas no transmissor e/ou no

Leia mais

Uma abordagem educacional para o estudo de OFDM

Uma abordagem educacional para o estudo de OFDM Uma abordagem educacional para o estudo de OFDM Bruno A. Pereira 1, Henrique T. Kuehne 2, Luciano L. Mendes 3 e José S. G. Panaro 4 Resumo O objetivo deste artigo é apresentar um conjunto de ferramentas

Leia mais

CURSO DE PÓS-GRADUAÇÃO EM TELEMÁTICA

CURSO DE PÓS-GRADUAÇÃO EM TELEMÁTICA MÉTODOS DISCRETOS EM TELEMÁTICA CURSO DE PÓS-GRADUAÇÃO EM TELEMÁTICA 2003 Curso de Especialização em Telemática Departamento de Eletrônica e Sistemas - UFPE Códigos Corretores de Erros Códigos de Bloco

Leia mais

III-1 Códigos detetores e corretores de erros

III-1 Códigos detetores e corretores de erros III-1 Códigos detetores e corretores de erros Comunicações ISEL-ADEETC-Comunicações 1 Sumário 1. Aspetos gerais sobre a comunicação digital Causa de erros 2. Códigos detetores e corretores de erros Códigos

Leia mais

Técnica de decodificação bidimensional usando algoritmo Belief Propagation

Técnica de decodificação bidimensional usando algoritmo Belief Propagation Técnica de decodificação bidimensional usando algoritmo Belief Propagation R F da Silva, M S M Lins, M L M G Alcoforado, V C da Rocha Jr Resumo Este artigo introduz uma técnica de decodificação bidimensional,

Leia mais

Códigos Corretores de Erro Aplicados a Redes de Sensores sem Fio

Códigos Corretores de Erro Aplicados a Redes de Sensores sem Fio Revista de Engenharia e Pesquisa Aplicada, Volume 2, Número 1, 2016 Códigos Corretores de Erro Aplicados a Redes de Sensores sem Fio Aguiar, R. M. D. Escola Politécnica de Pernambuco Universidade de Pernambuco

Leia mais

UFSM-CTISM. Comunicação de Dados Aula-17

UFSM-CTISM. Comunicação de Dados Aula-17 UFSM-CTISM Comunicação de Dados Aula-17 Professor: Andrei Piccinini Legg Santa Maria, 2012 Definição: Um código de Hamming adiciona um bloco de paridade a um bloco de dados, de forma a que, caso ocorram

Leia mais

Compromissos da Modulação e da Codificação

Compromissos da Modulação e da Codificação Compromissos da Modulação e da Codificação Edmar José do Nascimento (Tópicos Avançados em Engenharia Elétrica I) http://www.univasf.edu.br/ edmar.nascimento Universidade Federal do Vale do São Francisco

Leia mais

Comunicações Digitais Prof. André Noll Barreto Prova /2 (28/11/2013)

Comunicações Digitais Prof. André Noll Barreto Prova /2 (28/11/2013) Prova 3 013/ (8/11/013) Aluno: Matrícula: Instruções A prova consiste de três questões discursivas A prova terá a duração de h00 A prova pode ser feita a lápis ou caneta Não é permitida consulta a notas

Leia mais

EEC4164 Telecomunicações 2

EEC4164 Telecomunicações 2 Licenciatura em Engenharia Electrotécnica e de Computadores EEC4164 Telecomunicações (00/003) 1ª Parte Duração: 1 hora (sem consulta) 1ª chamada 4 de Janeiro de 003 1. a) Uma alternativa a PCM é a modulação

Leia mais

étodos uméricos SISTEMAS DE EQUAÇÕES LINEARES (Continuação) Prof. Erivelton Geraldo Nepomuceno PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA

étodos uméricos SISTEMAS DE EQUAÇÕES LINEARES (Continuação) Prof. Erivelton Geraldo Nepomuceno PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA étodos uméricos SISTEMAS DE EQUAÇÕES LINEARES (Continuação) Prof. Erivelton Geraldo Nepomuceno PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA UNIVERSIDADE DE JOÃO DEL-REI PRÓ-REITORIA DE PESQUISA CENTRO

Leia mais

ANÁLISE DE COMPLEXIDADE DE CÓDIGOS TURBO UTILIZANDO A TRELIÇA MÍNIMA E SECCIONADA

ANÁLISE DE COMPLEXIDADE DE CÓDIGOS TURBO UTILIZANDO A TRELIÇA MÍNIMA E SECCIONADA UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA E INFORMÁTICA INDUSTRIAL - CPGEI GUILHERME LUIZ MORITZ ANÁLISE DE COMPLEXIDADE DE CÓDIGOS TURBO UTILIZANDO A

Leia mais

2 Modelos de Sinais para Sistemas DS-CDMA

2 Modelos de Sinais para Sistemas DS-CDMA 2 Modelos de Sinais para Sistemas DS-CDMA Dentre os modelos de sinais de sistemas de múltiplo acesso existem dois cenários de interesse que foram tratados em nosso trabalho: o enlace direto ou downlink,

Leia mais

Detecção e correcção de erros

Detecção e correcção de erros elecomunicações II Codificação - Detecção e correcção de erros o Quando existe um canal de comunicação bidireccional, o receptor poderá requerer a retransmissão da informação que continha erros. o Esta

Leia mais

Estudo e Implementação Computacional de um Sistema de Comunicação Digital

Estudo e Implementação Computacional de um Sistema de Comunicação Digital Revista de Engenharia e Pesquisa Aplicada, Volume 2, Número 1, 2016 Estudo e Implementação Computacional de um Sistema de Comunicação Digital Da Silva Junior, A. C. Escola Politécnica de Pernambuco Universidade

Leia mais

Comunicações Móveis (2016/01) Prof. André Noll Barreto. Prova 2 (25/05/2016)

Comunicações Móveis (2016/01) Prof. André Noll Barreto. Prova 2 (25/05/2016) Prova 2 (25/5/26) Aluno: Matrícula: Questão (2,5 pontos) Considere que um sinal com atenuação de Rayleigh tenha 2% de probabilidade de estar 6dB abaixo de um certo limiar. a) Qual a probabilidade do sinal

Leia mais

Transmissão de impulsos em banda-base

Transmissão de impulsos em banda-base Transmissão de impulsos em banda-base Transmissão de impulsos através de um canal com ruído aditivo. Probabilidades de erro com detecção no ponto central Detecção de sinais binários em ruído gaussiano

Leia mais

3 Especificação Estatística da Dispersão dos Modos de Polarização em Cabos de Fibra Óptica

3 Especificação Estatística da Dispersão dos Modos de Polarização em Cabos de Fibra Óptica em Enlaces Ópticos 0 3 Especificação Estatística da Dispersão dos Modos de Polarização em Cabos de Fibra Óptica Teoria básica da especificação estatística da dispersão dos modos de polarização em cabos

Leia mais

XXIII Curso de Especialização em Teleinformática e Redes de Computadores

XXIII Curso de Especialização em Teleinformática e Redes de Computadores XXIII Curso de Especialização em Teleinformática e Redes de Computadores www.teleinfo.ct.utfpr.edu.br Linguagem C e MATLAB Simulação de sistemas de comunicação digital abr-mai/2013 Prof. Gustavo B. Borba

Leia mais

Sistemas de Telecomunicações 1

Sistemas de Telecomunicações 1 CODIFICAÇÃO PARA CONTROLO DE ERROS Paula Queluz Sistemas de Telecomunicações Introdução O ruído, a distorção e eventuais interferências, inerentes ao processo de transmissão do sinal, podem originar erros

Leia mais

1.1 Breve Histórico OFDM

1.1 Breve Histórico OFDM 1 Introdução 1.1 Breve Histórico OFDM O OFDM, do inglês Orthogonal Frequency Division Multiplexing, que pode ser visto como uma evolução do FDM (Frequency Division Multiplexing), é uma técnica de transmissão

Leia mais

COMUNICAÇÃO DIGITAL INTRODUÇÃO À TEORIA DE INFORMAÇÃO

COMUNICAÇÃO DIGITAL INTRODUÇÃO À TEORIA DE INFORMAÇÃO COMUNICAÇÃO DIGITAL INTRODUÇÃO À TEORIA DE INFORMAÇÃO Evelio M. G. Fernández - 2011 Introdução à Teoria de Informação Em 1948, Claude Shannon publicou o trabalho A A Mathematical Theory of Communications.

Leia mais

3 Expressões de BER para as diferentes modulações

3 Expressões de BER para as diferentes modulações TE248 - Teoria da Informação e Codificação - 2013 Luis Henrique A. Lolis Trabalho MATLAB - Escolha de modulação e código para uma comunicação sem fio 1 Objetivos Considerando um projeto de comubnicação

Leia mais

5 Descrição da ferramenta de simulação

5 Descrição da ferramenta de simulação 5 Descrição da ferramenta de simulação Este capítulo tem a função de descrever a ferramenta de simulação desenvolvida para analisar as características do padrão de TV digital ISDB- T. Ao final da simulação,

Leia mais

TE060 Princípios de Comunicação. Sistemas de Comunicação Digital Notes. Por quê Digital? Notes. Notes. Evelio M. G. Fernández. 5 de novembro de 2013

TE060 Princípios de Comunicação. Sistemas de Comunicação Digital Notes. Por quê Digital? Notes. Notes. Evelio M. G. Fernández. 5 de novembro de 2013 TE060 Princípios de Comunicação Modulação de Pulso 5 de novembro de 2013 Sistemas de Comunicação Digital Sistema digital no sentido de utilizar uma sequência de símbolos pertencentes a um conjunto finito

Leia mais

2 Descrição do Problema

2 Descrição do Problema 2 Descrição do Problema Os requisitos de desempenho para enlaces de comunicação digital estabelecidos por recomendações da ITU impõem restrições a parâmetros de desempenho de erro e disponibilidade. A

Leia mais

Acrescenta um bit 1 ou um bit 0 às mensagem para que o número total de bits 1 seja par

Acrescenta um bit 1 ou um bit 0 às mensagem para que o número total de bits 1 seja par Detecçã ção o de Erros Paridade Verificação de Paridade Esse tipo de detecção consiste em acrescentar um bit (de paridade) a cada conjunto de bits da mensagem (caractere) de modo a ter as seguintes características:

Leia mais

Universidade Federal de Pernambuco

Universidade Federal de Pernambuco Universidade Federal de Pernambuco Centro de Tecnologia e Geociências Programa de Pós-graduação em Engenharia Elétrica Kleber Paulo da Silva Equalização Iterativa para Canal Aditivo Ruidoso com Interferência

Leia mais

Códigos de bloco. Luis Henrique Assumpção Lolis. 1 de novembro de Luis Henrique Assumpção Lolis Códigos de bloco 1

Códigos de bloco. Luis Henrique Assumpção Lolis. 1 de novembro de Luis Henrique Assumpção Lolis Códigos de bloco 1 Códigos de bloco Luis Henrique Assumpção Lolis 1 de novembro de 2013 Luis Henrique Assumpção Lolis Códigos de bloco 1 Conteúdo 1 Códigos de bloco lineares 2 Códigos sistemáticos 3 Síndrome 4 Distância

Leia mais

III-1 Códigos detectores e correctores de erros

III-1 Códigos detectores e correctores de erros III-1 Códigos detectores e correctores de erros (13 Dezembro de 2010) ISEL-DEETC- 1 Sumário 1. Aspectos gerais sobre a comunicação digital 1. Causa de erros 2. Códigos detectores e correctores de erros

Leia mais

5 Testes em Imagens. Figura 5.1: Esquema de proteção com detecção de erros LT Hamming. Imagem. Cod-Hamming SPIHT. Cod-LT. Canal.

5 Testes em Imagens. Figura 5.1: Esquema de proteção com detecção de erros LT Hamming. Imagem. Cod-Hamming SPIHT. Cod-LT. Canal. 5 Testes em Imagens Uma vez feito o estudo do desempenho do código LT quando é usado em um canal ruidoso, nosso objetivo agora, centra-se na análise de seu possível uso em um esquema para a transmissão

Leia mais

Método Analítico. Método Numérico

Método Analítico. Método Numérico UFRN/CT/DCA Nota de Aula Introdução aos Métodos Computacionais e Estudo dos Erros Prof Anderson Cavalcanti Métodos Computacionais Contextualização Muitos problemas de engenharia consistem em obter uma

Leia mais

Cálculo Numérico BCC760

Cálculo Numérico BCC760 Cálculo Numérico BCC760 Resolução de Sistemas de Equações Lineares Simultâneas Departamento de Computação Página da disciplina http://www.decom.ufop.br/bcc760/ 1 Introdução! Definição Uma equação é dita

Leia mais

Transmissão e comunicação de dados. Renato Machado

Transmissão e comunicação de dados. Renato Machado Renato Machado UFSM - Universidade Federal de Santa Maria DELC - Departamento de Eletrônica e Computação renatomachado@ieee.org renatomachado@ufsm.br 23 de Abril de 2012 Sumário 1 2 3 4 Térmico de Intermodulação

Leia mais

Introdução aos Sistemas de Comunicações

Introdução aos Sistemas de Comunicações aos Sistemas de Comunicações Edmar José do Nascimento () http://www.univasf.edu.br/ edmar.nascimento Universidade Federal do Vale do São Francisco Colegiado de Engenharia Elétrica Roteiro 1 Sistemas de

Leia mais

FACULDADE DE TALENTOS HUMANOS DEPARTAMENTO DE ENGENHARIA ELÉTRICA PROCEDIMENTOS EXPERIMENTAIS DE COMUNICAÇÃO DIGITAL II PARA TELECOMUNICAÇÃO

FACULDADE DE TALENTOS HUMANOS DEPARTAMENTO DE ENGENHARIA ELÉTRICA PROCEDIMENTOS EXPERIMENTAIS DE COMUNICAÇÃO DIGITAL II PARA TELECOMUNICAÇÃO FACULDADE DE TALENTOS HUMANOS DEPARTAMENTO DE ENGENHARIA ELÉTRICA PROCEDIMENTOS EXPERIMENTAIS DE COMUNICAÇÃO DIGITAL II PARA TELECOMUNICAÇÃO PROF. ENG. ESP. ANTONIO CARLOS LEMOS JÚNIOR acjunior@facthus.edu.br

Leia mais

TE111 Comunicação Digital

TE111 Comunicação Digital TE111 Comunicação Digital Introdução à Teoria de Informação e Codificação de Fonte 15 de outubro de 2018 Introdução à Teoria de Informação Em 1948, Claude Shannon publicou o trabalho A Mathematical Theory

Leia mais

4 Transmissão Através de Canal Ruidoso

4 Transmissão Através de Canal Ruidoso 4 Transmissão Através de Canal Ruidoso 4.1 Modelos de Canais O canal de comunicação modela o meio físico através do qual é transportada a informação desde o transmissor até o receptor, diferentes tipos

Leia mais

Obtenção de Limitantes da União Expurgados de Esquemas de Modulação Codificada em Treliça

Obtenção de Limitantes da União Expurgados de Esquemas de Modulação Codificada em Treliça Obtenção de Limitantes da União Expurgados de Esquemas de Modulação Codificada em Treliça Jessyca Gomes da Silva 1, Luiz Guedes Caldeira 2 1 Graduanda em Engenharia Elétrica IFPB. e-mail: jessycagomes@ieee.org

Leia mais

TP537 Transmissão Digital 1ª Avaliação 27/10/ :00h Prof. Dayan Adionel Guimarães. Aluno(a):

TP537 Transmissão Digital 1ª Avaliação 27/10/ :00h Prof. Dayan Adionel Guimarães. Aluno(a): TP537 Transmissão Digital ª Avaliação 7//4 8:h Prof. Dayan Adionel Guimarães ota: Aluno(a): ª questão (4 pontos) Prova com consulta ao livro texto, com duração de 3 horas. A interpretação é parte integrante

Leia mais

Decodificação iterativa de códigos baseados em matrizes de verificação de paridade esparsas

Decodificação iterativa de códigos baseados em matrizes de verificação de paridade esparsas Universidade Federal de Pernambuco Centro de Tecnologia e Geociências Programa de Pós-graduação em Engenharia Elétrica Marcos Müller Vasconcelos Decodificação iterativa de códigos baseados em matrizes

Leia mais

TE111 Comunicação Digital. Quais os Benefícios da Codificação de Canal? Evelio M. G. Fernández. 15 de outubro de 2018

TE111 Comunicação Digital. Quais os Benefícios da Codificação de Canal? Evelio M. G. Fernández. 15 de outubro de 2018 TE111 Comunicação Digital Introdução à Codificação de Canal 15 de outubro de 2018 Quais os Benefícios da Codificação de Canal? 1 O uso de codificação de canal pode: aumentar a faixa de operação de um sistema

Leia mais

3 Detecção Multiusuário 3.1 Introdução

3 Detecção Multiusuário 3.1 Introdução 3 Detecção Multiusuário 3.1 Introdução As técnicas de múltiplo acesso mais cogitadas nas propostas para os padrões de terceira geração envolvem alguma forma de DS/CDMA. Contudo, essa técnica de múltiplo

Leia mais

4 Cálculo de Equivalentes Dinâmicos

4 Cálculo de Equivalentes Dinâmicos 4 Cálculo de Equivalentes Dinâmicos 4.1. Introdução Os sistemas de potência interligados vêm adquirindo maior tamanho e complexidade, aumentando a dependência de sistemas de controle tanto em operação

Leia mais

Seminário. Marcio Eisencraft. Pós-Graduação em Computação Aplicada INPE. Aplicações de Sinais Caóticos em Comunicações

Seminário. Marcio Eisencraft. Pós-Graduação em Computação Aplicada INPE. Aplicações de Sinais Caóticos em Comunicações Seminário Pós-Graduação em Computação Aplicada INPE Aplicações de Sinais Caóticos em Comunicações Marcio Eisencraft 03/12/2009 Sumário da apresentação 1. Introdução - Sinais caóticos 2. Modulação usando

Leia mais

4 Estratégias de agrupamento e desempenho dos receptores

4 Estratégias de agrupamento e desempenho dos receptores 4 Estratégias de agrupamento e desempenho dos receptores O capítulo anterior apresentou exemplos de resultados de desempenho do receptor ótimo por grupos, para N = 6 símbolos. Nestes exemplos os agrupamentos

Leia mais

Universidade de Pernambuco Escola Politécnica de Pernambuco

Universidade de Pernambuco Escola Politécnica de Pernambuco Universidade de Pernambuco Escola Politécnica de Pernambuco TV Analógica e Digital Codificação de Fonte Prof. Márcio Lima E-mail:marcio.lima@poli.br 12.06.2014 Introdução A principal função de um sistema

Leia mais

ELE32 Introdução a Comunicações Codificação de Canal Códigos cíclicos. ITA 2º. Semestre de 2017

ELE32 Introdução a Comunicações Codificação de Canal Códigos cíclicos. ITA 2º. Semestre de 2017 ELE32 Introdução a Comunicações Codificação de Canal Códigos cíclicos ITA 2º. Semestre de 2017 manish@ita.br Problema Não deve ter sido trivial encontrar um codificador de canal com boas propriedades Além

Leia mais

Elementos de um Sistema de Telecomunicações Digital

Elementos de um Sistema de Telecomunicações Digital Elementos de um Sistema de Telecomunicações Digital Conceito de Comunicação Digital: Transmissão de informação em forma digital a partir de uma fonte geradora da informação até um ou mais destinatários.

Leia mais

Comunicaçõ. ções Digitais II. Texto original por Prof. Dr. Ivan Roberto Santana Casella

Comunicaçõ. ções Digitais II. Texto original por Prof. Dr. Ivan Roberto Santana Casella PTC-43 Comunicaçõ ções Digitais II Texto original por Prof. Dr. Ivan Roberto Santana Casella Representaçã ção o Geométrica de Sinais A modulação digital envolve a escolha de um sinal específico s i (t)

Leia mais

Rodrigo Pereira David. Técnica de Estimação de Canal Utilizando Símbolos Pilotos em Sistemas OFDM. Dissertação de Mestrado

Rodrigo Pereira David. Técnica de Estimação de Canal Utilizando Símbolos Pilotos em Sistemas OFDM. Dissertação de Mestrado Rodrigo Pereira David Técnica de Estimação de Canal Utilizando Símbolos Pilotos em Sistemas OFDM Dissertação de Mestrado Dissertação apresentada como requisito parcial para obtenção do grau de Mestre pelo

Leia mais

Primeiro Exercício programa: Como o Google ordena páginas. MAP-2121 para EPUSP

Primeiro Exercício programa: Como o Google ordena páginas. MAP-2121 para EPUSP Primeiro Exercício programa: Como o Google ordena páginas MAP-2121 para EPUSP 1 Instruções gerais Os exercícios computacionais pedidos na disciplina Cálculo Numérico têm por objetivo fundamental familiarizar

Leia mais

Ferramenta Computacional para o Estudo de Seqüências de Treinamento em Equalizadores LMS

Ferramenta Computacional para o Estudo de Seqüências de Treinamento em Equalizadores LMS Ferramenta Computacional para o Estudo de Seqüências de Treinamento em es LMS Luciano L. Mendes Departamento de Eletrônica e Eletrotécnica Instituto acional de Telecomunicações Santa Rita do Sapucaí, MG

Leia mais

Redes de Computadores

Redes de Computadores Redes de Computadores Prof. Macêdo Firmino Camada Física Macêdo Firmino (IFRN) Redes de Computadores Setembro de 2011 1 / 32 Pilha TCP/IP A B M 1 Aplicação Aplicação M 1 Cab M T 1 Transporte Transporte

Leia mais

COMUNICAÇÃO DIGITAL 1. INTRODUÇÃO PROF. MARCIO EISENCRAFT

COMUNICAÇÃO DIGITAL 1. INTRODUÇÃO PROF. MARCIO EISENCRAFT COMUNICAÇÃO DIGITAL 1. INTRODUÇÃO PROF. MARCIO EISENCRAFT Baseado em http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-450- principles-of-digital-communications-i-fall-2006/video-lectures/lecture-1-introduction/

Leia mais

Estação controladora envia mensagens a outras estações. Convidando-as a transmitir dados

Estação controladora envia mensagens a outras estações. Convidando-as a transmitir dados Varredura Estação controladora envia mensagens a outras estações Convidando-as a transmitir dados Estações ao serem consultadas podem transmitir dados Ordem das consultas-convites é estabelecida por uma

Leia mais

Instalação de Equipamentos de Redes IER 12503

Instalação de Equipamentos de Redes IER 12503 Instituto Federal de Santa Catarina Instalação de Equipamentos de Redes IER 12503 2014 2 Área de Telecomunicações REDES DE COMPUTADORES: Uma Abordagem Top-Down. Forouzan & Mosharraf slide 1 O material

Leia mais

Códigos para o Canal T-Usuários via Ação de Grupos. Coding for T-User Multiple Access Channel for Action Groups

Códigos para o Canal T-Usuários via Ação de Grupos. Coding for T-User Multiple Access Channel for Action Groups Códigos para o Canal T-Usuários via Ação de Grupos Coding for T-User Multiple Access Channel for Action Groups João Bosco Batista Lacerda Departamento de Matemática Universidade Federal da Paraíba UFPB,

Leia mais

Códigos de bloco. Instituto Federal de Santa Catarina Curso superior de tecnologia em sistemas de telecomunicação Comunicações móveis 2

Códigos de bloco. Instituto Federal de Santa Catarina Curso superior de tecnologia em sistemas de telecomunicação Comunicações móveis 2 Instituto Federal de Santa Catarina Curso superior de tecnologia em sistemas de telecomunicação Comunicações móveis 2 Códigos de bloco Prof. Diego da Silva de Medeiros São José, maio de 2012 Codificação

Leia mais

Sexta Lista: Geração de Números Pseudo-Aleatórios e Método de Monte Carlo

Sexta Lista: Geração de Números Pseudo-Aleatórios e Método de Monte Carlo Sexta Lista: Geração de Números Pseudo-Aleatórios e Método de Monte Carlo Antônio Carlos Roque da Silva Filho e Cristiano R. F. Granzotti 26 de junho de 2017 Os exercícios desta lista devem ser resolvidos

Leia mais

5 CÓDIGOS CONVOLUCIONAIS

5 CÓDIGOS CONVOLUCIONAIS 5 CÓDIGOS CONVOLUCIONAIS Além dos Códigos de Blocos Lineares, os Códigos Convolucionais compõem outra grande família de códigos corretores de erros. ste capítulo descreve os fundamentos dos códigos convolucionais,

Leia mais

Vanessa Juliana da Costa Maringá PR, Brasil

Vanessa Juliana da Costa Maringá PR, Brasil Decodificação para Códigos Lineares Vanessa Juliana da Costa Maringá PR, Brasil Abstract In this work we present a decoding algorithm for linear codes. We introduce basic properties of linear codes such

Leia mais