Correção de Erros II: Simulador de Códigos Reed-Solomon

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

Download "Correção de Erros II: Simulador de Códigos Reed-Solomon"

Transcrição

1 Correção de Erros II: Simulador de Códigos Reed-Solomon Embora sejam famosos por sua eficácia na correção de erros de símbolos, com aplicações em diversas áreas da engenharia, os códigos de Reed-Solomon são pouco conhecidos em profundidade, o que dificulta a sua implementação prática. Visando a esclarecer sua lógica e os mecanismos internos de codificação e decodificação, esta série de tutoriais tem como objetivo apresentar o desenvolvimento de um simulador genérico para códigos de Reed-Solomon. Os tutoriais foram preparados a partir do trabalho de conclusão de curso Desenvolvimento de um Simulador de Codificação-Decodificação Reed-Solomon, elaborado pelos autores, e apresentado à Coordenação de Pós-graduação Lato Sensu do Inatel como requisito parcial para a obtenção do Certificado de Conclusão do Curso de Engenharia de Sistemas de TV Digital e IPTV. Foi orientador do trabalho o Prof. Dr. Geraldo Gil R. Gomes. Este tutorial parte II apresenta inicialmente a biblioteca desenvolvida em linguagem de programação Java contendo as classes para realização de álgebra de Campos de Galois, e a seguir apresenta o simulador propriamente dito e as conclusões do trabalho realizado. Daniel Cursi Junior Engenheiro Eletroeletrônico pela Fundação Educacional de Barretos (SP, 1987), também é graduado em Administração de Empresas com ênfase mercadológica pelo IMESB-VC de Bebedouro (SP, 1998), pós-graduado em Administração de Empresas (MBA) pela Fundace/USP de Ribeirão Preto e pós-graduado em Televisão Digital pelo Inatel de Santa Rita do Sapucai (MG). Desde 1993 é sócio de uma empresa do Setor de Telecomunicações, prestando serviços de consultoria e manutenção de sistemas de retransmissão de televisão aberta. cursi@cursi.com.br 1

2 Júlio Tanomaru Engenheiro Eletrônico pelo Instituto Tecnológico de Aeronáutica (ITA, 1986), completou o mestrado como bolsista do governo japonês na Universidade de Tokushima (Japão, 1992). Com pesquisas centradas em aplicações de Inteligência Computacional em Engenharia, obteve o título de Doutor em Engenharia na mesma universidade em Atuou como Professor Auxiliar na Universidade de Tokushima (Japão). Após deixar a universidade, atuou como Gerente de Projetos de software na Fujitsu Tokushima Systems Engineering. Atualmente é Professor no Centro Universitário Unilins, onde leciona diversas disciplinas relacionadas à Engenharia de Computação e Eletrônica. jtanomaru@uol.com.br Categorias: Telefonia Celular, TV e Rádio Nível: Introdutório Enfoque: Técnico Duração: 15 minutos Publicado em: 30/08/2010 2

3 Correção de Erros II: Introdução Motivação Isoladamente ou em conjunto com outras formas de codificação, os códigos de Reed-Solomon estão certamente entre os códigos corretores de erros com maior número de aplicações práticas. Embora muito conhecidos pelo nome e por suas principais características, poucos são os que compreendem seu funcionamento interno a ponto de poder implementá-los desde o início. Isso se deve a vários fatores, incluindo: o entendimento de sua lógica demanda conhecimentos de álgebra de conjuntos finitos; há falta de material de referência que explique como implementar decodificadores práticos; a maior parte dos livros mostra somente exemplos simples, que podem ser resolvidos à mão com uso de álgebra, e não entra em detalhes sobre como fazer implementações práticas em software ou hardware. O desejo de entender a fundo o funcionamento dos códigos de Reed-Solomon constitui a principal motivação deste trabalho. Além de permitir sua real utilização prática, esse entendimento profundo possibilita a otimização e melhoria dos códigos, comparação de algoritmos de decodificação, e até mesmo a implementação em hardware utilizando tecnologias de hardware reconfigurável como os FPGA (Field Programmable Gate Arrays). Objetivo Este trabalho tem o objetivo prático de implementar um simulador em software de códigos de Reed-Solomon, facilitando o entendimento dessa importante categoria de códigos. Para isso, os procedimentos de codificação e decodificação são estudados em detalhe e é desenvolvida uma biblioteca de classes na linguagem de programação Java. O simulador consiste numa aplicação Java com interface gráfica rica e intuitiva, permitindo simulações de códigos Reed-Solomon com grande variedade de parâmetros. A biblioteca de classes é totalmente original, desenvolvida a partir do zero, e é disponibilizada gratuitamente a interessados. As classes e seus métodos foram escritos de modo a facilitar sua compreensão e utilização, sem grande ênfase à eficiência de execução. Tutoriais O tutorial parte I apresentou os fundamentos teóricos dos códigos Reed-Solomon, detalhando suas características, aspectos teóricos dos campos finitos e a codificação e decodificação desses códigos. Este tutorial parte II apresenta inicialmente a biblioteca desenvolvida em linguagem de programação Java contendo as classes para realização de álgebra de Campos de Galois, e a seguir apresenta o simulador propriamente dito e as conclusões do trabalho realizado. 3

4 Correção de Erros II: Biblioteca de Classes Foi desenvolvida uma biblioteca de classes para implementação do simulador de uma forma flexível e extensível. A linguagem de programação Java foi escolhida por ser poderosa e pelo fato de haver excelentes ferramentas gratuitas de desenvolvimento. Além disso, o programa resultante é independente da plataforma de execução, ou seja, tem portabilidade. As classes foram desenvolvidas seguindo os bons padrões de Programação Orientada a Objetos e foram incluídas num pacote chamado srs. O código-fonte foi documentado extensivamente e é fornecido na íntegra no Apêndice A. Embora sejam muitas as classes do pacote desenvolvido, esta seção apresenta a descrição das três classes principais: CampoDeGalois (que utiliza a classe CircuitoLFSR) Codificador e Decodificador. Campos de Galois Os campos de Galois e sua aritmética devem ser implementados num computador de forma consideravelmente diferente dos procedimentos manuais descritos na seção Campos Finitos do tutorial parte I, que somente se prestam para campos de pequenas dimensões e fins didáticos. Para implementação foram projetadas duas classes em Java: CampoDeGalois e CircuitoLFSR. Classe CampoDeGalois A classe chamada CampoDeGalois gera os elementos de campos de extensão do tipo GF(2 m ) a partir do polinômio primitivo e dá suporte às operações aritméticas de adição e multiplicação para elementos expressos tanto na forma exponencial quanto na forma polinomial. Para proporcionar uma implementação eciente foram utilizadas tabelas de consulta (look-up tables) para rápida conversão entre as formas polinomial e exponencial; o uso dessas tabelas impõe a restrição prática 2 <= m <= 16, mas esse fato não representa um empecilho à simulação, atendendo à maioria dos casos reais de utilização de códigos Reed-Solomon. A classe CampoDeGalois tem o seguinte construtor: CampoDeGalois(int m, int f): onde m é a dimensão do campo de extensão GF(2 m ) e f é um inteiro contendo todos os coeficientes do polinômio primitivo. O construtor inicializa o circuito de registradores de deslocamento, gera todos os elementos do campo e inicializa tabelas internas utilizadas para implementar as operações aritméticas de forma eficiente. O bit menos significativo de f corresponde ao coeficiente f 0 na Equação 15 do tutorial parte I, o bit seguinte corresponde a f 1, e assim por diante. Para gerar os elementos do campo, um objeto CampoDeGalois possui como campo privado uma instância da classe CircuitoLFSR. Os elementos do campo são gerados em sequência e os resultados alimentam duas tabelas de consulta, também armazenadas como campos privados, chamadas tablog e tabinvlog. Essas tabelas, ambas com comprimento 2 m 1, são usadas para permitir a conversão rápida entre as formas exponencial e polinomial, conforme explicado abaixo: 4

5 tablog[]: usa como índice a representação polinomial de um elemento do campo, de 1 a 2 m 1, e mapeia o expoente da representação exponencial do elemento correspondente. Para o exemplo da tabela 1, tablog[1] = 0, tablog [2] = 1, e assim por diante. tabinvlog[]: serve para fazer o mapeamento inverso de tablog, ou seja, recebe como índice o expoente de a na notação exponencial de um elemento e o mapeia para o correspondente valor na notação polinomial. Como os campos GF(2 m ) são cíclicos, os índices válidos vão de 0 a 2 m 2. Usando essas tabelas, o produto de dois elementos na representação polinomial pode ser obtido somando os logaritmos das formas exponenciais (em módulo 2m 1, para evitar índices inválidos) e depois encontrando o logaritmo inverso correspondente. Ou seja, um produto de dois elementos na forma polinomial é implementado com duas consultas à tabela tablog, uma operação de módulo e uma consulta à tabinvlog. Por exemplo, a tabela 1 mostra as duas tabelas de consulta para um campo GF(16). Alguns exemplos de multiplicação de elementos na forma polinomial são dados abaixo: Tabela 1: Tabelas logarítmicas para o campo GF(16) gerado pelo polinômio f(x) = 1+X +X4 i tablog [i] tabinvlog [i] Os resultados acima são consistentes com as multiplicações das formas exponenciais, pois, conforme pode ser verificado na tabela 1, temos: Na implementação de operações aritméticas, o elemento 0 deve ser tratado à parte, como um caso especial, uma vez que, a rigor, a entrada correspondente a tablog [0] seria 1. Na prática, adotou-se um valor negativo declarado como a constante MENOS_INFINITO ( 1, de fato) para representar esse caso, tomando o cuidado para que tanto a multiplicação quanto a adição funcionem coerentemente. Para realizar as operações aritméticas de dois elementos do campo expressos na forma exponencial foram escritos os seguintes métodos na classe CampoDeGalois: int adicionaexp(int exp1, int exp2): adiciona dois elementos na forma exponencial. int subtraiexp(int exp1, int exp2): subtrai dois elementos na forma exponencial. 5

