26/10/11

TV Digital em Angola Razao de um Padrão Brasileiro

ISDB-Tb

Razão de um Padrão Brasileiro Para Angola

Características Principais

Flexibilidade:

A segmentação de banda permite atender diferentes tipos de serviços usando as camadas hierárquicas.

Recepção fixa e móvel no mesmo canal e simultaneamente.

Radiodifusão de vídeo, áudio e dados no mesmo canal e simultaneamente.


Os diversos parâmetros de configuração: modo de operação, taxa de código, modulação e intervalo de guarda permitem escolher entre robustez e vazão.


Robustez:

O uso de múltiplas portadoras, códigos corretores de erro concatenados e dos entrelaçadores permite:

Recepção em canais com múltiplos percursos;

Recepção móvel;

Recepção em ambientes internos;

Recepção em ambientes urbanos com ruído impulsivo;

Aumentar a eficiência espectral através de redes de frequência única;


Alta qualidade de imagem através da transmissão de sinais HDTV.

Múltiplos canais/programas através da transmissão de sinais SDTV.



Interactividade :



Inclusão digital;

e-Governement, e-Education, e-Medicine, e-Business, etc.

Envio de sinal de emergência.

Opera com diferentes larguras de faixa (6, 7 ou 8 MHz).


O Brasil, no entanto, emprega uma técnica de compressão de vídeo mais recente e mais eficiente que os dos niponicos, denominada de H.264. Com esta técnica de compressão de vídeo, é possível manter a qualidade de imagem, porém reduzindo sensivelmente a taxa de bits. Este ganho de desempenho de compressão resulta em um uso mais eficiente do espectro. Já com relação ao Middleware, o Brasil adoptou uma solução brasileira, denominada de Ginga, que foi desenvolvido pela PUC-RJ e pela UFPB, Viu seu maior foco neste sistema com suas melhorias.

24/10/11

Calculadora em Java

Aprenda a fazer uma calculadora em linguagem java

Classe modelo




/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author Herlander
 */
public class calculadora
{
    private int proximaoperacao; //0=+1 =-2=*3=/-1=indef.
    private int a;
    private int b;

    public calculadora()
    {
        proximaoperacao=-1;
        a=0;
        b=0;
    }

    public void setProximaoperacao(int proximaoperacao) {
        this.proximaoperacao = proximaoperacao;
    }

    public int getProximaoperacao() {
        return proximaoperacao;
    }

    public int getA()
    {
        return a;
    }

    public int getB()
    {
        return b;
    }

    public void setA(int a)
    {
        this.a = a;
    }

    public void setB(int b)
    {
        this.b = b;
    }


    public int Somar()
    {
        return a+b;

    }

    public int Subtrair()
    {
        return a-b;

    }
    public int Multiplicar()
    {
        return a*b;

    }

    public int Dividir()
    {
        return a/b;
   
    }

    public int calcular()
    {
        switch (proximaoperacao)
        {
            case 0: return Somar();
            case 1: return Subtrair();
            case 2: return Multiplicar();
            case 3: return Dividir();
            default : return 0;



        }



    }

    public String toString()
    {
        String str = "a="+a+", b="+b+", proximaoperacao="+proximaoperacao;
        return str;
    }

}


classe visao





/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
/**
 *
 * @author Herlander
 */
public class VistaCalculadora extends JFrame
{
    private JButton btMais;
    private JButton btMenos;
    private JButton btMultiplicar;
    private JButton btDividir;
    private JButton btSinal;
    private JButton btIgual;
    private JButton btDigitos[];
    private JButton btLimpar;
    private JPanel  panelBt;
    private JTextField tfVista;
    private JPanel panelprincipal;

