Vous êtes sur la page 1sur 16

Universidade Federal do ABC

Professor Joo Henrique Kleinschmidt (CCNH)

Projeto 1 Comunicao e Redes

Letcia Sales Carvalheira Machado Rafael Martins

SANTO ANDR, JULHO DE 2011

INTRODUO
Comunicao e Redes
A comunicao superior sociedade humana. Conforme as sociedades foram ocupando espaos geograficamente dispersos, a necessidade de comunicao atravs de longas distncias foi tornando-se mais intensa. Ao inventar o telgrafo em 1838, Samuel Morse instituiu um marco para os sistemas de comunicao que evoluram para as redes de telefonia, de rdio, de televiso e de computadores. A atual rea de comunicao e redes refere-se transferncia eletrnica de informaes, comunicao mediada por um computador ou perifrico. Com o surgimento das novas tecnologias - Internet tem facilitado a informao circular livremente, emitida de pontos diversos, sendo encaminhada de maneira no linear a uma infinidade de outros pontos, que tambm so emissores de informao. O importante nesses fluxos a realimentao do sistema: retorno, considerao e legitimidade das fontes so essenciais para a participao colaborativa e at mesmo para avaliao de resultados e pesquisas. O compartilhamento de recursos de unidades e pastas permite que usurios em uma rede de computadores troquem informaes e acessem os mesmos recursos. Assim, computadores, celulares, telefones convencionais, redes de rdio e televiso pertencem a essa malha, indistintamente. A internet, com sua tecnologia de protocolos de rede que so independentes de uma base fsica especfica telefonia, satlite, rdio surgiu como o principal elo dessa malha, interligando os demais, permitindo e exigindo interfaces entre diferentes cdigos de comunicao automatizada. Para a realizao deste projeto, foi utilizado o Software Net Beans para o desenvolvimento do projeto proposto e a execuo do programa em Java.

OBJETIVOS
Desenvolver um programa em linguagem de programao afim de verificar todas as sistemticas da comunicao, abrangendo dados de entrada e dados de sada que verifiquem e validem a teoria transmitida em aula.

PARTE EXPERIMENTAL
Softawere e Linguagem de programao utilizada
NetBeans e linguagem de programao em Java.

Procedimentos:
Parte 1 Clculo da potncia do sinal e a potncia do rudo no transmissor Primeiramente foi montada toda a estrutura do programa em Java, fazendo com que o mesmo tivesse como parmetros de entrada: A potncia de sinal em Watts; A banda ocupada pelo sinal e KHz; A distncia entre o transmissor e o receptor em Km; A temperatura ambiente em Celsius; A constante de Boltzmann, que ser uma constante do programa. Nesta primeira parte o projeto calculou:

A relao entre a potncia de sinal e a potncia de rudo no transmissor (SNRTX) em dB; A relao entre a potncia de sinal e a potncia de rudo no receptor (SNRRX) em dB; A atenuao total da conexo em dB.

Parte 2 Clculo da capacidade de canal na presena de rudo branco e tempo esperado de transmisso de um arquivo
Nessa segunda etapa, foram introduzidos novos dados no programa e foi efetuado o clculo a capacidade de canal na presena de rudo branco gaussiano aditivo (AWGN) e o tempo esperado de transmisso de um arquivo. Os parmetros de entrada foram mantidos idnticos ao da primeira parte, incluindo ainda: O tamanho de um arquivo a ser transmitido (em bytes);

Parte 3 Melhoria do Projeto Nesta terceira etapa do projeto foram introduzidas melhorias no programa com o intuito de facilitar seu uso e aplicabilidade, nesta melhoria o programa inicial foi modificado para que as variveis sejam armazenadas em arquivos diversos e assim na realizao dos clculos, o programa busca nesta pastas diversas estes dados.

RESULTADOS E DISCUSSO
A princpio, notou-se a uma ligeira dificuldade no funcionamento do programa na 1 parte do projeto, pois o mesmo estava efetuando apenas o clculo da atenuao e como resultado para os demais dados, ele devolvia como resultado o valor Nan. Depois de analisado e testado criteriosamente todo o programa, foi verificado que ele no estava lendo corretamente os valores obtidos, valores estes bem abaixo de zero. Efetuada a correo, o programa foi executado diversas vezes com dados diversos e em nenhuma das vezes houve qualquer tipo de erro. Para a segunda parte foram introduzidos novos parmetros no programa desenvolvido para a primeira parte, na execuo desta parte no houve erros. Foram testados diversos valores e todos apresentaram resultado satisfatrio.