6 int multiplicaexp(int exp1, int exp2): multiplica dois elementos na forma exponencial. int divideexp(int exp1, int exp2): divide dois elementos na forma exponencial. Esses métodos recebem como argumentos os expoentes dos elementos e retornam o expoente do resultado. O valor MENOS_INFINITO é usado para designar o elemento nulo (a - = 0). A subtração foi fornecida somente para completar o conjunto de operações aritméticas, haja vista que adição e subtração são equivalentes no domínio binário. De modo correspondente, as operações aritméticas entre dois elementos expressos na forma polinomial são implementadas pelos seguintes métodos: int adicionapol(int elemento1, int elemento2): adiciona dois elementos na forma polinomial. int subtraipol(int elemento1, int elemento2): subtrai dois elementos na forma polinomial. int multiplicapol(int elemento1, int elemento2): multiplica dois elementos na forma polinomial. int dividepol(int elemento1, int elemento2): divide dois elementos na forma polinomial. Eles recebem e retornam valores expressos na forma polinomial. Além disso, foram também escritos vários métodos auxiliares: String listabits(int num): converte um número inteiro numa cadeia de caracteres de 0's e 1's correspondente à sua notação binária. String obtempolinomioprimitivo(): gera uma descrição do polinômio primitivo do campo. String obtemdadosdocampo(): retorna uma descrição em texto do campo de Galois indicando o campo e o polinômio primitivo que o gerou. int [] [] geratabadicao(): gera a tabela de adição de dois elementos na forma exponencial. int [] [] geratabmultiplicacao(): gera a tabela de multiplicação de dois elementos na forma exponencial. Finalmente, os seguintes métodos foram escritos para saída de dados no console: void imprimeelementos(): imprime uma tabela com todos os elementos do campo na forma exponencial e polinomial. void imprimetabadicao(): imprime a tabela de adição de elementos na forma exponencial. void imprimetabmultiplicacao(): imprime a tabela de multiplicação de elementos na forma exponencial. Classe CircuitoLFSR Construir o campo através do procedimento descrito na seção Polinômios Primitivos do tutorial parte I não é prático para implementação em um programa de computador. É muito mais conveniente usar a idéia do gerador de elementos usando um conjunto de registradores de deslocamento com realimentação do bit mais significativo, em que o padrão de realimentação é dado pelos coeficientes do polinômio primitivo usado para gerar os elementos do campo, conforme explicado na seção Circuito Gerador do tutorial parte I. Esse circuito é chamado de LFSR (Linear Feedback Shift Register) e pode ser facilmente simulado num programa de computador. Para o campo GF(16) usado como exemplo na seção Polinômios Primitivos do tutorial parte I, o gerador utilizando um LFSR é ilustrado na figura. 6

7 Exemplos de Resultados Figura 1: Circuito para geração dos elementos do campo de Galois GF(16) gerado pelo polinômio f(x) = 1 + X + X4 com o papel Durante a fase de desenvolvimento, a classe Testador foi usada para verificar o funcionamento das principais classes. As figuras 2, 3 e 4 mostram os resultados parciais (elementos do campo, tabela de adição e tabela de multiplicação, respectivamente) do teste de um campo de extensão de Galois. Figura 2: Elementos do campo de Galois GF(16) gerado pelo polinômio f(x) = 1 + X + X4 7

8 Figura 3: Resultado de imprimetabadicao() para o campo de Galois GF(16) gerado pelo polinômio f(x) = 1 + X + X4 Figura 4: Resultado de imprimetabmultiplicacao() para o campo de Galois GF(16) gerado pelo polinômio f(x) = 1 + X + X4 Codificador Reed-Solomon O codificador de Reed-Solomon foi implementado pela classe Codificador. Foi utilizada a implementação sistemática usando um registrador de deslocamento linear com retroalimentação (LFSR, Linear Feedback Shift Register ), de maneira similar à usada para gerar os elementos do campo. A classe Codificador tem o seguinte construtor: Codificador(CampoDeGalois c, int n, int k): recebe uma referência ao campo de extensão de 8

9 Galois usado para gerar os símbolos do código, o número de símbolos de saída e de entrada do codificador; internamente, chama o método constroipolinomiogerador(false) e determina os coeficientes do polinômio gerador do código. Construção do Polinômio Gerador do Código Para um código R-S (n, k) com capacidade de correção de t símbolos, o polinômio gerador tem a forma mostrada na Equação 36 do tutorial parte I, que é repetida aqui: g(x) = g 0 + g 1 X + g 2 X g 2t 1 X 2t 1 + X 2t (1) Especificando o campo de extensão de Galois e a capacidade de correção de erros de símbolo do código, t, o polinômio gerador de código pode ser construído a partir da Equação 37 do tutorial parte I. Os seguintes métodos da classe Codificador são relacionados ao polinômio gerador do código: void constroipolinomiogerador(boolean depura): gera os coeficientes do polinômio gerador do código a partir do campo de extensão de Galois e dos parâmetros do codificador. String obtempolinomiogerador(boolean formatoexponencial): gera uma representação em String do polinômio gerador do código na forma de um polinômio em X public int [] getpolinomiogerador(): retorna um arranjo com todos os coeficientes do polinômio gerador do código. Codificação de Dados Uma vez que o polinômio gerador de código tenha sido determinado, o que é feito no construtor da classe, o projeto do codificador está concluído. O codificador é implementado com o circuito LFSR ilustrado na figura 3 do tutorial parte I, e reproduzido na figura 5 a seguir. Figura 5: Codificador Reed-Solomon Conforme se vê na figura, os coeficientes g i do polinômio gerador são utilizados na retroalimentação; como tanto os coeficientes como os símbolos são elementos do campo de extensão de Galois, todas as multiplicações e adições devem ser feitas utilizando a álgebra do campo. O processo de codificação é implementado pelo método codifica, descrito abaixo: 9

10 PalavraDeSimbolos codifica(palavradesimbolos mensagem): recebe uma palavra de dados e gera uma palavra-código. Nota: Para aumentar a versatilidade da biblioteca, foram criados alguns tipos especiais de dados. Por exemplo, a classe PalavraDeSimbolos empacota tudo o que necessário para interpretar uma palavra de símbolos, ou seja, além dos dados (símbolos) e sua quantidade, a notação utilizada (exponencial ou polinomial), o campo de extensão de Galois sobre o qual os símbolos foram gerados e um indicativo do tipo da palavra (dados, palavra-código, palavra de erro, palavra corrompida ou recebida, ou palavra decodificada). Decodificador de Reed-Solomon O processo de decodificação é realizado pela classe Decodificador, que constitui a classe mais complexa do programa do ponto de vista de desenvolvimento. O processo de decodificação utiliza o algoritmo de Berlekamp-Massey, juntamente com o procedimento de Chien e a fórmula de Forney, conforme explicado anteriormente. Esta classe tem o seguinte construtor: Decodificador(CampoDeGalois c, int n, int k): recebe uma referência ao campo de extensão de Galois usado para gerar os símbolos do código, o número de símbolos de saída e de entrada do codificador. A classe tem um único método: ResultadoDecodificacao decodifica(palavradesimbolos r): realiza todo o processo de decodificação; o método recebe a palavra de símbolos corrompida e retorna um objeto contendo, além dos resultados finais da decodificação, os mais importantes resultados intermediários, incluindo os valores de todas as síndromes e os polinômios localizador e avaliador de erros. 10