    public VistaCalculadora(ControladorCalculadora cc)
    {
        super ("Calculadora");

        tfVista = new JTextField("0");
        tfVista.setEnabled(false);

        tfVista.setHorizontalAlignment(SwingConstants.RIGHT);

        btMais = new JButton("+");
        btMais.setName("+");
        btMais.addActionListener(cc);

        btMenos = new JButton("-");
        btMenos.setName("-");
        btMenos.addActionListener(cc);

        btMultiplicar = new JButton("*");
        btMultiplicar.setName("*");
        btMultiplicar.addActionListener(cc);

        btDividir = new JButton("/");
        btDividir.setName("/");
        btDividir.addActionListener(cc);

        btMais.setForeground(Color.BLUE);
        btMenos.setForeground(Color.BLUE);
        btMultiplicar.setForeground(Color.BLUE);
        btDividir.setForeground(Color.BLUE);

        for (int i=0; i<10; i++)
        {
            Integer integer = new Integer(i);
            btDigitos[i]= new JButton(integer.toString());
            btDigitos [i].setName("Digitos");
            btDigitos[i].addActionListener(cc);




        }

        btSinal = new JButton("+-/*");
        btSinal.setName("+-/*");
        btSinal.addActionListener(cc);
        btSinal.setForeground(Color.blue);

        btIgual = new JButton("=");
        btIgual.setName("=");
        btIgual.addActionListener(cc);
        btIgual.setForeground(Color.blue);

        panelBt = new JPanel (new GridLayout(4,4));
        panelBt.add(btDigitos[7]);
        panelBt.add(btDigitos[8]);
        panelBt.add(btDigitos[9]);
        panelBt.add(btDividir);

        panelBt.add(btDigitos[4]);
        panelBt.add(btDigitos[5]);
        panelBt.add(btDigitos[6]);
        panelBt.add(btMultiplicar);

        panelBt.add(btDigitos[1]);
        panelBt.add(btDigitos[2]);
        panelBt.add(btDigitos[3]);
        panelBt.add(btMenos);

        panelBt.add(btDigitos[0]);
        panelBt.add(btSinal);
        panelBt.add(btIgual);
        panelBt.add(btMais);

        btLimpar =new JButton("Limpar");
        btLimpar.setName("Limpar");
        btLimpar.addActionListener(cc);

        panelprincipal = new JPanel(new BorderLayout());
        panelprincipal.add(tfVista, "North");
        panelprincipal.add(panelBt, "Center");
        panelprincipal.add(btLimpar, "South");
        setContentPane(panelprincipal);

        addWindowListener(cc);
        setSize(200,165);
        setVisible(true);












    }

    public JTextField getVista()
    {
        return tfVista;

    }



}

classe controlo



/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
import javax.swing.*;
import java.awt.*;
import javax.swing.event.*;
import java.awt.event.WindowAdapter.*;

import java.awt.event.*;

/**
 *
 * @author Herlander
 */
public class ControladorCalculadora extends WindowAdapter implements ActionListener
{
    private calculadora c;
    private VistaCalculadora vc;
    private JTextField tfVista;
    private boolean Limpar;

    public ControladorCalculadora()
    {
        c = new calculadora();
        vc = new VistaCalculadora(this);
        tfVista = vc.getVista();
        Limpar = false;

    }

    public void WindowClosing(WindowEvent e)
    {
        System.exit(0);


    }

    public void ActionPerformed(ActionEvent e)
    {
        JButton bt= (JButton) e.getSource();
        if(bt.getName().equals("Digito"))
        {
            if(Limpar)
            {
                tfVista.setText("");
                Limpar=false;

            }

            if(!tfVista.getText().equals("0"))
                tfVista.setText(tfVista.getText()+bt.getText());
            else
                tfVista.setText(bt.getText());


        }
        else if (bt.getName().equals("Limpar"))
            {
                tfVista.setText("0");
                c.setProximaoperacao(-1);



            }

         else if (bt.getName().equals("+-/*"))
         {
             int i = Integer.parseInt(tfVista.getText());

             if(i>=0)
                 i+=-(2*i);
             else
                 i+= -2*i;
             Integer integer =new Integer (i);
             tfVista.setText(integer.toString());

         }

         else
         {
            c.setA(Integer.parseInt(tfVista.getText()));
            Limpar = true;

            if(bt.getName().equals("+"))
                c.setProximaoperacao(0);
            else
                if(bt.getName().equals("-"))
                c.setProximaoperacao(1);

           else
               if(bt.getName().equals("*"))
                c.setProximaoperacao(2);
            else
                if(bt.getName().equals("/"))
                c.setProximaoperacao(3);




         }


    }



}
Main



