LABORATÓRIO DE PROCESSAMENTO DIGITAL DE SINAIS II. Filtros FIR utilizando matlab e arduino duo LAB 1 (LPF)

Documentos relacionados
LABORATÓRIO DE PROCESSAMENTO DIGITAL DE SINAIS II. Filtros FIR utilizando matlab e arduino duo LAB 4 (BRF)

Universidade de Mogi das Cruzes Engenharia Elétrica LABORATÓRIO DE PROCESSAMENTO DIGITAL DE SINAIS I. Docente - José Roberto Marques

Universidade de Mogi das Cruzes Engenharia Elétrica LABORATÓRIO DE PROCESSAMENTO DIGITAL DE SINAIS I. Docente - José Roberto Marques

Universidade de Mogi das Cruzes Engenharia Elétrica LABORATÓRIO DE PROCESSAMENTO DIGITAL DE SINAIS I. Docente - José Roberto Marques

prof. José Roberto Marques docente da Universidade de Mogi das Cruzes Projeto de filtros digitais simples utilizando o Arduino duo

Universidade de Mogi das Cruzes Engenharia Elétrica LABORATÓRIO DE PROCESSAMENTO DIGITAL DE SINAIS II. Docente - José Roberto Marques

ELETRÔNICA DE POTÊNCIA I Laboratório 1 (complemento) Medição de tensão e corrente em sistemas elétricos

CANAL ANALÓGICO

Tutoriais PET-Tele. Introdução à Amostragem de Sinais com o kit Arduino (Versão: A2016M06D21)

AULA LAB 02 LABORATÓRIO DE CONVERSORES CC-CC 2 GERAÇÃO DOS SINAIS DE COMANDO (PWM) NO ARDUINO

Curso de Engenharia Elétrica Processamento Digital de Sinais II Exercícios sobre filtros não recursivos Data de entrega: 17/11/2015

Plano de Aula. 1 o semestre. Aula número 010 Interrupções Internas Timers. Uso de interrupções internas produzidas pelos timers

INTRODUÇÃO AO ARDUINO DUE, CANAL DIGITAL, FUNÇÃO DELAY

Jadsonlee da Silva Sá

ENG-1450 Microcontroladores e Sistemas Embarcados. Lab02 Apresentação Kit PicGenios Interrupção e Timers

Por Fernando Koyanagi

Laboratório de Microprocessadores e Microcontroladores

Sistemas Microprocessados

Sistema Digitais. Bacharelado de Informática UEM DIN - Prof. Elvio 2017

Laboratório de Microprocessadores e Microcontroladores

Robótica com Arduino Professor: Paulo Marcos Trentin

Sistemas Embebidos I , Tiago Miguel Dias ISEL, ADEETC - Secção de Eletrónica e Telecomunicações e de Computadores

Arquitetura Von Neumann Dados e instruções são obtidos da mesma forma, simplificando o desenho do microprocessador;

Plano de Aula. 1 o semestre. Cronômetro Interrupções, Timers. Utilizar interrupções para criar um cronômetro com parciais

Sistema Digitais. Bacharelado de Informática UEM DIN - Prof. Elvio 2016

RTC Real Time Counter e Pinos do JM60

Programação do Arduino. Parte 1. IDE Wiring

Interrupção

Atividade de laboratório 005. Prof: Carlos Eduardo de Brito Novaes 20 de maio de Alunos RA Nome Curso Semestre

Sistemas Digitais e Microcontrolados

Entrada de dados com botões

MINICURSO ARDUINO BÁSICO

Interrupções e Timers

Sistemas Microcontrolados

Arduino. Conectores, Fonte, USB, LEDs. Compilador, Bibliotecas, Editor, Burner

Arduino. Gilmar Aquino

ELETRÔNICA DE POTÊNCIA I Laboratório 3 Medição de tensão, corrente e fator de potência dos sistemas elétricos

Plano de Aula. 1 o semestre. Aula número 009 Interrupções. Fazer uso das interrupções externas no Arduíno

LABORATÓRIO DE CIRCUITOS ELÉTRICOS I. Prof. José Roberto Marques. Experiência 1 Transitórios Elétricos de 1ª ordem (CIRCUITO RC)

Programação em Linguagem C

Manual Técnico MS04A-TS

Sistemas Microcontrolados

Departamento de Engenharia Elétrica SEL 384 Laboratório de Sistemas Digitais I PRÁTICA Nº5B

Sistemas Embarcados:

ARDUINO. Níveis lógicos de referência VCC e GND Entradas e saídas digitais e analógicas.

Temporização Interrupções. Prof: Evandro L. L. Rodrigues. Rotinas de Atraso