11 Correção de Erros II: Simulador de Códigos R-S Simulador de Códigos Reed-Solomon Esta seção explica o funcionamento do simulador. Como se trata de uma aplicação Java, o programa independe da plataforma de hardware e software na qual é executado e não há necessidade de instaladores. Por praticidade, o programa é fornecido na forma de um único arquivo de extensão.jar (Java Archive), que já contém todas as bibliotecas necessárias e não necessita ser descompactado ou instalado. Para facilitar a execução do programa em ambiente Windows, é fornecido um atalho com o ícone ilustrado na figura 6. A interface gráfica do simulador foi concebida para ser intuitiva e sua operação é dividida em guias ou abas, resumidas na tabela 2. As seguintes seções apresentam uma explicação detalhada dessas guias. Figura 6: Ícone do simulador de Reed-Solomon Tabela 2: Guias da interface gráfica do simulador Nome da guia Função Campo de Galois Permite a especificação dos parâmetros do campo de extensão de Galois para definição dos símbolos usados no código Elementos do Apresenta uma tabela com todos os símbolos nas notações Campo exponencial e polinomial, além de um conversor entre as Tabelas Aritméticas Codificador Simulação Sobre o simulador Especificação do Campo de Extensão de Galois notações e uma calculadora Apresenta as tabelas de adições e subtrações de todos os elementos do campo de extensão nas notações exponencial e polinomial Permite a especificação da capacidade de correção de erros do código e, a partir desse parâmetro, seleciona o polinômio gerador do código e constrói o codificador É a principal tela do simulador, permitindo especificar os dados de entrada do codificador, os erros a serem introduzidos na palavra-código, e a visualização de resultados intermediários e final do processo de decodificação, tanto na notação exponencial como na polinomial Fornece dados para contato com o autor Ao iniciar o simulador, a primeira tela apresentada permite a especificação dos parâmetros do Campo de 11

12 Extensão de Galois usado para definição dos símbolos utilizados pelo codificador Reed- Solomon. Esta tela é ilustrada na figura 7, que permite a especificação do número de bits por símbolo e a seleção do polinômio primitivo. Especificação do Número de Bits por Símbolo Figura 7: Tela inicial do simulador O número de bits por símbolo (a dimensão do campo de extensão) pode ser selecionado através de um controle deslizante ou rotativo. O limite superior do número de bits por símbolo foi escolhido como 8 porque valores superiores não são utilizados na maior parte das aplicações práticas de interesse. Além disso, como o simulador tem fins instrutivos, valores superiores tornariam difícil e tediosa a introdução e visualização dos dados, pois haveria tabelas com muitos elementos. Finalmente, como o número de símbolos é dado por 2 m, onde m é o número de bits por símbolo, a imposição da restrição m <= 8 facilita a implementação das operações de logaritmo e antilogaritmo discretos através de tabelas de consulta. A figura 8 mostra um exemplo de especificação de um campo GF(2 7 ) com polinômio primitivo f(x) = 1 + X 2 + X 5 + X 6 + X 7. 12

13 Seleção do Polinômio Primitivo Figura 8: Exemplo de especificação do campo de extensão de Galois À medida que o usuário seleciona o número de bits por símbolo do campo de extensão de Galois, a tabela com os polinômios primitivos que podem ser usados para gerar os elementos do campo vai sendo atualizada. Essa tabela apresenta todos os polinômios possíveis (incluído os polinômios recíprocos) da dimensão selecionada e foi baseada em [8]. O usuário deve selecionar um dos polinô- mios apresentados através do uso do mouse ou das teclas de setas, e depois clicar no botão Gerar Campo de Extensão, sendo então automaticamente direcionado à guia seguinte do simulador. Manipulação dos Elementos do Campo de Extensão Esta guia, ilustrada na figura 9, consiste em três partes distintas: uma tabela apresentando todos os elementos do campo de extensão nas notações exponencial e polinomial, um conversor entre notações, e uma calculadora para aritmética no campo de extensão. 13

14 Tabela dos Elementos do Campo de Extensão Figura 9: Guia de elementos do campo de extensão Todos os elementos do campo de extensão são apresentados nesta tabela nas notações exponencial e polinomial, sendo que na notação polinomial, os elementos são mostrados nas bases decimal e binária. Conversor de Notação O conversor de notação faz exatamente o esperado, convertendo um elemento entre as notações exponencial (à esquerda) e polinomial (à direita), e vice-versa. Na notação exponencial, especifica-se o expoente de a; na notação polinomial, o elemento é especificado em base decimal. Basta introduzir o valor a converter no campo apropriado e pressionar o botão de conversão. Na notação exponencial, não há limite para o expoente que pode ser introduzido. Qualquer valor, inclusive negativo, é aceito. Já na notação polinomial, somente são aceitos valores entre 0 e 2 m 1, inclusive. Calculadora A calculadora permite operações aritméticas com elementos do campo expressos na notação exponencial ou polinomial. As operações disponíveis são adição, subtração (na realidade, adição e subtração são a mesma operação), multiplicação, divisão, inversão e potenciação. O resultado é expresso na mesma notação dos operandos e dentro da faixa {0, a,..., a 2m-2 } para notação exponencial, ou {0, 1,..., 2 m 1} para notação polinomial. Visualização das Tabelas Aritméticas 14

15 Esta guia apresenta as tabelas de adição e multiplicação entre dois elementos não-nulos do campo de extensão, conforme ilustrado na figura 10. As barras de rolagem horizontal e vertical podem ser utilizadas para visualização de grandes tabelas e a notação dos elementos pode ser alterada a qualquer instante. Figura 10: Guia de tabelas aritméticas para adições e multiplicações de elementos do campo de extensão Especificação dos Parâmetros do Codificador Reed-Solomon O simulador assume que n, número de símbolos da palavra-código (saída do decodificador) seja igual a 2 m 1, que é o caso mais típico. Resta então somente a especificação do número de símbolos de entrada do codificador, k. No simulador, isso é especificado indiretamente, através do parâmetro t, a capacidade de correção de erros de símbolo do código. O valor de t pode ser especificado através de um controle deslizante ou rotativo, por conveniência. Os limites da faixa de seleção de valores possíveis da capacidade de correção do código são determinados dinamicamente quando os campos de extensão são definidos, na Guia do Campo de Galois. Isso é ilustrado na figura 11, que traz um exemplo de codificador R-S(127, 87), com capacidade de correção de erros t =

16 Figura 11: Guia de especificação do codificador Reed-Solomon Quando se escolhe a capacidade de correção de erros do código, o número de símbolos de entrada do codificador e a taxa de código são automaticamente atualizados. Além disso, o polinômio gerador de código é automaticamente calculado e exibido na parte inferior da tela. Escolhido o codificador, clica-se no botão Confirmar, que leva à Guia de Simulação, descrita a seguir. Simulação dos Processos de Codificação, Introdução de Erros e Decodificação Esta é a guia mais complexa, onde de fato ocorre a simulação de todo processo de codificação e decodificação. A explicação em detalhes é dada a seguir, mas na parte direita da interface gráfica destacam-se cinco tabelas horizontais, todas com uma linha e várias colunas. Essas tabelas representam todas as palavras de símbolos envolvidas na codificação e decodificação: os dados de entrada, a palavracódigo, a palavra de erros, a palavra-código corrompida pelos erros, e a palavra decodificada. Essas tabelas podem ser editáveis ou não, e podem apresentar mais de uma cor, conforme explicado abaixo. A parte superior das tabelas mostra índices. A convenção aqui adotada é que os símbolos que chegam primeiro ao codificador (e, portanto, saem primeiro também) têm os menores índices e, consequentemente, correspondem aos coeficientes dos maiores expoentes de X, quando a palavra for expressa na forma de um polinômio. Especificação de Dados de Entrada Primeiramente, deve ser escolhida a notação em que serão apresentados os símbolos, conforme mostrado na figura 12, gerada para um codificador RS(127, 87). Note que é exibida uma mensagem indicando os limites dos valores válidos para entrada de dados. No caso da notação exponencial, o usuário deve introduzir os expoentes de a, que variam entre 0 e 126. Além disso, o valor 1 foi adotado para permitir a introdução do elemento nulo na notação exponencial. A mensagem varia apropriadamente, de acordo com 16

17 a notação selecionada e com o número de bits por símbolo. Figura 12: Especificação dos dados de entrada do codificador Os dados na entrada do codificador podem ser introduzidos manualmente ou gerados aleatoriamente. No primeiro caso, cada um dos k símbolos deve ser introduzido individualmente, o que pode ser tedioso para muitos símbolos. Conforme explicado acima, caso a notação exponencial seja selecionada, o usuário deve introduzir os expoentes de a; quando um dado for introduzido e o usuário selecionar outra célula da tabela, automaticamente o valor introduzido é convertido em expoente e exibido como tal. No caso de geração aleatória de dados, basta selecionar a opção correspondente e clicar no botão Gerar. Geração da Palavra-Código Após os dados terem sido introduzidos manualmente ou gerados aleatoriamente, basta clicar no botão Codificar. Os dados são validados e, caso haja algum problema (por exemplo, dado não especificado), a célula problemática recebe o foco do teclado, permitindo a correção. Se a validação for bem sucedida, os dados são codificados pelo codificador Reed-Solomon e a palavra-código resultante é exibida na tabela apropriada; a parte da palavra-código que corresponde à palavra original de dados é destacada com fundo colorido. Introdução de Erros Para permitir a simulação de um canal ruidoso de transmissão ou uma falha de armazenamento/leitura de dados, o usuário pode introduzir erros na palavra código. Isso é feito através da especificação da palavra de erros. Figura 13: Especificação dos erros a inserir na palavra-código Inicialmente, o número de erros de símbolo a introduzir deve ser especificado usando um controle rotativo. É óbvio que, como a capacidade de correção de erros do código já deve ter sido especificada previamente na Guia do Codificador, não há sentido em especificar um número de erros que supere a 17