/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author Herlander
 */
public class app {
    public static void main(String args[])
    {
        ControladorCalculadora cc = new ControladorCalculadora();

    }

}

19/10/11

Projecto Banco BFA feito em Linguagem C


//Herlander Modesto João Falo
//Engenharia De Telecomunicações
//Universidade Católica de Angola


#include
#include
#include
#include
#include
#include

#define FICH "DADOS.txt"

#define OP_INSERIR '1'
#define OP_ALTERAR '2'
#define OP_APAGAR '3'
#define OP_LISTAR '4'
#define OP_PESQUISAR '5'

#define OP_SAIR '0'

#define OP_PESQ_NUM_BI '1'
#define OP_PESQ_NOME '2'
#define OP_PESQ_NTELEF '3'



//estrutura endereco
typedef struct {
char Muni[50],
Bairro [50],
Rua[50];
int CasaNro;

}MORADA;

//estrutura Data
typedef struct { int Dia,
Mes,
Ano;
}DATA;
typedef struct {
char NomeEmpresa[50],
Funcao[50],
Categoria[50];
float VencMensal,
OutrosRend;
}TRABALHO;
//estrutura conta
typedef struct{
int modalidade,
tipos;
char Outras;

}CONTA;


typedef struct {
char NomeCompleto[30];
char NomePai[30];
char NomeMae[30];
DATA Nasc;
char Est_Civil;
int RegCasamento;
char BI[30];
MORADA Endereco;
long int Telefone;
int CaixaPostal;
int ContribNro;
TRABALHO Empresa;
CONTA Conta;
char Status;
}CLIENTE;




//Menu Principal
char *MainMenu[]={
"1. Cadastrar Cliente",
"2. Alterar Cliente",
"3. Apagar Cliente",
"4. Listar Clientes",
"5. Pesquisar Cliente",
"0. Sair",
NULL //Acabaram as opcoes
};
// Menu de Pesquisa
char *PesqMenu[]={
"1. Pesquisar por Numero BI",
"2. Pesquisar por Nome Completo",
"3. Pesquisar por Numero de Telefone",
"0. Voltar",
NULL
};
// Ficheiro
FILE *fp;

//Mensagem
void Mensagem (char *msg);