O desenvolvimento da terceira parte foi mais complexo, onde foram estudados melhorias para o programa desenvolvido. E aps uma grande pesquisa e analise do programa foram introduzidas como melhorias, as variveis do programa serem armazenadas em arquivos diversos e na execuo do mesmo serem chamadas para a execuo dos clculos.

CONCLUSO
A partir do projeto realizado, possvel concluir que na comunicao, de uma forma geral, esto presentes diversos tipos de parmetros e distores. Apesar disso j ser imaginvel, a comprovao com base em procedimento cientfico refora uma srie de questes, principalmente quelas ligadas a transmisso de dados, que nunca so as mesmas em todos os lugares. A existncia de interferncias nas taxas de potncias iniciais e o conseqente valor destas aps realizao de clculos faz-se verificar que os dados obtidos em teoria, na prtica,se equivalem. Enfim, foi constatado que toda informao esta sujeita a presena de rudos, atenuao e distores que fazem com que sempre os dados de entrada sejam diferentes dos dados de sada e que tal fato explica vrios fenmenos que esto no dia a dia, porm acabam sendo imperceptveis para todos.

BIBLIOGRAFIA
1. http://pt.wikipedia.org/wiki/Comunica %C3%A7%C3%A3o_em_rede acessado em 2/07/2011. 2. Use a cabea, JAVA!, Katy Sierra e Bert Bates

ANEXO
Projeto 1 Parte 1 package projetocr2; import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); double k = (1.38 / (10 ^ -23)); System.out.printf("Qual a potncia do Sinal, em Watts? \n"); double Ps = sc.nextDouble(); System.out.printf("Qual a banda ocupada pelo sinal (em kHz)? \n"); double B = sc.nextDouble(); System.out.printf("Qual a distncia entre o transmissor e o receptor (em Km)? \n"); double D = sc.nextDouble(); System.out.printf("Qual a temperatura ambiente (em Celsius)? \n"); double T = sc.nextDouble(); double Tk = (T + 273.15); //K = C + 273,15 double Bhz = (B * (10 ^ 3)); double Pr = k * Tk * Bhz; double SNRtxdb = (10 * (Math.log10(Ps / Pr))); double a = 0.1; double b = 2; double aten = a * D + b; double SNRrx = SNRtxdb - aten; System.out.println("A relao entre a potncia de sinal e a potncia de rudo no transmissor (SNRtx) em dB :\n" + SNRtxdb);