18 capacidade do código. A seguir, seleciona-se entre a introdução manual ou a geração aleatória de erros. No caso da introdução manual, o usuário deve clicar na posição onde deseja inserir um erro e então introduzir o valor desejado de magnitude do erro; na geração aleatória, isso é feito automaticamente. Terminada a especificação da palavra de erros, clica-se no botão Inserir Erros e Decodificar, que inicia o processo de validação dos dados, caso os erros tenham sido introduzidos manualmente. Após a validação, os erros especificados são somados à palavra-código, gerando uma palavra corrompida, e é iniciado o processo de decodificação, descrito a seguir. Resultados da Decodificação O simulador realiza a decodificação utilizando o algoritmo de Berlekamp-Massey e apresenta resultados intermediários e finais do processo de decodificação, conforme ilustrado na figura 14. Figura 14: Resultados do processo de decodificação No canto inferior esquerdo da tela é apresentada uma lista com os valores de todas as síndromes, na notação escolhida. Os polinômios localizador e avaliador de erros são apresentados em forma algébrica, bem como o número de erros detectados, a palavra-código decodificada (com a porção correspondente aos dados destacada com fundo colorido) e uma mensagem indicando sucesso ou falha. 18

19 Correção de Erros II: Considerações finais Conclusão Embora os códigos de Reed-Solomon estejam seguramente entre os mais populares e eficazes códigos corretores de erros, com aplicações práticas em campos variados, compreender o seu funcionamento interno a ponto de permitir uma implementação em software ou hardware é uma tarefa complicada. Além do entendimento de álgebra de conjuntos finitos, é necessário compreender programação; além disso, são feitos muitos cálculos tediosos e sujeitos a erros. Resultados Obtidos Este trabalho atingiu o seu objetivo de desenvolver um simulador completo com interface gráfica rica e intuitiva. O simulador permite um entendimento maior da álgebra de campos de Galois e a especificação completa do codificador de Reed-Solomon. Além disso, o usuário pode gerar palavras-código a partir de dados especificados ou produzidos aleatoriamente, introduzir erros e verificar os resultados do processo de decodificação. A decodificação é realizada utilizando o algoritmo de Berlekamp-Massey, conforme explicado em detalhes no tutorial parte I. Além do resultado final do processo de decodificação, o simulador mostra os principais resultados intermediários: os valores de todas as síndromes e as expressões algébricas dos polinômios localizador e avaliador de erros. O simulador mostra todo o processo de codificação e decodificação que, além de constituir uma ferramenta completa para estudo, pode ser aplicada profissionalmente no desenvolvimento de sistemas utilizando codificação Reed-Solomon. Para a implementação do simulador de uma forma flexível, que permita reutilização do código fonte, atualizações e extensões, foi implementada uma biblioteca de classes relacionadas à codificação de Reed-Solomon. Essa biblioteca foi escrita a partir do zero, com ênfase didática e utilizando os bons conceitos de programação orientada a objetos, e foi documentada extensivamente no padrão documental de Java, JavaDoc. Outra característica do sistema desenvolvido é a utilização de uma biblioteca LATEX para exibição das expressões matemáticas de forma elegante e profissional. Obviamente isso se traduziu num grau maior de dificuldade no desenvolvimento, mas o esforço foi plenamente recompensado pelo aspecto da interface gráfica resultante. Últimas Considerações Não há ferramentas similares àquela que foi desenvolvida neste trabalho que sejam do conhecimento destes autores. Para nossa surpresa e satisfação, professores e pesquisadores estrangeiros já manifestaram interesse tanto no simulador quanto na biblioteca de classes, encorajando-nos a traduzir o software para o inglês. Dentre outras possíveis extensões do sistema, podemos citar: Implementação de outros algoritmos de decodificação, tais como Sugiyama-Kasahara-Hirasawa- Namekawa e Guruswami-Sudan, com classes e métodos correspondentes na biblioteca. 19

20 Implementação de módulos gráficos para visualização da operação dos circuitos de deslocamento utilizados tanto para produção dos elementos do campo de extensão de Galois quanto para a codificação Reed-Solomon. Extensão do simulador para incluir outros elementos de codificação de canal como, por exemplo, codificador convolucional. Referências [1] Richard E. Blahut. A universal reed-solomon decoder. IBM Journal of Research and Development, 28(2): , March [2] C. K. P. Clarke. Reed-solomon error correction. Technical report, BBC Research & Development, [3] D. C. Gorenstein and N. Zierler. A class of error-correcting codes in p m symbols. Journal of SIAM, 9: , [4] V. Guruswami and M. Sudan. Improved decoding of reed-solomon and algebraic-geometry codes. IEEE Transactions on Information Theory, 45: , [5] W. Cary Huffman and Vera Pless. Fundamentals of Error Correcting Codes. Cambridge University Press, [6] Bruce Maggs. Decoding reed-solomon codes. Lecture notes, October [7] J. L. Massey. Shift-register synthesis and bch decoding. IEEE Transactions on Information Theory, 15: , [8] Todd K. Moon. Error Correction Coding: Mathematical Methods and Algorithms. Wiley- Interscience, [9] I. S Reed and G. Solomon. Polynomial codes over certain finite fields. SIAM Journal of Applied Math., 8: , [10] Bernard Sklar. Digital Communications: Fundamentals and Applications. Prentice-Hall, 2 edition, [11] Shyue-Win Wei and Che-Ho Wei. High-speed decoder of reed-solomon codes. IEEE Transactions on Communications, 11(41): , November [12] S. Hirasawa Y. Sugiyama, M. Kasahara and T. Namekawa. A method of solving a key equation for decoding goppa codes. Information and Control, 27:87-99,

21 Correção de Erros II: Teste seu entendimento 1. Qual foi o objetivo de implementação de uma biblioteca de classes? Para implementar o simulador de uma forma flexível, que permita reutilização do código fonte, atualizações e extensões. Para usar ferramentas de software proprietárias. Para fornecer código em linguagem Assembly. Não havia nenhum objetivo específico para essa decisão de projeto. 2. Quais é o objetivo do conversor de notação? Converter um elemento entre as notações exponencial e polinomial. Converter um elemento entre as notações exponencial e polinomial, e vice-versa. Converter um elemento entre as notações polinomial e exponencial. Converter um elemento entre as notações de símbolos e números binários. 3. Qual foi a biblioteca utilizada para exibição de expressões matemáticas? EasyPrototype JavaFx Mockflow LATEX 21

Codificação de Canal

Codificação de Canal Laboratório de Processamento de Sinais Laboratório de Sistemas Embarcados Universidade Federal do Pará 26 de janeiro de 2012 Sumário 1 Introdução a 2 Códigos de Blocos Lineares 3 Códigos Cíclicos Introdução

Leia mais