//leitura dos dados a inserir pelo utilizador
void Ler_CLIENTE(CLIENTE *p)
{
printf("\tNome Completo :"); gets(p->NomeCompleto);
printf("\tNome do Pai :"); gets(p->NomePai);
printf("\tNome da mae :"); gets(p->NomeMae);
printf("\tNascimento:DD MM AAAA:");scanf ("%d %d %d",&p->Nasc.Dia,&p->Nasc.Mes,&p->Nasc.Ano);fflush(stdin);
printf("Escolhe a opcao do Estado Civil:\n");
printf("\tS-Solteiro(a) \tC-Casado(a)\n \tV-Viuvo(a) \tD-Divrociado(a)\n\t:");scanf("%c",&p->Est_Civil); fflush(stdin);
printf("Escolhe a opcao do regime de casamento:\n");

printf("\t1-Comunhao Parcial de Bens \t2-Comunhao Universao de Bens\n");
printf("\t3-Separacao de Bens \t4-Participacao Final nos Aquestos\n\t:");scanf("%d",&p->RegCasamento); fflush(stdin);
printf("\tBilhete de identidade:"); gets(p->BI);
printf("\tMunicpio :"); scanf("%s",&p->Endereco.Muni);fflush(stdin);
printf("\tBairro :"); scanf("%s",&p->Endereco.Bairro);fflush(stdin);
printf("\tRua :"); scanf("%s",&p->Endereco.Rua);fflush(stdin);
printf("\tCasa Numero :"); scanf("%d",&p->Endereco.CasaNro);fflush(stdin);
printf("\tTelefone :"); scanf("%ld",&p->Telefone);fflush(stdin);
printf("\tCaixa Postal :"); scanf("%d",&p->CaixaPostal);fflush(stdin);
printf("\tNumero Contribuinte :"); scanf("%d",&p->ContribNro);fflush(stdin);
printf("Dados da Empresa onde Trabalha:\n");
printf("\tNome da Empresa :"); scanf("%s",&p->Empresa.NomeEmpresa);fflush(stdin);
printf("\tFuncao :"); scanf("%s",&p->Empresa.Funcao);fflush(stdin);
printf("\tCategoria :"); scanf("%s",&p->Empresa.Categoria);fflush(stdin);
printf("\tVencimento Mensal :"); scanf("%f",&p->Empresa.VencMensal);fflush(stdin);
printf("\tOutros Rendimentos :"); scanf("%f",&p->Empresa.OutrosRend);fflush(stdin);
printf("Modalidade de Conta :\n");
printf("\t1-individual 2-Solidaria 3-conjunta\n\t:"); scanf("%d",&p->Conta.modalidade);fflush(stdin);
printf("Tipos de Conta :\n");
printf("\t1-Deposito a Ordem 2-Deposito a Prazo 3-Conta Juventude \n");
printf("\t4Caderneta 5-Deposito a ordem moeda estrangeira \n\t:"); scanf("%d",&p->Conta.tipos);fflush(stdin);
printf("Outras Contas :");
printf("\tS-Sim \tN-Nao :"); scanf("%c",&p->Conta.Outras);
p->Status=' ';
fflush(stdin);

}

// metodo de leitura do estado civil
void EstadoCivil(char estCivil)
{
switch (estCivil)
{
case 'c':
case 'C': printf("Casado(a) \n");break;
case 'd':
case 'D': printf("Divorciado(a) \n");break;
case 's':
case 'S': printf("Solteiro(a) \n");break;
case 'v':
case 'V': printf("Viuvo \n");break;
default: printf("Estado civil incorrecto! ! !\n");


}



}

// metodo de leitura do Regime de Casamento
void RegimeCasal(int rcasal)
{
switch (rcasal)
{

case 1: printf("Comunhao Parcial de Bens \n");break;
case 2: printf("Comunhao Universao de Bens \n");break;
case 3: printf("Separacao de Bens \n");break;
case 4: printf("Participacao Final nos Aquestos \n");break;
default: printf("Nao casado ! ! !\n");


}


}

//Metodos das modalidade
void Modalidades(int modal)
{
switch (modal)
{

case 1: printf("individual \n");break;
case 2: printf("Solidaria \n");break;
case 3: printf("Conjunta \n");break;
default:printf("Nao casado ! ! !\n");

}

}
//Metodos das tipos de Conta
void TiposConta(int tipoConta)
{
switch (tipoConta)
{

case 1: printf("Deposito a Ordem \n");break;
case 2: printf("Deposito a Prazo \n");break;
case 3: printf("Conta Juventude \n");break;
case 4: printf("Caderneta \n");break;
case 5: printf("Deposito a ordem moeda estrangeira \n");break;
default: printf("Outras ! ! !\n");

}

}

void OutrasContas(char outras)
{
switch (outras)
{

case 's':
case 'S': printf("Sim \n");break;
case 'n':
case 'N': printf("Nao \n");break;

default: printf("opcao incorreta ! ! !\n");

}

}