Projeto 01. Adriano Joaquim de Oliveira Cruz Instituto de Matemática UFRJ 2015 Adriano Cruz. 30 de agosto de 2015

29/03/2017. Temporização da CPU SEL-433 APLICAÇÕES DE MICROPROCESSADORES I. Ciclos de Máquina. Ciclos de Máquina

Temporização da CPU SEL-433 APLICAÇÕES DE MICROPROCESSADORES I. Ciclos de Máquina. Ciclos de Máquina. Temporização Interrupções Rotinas de Atraso

Prof. Adilson Gonzaga

Manual Técnico MM4X-MA

Curso de Microcontroladores PIC 16F84A

Microcontroladores: Programação em C

HardFlex 4VFI e 2 VFO

Organização de Memórias

Microprocessadores e Microcontroladores. Professor Lucas Araujo do Nascimento

ARDUINO BÁSICO E T A P A 1 O QUE É ARDUINO? Prof. Amadeu Zanon Neto

AAAA AAAA SEL Aplicação de Microprocessadores I. Aula 5 Temporização e Interrupção. Marcelo Andrade da Costa Vieira

EL08D - MICROCONTROLADORES

Lista de Exercícios A2

Objetivos MICROCONTROLADORES HARDWARE. Aula 03: Periféricos. Prof. Mauricio. MICRO I Prof. Mauricio 1. Arquitetura de um Microcontrolador

HARDWARE DOS RELÉS NUMÉRICOS

Descrição dos pinos de entrada e saída e de funções especiais. Descrição dos modos de acesso: individual e por porto

UTFPR Departamento Acadêmico de Eletrônica Curso Técnico em Eletrônica Microcontroladores 1 - Prof. Cion nov/2010 (atualizado em jul 2015)

Filtros Digitais. Filtros básicos, parâmetros no domínio do tempo e frequência, classificação de filtros

Microcontroladores 2 EL08D Turma M12

Arduino. Conectores, Fonte, USB, LEDs. Compilador, Bibliotecas, Editor, Burner

Sistema Digitais. Bacharelado de Informática UEM DIN - Prof. Elvio 2016

Sistemas Microcontrolados

Microcontrolador 8051

Sistemas Digitais e Microcontrolados

ET53C - SISTEMAS DIGITAIS

Conversor Analógico Digital do MSP430G2553

Conversão analógico-digital e digital-analógica

Resposta Senoidal em Circuito RC. Experiência 1 Arduino atuando como gerador de Onda Senoidal

Interrupção. Prof. Adilson Gonzaga

CIRCUITOS SEQUENCIAIS. Adão de Melo Neto

Kit controle remoto IR acionando 3 Led com Arduino

Introdução ao Arduino ESCOLA DE ARTES VISUAIS DO PARQUE LAGE. Núcleo de Arte e Tecnologia. julio lucio martin. Aula 01

Introdução teórica Aula 8: Fonte de Tensão Regulada. Regulador LM7805. Fonte de tensão regulada. EEL7011 Eletricidade Básica Aula 8 EEL/CTC/UFSC

Atividade de laboratório 004. Prof: Carlos Eduardo de Brito Novaes 6 de maio de Alunos RA Nome Curso Semestre

Projeto No. 19 Contador Binário com Chave Rotativa

OFICINA Uso da plataforma Arduino no Ensino de Ciências

UNIVERSIDADE CATÓLICA DE PELOTAS CENTRO POLITÉCNICO CURSO DE ENGENHARIA ELETRÔNICA DISCIPLINA DE INSTRUMENTAÇÃO ELETRÔNICA. Trena Ultrassônica

Osciloscópio Digital. Diagrama em blocos:

Controladores do IBM-PC. Gustavo G. Parma

Capítulo 11) Interface com o mundo analógico

Temporizadores e Contadores (Timer/Counter)

Desenvolvendo aplicações com LabVIEW FPGA. Rogério Rodrigues Engenheiro de Marketing Técnico Marcos Cardoso Engenheiro de Vendas

1.2 Registradores relacionados as Interrupções. 3. TOSE Sentido da transição da borda do sinal aplicado am TMR0

Anatomia do Arduino Bootloader

Microcontrolador 8051:

AGENDA. Escola Naval. Osciloscópio. Osciloscópio. Resultados SQS SQS:

Laboratório de Microprocessadores e Microcontroladores. Experimento 6:

ELETRÔNICA DE POTÊNCIA I

EXPERIÊNCIA 7 MUX e DEMUX

Introdução ao Arduino ESCOLA DE ARTES VISUAIS DO PARQUE LAGE. Núcleo de Arte e Tecnologia. julio lucio martin. Aula 07

ELECTRÓNICA GERAL CONVERSOR DIGITAL ANALÓGICO 2º TRABALHO DE LABORATÓRIO 1º SEMESTRE 2015/2016 PEDRO VITOR E JOSÉ GERALD