&XUVRGH,QWURGXomRDR (GLWRUGH3ODQLOKDV([FHO

&XUVRGH,QWURGXomRDR (GLWRUGH3ODQLOKDV([FHO Universidade Federal de Viçosa Departamento de Informática &XUVRGH,QWURGXomRDR (GLWRUGH3ODQLOKDV([FHO Flaviano Aguiar Liziane Santos Soares Jugurta Lisboa Filho (Orientador) PROJETO UNESC@LA Setembro de

Leia mais

HCT Compatibilidade Manual do Usuário

HCT Compatibilidade Manual do Usuário HCT Compatibilidade Manual do Usuário Índice Introdução...3 HCT Compatibilidade...3 Librix...3 Execução do Programa...4 Seleção de Testes...4 Testes Manuais...6 Teste de Teclado...6 Teste de Vídeo...7

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I Aritmética Computacional Slide 1 Sumário Unidade Lógica e Aritmética Representação de Números Inteiros Aritmética de Números Inteiros Representação de Números

Leia mais

Introdução. A Informação e sua Representação (Parte III) Universidade Federal de Campina Grande Departamento de Sistemas e Computação

Introdução. A Informação e sua Representação (Parte III) Universidade Federal de Campina Grande Departamento de Sistemas e Computação Universidade Federal de Campina Grande Departamento de Sistemas e Computação Introdução à Computação A Informação e sua Representação (Parte III) Prof.a Joseana Macêdo Fechine Régis de Araújo joseana@computacao.ufcg.edu.br

Leia mais

Manual SAGe Versão 1.2 (a partir da versão 12.08.01)

Manual SAGe Versão 1.2 (a partir da versão 12.08.01) Manual SAGe Versão 1.2 (a partir da versão 12.08.01) Submissão de Relatórios Científicos Sumário Introdução... 2 Elaboração do Relatório Científico... 3 Submissão do Relatório Científico... 14 Operação

Leia mais

Laboratório - Uso da calculadora do Windows com endereços de rede

Laboratório - Uso da calculadora do Windows com endereços de rede Laboratório - Uso da calculadora do Windows com endereços de rede Objetivos Parte 1: Acesso à Calculadora do Windows Parte 2: Converter entre os sistemas numéricos Parte 3: Converter endereços IPv4 de

Leia mais

1.1. Organização de um Sistema Computacional

1.1. Organização de um Sistema Computacional 1. INTRODUÇÃO 1.1. Organização de um Sistema Computacional Desde a antiguidade, o homem vem desenvolvendo dispositivos elétricoeletrônicos (hardware) que funciona com base em instruções e que são capazes

Leia mais

Sistemas de Numerações.

Sistemas de Numerações. Matemática Profº: Carlos Roberto da Silva; Lourival Pereira Martins. Sistema de numeração: Binário, Octal, Decimal, Hexadecimal; Sistema de numeração: Conversões; Sistemas de Numerações. Nosso sistema

Leia mais

Status. Barra de Título. Barra de Menu. Barra de. Ferramentas Padrão. Caixa de nomes. Barra de. Ferramentas de Formatação. Indicadores de Coluna

Status. Barra de Título. Barra de Menu. Barra de. Ferramentas Padrão. Caixa de nomes. Barra de. Ferramentas de Formatação. Indicadores de Coluna O que é uma planilha eletrônica? É um aplicativo que oferece recursos para manipular dados organizados em tabelas. A partir deles pode-se gerar gráficos facilitando a análise e interpretação dos dados

Leia mais

Noções de. Microsoft SQL Server. Microsoft SQL Server

Noções de. Microsoft SQL Server. Microsoft SQL Server Noções de 1 Considerações Iniciais Basicamente existem dois tipos de usuários do SQL Server: Implementadores Administradores 2 1 Implementadores Utilizam o SQL Server para criar e alterar base de dados

Leia mais

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

3 Sistemas de Numeração:

3 Sistemas de Numeração: 3 Sistemas de Numeração: Os computadores eletrônicos têm como base para seu funcionamento a utilização de eletricidade. Diferente de outras máquinas que a presença ou ausência de eletricidade apenas significam

Leia mais

Aritmética Binária e. Bernardo Nunes Gonçalves

Aritmética Binária e. Bernardo Nunes Gonçalves Aritmética Binária e Complemento a Base Bernardo Nunes Gonçalves Sumário Soma e multiplicação binária Subtração e divisão binária Representação com sinal Sinal e magnitude Complemento a base. Adição binária

Leia mais

2. Representação Numérica

2. Representação Numérica 2. Representação Numérica 2.1 Introdução A fim se realizarmos de maneira prática qualquer operação com números, nós precisamos representa-los em uma determinada base numérica. O que isso significa? Vamos

Leia mais

Sistemas de Numeração. Engenharia da Computação 3 Período Alex Vidigal Bastos

Sistemas de Numeração. Engenharia da Computação 3 Período Alex Vidigal Bastos UNIPAC Sistemas Digitais Sistemas de Numeração Engenharia da Computação 3 Período Alex Vidigal Bastos 1 Agenda Objetivos Introdução Sistema Binário Sistema Octal Sistema Hexadecimal Aritméticas no Sistema

Leia mais

AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS

AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIAS DA COMPUTAÇÃO BACHARELADO AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS Orientando: Oliver Mário

Leia mais

ROTEIRO PARA TREINAMENTO DO SAGRES DIÁRIO Guia do Docente

ROTEIRO PARA TREINAMENTO DO SAGRES DIÁRIO Guia do Docente Conceito ROTEIRO PARA TREINAMENTO DO SAGRES DIÁRIO Guia do Docente O Sagres Diário é uma ferramenta que disponibiliza rotinas que facilitam a comunicação entre a comunidade Docente e Discente de uma instituição,

Leia mais

Circuitos Digitais. Conteúdo. Sistema de Numeração e Códigos :: Conversões de Binário para Decimal SISTEMA DE NUMERAÇÃO E CÓDIGOS

Circuitos Digitais. Conteúdo. Sistema de Numeração e Códigos :: Conversões de Binário para Decimal SISTEMA DE NUMERAÇÃO E CÓDIGOS Ciência da Computação Sistemas de Numeração e Conversões Prof. Sergio Ribeiro Material adaptado das aulas do Prof. José Maria da UFPI Conteúdo Conversões de binário para decimal. Conversões de decimal

Leia mais

Google Drive. Passos. Configurando o Google Drive

Google Drive. Passos. Configurando o Google Drive Google Drive um sistema de armazenagem de arquivos ligado à sua conta Google e acessível via Internet, desta forma você pode acessar seus arquivos a partir de qualquer dispositivo que tenha acesso à Internet.

Leia mais

MÉTODOS DISCRETOS EM TELEMÁTICA

MÉTODOS DISCRETOS EM TELEMÁTICA 1 MÉTODOS DISCRETOS EM TELEMÁTICA MATEMÁTICA DISCRETA Profa. Marcia Mahon Grupo de Pesquisas em Comunicações - CODEC Departamento de Eletrônica e Sistemas - UFPE Outubro 2003 2 CONTEÚDO 1 - Introdução

Leia mais

Sistemas de numeração

Sistemas de numeração E Sistemas de numeração Aqui estão apenas números ratificados. William Shakespeare A natureza tem algum tipo de sistema de coordenadas geométrico-aritmético, porque a natureza tem todos os tipos de modelos.

Leia mais

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 13

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 13 ORGANIZAÇÃO DE COMPUTADORES MÓDULO 13 Índice 1. Circuitos Digitais - Continuação...3 1.1. Por que Binário?... 3 1.2. Conversão entre Bases... 3 2 1. CIRCUITOS DIGITAIS - CONTINUAÇÃO 1.1. POR QUE BINÁRIO?

Leia mais

Manual do sistema SMARsa Web

Manual do sistema SMARsa Web Manual do sistema SMARsa Web Módulo Gestão de atividades RS/OS Requisição de serviço/ordem de serviço 1 Sumário INTRODUÇÃO...3 OBJETIVO...3 Bem-vindo ao sistema SMARsa WEB: Módulo gestão de atividades...4

Leia mais

Microsoft Office PowerPoint 2007

Microsoft Office PowerPoint 2007 INTRODUÇÃO AO MICROSOFT POWERPOINT 2007 O Microsoft Office PowerPoint 2007 é um programa destinado à criação de apresentação através de Slides. A apresentação é um conjunto de Sides que são exibidos em

Leia mais

Aula 4 Pseudocódigo Tipos de Dados, Expressões e Variáveis

Aula 4 Pseudocódigo Tipos de Dados, Expressões e Variáveis 1. TIPOS DE DADOS Todo o trabalho realizado por um computador é baseado na manipulação das informações contidas em sua memória. Estas informações podem ser classificadas em dois tipos: As instruções, que

Leia mais

CICLO DE APERFEIÇOAMENTO PROFISSIONAL DOS SERVIDORES MUNICIPAIS DE MARICÁ- RJ EDITOR DE TEXTO - WORD

CICLO DE APERFEIÇOAMENTO PROFISSIONAL DOS SERVIDORES MUNICIPAIS DE MARICÁ- RJ EDITOR DE TEXTO - WORD Faculdade de Administração, Ciências Contábeis e Turismo Pós-Graduação em Gestão de Negócios CICLO DE APERFEIÇOAMENTO PROFISSIONAL DOS SERVIDORES MUNICIPAIS DE MARICÁ- RJ EDITOR DE TEXTO - WORD EMENTA

Leia mais

PRINCÍPIOS DE INFORMÁTICA PRÁTICA 08 1. OBJETIVO 2. BASE TEÓRICA. 2.1 Criando Mapas no Excel. 2.2 Utilizando o Mapa

PRINCÍPIOS DE INFORMÁTICA PRÁTICA 08 1. OBJETIVO 2. BASE TEÓRICA. 2.1 Criando Mapas no Excel. 2.2 Utilizando o Mapa PRINCÍPIOS DE INFORMÁTICA PRÁTICA 08 1. OBJETIVO Aprender a utilizar mapas, colocar filtros em tabelas e a criar tabelas e gráficos dinâmicos no MS-Excel. Esse roteiro foi escrito inicialmente para o Excel

Leia mais

Organização de Computadores. Cálculos Binários e Conversão entre Bases Aritmética Binária

Organização de Computadores. Cálculos Binários e Conversão entre Bases Aritmética Binária Organização de Computadores Capítulo 4 Cálculos Binários e Conversão entre Bases Aritmética Binária Material de apoio 2 Esclarecimentos Esse material é de apoio para as aulas da disciplina e não substitui

Leia mais

1. Apresentação. 1.1. Objetivos

1. Apresentação. 1.1. Objetivos 1.1. Objetivos 1. Apresentação Neste capítulo estão descritos os objetivos gerais do livro, os requisitos desejáveis do estudante para que possa utilizá-lo eficientemente, e os recursos necessários em

Leia mais

Tutorial do Iniciante. Excel Básico 2010

Tutorial do Iniciante. Excel Básico 2010 Tutorial do Iniciante Excel Básico 2010 O QUE HÁ DE NOVO O Microsoft Excel 2010 é um programa de edição de planilhas eletrônicas muito usado no mercado de trabalho para realizar diversas funções como;

Leia mais

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá. INTRODUÇÃO A lógica de programação é extremamente necessária para as pessoas que queiram trabalhar na área de programação, seja em qualquer linguagem de programação, como por exemplo: Pascal, Visual Basic,

Leia mais

Como gerar arquivos para Sphinx Operador

Como gerar arquivos para Sphinx Operador Como gerar arquivos para Sphinx Operador Pré-requisitos: Lista das questões Formulário multimídia Visões O Sphinx Operador é um sistema específico para digitação de respostas e visualização de resultados

Leia mais

Construtor de sites SoftPixel GUIA RÁPIDO - 1 -

Construtor de sites SoftPixel GUIA RÁPIDO - 1 - GUIA RÁPIDO - 1 - Sumário Introdução...3 Por que utilizar o Construtor de Sites?...3 Vantagens do Construtor de Sites...3 Conceitos básicos...3 Configuração básica do site...5 Definindo o layout/template

Leia mais

Manual de Utilização das Funções Básicas do Sistema ClinicWeb

Manual de Utilização das Funções Básicas do Sistema ClinicWeb Manual de Utilização das Funções Básicas do Sistema ClinicWeb Dezembro/2012 2 Manual de Utilização das Funções Básicas do Sistema ClinicWeb Sumário de Informações do Documento Título do Documento: Resumo:

Leia mais

Treinamento em BrOffice.org Calc

Treinamento em BrOffice.org Calc Treinamento em BrOffice.org Calc 1 Índice I. INTRODUÇÃO...3 II. NÚMEROS, TEXTOS, FÓRMULAS E DATAS...4 III. MENUS BÁSICOS...5 1. Arquivo...5 2. Editar...5 3. Formatar...5 IV. FÓRMULAS...8 V. REFERÊNCIAS

Leia mais

Tutorial Gerar arquivo PDF. Gerando um documento pdf com várias imagens 1- Inserir imagem no Word

Tutorial Gerar arquivo PDF. Gerando um documento pdf com várias imagens 1- Inserir imagem no Word Tutorial Gerar arquivo PDF. Com o objetivo de simplificar e diminuir o tamanho de arquivos anexos nos projetos, elaboramos um pequeno tutorial mostrando como gerar um único arquivo no formato pdf contendo

Leia mais

Processo de Controle das Reposições da loja

Processo de Controle das Reposições da loja Processo de Controle das Reposições da loja Getway 2015 Processo de Reposição de Mercadorias Manual Processo de Reposição de Mercadorias. O processo de reposição de mercadorias para o Profit foi definido

Leia mais

PORTAL DE COMPRAS SÃO JOSÉ DO RIO PRETO

PORTAL DE COMPRAS SÃO JOSÉ DO RIO PRETO Compra Direta - Guia do Fornecedor PORTAL DE COMPRAS SÃO JOSÉ DO RIO PRETO Página As informações contidas neste documento, incluindo quaisquer URLs e outras possíveis referências a web sites, estão sujeitas

Leia mais

Como Gerar documento em PDF com várias Imagens

Como Gerar documento em PDF com várias Imagens Como Gerar documento em PDF com várias Imagens Para Gerar documento em PDF com várias Imagens, temos que seguir dois passos: 1. Inserir Imagens no Word 2. Gerar PDF a partir de documento do Word 1- Inserir

Leia mais

Microsoft Excel 2007

Microsoft Excel 2007 Microsoft Excel 2007 O Microsoft Excel é um aplicativo para a construção e edição de planilhas eletrônicas, que permite o trabalho com: formulários, tabelas, gráficos e outros. 2.1 CONCEITOS INICIAIS:

Leia mais

Manual do usuário. Softcall Java. versão 1.0.5

Manual do usuário. Softcall Java. versão 1.0.5 Manual do usuário Softcall Java versão 1.0.5 Sumário Iniciando SoftCall...3 Tela Principal...3 Configurando o SoftCall...4 Agenda...5 Incluindo um contato...5 Procurando um contato...6 Apagando um contato...6

Leia mais

APOSTILA DE EXCEL 2007

APOSTILA DE EXCEL 2007 APOSTILA DE EXCEL 2007 1. Introdução Quando você cria uma planilha nova, a tela do computador é dividida em linhas e colunas, formando uma grade. A interseção de uma linha e de uma coluna é chamada de

Leia mais

Barra de ferramentas padrão. Barra de formatação. Barra de desenho Painel de Tarefas

Barra de ferramentas padrão. Barra de formatação. Barra de desenho Painel de Tarefas Microsoft Power Point 2003 No Microsoft PowerPoint 2003, você cria sua apresentação usando apenas um arquivo, ele contém tudo o que você precisa uma estrutura para sua apresentação, os slides, o material

Leia mais

Microsoft Office Excel 2007

Microsoft Office Excel 2007 1 Microsoft Office Excel 2007 O Excel é um programa dedicado a criação de planilhas de cálculos, além de fornecer gráficos, função de banco de dados e outros. 1. Layout do Excel 2007 O Microsoft Excel

Leia mais

UNIVERSIDADE FEDERAL DE SANTA CATARINA EEL5105 Circuitos e Técnicas Digitais Prof. Eduardo L. O. Batista

UNIVERSIDADE FEDERAL DE SANTA CATARINA EEL5105 Circuitos e Técnicas Digitais Prof. Eduardo L. O. Batista UNIVERSIDADE FEDERAL DE SANTA CATARINA EEL5105 Circuitos e Técnicas Digitais Prof. Eduardo L. O. Batista EXPERIMENTO 1 INTRODUÇÃO AO LABORATÓRIO A. Introdução O Quartus II é um software utilizado para

Leia mais

Sumário do Plano de Testes

Sumário do Plano de Testes ICOL Versão 12.1 Plano de Testes Sumário do Plano de Testes 1. Escopo...2 2. Implementações...2 CR3085 Restrição de Ambientes...3 CR3091 Restrição de Intervalos...9 CR3096 Períodos...10 CR3111 Curvas Histórico...11

Leia mais

CONSTRUÇÃO DE BLOG COM O BLOGGER

CONSTRUÇÃO DE BLOG COM O BLOGGER CONSTRUÇÃO DE BLOG COM O BLOGGER Blog é uma abreviação de weblog, qualquer registro frequênte de informações pode ser considerado um blog (últimas notícias de um jornal online por exemplo). A maioria das

Leia mais

Lidar com números e estatísticas não é fácil. Reunir esses números numa apresentação pode ser ainda mais complicado.

Lidar com números e estatísticas não é fácil. Reunir esses números numa apresentação pode ser ainda mais complicado. , ()! $ Lidar com números e estatísticas não é fácil. Reunir esses números numa apresentação pode ser ainda mais complicado. Uma estratégia muito utilizada para organizar visualmente informações numéricas

Leia mais

Tabela e Gráficos Dinâmicos Como estruturar dinamicamente dados no Excel

Tabela e Gráficos Dinâmicos Como estruturar dinamicamente dados no Excel Tabela e Gráficos Dinâmicos Como estruturar! Para que serve a Tabela e o Gráfico Dinâmico?! Como criar uma Tabela Dinâmica?! Como criar um Gráfico Dinâmico?! Como podemos atualizar dos dados da Tabela

Leia mais

3. O NIVEL DA LINGUAGEM DE MONTAGEM

3. O NIVEL DA LINGUAGEM DE MONTAGEM 3. O NIVEL DA LINGUAGEM DE MONTAGEM Nas aulas anteriores tivemos a oportunidade de discutir dois diferentes níveis presentes na maioria dos computadores atuais. Nesta aula dedica-se a outro nível que também

Leia mais

Arquitetura de Rede de Computadores

Arquitetura de Rede de Computadores TCP/IP Roteamento Arquitetura de Rede de Prof. Pedro Neto Aracaju Sergipe - 2011 Ementa da Disciplina 4. Roteamento i. Máscara de Rede ii. Sub-Redes iii. Números Binários e Máscara de Sub-Rede iv. O Roteador

Leia mais

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008 Tabela de Símbolos Análise Semântica A Tabela de Símbolos Fabiano Baldo Após a árvore de derivação, a tabela de símbolos é o principal atributo herdado em um compilador. É possível, mas não necessário,

Leia mais

Caso já seja usuário do SCAW siga as instruções a partir da página X.

Caso já seja usuário do SCAW siga as instruções a partir da página X. Caso já seja usuário do SCAW siga as instruções a partir da página X. Para iniciar o sistema dê um duplo clique no ícone, que se encontra na área de trabalho. 1 Login do sistema. Esta é a tela de login

Leia mais

Aula 02 Excel 2010. Operações Básicas

Aula 02 Excel 2010. Operações Básicas Aula 02 Excel 2010 Professor: Bruno Gomes Disciplina: Informática Básica Curso: Gestão de Turismo Sumário da aula: 1. Operações básicas; 2. Utilizando Funções; 3. Funções Lógicas; 4. Gráficos no Excel;

Leia mais

MICROSOFT OFFICE EXCEL 2007

MICROSOFT OFFICE EXCEL 2007 LEIAME Nenhuma informação da APOSTILA - MICROSOFT OFFICE EXCEL 2007 poderá ser copiada, movida ou modificada sem autorização prévia e escrita do autor. MICROSOFT OFFICE EXCEL 2007 Efetue cálculos, analise

Leia mais

2. OPERADORES... 6 3. ALGORITMOS, FLUXOGRAMAS E PROGRAMAS... 8 4. FUNÇÕES... 10

2. OPERADORES... 6 3. ALGORITMOS, FLUXOGRAMAS E PROGRAMAS... 8 4. FUNÇÕES... 10 1. TIPOS DE DADOS... 3 1.1 DEFINIÇÃO DE DADOS... 3 1.2 - DEFINIÇÃO DE VARIÁVEIS... 3 1.3 - VARIÁVEIS EM C... 3 1.3.1. NOME DAS VARIÁVEIS... 3 1.3.2 - TIPOS BÁSICOS... 3 1.3.3 DECLARAÇÃO DE VARIÁVEIS...

Leia mais

Dadas a base e a altura de um triangulo, determinar sua área.

Dadas a base e a altura de um triangulo, determinar sua área. Disciplina Lógica de Programação Visual Ana Rita Dutra dos Santos Especialista em Novas Tecnologias aplicadas a Educação Mestranda em Informática aplicada a Educação ana.santos@qi.edu.br Conceitos Preliminares

Leia mais

Sumário 1. SOBRE O NFGoiana DESKTOP... 3 1.1. Apresentação... 3 1.2. Informações do sistema... 3 1.3. Acessando o NFGoiana Desktop... 3 1.4.

Sumário 1. SOBRE O NFGoiana DESKTOP... 3 1.1. Apresentação... 3 1.2. Informações do sistema... 3 1.3. Acessando o NFGoiana Desktop... 3 1.4. 1 Sumário 1. SOBRE O NFGoiana DESKTOP... 3 1.1. Apresentação... 3 1.2. Informações do sistema... 3 1.3. Acessando o NFGoiana Desktop... 3 1.4. Interface do sistema... 4 1.4.1. Janela Principal... 4 1.5.

Leia mais

Apostila de Fundamentos de Programação I. Prof.: André Luiz Montevecchi

Apostila de Fundamentos de Programação I. Prof.: André Luiz Montevecchi Apostila de Fundamentos de Programação I Prof: André Luiz Montevecchi Introdução O mundo atual é dependente da tecnologia O uso intenso de diversos aparatos tecnológicos é parte integrante do nosso dia-a-dia

Leia mais

1. Sistemas de numeração

1. Sistemas de numeração 1. Sistemas de numeração Quando mencionamos sistemas de numeração estamos nos referindo à utilização de um sistema para representar uma numeração, ou seja, uma quantidade. Sistematizar algo seria organizar,

Leia mais

Representação de Dados

Representação de Dados Representação de Dados Introdução Todos sabemos que existem diferentes tipos de números: fraccionários, inteiros positivos e negativos, etc. Torna-se necessária a representação destes dados em sistema

Leia mais

Instruções para a atividade

Instruções para a atividade 1/13 Instruções para a atividade 1. Orientações gerais. Leia atentamente: a. Esta é uma atividade contínua, baseada nos recursos do MS Excel. Foi idealizada para que a ferramenta em questão possa ter seus

Leia mais

02 - Usando o SiteMaster - Informações importantes

02 - Usando o SiteMaster - Informações importantes 01 - Apresentação do SiteMaster - News Edition O SiteMaster foi desenvolvido para ser um sistema simples de gerenciamento de notícias, instalado em seu próprio computador e com configuração simplificada,

Leia mais

Lição 1 Introdução à programação de computadores

Lição 1 Introdução à programação de computadores Lição Introdução à programação de computadores Introdução à Programação I Objetivos Ao final desta lição, o estudante será capaz de: Identificar os diferentes componentes de um computador Conhecer linguagens

Leia mais

GUIA RÁPIDO SISTEMA ANTIFURTO THEFT DETERRENT

GUIA RÁPIDO SISTEMA ANTIFURTO THEFT DETERRENT GUIA RÁPIDO SISTEMA ANTIFURTO THEFT DETERRENT SUMÁRIO Prefácio... 1 A quem se destina... 1 Nomenclatura utilizada neste documento... 1 Tela de login... 2 Tela Inicial... 4 Gestão de Dispositivo Acompanhar

Leia mais

Cálculo Numérico Aula 1: Computação numérica. Tipos de Erros. Aritmética de ponto flutuante

Cálculo Numérico Aula 1: Computação numérica. Tipos de Erros. Aritmética de ponto flutuante Cálculo Numérico Aula : Computação numérica. Tipos de Erros. Aritmética de ponto flutuante Computação Numérica - O que é Cálculo Numérico? Cálculo numérico é uma metodologia para resolver problemas matemáticos

Leia mais

MONTAGEM DE PROCESSO VIRTUAL

MONTAGEM DE PROCESSO VIRTUAL Manual de Procedimentos - SISPREV WEB MONTAGEM DE PROCESSO VIRTUAL 1/15 O treinamento com o Manual de Procedimentos É com muita satisfação que a Agenda Assessoria prepara este manual para você que trabalha

Leia mais

1. NÍVEL CONVENCIONAL DE MÁQUINA

1. NÍVEL CONVENCIONAL DE MÁQUINA 1. NÍVEL CONVENCIONAL DE MÁQUINA Relembrando a nossa matéria de Arquitetura de Computadores, a arquitetura de Computadores se divide em vários níveis como já estudamos anteriormente. Ou seja: o Nível 0

Leia mais

ATENÇÃO: * Arquivos com tamanho superior a 500 KB NÃO SERÃO ACEITOS * SOMENTE serão aceitos documentos do formato: PDF

ATENÇÃO: * Arquivos com tamanho superior a 500 KB NÃO SERÃO ACEITOS * SOMENTE serão aceitos documentos do formato: PDF TUTORIAL DE DIGITALIZAÇÃO DIRIGIDO AO USO DO PROCESSO ELETRÔNICO Adaptado do tutorial elaborado pelo colega MAICON FALCÃO, operador de computador da subseção judiciária de Rio Grande. Introdução Este tutorial

Leia mais

ANDRÉ APARECIDO DA SILVA APOSTILA BÁSICA SOBRE O POWERPOINT 2007

ANDRÉ APARECIDO DA SILVA APOSTILA BÁSICA SOBRE O POWERPOINT 2007 ANDRÉ APARECIDO DA SILVA APOSTILA BÁSICA SOBRE O POWERPOINT 2007 CURITIBA 2015 2 SUMÁRIO INTRODUÇÃO AO MICROSOFT POWERPOINT 2007... 3 JANELA PRINCIPAL... 3 1 - BOTÃO OFFICE... 4 2 - FERRAMENTAS DE ACESSO

Leia mais

ÍNDICE... 2 INTRODUÇÃO... 4

ÍNDICE... 2 INTRODUÇÃO... 4 Mic crosoft Excel 201 0 ÍNDICE ÍNDICE... 2 INTRODUÇÃO... 4 Interface... 4 Guias de Planilha... 5 Movimentação na planilha... 6 Entrada de textos e números... 7 Congelando painéis... 8 Comentários nas Células...

Leia mais

Manual do Visualizador NF e KEY BEST

Manual do Visualizador NF e KEY BEST Manual do Visualizador NF e KEY BEST Versão 1.0 Maio/2011 INDICE SOBRE O VISUALIZADOR...................................................... 02 RISCOS POSSÍVEIS PARA O EMITENTE DA NOTA FISCAL ELETRÔNICA.................

Leia mais

Instalação: permite baixar o pacote de instalação do agente de coleta do sistema.

Instalação: permite baixar o pacote de instalação do agente de coleta do sistema. O que é o projeto O PROINFODATA - programa de coleta de dados do projeto ProInfo/MEC de inclusão digital nas escolas públicas brasileiras tem como objetivo acompanhar o estado de funcionamento dos laboratórios

Leia mais

ARQUITETURA DE COMPUTADORES. Sistemas de Numeração. 1 Arquitetura de Computadores

ARQUITETURA DE COMPUTADORES. Sistemas de Numeração. 1 Arquitetura de Computadores ARQUITETURA DE COMPUTADORES Sistemas de Numeração 1 Sistemas de Numeração e Conversão de Base Sistema Decimal É o nosso sistema natural. Dígitos 0,1,2,3,4,5,6,7,8 e 9. Números superiores a 9; convencionamos

Leia mais

Versão 2.2.0 PIMACO AUTOADESIVOS LTDA. Assistente Pimaco + 2.2.0. Ajuda ao Usuário

Versão 2.2.0 PIMACO AUTOADESIVOS LTDA. Assistente Pimaco + 2.2.0. Ajuda ao Usuário Versão 2.2.0 PIMACO AUTOADESIVOS LTDA. Assistente Pimaco + 2.2.0 Ajuda ao Usuário A S S I S T E N T E P I M A C O + 2.2.0 Ajuda ao usuário Índice 1. BÁSICO 1 1. INICIANDO O APLICATIVO 2 2. O AMBIENTE DE

Leia mais

O Windows 7 é um sistema operacional desenvolvido pela Microsoft.

O Windows 7 é um sistema operacional desenvolvido pela Microsoft. Introdução ao Microsoft Windows 7 O Windows 7 é um sistema operacional desenvolvido pela Microsoft. Visualmente o Windows 7 possui uma interface muito intuitiva, facilitando a experiência individual do

Leia mais

SISTEMAS DIGITAIS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

SISTEMAS DIGITAIS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 1 - SISTEMA DE NUMERAÇÃO BINÁRIA E DECIMAL Todos os computadores são formados por circuitos digitais, onde as informações e os dados são codificados com dois níveis de tensão, pelo que o seu sistema

Leia mais

DarkStat para BrazilFW

DarkStat para BrazilFW DarkStat para BrazilFW ÍNDICE Índice Página 1 O que é o DarkStat Página 2 DarkStat e a inicialização do sistema Página 2 DarkStat e a finalização do sistema Página 2 Tela Principal do DarkStat Página 3

Leia mais

Unidade 5: Sistemas de Representação

Unidade 5: Sistemas de Representação Arquitetura e Organização de Computadores Atualização: 9/8/ Unidade 5: Sistemas de Representação Números de Ponto Flutuante IEEE 754/8 e Caracteres ASCII Prof. Daniel Caetano Objetivo: Compreender a representação

Leia mais

Modelagemde Software Orientadaa Objetos com UML

Modelagemde Software Orientadaa Objetos com UML Modelagemde Software Orientadaa Objetos com UML André Maués Brabo Pereira Departamento de Engenharia Civil Universidade Federal Fluminense Colaborando para a disciplina CIV 2802 Sistemas Gráficos para

Leia mais

Fabio Bento fbento@ifes.edu.br

Fabio Bento fbento@ifes.edu.br Fabio Bento fbento@ifes.edu.br Eletrônica Digital Sistemas de Numeração e Códigos 1. Conversões de Binário para Decimal 2. Conversões de Decimal para Binário 3. Sistema de Numeração Hexadecimal 4. Código

Leia mais

Fluxo de trabalho do Capture Pro Software: Indexação de OCR e separação de documentos de código de correção

Fluxo de trabalho do Capture Pro Software: Indexação de OCR e separação de documentos de código de correção Este procedimento corresponde ao fluxo de trabalho de Indexação de OCR com separação de código de correção no programa de treinamento do Capture Pro Software. As etapas do procedimento encontram-se na

Leia mais

GUIA RÁPIDO DE UTILIZAÇÃO DO PORTAL DO AFRAFEP SAÚDE

GUIA RÁPIDO DE UTILIZAÇÃO DO PORTAL DO AFRAFEP SAÚDE GUIA RÁPIDO DE UTILIZAÇÃO DO PORTAL DO AFRAFEP SAÚDE INTRODUÇÃO O portal do Afrafep Saúde é um sistema WEB integrado ao sistema HEALTH*Tools. O site consiste em uma área onde os Usuários e a Rede Credenciada,

Leia mais

UNIVERSIDADE GAMA FILHO Laboratório de Controle I - MATLAB

UNIVERSIDADE GAMA FILHO Laboratório de Controle I - MATLAB NOME: UNIVERSIDADE GAMA FILHO Laboratório de Controle I - MATLAB O que é o Matlab? O Matlab é um sistema para cálculo científico que proporciona um ambiente de fácil utilização com uma notação intuitiva,

Leia mais

Universidade Federal de Santa Maria UFSM Centro de Tecnologia CT. Power Point. Básico

Universidade Federal de Santa Maria UFSM Centro de Tecnologia CT. Power Point. Básico Universidade Federal de Santa Maria UFSM Centro de Tecnologia CT Power Point Básico Santa Maria, julho de 2006 O Power Point é um aplicativo do Microsoft Office direcionado à criação de apresentações.

Leia mais

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES Prof. Dr. Daniel Caetano 2012-1 Objetivos Apresentar o funcionamento do computador Apresentar a função da memória e dos dispositivos

Leia mais

Professor: Macêdo Firmino Disciplina: Sistemas Operacionais de Rede

Professor: Macêdo Firmino Disciplina: Sistemas Operacionais de Rede Professor: Macêdo Firmino Disciplina: Sistemas Operacionais de Rede O sistema de nome de domínio (DNS) é um sistema que nomeia computadores e serviços de rede e é organizado em uma hierarquia de domínios.

Leia mais

Ajuda ao SciEn-Produção 1. 1. O Artigo Científico da Pesquisa Experimental

Ajuda ao SciEn-Produção 1. 1. O Artigo Científico da Pesquisa Experimental Ajuda ao SciEn-Produção 1 Este texto de ajuda contém três partes: a parte 1 indica em linhas gerais o que deve ser esclarecido em cada uma das seções da estrutura de um artigo cientifico relatando uma

Leia mais

Algoritmos I Aula 13 Java: Tipos básicos, variáveis, atribuições e expressões

Algoritmos I Aula 13 Java: Tipos básicos, variáveis, atribuições e expressões Algoritmos I Aula 13 Java: Tipos básicos, variáveis, atribuições e expressões Professor: Max Pereira http://paginas.unisul.br/max.pereira Ciência da Computação Primeiro Programa em Java public class OlaPessoal

Leia mais

GUIA DE REDAÇÃO PARA TRABALHO DE EM974

GUIA DE REDAÇÃO PARA TRABALHO DE EM974 GUIA DE REDAÇÃO PARA TRABALHO DE EM974 CONSIDERAÇÕES GERAIS O objetivo deste documento é informar a estrutura e a informação esperadas num texto de Trabalho de Graduação. O conteúdo do texto deverá ser

Leia mais

Guia Site Empresarial

Guia Site Empresarial Guia Site Empresarial Índice 1 - Fazer Fatura... 2 1.1 - Fazer uma nova fatura por valores de crédito... 2 1.2 - Fazer fatura alterando limites dos cartões... 6 1.3 - Fazer fatura repetindo última solicitação

Leia mais

O PaperPort 12 Special Edition (SE) possui uma grande variedade de novos e valiosos recursos que ajudam a gerenciar seus documentos.

O PaperPort 12 Special Edition (SE) possui uma grande variedade de novos e valiosos recursos que ajudam a gerenciar seus documentos. Bem-vindo! O Nuance PaperPort é um pacote de aplicativos para gerenciamento de documentos da área de trabalho que ajuda o usuário a digitalizar, organizar, acessar, compartilhar e gerenciar documentos

Leia mais

Exemplo de Subtração Binária

Exemplo de Subtração Binária Exemplo de Subtração Binária Exercícios Converta para binário e efetue as seguintes operações: a) 37 10 30 10 b) 83 10 82 10 c) 63 8 34 8 d) 77 8 11 8 e) BB 16 AA 16 f) C43 16 195 16 3.5.3 Divisão binária:

Leia mais

ArcSoft MediaConverter

ArcSoft MediaConverter ArcSoft MediaConverter User Manual Português 1 201004 Índice Índice... 2 1. Índice... 3 1.1 Requisitos do sistema... 4 1.2 Extras... 4 2. Convertendo arquivos... 7 2.1 Passo1: Selecionar mídia... 7 2.1.1

Leia mais

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES 3.1 - IDENTIFICADORES Os objetos que usamos no nosso algoritmo são uma representação simbólica de um valor de dado. Assim, quando executamos a seguinte instrução:

Leia mais

Lista de Exercícios. Vetores

Lista de Exercícios. Vetores Lista de Exercícios Vetores LINGUAGEM DE PROGRAMAÇÃO PROF. EDUARDO SILVESTRI. WWW.EDUARDOSILVESTRI.COM.BR ATUALIZADO EM: 13/03/2007 Página 1/1 1. Faça um programa que crie um vetor de inteiros de 50 posições

Leia mais

ATRIBUTOS PRIVADOS 6. ENCAPSULAMENTO MÉTODOS PRIVADOS MÉTODOS PRIVADOS

ATRIBUTOS PRIVADOS 6. ENCAPSULAMENTO MÉTODOS PRIVADOS MÉTODOS PRIVADOS ATRIBUTOS PRIVADOS Podemos usar o modificador private, para tornar um atributo privado, obtendo um controle centralizado Definimos métodos para implementar todas as lógicas que utilizam ou modificam o

Leia mais

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br Introdução O computador como ferramenta indispensável: Faz parte das nossas vidas; Por si só não faz nada de útil; Grande capacidade de resolução

Leia mais

Algoritmos: Lógica para desenvolvimento de programação de computadores. Autor: José Augusto Manzano. Capítulo 1 Abordagem Contextual

Algoritmos: Lógica para desenvolvimento de programação de computadores. Autor: José Augusto Manzano. Capítulo 1 Abordagem Contextual Algoritmos: Lógica para desenvolvimento de programação de computadores Autor: José Augusto Manzano Capítulo 1 Abordagem Contextual 1.1. Definições Básicas Raciocínio lógico depende de vários fatores para

Leia mais