void Mostrar_Cliente(CLIENTE p)
{
printf("********************************************************\n");


printf("\tNome Completo :%-30s\n", p.NomeCompleto);
printf("\tPai :%s \n",p.NomePai);
printf("\tMae :%s \n",p.NomeMae);
printf("\tNasc. (DD MM AAAA) :%d-%d-%d\n",p.Nasc.Dia, p.Nasc.Mes, p.Nasc.Ano);
printf("\tEstado Civil :");EstadoCivil(p.Est_Civil);
printf("\tRegime de Casamento :");RegimeCasal(p.RegCasamento);
printf("\tBI :%s\n",p.BI);
printf("\tMorada :Municipio %s,Bairro %s,Rua %s, nro %d\n",p.Endereco.Muni,p.Endereco.Bairro,p.Endereco.Rua,p.Endereco.CasaNro); fflush(stdin);
printf("\tTelefone :%ld\n",p.Telefone);
printf("\tCaixa Postal :%d \n",p.CaixaPostal);
printf("\tContribuinte Nro :%d \n",p.ContribNro);

printf("Dados da Empresa\n");
printf("\tNome da Empresa :%s \n",p.Empresa.NomeEmpresa);
printf("\tFuncao :%s \n",p.Empresa.Funcao);
printf("\tCategoria :%s \n",p.Empresa.Categoria);
printf("\tVencimento Mensal :%.4f\n",p.Empresa.VencMensal);
printf("\tOutros Rendimentos :%.4f\n",p.Empresa.OutrosRend);

printf("Conta\n");
printf("\t Modalidae de Conta :");Modalidades(p.Conta.modalidade);
printf("\t Tipo de Conta :");TiposConta(p.Conta.tipos);
printf("\t Outras Contas :");OutrasContas(p.Conta.Outras);

/*




fflush(stdin);*/




printf("********************************************************\n");
// system("PAUSE");


}


void Adicionar_Cliente(CLIENTE p)
{
fseek(fp, 0L, SEEK_END);
if (fwrite(&p,sizeof(p),1,fp)!=1)
Mensagem("Adicionar Pessoa: Falhou a escrita do Registo");

}
//coloca uma mensagem no ecram

void Mensagem (char *msg)
{
printf(msg);
getchar();

}

// Criar ficheiro se nao existir abri na forma de leitura e escrita

void Inic()
{
fp =fopen(FICH, "r+b"); //tentar abrir
if(fp==NULL)
{
fp =fopen(FICH, "w+b");//criar o ficheiro
if(fp==NULL)
{
fprintf(stderr, "ERRO FATAL: Impossivel Criar o ficheiro de Dados\n");
exit(1);
}
}


}
// Menu de opcoes
char Menu(char *Opcoes[])
{ int i;
char ch;
while (1)
{ //Cls
printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
for(i=0; Opcoes[i]!=NULL; i++)
printf("\t\t%s\n\n",Opcoes[i]);

printf("\n\n\t\tOpcao: ");
ch = getchar(); fflush(stdin);
for (i=0; Opcoes[i]!=NULL; i++)
if (Opcoes[i][0]==ch)

return ch;
}

}
// insercao de dados
void Inserir_Cliente()
{
CLIENTE x;
Ler_CLIENTE(&x);
Adicionar_Cliente(x);
}

//metodo para alterar
void Alterar_Cliente()
{ CLIENTE x;
long int n_reg;
printf("Qual o No do cliente que pretende alterar: ");
scanf("%ld", &n_reg);fflush(stdin);
if (fseek (fp,(n_reg-1)*sizeof(CLIENTE),SEEK_SET)!=0)
{
Mensagem ("clienete Inexistente ou problemas no posicionamento !!!");
return;
}

if(fread(&x,sizeof(CLIENTE),1,fp)!=1)
{
Mensagem ("Problemas na leitura do registo");
return;
}


if(x.Status=='*')
{
Mensagem("Um registro Apagado nao pode ser Alterado !!!\n\n\n");
return ;

}

printf("\n\n Dados Actuais\n\n");
Mostrar_Cliente(x);
printf("\n\nNovos Dados\n\n");
Ler_CLIENTE(&x);

fseek(fp,-(long) sizeof(CLIENTE), SEEK_CUR);

fwrite(&x,sizeof (CLIENTE), 1,fp);
fflush(fp);
}

