Transcrição do áudio
Vou agora demonstrar o código de convolução. Esse código aqui é muito bacana. Ele é utilizado, por exemplo, pela NASA para algumas sondas espaciais, incluindo a Voyager 1 e 2. É um mecanismo que não requer um bloco de dados para processamento. Ou seja, o código de Hammond precisa de um bloco. Esse não. Esse eu consigo passar por uma série, um fluxo de bits. Isso é diferente. Isso também é um divisor entre vários algoritmos de criptografia. Bom, criptografia é um outro assunto, mas fique você sabendo. Tem o código de convolução. Um codificador processa uma sequência, não um bloco de bits de entrada e gera uma sequência de bits de saída. Não existe tamanho de mensagem, limite natural para isso. Não tem essa ideia de bloco de transmissão. Então, simplesmente um fluxo de bits. E aí você vai entender o porquê é tão necessário. Assim, em sonda espacial. Afinal, a sonda espacial vai ficar transmitindo um fluxo de bits para a Terra. A saída depende dos bits de entrada atual e anterior. Então, quer dizer que, preste atenção, o fluxo de bits vai passar. E à medida que ele passa pelo meu algoritmo fluxo de bits, eu vou confirmando, corrigindo, caso necessário. São muito utilizados mesmo, principalmente, conforme eu falei, sondas espaciais pela NASA, bem como GSM, modelo de comunicação, já falamos no capítulo de camada física, e também 802.11, que é o seu wireless. Então, como que funciona? Está aqui um desenho do Turnbull. O Turnbull põe uns desenhos muito genéricos. Então, imagina que eu tenho uma memória. Eu tenho aqui, como eu posso dizer aqui, um número de bits que eu vou trabalhar. 1, 2, 3, 4, 5, 6. Eu sei que você vai falar, pô, você falou que não tem bloco de bits. E agora você me apresenta isso? Calma. São posições na memória. Então, o fluxo de bits vai entrando aqui e vai caminhando o fluxo de bits e saindo aqui. E aí eu faço o cálculo. A cada vez que há uma movimentação. Então, vamos lá. O fluxo de bits entra aqui e os bits vão caminhando para lá. E à medida que os bits vão se movimentando, eu vou realizando os cálculos aqui. O cálculo utilizado no livro do Turnbull é o mais básico de todos. Existem vários algoritmos de convolução. Vários. Bom, mas aqui vamos usar o do Turnbull, que é bem simples. O Shor. Por que o Turnbull ama Shor? O Turnbull utiliza Shor porque vocês já viram com profundidade Shor em AOC, Arquitetura e Organização de Computadores, Sistemas Operacionais, um teórico. Então, vocês chegam aqui bem basados nesse assunto. Por isso que o Turnbull cobra muito Shor, como um algoritmo. Bom, então, o estado interno é mantido em seis registradores de memória. É uma profundidade. É uma lista de profundidade. Toda vez que outro bit é inserido, então os valores estão deslocados para a direita. Conforme eu falei, os bits são inseridos aqui e os valores são deslocados até sair em S6. Vai sair para lá. Legal. Então, por exemplo, se for inserido um 1. Logo no início. Bom, eu decidi fazer para vocês. Então, olha só. Vamos ver como que funciona aqui esse exemplo que ele está dando aqui de forma textual. Eu vou colocar para vocês em forma gráfica, para vocês entenderem. Então, a princípio, eu tenho 0, 0, 0, 0, 0. Nenhuma informação. E aí, eu tenho a primeira entrada, o 1 aqui. Quando eu tenho 1 aqui, o 0 que estava aqui foi deslocado para cá. O que estava aqui foi deslocado para cá. O que estava aqui foi deslocado para cá. O que estava aqui foi deslocado para cá. E o que estava aqui foi deslocado para cá. E o que estava aqui saiu. Certo? Legal. Então, foi inserido o 1 e deslocado todo o resto. Bom, sempre nesse deslocamento, eu faço um cálculo. Por exemplo. Aqui entrou. 1. Presta atenção. Aqui entrou 1. Vou bem devagar. O 1 aqui. Aqui eu tinha 0. O 0 foi para cá. Ou seja, aqui não tem nenhum elemento indo para lá. O 0 que estava aqui foi deslocado para lá. Então, o 0 foi colocado no cálculo. O 0 que estava aqui foi para cá. Então, o 0 foi colocado no cálculo. O 0 aqui foi para lá. O 0 que estava aqui foi para lá. Foi colocado no cálculo. E o 0 que estava aqui foi para lá. E foi colocado no cálculo. De tal forma que nós temos 1, 0, 0, 0, 0, 1. Se você fizer uma operação short, vai dar 1. Legal. Vamos dar uma olhada aqui. Quando o 1 entrou aqui, o 1 foi colocado aqui. O 0 que estava aqui foi colocado aqui, aqui, aqui, aqui, aqui. E eu tive. Então, ali como resultado dessa primeira execução do algoritmo, 1, 1. Então, anota lá. 1, 1. Beleza? Vamos nós. Vamos entrar com o próximo 1. Então, quando eu entrar com o próximo 1 aqui, o 1 que estava aqui foi deslocado para cá. O 0 que estava aqui foi deslocado para cá. O 0 que estava aqui foi deslocado, foi deslocado, foi deslocado. Certo? Todos andaram. Legal. Então, vamos lá. Quando o 1 entrou aqui, eu capturei esse primeiro 1 aqui. O 0 que estava aqui foi para cá. O 0 que estava aqui foi para cá e eu capturei esse 0 aqui. O 0 que estava aqui foi para cá, eu capturei esse 0 aqui. O 0 que estava para cá não foi capturado. O 0 daqui para lá foi capturado e saiu aqui o 0 daqui. Isso aqui deu 1. Só 1. Legal. Vamos fazer um cálculo aqui embaixo. O 1 que entrou aqui. Eu coloquei aqui na memória. O 1 que estava aqui foi para cá e aí eu coloquei na memória aqui. Aqui era 0, foi para lá. 0, 0, 0 e 0. Então, eu tenho 0. Opa, anota aí. Então, nós já temos que anotar. 1, 1, espaço. 1, 0, espaço. Vamos lá. Vamos colocar mais um 1 ali na jogada. Quando eu injetei o 1 aqui, o que estava aqui, o 1 foi deslocado para cá. O 1 que estava aqui foi deslocado para cá. O 0 que estava aqui foi deslocado para cá. O 0 que estava aqui foi deslocado para lá. E o 0 foi deslocado para lá. E o que estava aqui saiu. Foi isso que aconteceu. Então, vamos fazer o cálculo. Capturei o 1 que entrou aqui. Capturei o 1 que estava aqui e que foi para cá. Capturei o 0 que estava aqui e que foi para cá. Capturei o 0 que foi aqui e que foi para cá. E o 0 que saiu. Então, quando eu faço isso, eu vou fazer o cálculo. só o resultado é legal nós aqui em baixo então eu tenho aqui um entrou capturou aqui um foi aqui pra cá coloquei aqui um foi daqui pra cá coloquei aqui aqui eu tinha um zero que foi pra lá o zero tá aqui aqui o zero tem um zero sobrando né e o zero deu um sobrou um zero aqui que eu entendi tá ali no paintbrush fazendo pô legal então anota aí zero um então quer dizer que se você olhar para eu transmitir essa informação eu também precisei de adicionar outros dados a isso vamos ver quais são os dados adicionados um zero e zero um é um algoritmo que se você olhar ele tá querendo transportar três dígitos e consumiu ali seis dígitos a mais né você tem que entender que essa massa de dados aqui de entrada ela é pequena para o cálculo que está sendo feito tem algoritmos e conseguem ser mais eficientes nesse assunto são vários algoritmos de código de convolução o tênis vou demonstrou o básico de todos estão com uma chorra mas se você olhar a precisão dele é muito boa e eu não preciso de um bloco de dados para conseguir fazer uma operação uma execução é serial esse código ele tem essas vantagens frente ao código de rédea e é natural que a vários outros algoritmos aqui dentro eu usei o algoritmo mais simples do tânia ok e no próximo vídeo vou falar sobre o solmo e aí depois nós vamos continuar em outros que não são relacionados a corte cortar até o nosso próximo vídeo até mais tchau