Disciplina: Laboratório de Fis26

ELT703 - EXPERIÊNCIA N 3: ERROS DC (OFFSET) E SLEW RATE

Transcrição:

Fase (graus) Módulo da resposta em frequência METAHEURO LABORATÓRIO DE PROCESSAMENTO DIGITAL DE SINAIS II Filtros FIR utilizando matlab e arduino duo LAB 1 (LPF) Nota: O processador ARM do arduino duo não é um processador digital de sinais, portanto a resposta do mesmo se limita a operações com filtros de número de taps limitado e em operações de baixas frequências. TAREFA 1: Projetar um filtro passa baixas FIR de 31 taps com frequência de corte de 400 Hz, utilizando o método da transformada de Fourier. Utilize a frequência de amostragem de 15000 Hz e aplique a janela de Hamming. Obtenha os coeficientes do filtro utilizando o matlab e aplique uma escala razoável para trabalhar com aritmética de ponto fixo. No matlab, o módulo da resposta em frequência do filtro e a fase do mesmo são mostrados nos gráficos abaixo: -20-40 -60-80 0 1000 2000 3000 4000 5000 6000 7000 Frequencia (Hz) 0-200 -400-600 0 1000 2000 3000 4000 5000 6000 7000 8000 Frequencia (Hz) Figura 1 Os coeficientes do filtro, obtidos no matlab para a especificação solicitada são: b0 = 9.978552e-004; b1 = 1.462856e-003; b2 = 2.408095e-003; b3 = 4.028668e-003; b4 = 6.471711e-003; b5 = 9.813551e-003;

b6 = 1.404338e-002; b7 = 1.905562e-002; b8 = 2.465229e-002; b9 = 3.055544e-002; b10 = 3.642875e-002; b11 = 4.190622e-002; b12 = 4.662503e-002; b13 = 5.025921e-002; b14 = 5.255053e-002; b15 = 5.333333e-002; b16 = 5.255053e-002; b17 = 5.025921e-002; b18 = 4.662503e-002; b19 = 4.190622e-002; b20 = 3.642875e-002; b21 = 3.055544e-002; b22 = 2.465229e-002; b23 = 1.905562e-002; b24 = 1.404338e-002; b25 = 9.813551e-003; b26 = 6.471711e-003; b27 = 4.028668e-003; b28 = 2.408095e-003; b29 = 1.462856e-003; b30 = 9.978552e-004; Multiplicando os coeficientes por 2 14 e eliminado a parte fracionária, obtemos: b0 = 16; b1 = 24; b2 = 39; b3 = 66; b4 = 106; b5 = 161; b6 = 230; b7 = 312; b8 = 404; b9 = 501; b10 = 597; b11 = 687; b12 = 764; b13 = 823; b14 = 861; b15 = 874; b16 = 861; b17 = 823; b18 = 764; b19 = 687; b20 = 597; b21 = 501; b22 = 404; b23 = 312; b24 = 230; b25 = 161; b26 = 106; b27 = 66; b28 = 39; b29 = 24; b30 = 16; Escreva o software do filtro utilizando esses dados, e teste a operação do mesmo. Implementação do filtro LPF //filtro PASSA BAIXAS FIR de 31 taps com frequencia de corte = 400 Hz e //e frequencia de amostragem de 15000Hz. //declaração dos coeficientes do filro //utilizando o fator 2^14=16384 int b0 = 16; int b1 = 24; int b2 = 39;

int b3 = 66; int b4 = 106; int b5 = 161; int b6 = 230; int b7 = 312; int b8 = 404; int b9 = 501; int b10 = 597; int b11 = 687; int b12 = 764; int b13 = 823; int b14 = 861; int b15 = 874; //declaração das variáveis de entradas int x_0,x_1,x_2,x_3,x_4,x_5,x_6,x_7,x_8,x_9,x_10,x_11,x_12,x_13,x_14,x_15,x_16,x_17,x_18; int x_19,x_20,x_21,x_22,x_23,x_24,x_25,x_26,x_27,x_28,x_29,x_30; //declaração da variável de saída e controle de amostragem int y,ssn; //declaração das saídas p. flutuante long sn1,sn2; int sn; //flag de controle int flag_aq; void setup() { Serial.begin(9600); pinmode(13, OUTPUT); // ////////////Configuração do timer 1 - canal0 /////////////////////// pmc_set_writeprotect(false); pmc_enable_periph_clk(id_tc3); // desabilite a habilitação dos registradores pmc // habilite do periferico de clock TC3