void Apagar_Cliente()
{
CLIENTE x;
long int n_reg;
char resp;

printf("Qual o Nro do Registo: ");
scanf("%ld", & n_reg); fflush (stdin);
if(fseek (fp,(n_reg-1)*sizeof (CLIENTE),SEEK_SET)!=0)
{
Mensagem ("Registo Inexistente ou problemas no posicionamento!!!");
return ;


}
if(fread(&x,sizeof(CLIENTE),1,fp)!=1)

{
Mensagem("Problema na Leitura do Registro!!!\n\n");
return ;

}
if(x.Status =='*')
{
Mensagem ("Registo ja Esta Apagado!!!\n\n");
return;

}
printf("\n\n Dados Actuais\n\n");
Mostrar_Cliente(x);

printf("\n\n Apagar o registo (s/n)???: "); resp =getchar();
fflush(stdin);
if(toupper(resp)!='S') return;

x.Status='*';
fseek (fp,-(long) sizeof(CLIENTE),SEEK_CUR);
fwrite(&x,sizeof(CLIENTE),1,fp);
fflush(fp);

}

void Listar()

{
long int N_Linhas = 0;
CLIENTE reg;
rewind(fp);
while(1)
{
if(fread(&reg,sizeof(reg),1,fp)!=1) break;
if(reg.Status=='*') continue;
Mostrar_Cliente(reg);
N_Linhas++;
if(N_Linhas%20==0)

Mensagem("Prima para Continuar . . .");


}
Mensagem("Prima para Continuar . . .");


}




void Pesquisar_NUM_BI(char *s)

{ CLIENTE reg;
rewind(fp);

while (fread(&reg,sizeof(CLIENTE),1,fp))
if (reg.Status!='*' && strstr(reg.BI,s))
Mostrar_Cliente(reg);

Mensagem("\n\nPRIMA para continuar . . . "); /* No fim da Listagem */
}




void Pesquisar_Nome(char *s)
{ CLIENTE reg;
rewind(fp);

while (fread(&reg,sizeof(CLIENTE),1,fp))
if (reg.Status!='*' && strstr(reg.NomeCompleto,s))
Mostrar_Cliente(reg);

Mensagem("\n\nPRIMA para continuar . . . "); /* No fim da Listagem */
}
void Pesquisar_Telef(int numero)
{ CLIENTE reg;
rewind(fp);

while (fread(&reg,sizeof(CLIENTE),1,fp))
if (reg.Status!='*' && reg.Telefone==numero)
Mostrar_Cliente(reg);

Mensagem("\n\nPRIMA para continuar . . . "); /* No fim da Listagem */
}





int main()
{

char Opcao;
Inic();
while((Opcao=Menu(MainMenu))!=OP_SAIR)
switch(Opcao)
{
case OP_INSERIR: Inserir_Cliente(); break;
case OP_ALTERAR: Alterar_Cliente(); break;
case OP_APAGAR: Apagar_Cliente(); break;
case OP_LISTAR: Listar(); break;
case OP_PESQUISAR:
while((Opcao=Menu(PesqMenu))!=OP_SAIR)
switch (Opcao)
{
case OP_PESQ_NUM_BI:
{
char string[BUFSIZ+1];
printf("Qual o numero do BI: ");
gets(string);fflush(stdin);
Pesquisar_Nome(string); break;
}
case OP_PESQ_NOME:
{
char string[BUFSIZ+1];
printf("Qual o Nome a Procurar: ");
gets(string);fflush(stdin);
Pesquisar_Nome(string);
break;
}
case OP_PESQ_NTELEF:
{

long int n1;
printf("Qual o numero do Telefone: ");
scanf("%ld",&n1);fflush(stdin);
Pesquisar_Telef(n1);




}



}


}

}