System.out.println("A atenuao total da conexo (em dB) : \n" + aten); System.out.println("A relao entre a potncia de sinal e a potncia de rudo no receptor (SNRrx) em dB :\n" + SNRrx); } } Projeto 1 Parte 2 package projetocr3; import java.util.*; public class Main { public static double Log2(double num) { return Math.log(num) / Math.log(2); } public static void main(String[] args) { Scanner sc = new Scanner(System.in); double k = (1.38 / (10 ^ -23)); System.out.printf("Qual a potncia do Sinal, em Watts? \n"); double Ps = sc.nextDouble(); System.out.printf("Qual a banda ocupada pelo sinal (em kHz)? \n"); double B = sc.nextDouble(); System.out.printf("Qual a distncia entre o transmissor e o receptor (em Km)? \n"); double D = sc.nextDouble(); System.out.printf("Qual a temperatura ambiente (em Celsius)? \n"); double T = sc.nextDouble();

System.out.printf("Qual o tamanho do arquivo a ser transmitido (em bytes)? \n"); double Tarq = sc.nextDouble(); double Tk = (T + 273.15); //K = C + 273,15 double Bhz = (B * (10 ^ 3)); double Pr = k * Tk * Bhz; double SNRtx = (Ps / Pr); double a = 0.1; double b = 2; double aten = a * D + b; double SNRrx = SNRtx - aten; double Log2 = Log2(1 + SNRtx); double C = Bhz * Log2; double Tesp = (Tarq / C); System.out.printf("A capacidade mxima do canal %.2f bytes/segundo. \n", C); System.out.printf("O tempo esperado de transmisso %.0f segundos. \n", Tesp); } } Projeto 1 Parte 3 package projetocrmelhoria; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; public class Export { public void escrever(String valor1, String valor2, String valor3, String valor4, String valor5) { try {

// Classe que cria/abre o arquivo em mode de edio FileWriter Quadrimestre\\arquivo_projeto.txt", true); // Classe que escreve no texto PrintWriter text = new PrintWriter (write); // "Imprime" pelo PrintWriter text. text.println (valor1); text.println (); text.println (valor2); text.println (); text.println (valor3); text.println (); text.println (valor4); text.println (); text.println (valor5); text.println(); text.flush(); write.close(); } catch (IOException ie) { ie.printStackTrace(); } } } package projetocrmelhoria; import java.util.*; public class Main { private static double SNRtxdb; write = new FileWriter ("C:\\Users\\Letcia\\Documents\\UFABC\\4

private static double Aten; private static double SNRrx; private static double C; private static double Tesp; public static void main(String[] args) { Scanner sc = new Scanner(System.in); double k = (1.38 / (10 ^ -23)); System.out.printf("Qual a potncia do Sinal, em Watts? \n"); double Ps = sc.nextDouble(); System.out.printf("Qual a banda ocupada pelo sinal (em kHz)? \n"); double B = sc.nextDouble(); System.out.printf("Qual a distncia entre o transmissor e o receptor (em Km)? \n"); double D = sc.nextDouble(); System.out.printf("Qual a temperatura ambiente (em Celsius)? \n"); double T = sc.nextDouble(); System.out.printf("Qual o tamanho do arquivo a ser transmitido (em bytes)? \n"); double Tarq = sc.nextDouble(); double Tk = (T + 273.15); //K = C + 273,15 double Bhz = (B * (10 ^ 3)); double Pr = k * Tk * Bhz; double SNRtxdb = (10 * (Math.log10(Ps / Pr))); double SNRtx = (Ps / Pr); double a = 0.1; double b = 2; double Aten = a * D + b; double SNRrx = SNRtxdb - Aten; double Log2 = Log2(1 + SNRtx); double C = Bhz * Log2;

double Tesp = (Tarq / C); System.out.println("A relao entre a potncia de sinal e a potncia de rudo no transmissor (SNRtx) em dB :\n" + SNRtxdb); System.out.println("A atenuao total da conexo (em dB) : \n" + Aten); System.out.println("A relao entre a potncia de sinal e a potncia de rudo no receptor (SNRrx) em dB :\n" + SNRrx); System.out.printf("A capacidade mxima do canal %.2f bytes/segundo. \n", C); System.out.printf("O tempo esperado de transmisso %.0f segundos. \n", Tesp); String gravaSNRtxdb = "Relao entre a potncia de sinal e a potncia de rudo no transmissor (SNRtx) em dB: " + String.valueOf(SNRtxdb); String gravaAten = "Atenuao total da conexo (em dB): " + String.valueOf(Aten); String gravaSNRrx = "Relao entre a potncia de sinal e a potncia de rudo no receptor (SNRrx) em dB : " + String.valueOf(SNRrx); String gravaC = "Capacidade mxima do canal (em bytes/segundo): " + String.valueOf(C); String gravaTesp = "Tempo esperado de transmisso (em segundos): " + String.valueOf(Tesp); Export export = new Export(); export.escrever(gravaSNRtxdb, gravaAten, gravaSNRrx, gravaC, gravaTesp); } public static double Log2(double num) { return Math.log(num) / Math.log(2); }

public static double getSNRtxdb() { return SNRtxdb; } public static void setSNRtxdb(double sNRtxdb) { SNRtxdb = sNRtxdb; } public static double getAten() { return Aten; } public static void setAten(double aten) { Aten = aten; } public static double getSNRrx() { return SNRrx; } public static void setSNRrx(double sNRrx) { SNRrx = sNRrx; } public static double getC() { return C; } public static void setC(double c) { C = c; } public static double getTesp() {

return Tesp; } public static void setTesp(double tesp) { Tesp = tesp; }}

Vous aimerez peut-être aussi