pmc_set_writeprotect(false); pmc // desabilite a proteção de escrita dos registradores TC_Configure(TC1, 0, TC_CMR_WAVE TC_CMR_WAVSEL_UP_RC TC_CMR_TCCLKS_TIMER_CLOCK2); //prescaler = 8 TC_SetRC(TC1, 0,700); /* fixe o período de amostragem -> 84000000/8/10000 = 1050*/ TC_Start(TC1, 0); // enable timer interrupts on the timer TC1->TC_CHANNEL[0].TC_IER=TC_IER_CPCS; // IER = habilitação do registro de interrupção TC1->TC_CHANNEL[0].TC_IDR=~TC_IER_CPCS; // IDR = desabilitação do reginterrupt disable register } NVIC_EnableIRQ(TC3_IRQn); analogwriteresolution(12); // Fixe a resolução do DAC p/a 12 bit (4096 niveis) analogreadresolution(12); // Fixe a resolução do ADC p/a 12 bits flag_aq=0; void loop() { } Serial.println(x_0); //TC1 ch 0 void TC3_Handler(){ digitalwrite(13,1); //medindo o tempo de execução da interrupção TC_GetStatus(TC1, 0); //reset o bit de interrupção x_30=x_29; x_29=x_28; x_28=x_27; x_27=x_26; x_26=x_25; x_25=x_24; x_24=x_23; x_23=x_22;

x_22=x_21; x_21=x_20; x_20=x_19; x_19=x_18; x_18=x_17; x_17=x_16; x_16=x_15; x_15=x_14; x_14=x_13; x_13=x_12; x_12=x_11; x_11=x_10; x_10=x_9; x_9=x_8; x_8=x_7; x_7=x_6; x_6=x_5; x_5=x_4; x_4=x_3; x_3=x_2; x_2=x_1; x_1=x_0; x_0=analogread(a0); //obtendo a entrada atual x_0 = x_0-2048;//finando o nível zero do sinal que deve entrar polarizado em 2048==1,65V sn1= b0*x_0 + b1*x_1 + b2*x_2 + b3*x_3 + b4*x_4 + b5*x_5 + b6*x_6 + b7*x_7 + b8*x_8 + b9*x_9 + b10*x_10 + b11*x_11 + b12*x_12 + b13*x_13 + b14*x_14 + b15*x_15; sn2= b14*x_16 + b13*x_17 + b12*x_18 + b11*x_19 + b10*x_20 + b9*x_21 + b8*x_22 + b7*x_23 + b6*x_24 + b5*x_25 + b4*x_26 + b3*x_27 + b2*x_28 + b1*x_29 + b0*x_30;; sn=(sn1+sn2)>>13; sn=sn + 2048; //convertendo a tensão "analógica" despolarizada para digital polarizada

} analogwrite(dac1,sn); digitalwrite(13,0); //medindo o tempo de execução no final do pulso na saída 13 PROCEDIMENTO DE INVESTIGAÇÃO: a) Fixe a saída do gerador de função em 2 Vpp. b) Fixe o off set (deslocamento CC) do gerador de função em 1.65V c) Fixe a escala de frequências do gerador de função em 10 Hz. d) Aplique o sinal do gerador de função no canal 1 do osciloscópio (amarelo) assim como na entrada A0 (ADC =entrada analógica) do ARDUINO. e) Coloque o osciloscópio em modo de medição (meas) do canal 2 em valor pico a pico. f) Varie a frequência do gerador preenchendo a tabela abaixo: Frequência V saída V entrada V saída /V entrada 20log(V saída /V entrada ) 10 20 30 600 Responder as questões abaixo: a) O tempo de execução da rotina do timer diretamente no pino 12 do processador. b) Se o clock do arduino é 84.10 6, quantos ciclos de máquina foram executados? c) Por que as variáveis sn1 e sn2 são declaradas como long? d) Por que os coeficientes do filtro foram multiplicados por 2 14? e) Qual é o significador da expressão em C sn=(sn1+sn2)>>13;? f) Por que todo o programa só trabalha com números inteiros? g) Quantos níveis por ciclo qualquer figura da saída do filtro o osciloscópio apresenta? Qual é a relação desse número com a frequência de amostragem? h) Qual é o valor em db da relação entre a saída e a entrada quando a frequência é 400 Hz? i) Qual é a fase da saída em relação a entrada na situação do item (h)?

j) Compare os valores obtidos nos dois itens acima com os valores do gráfico da figura 1. Qual é a relação entre os valores teóricos e os valores práticos? k) Aplique uma tensão de 3.3V na entrada do ADC (A0) do ARDUINO DUO e verifique a qualidade da resposta do DAC do mesmo.m Comentar a qualidade do DAC do ARDUINO DUO. A figura 2 apresenta a situação de medição dos três últimos itens discutidos acima. Figura 2