06/10/11

Morreu Steve Jobs

Steve Paul jobs


Steven Paul Jobs (São Francisco, Califórnia, 24 de Fevereiro de 1955 — Palo Alto, Califórnia, 5 de outubro de 2011) foi um inventor, empresário e magnata americano no sector da informática. Notabilizou-se como co-fundador, presidente e director executivo da Apple Inc. Foi também director executivo da empresa de animação por computação gráfica Pixar e accionista individual máximo da The Walt Disney Company.

No final da década de 1970, Jobs, em conjunto com Steve Wozniak e Mike Markkula, entre outros, desenvolveu e comercializou uma das primeiras linhas de computadores pessoais de sucesso, a série Apple II.[7] No começo da década de 1980, ele estava entre os primeiros a perceber o potencial comercial da interface gráfica de usuário guiada pelo mouse, o que levou à criação do Macintosh.

Após perder uma disputa de poder com a mesa directora em 1984, Jobs demitiu-se da Apple e fundou a NeXT, uma companhia de desenvolvimento de plataformas direccionadas aos mercados de educação superior e administração. A compra da NeXT pela Apple em 1996 levou Jobs de volta à companhia que ele ajudara a fundar, e ele serviu como seu CEO de 1997 a 2011, ano em que anunciou sua renúncia ao cargo, recomendando Tim Cook como sucessor.

Morreu em 5 de Outubro de 2011, aos 56 anos, em decorrência de um câncer pancreático.

ultimo lançamento de Steve Jobs iphone 4s







05/10/11

Relogio Digital

Relogio digital criado apartir de circuitos Electronico



Os estudantes de electronica e informatica do colegio arvore da felicidade q solicitaram o circuito para um relogio digial aqui esta apresentado. O mesmo foi feito usando o CircuitMaker2000 simulador de circuito electronico tambem podesse usar o space para construção do mesmo

baixa o circuitmaker aqui

componentes usados:

LM 555 clock
TTL 74ls93 contador
TTL 74ls08 porta E
TTL 74ls32 porta Ou
resitores
TTL 74ls47 decodificador de 7 segmento anodo comum
display de 7 segmento anodo comum

O TTL 555 deve ser montado de forma a estabelecer um pulso de (um) 1 segundo


o primeiro contador, neste caso o contador dos segundos, deve contar ate nove e resetar o segundo deve contar ate 5 e resetar o mesmo deve acontacer com o contador dos minutos a hora deve ser ate 23 para os dois ultimos display.

toda configuração é apresentado no circuito bom proveito meus miudos duvidas ja sabem modesto.dad@hotmail.com
















12/09/11

Digitalização do sinal Analogico


digitalizar um sinal analógico 
A digitalização do sinal de video passas por 4 etapas que sao:


1)- Filtragem anti-aliasing.
2)- Amostragem
3)- Quantização
4)- Codificação destes valores em bits. 

Na  pratica, a amostragem, a quantificação e a codificaçãopodem ser feitas por um único circuito eletrônico, e não necessariamente nesta ordem, ou até simultaneamente.




Filtragem anti-aliasing: Antes do processo de amostragem um filtro anti-aliasing passa baixas é usado para atenuar as componentes de alta freqüência do sinal que não são essenciais para a informação contida nele. Logo o sinal filtrado é amostrado a uma taxa ligeiramente mais elevada do que de Nyquist,  já que de acordo com o Teorema de Nyquist, a quantidade de amostras por unidade de tempo de um sinal, chamada taxa ou frequência de amostragem, deve ser maior que o dobro da maior frequência contida no sinal a ser amostrado, para que possa ser reproduzido integralmente sem erro de aliasing.

