Sie sind auf Seite 1von 3

COMUNICAO DE DADOS LAB.

0
A Codificao da Fonte tenta comprimir os dados gerados pela fonte, de
modo a transmiti-los de forma mais eficiente.

1. Objetivo:

Realizar a tarefa do envio de dados (sequncia de bits aleatria) de


um n a outro, por um canal de comunicao sem rudo e distores
(canal ideal), realizando a codificao e a decodificao de linha.

2. Fundamentao Terica:
A comunicao se dar com a simulao do envio e do recebimento da
sequncia de bits (geradas aleatoriamente com distribuio de
probabilidade uniforme). Os bits devero ser convertidos em amostras de
tenso, na faixa de tenso de V0 a V1 volts (a serem definidos pelo usurio).
As amostras de tenso sero enviadas e recebidas a uma taxa de 4 milhes
de amostras/s. O script no precisar gerenciar o processo de envio e
recebimento de uma amostra de tenso, a cada 0,25 s.
Nesse experimento vamos considerar o uso de um canal ideal, ou seja, o
canal no provocar alteraes no sinal analgico gerado pelas amostras de
tenso.

3. Procedimentos:
Procedimento 1: Simulao computacional para o traado do

sinal analgico gerado a partir das amostras


recebidas.

Muitos sistemas digitais baseados em fios transmitem bits digitais por


converso dos zeros e uns (bits) em sequncias de amostras de baixa e alta
tenso aplicadas numa extremidade de um fio de comunicao.
O canal de comunicao provoca variaes de tenso no sinal at que o
mesmo chegue ao receptor. A exata relao entre as sequncias de bits e as
amostras de tenso depende do protocolo de comunicao, mas,
tipicamente um nico bit de dados representado por uma sequncia de
amostras de tenso (quantidade a ser definida pelo usurio do simulador).
A partir do script em Python, mostrado a seguir, vemos que a lista de bits
est sendo convertida em amostras de tenso pela funo bits2amostras
para a transmisso pelo canal. Com o parmetro amostras_por_bit
ajustado em 20, cada bit transmitido gerar vinte amostras de tenso. A
funo canal uma interface para um canal ideal (canal '0'), e retornar
um vetor de amostras de tenso que representam o sinal que chega ao
receptor.

Normalmente, era de se esperar que o sinal ao chegar ao receptor tivesse


transies entre V0 e V1 no ocorrendo repentinamente, devido a insero
do rudo ao sinal e a alguma atenuao (diferena reduzida entre valores de
tenses baixa e alta).
Porm nesse experimento, estaremos simulando apenas a codificao da
fonte, convertendo a sequncia de bits em amostras de tenso de acordo
com a tcnica de codificao adotada.
Escreva uma funo para traar as amostras de tenso no receptor
(interpoladas linearmente para simular um sinal contnuo), e a sequncia de
bits resultante da decodificao das amostras recebidas.
A figura criada deve conter os rtulos apropriados para os eixos X e Y
("Nmero da amostra" e "tenso") e o ttulo: "Dados no Receptor".
Adicione linhas de grade para facilitar a interpretao dos dados.
Uma boa conveno usar grficos de linha (plot) para dados
contnuos e grficos de pontos (stem) para dados amostrados.
Escreva outra funo para converter a sequncia de bits em amostras de
tenso, bits2amostras, que receba cinco argumentos:
Um vetor contendo a sequncia de bits a ser enviada;
Uma string identificando o tipo do cdigo de linha a ser usado na
converso de bits para amostras de tenso: NRZ, RZ,
Manchester, ...;
Um vetor de duas posies com os valores de tenso negativa e
positiva;
Um valor inteiro contendo a quantidade de amostras de tenso por
bit.
Script Python Modelo:
# coding: utf-8
# lab0x.py modelo para o Procedimento 1
import numpy as np
import matplotlib.pyplot as plt
def canal(amostras):
""" Simula um canal ideal: sem rudos e sem distores. """
return amostras
def plot_dados(a,d):
""" Crie uma nova figura e trae as amostras de tenso 'a'
recebidas e a sequncia de bits decodificada 'd'. """
... # coloque aqui o seu cdigo
def bits2amostras(seqbits,tecnica,tensoes,apb):
""" Converte uma sequncia de bits em amostras de tenso. """
... # coloque aqui o seu cdigo
def amostras2bits(amostras,tecnica,apb):
""" Converte amostras de tenso numa seq. de bits codificados. """
... # coloque aqui o seu cdigo
if __name__ == '__main__':
seqTX = [1,0,1,1,0,0,0,1,0,0,0,1,1,1,0]
# seq. de bits a tx
# converte bits em amostras de tenso, de V0 a V1 Volt
apb = input('Qtde de Amostras/bit: ')
# usual: 20

V0 = input('Tenso para bit "0" (V): ')


# usual: -5 V
V1 = input('Tenso para bit "1" (V): ')
# usual: +5 V
amostrasTX = bits2amostras(seqTX,'NRZ',[V0,V1],apb)
# envia as amostras de tenso pelo canal ideal
amostrasRX = canal(amostrasTX)
# simula canal ideal
# converte amostras de tenso recebidas em dados digitais (bits)
seqRX = amostras2bits(amostrasRX,'NRZ',apb)
# traa as amostras de tenso recebidas e o sinal digital corresp.
plot_dados(amostrasRX,seqRX)

4. Atividades
Simulao de tcnicas de codificao de linha para dados digitais a serem
enviados por um canal ideal (sem rudos, sem distores).
Envie o arquivo do script desenvolvido com o seguinte nome: lab0x(.py
ou .m) onde 'x' indica a letra do grupo de trabalho, conforme descrito a
seguir:

Grupo

Componentes

Tcnicas
Codificao de Linha

Guilherme Fernandes Soares


Gustavo Borba Martins
Marcos Vincius de Lima Frana
Marcos Vincius de O. Arajo
Ricardo Martins da Fonseca

NRZ-L Polar, NRZ-L


Unipolar, HDB3

Diego Armando de A. Modesto


Marcos Welyson Costa Silva
Roberto Petrnio N. Ribeiro
Rmulo da Costa Delmondes
Wilson Braun

NRZ-M Polar, NRZ-S


Polar

Huan Carlos da Silva


Pedro Augusto Godoi
Romrio Oliveira Santos
Samuel Barbosa de Oliveira
Volney Csar de Soteles Filho

Manchester,
Manchester Diferencial

Abrao Alcntara de Sousa


Gilberto Costa Lima
Ruy Brasil Jnior
Saint'Clair Pereira de Carvalho
Thiago Godoi Vieira Naves

RZ Polar, RZ Bipolar,
AMI RZ

Anderson R. de Freitas Rocha


Geovanna M. Dias de Oliveira
Jocimar Dias Torres
Thiago Olmpio Alexandre
Wesley Junio Ribas de Lima

Pulse Time,
Bifsico-M, Bifsico-S

Deteco de Erros

Das könnte Ihnen auch gefallen