Amostragem : É a divisão do sinal no eixo do tempo em amostras analógicas discretas PAM (Modulação em Amplitude de Pulso).

Quantização : divisão do sinal PAM no eixo de tensão em valores discretos finitos 

Codificação: Os valores quantizados precisam ser codificados em seqüências de bits, pois um sinal digital binário só pode ter dois valores diferentes "0" ou "1". Em binário puro, a codificação seria como mostra a figura acima, que é um exemplo de um sinal digital  PCM (Pulse Code Modulation), onde cada pulso PAM de amplitude variável é transformado em uma seqüência de bits com amplitude fixa e valores 0 ou 1, com um código tal que representa o valor do pulso PAM original, arredondado pelo erro de quantização.
 
 

Decibel


 O que o é o decibel?

Decibel é apenas uma forma de expressar razões, especialmente as razões de potência. Se tomarmos o ganho de um estágio amplificador, os padrões de irradiação de uma antena ou a perda em uma linha de transmissão, geralmente estamos interessados na razão entre a potência de entrada e a potência de saída do sistema em questão, a razão de potência entre o sinal captado pela parte frontal e parte traseira de uma antena direcional, etc. Estes são alguns exemplos dos campos onde o decibel é aplicado e portanto onde encontramos resultados em dB.

Decibel é uma função logarítmica. Logaritmo é uma útil ferramenta matemática baseada em expoentes. Uma característica importante do logaritmo é sua multiplicação, que pode ser realizada com a adição de quantidades logarítmicas. Do mesmo modo as divisões são realizadas subtraindo-se quantidades logarítmicas. Tal método é benéfico ao se lidar com múltiplos estágios de amplificação ou atenuação, quando um minúsculo sinal do éter é amplificando e processando de tal forma que possamos ouví-lo num alto falante. Ao invés de multiplicar e dividir os valores em cada estágio – frequentemente com sinais extremamente fracos e com vários zeros após o ponto decimal – nós podemos considerar todos os valores em dB e obter o ganho total de um sistema de uma maneira simplificada.

A entrada e/ou a saída pode ser caracterizada por um determinado nível de sinal, que pode ser medido em Volt, Ampere ouWatt.

Se o nível à saída for superior ao nível à entrada diz-se que o sistema apresenta ganho. Caso contrário, diz-se que o sistema tem ou causa atenuação

Calculos de potencia
Na medição de potência o bel é calculado assim:

P(Bel) = log10 (P/P0)
onde:   P = potência medida
P0 = potência de referência

Conforme foi referido, o sistema apresenta ganho (G) se P2 > P1 e atenuação (A) caso contrário.

G(dB) = 10 * log10 (P2/P1)
A(dB) =10* log10 (P1/P2)





Tanto o ganho (G) como a atenuação (A) calculam-se da mesma forma e existe uma relação entre eles.

Ganho = -Atenuação

Sistema
 
2mw                                           4mw
                                                                             


                                                   

        Visto que a saída é o dobro da entrada o sistema tem ganho igual a:
                         10*log ( 4mW/2mW) = 10*log (2) = +3,01dB ≈ +3dB

       Se a saída é o dobro da entrada, então o ganho é de +3dB (100%)
       Se a saída é metade da entrada (50%), então o ganho é de - 3dB, ou seja, há uma atenuação de +3dB!

O decibel (dB) na medida de tensão
O decibel utilizado na medida de tensão é muito parecido com o decibel utilizado na medida de potência:

Av(dB) = 20 log10 (E/E0)

O multiplicador passa a ser “20” no lugar de “10” considerando os seguintes fatos:
·         P = E2 x R
Lembrando da propriedade dos logaritmos que diz que log (x2) = 2 log(x), teremos:
·         dB = 20 log ( V1 / V2 ) + 10 log ( R2 / R1)
Se considerarmos o mesmo valor da resistência:
·         dB = 20 log (V1 / V2)