Índice:

Taxa de amostragem / aliasing instrutível: 8 etapas (com imagens)
Taxa de amostragem / aliasing instrutível: 8 etapas (com imagens)

Vídeo: Taxa de amostragem / aliasing instrutível: 8 etapas (com imagens)

Vídeo: Taxa de amostragem / aliasing instrutível: 8 etapas (com imagens)
Vídeo: Aula 2.2 | Sinais, Amostragem, Nyquist e Aliasing | Processamento de Sinais em Tempo Discreto 2024, Novembro
Anonim
Taxa de amostragem / aliasing instrutível
Taxa de amostragem / aliasing instrutível

Desejo criar um projeto educacional que demonstre aliasing (e taxas de amostragem) e se destina a ser colocado em um site como um recurso para alunos que estão aprendendo sobre aliasing.

Etapa 1: Layout do Ciruit

Layout de Ciruit
Layout de Ciruit
Layout de Ciruit
Layout de Ciruit

Arduino

O Arduino é a base do circuito; suportando o servo motor (com roda codificadora montada) e o sensor de efeito Hall posicionado.

- Roda do codificador: O propósito da roda do codificador é suspender um ímã que gira em um caminho circular, pairando sobre um sensor de efeito Hall posicionado.

- Configuração do sensor: O sensor de efeito Hall é colocado abaixo do caminho de rotação do ímã, seu objetivo é rastrear a passagem do ímã com várias velocidades de rotação e taxas de coleta de dados.

---------------------------------------------------------------------------------------------------------

Sub-etapas:

  1. Obtenha materiais:

    Arduino (+ placa de pão), fios, roda codificadora, ímã, sensor de efeito hall, servo motor, aplicativo Matlab, aplicativo Arduino

  2. Corte a roda do codificador, monte no servo, empurre o ímã para dentro da fenda.
  3. Fixe o sensor de efeito Hall sob o caminho do ímã (extensões de fio do sensor podem ser necessárias).
  4. Circuito de construção.

Etapa 2: Código Arduino

Código Arduino
Código Arduino

Método de coleta de dados

O código do Arduino usa [Linha 41] para coletar informações, por meio da porta A0 'Analog In', do sensor de efeito Hall

Método de transmissão serial de dados

  • [Linha 43] Exibe no monitor serial uma variável 'temporizador' que implementa a função 'millis ()' para manter um temporizador em execução em milissegundos pela duração do programa.
  • [Linha 45] Exibe no monitor serial uma variável 'hallsensor' que implementa 'analogRead' para obter informações do sensor de efeito Hall enquanto o programa está sendo executado.

Objetivo do parâmetro delay ()

O objetivo do parâmetro delay () é variar o tempo de resposta da coleta de dados que é recebido do sensor de efeito Hall

---------------------------------------------------------------------------------------------------------

Sub-etapas:

Insira o código do Arduino no aplicativo Arduino

Etapa 3: Código Matlab (arquivo HallRT)

Código Matlab (arquivo HallRT)
Código Matlab (arquivo HallRT)
Código Matlab (arquivo HallRT)
Código Matlab (arquivo HallRT)
Código Matlab (arquivo HallRT)
Código Matlab (arquivo HallRT)
Código Matlab (arquivo HallRT)
Código Matlab (arquivo HallRT)

-Método de recebimento de dados - [Figura 3: Linha 77]

Obtenção de dados do ArduinoStep

---------------------------------------------------------------------------------------------------------

Sub-etapas:

O código Matlab de entrada está acima das figuras, salve no arquivo HallRT

Etapa 4: Código Matlab (thresh_analyze)

Código Matlab (thresh_analyze)
Código Matlab (thresh_analyze)
Código Matlab (thresh_analyze)
Código Matlab (thresh_analyze)

Método de contagem de picos [Figura 2: Linhas 45-53]

  • O uso do sinalizador neste código Matlab é para que, uma vez que o loop for tropeça em um 'aRval' que é maior do que o valor de 'limite' predefinido, a contagem aumentará em um, o pico será marcado por um asteriscos, e a instrução if [Linha 45-50] será interrompida porque sinalizador = 1. A segunda instrução if com um sinalizador [Linha 51-53] indica que, uma vez que o pico seja atingido e os valores comecem a diminuir em torno do pico, então sinalize = 0 e o loop for continua a procurar mais picos.
  • Parâmetros / valores necessários:

    • 'aRval': Os dados coletados de uma execução de teste.
    • 'thresh': Um valor escolhido para indicar qualquer coisa acima dele em aRval como um pico.

---------------------------------------------------------------------------------------------------------

Sub-etapas:

Crie um segundo arquivo Matlab "thresh_analyze"

Etapa 5: Teste 1: sem aliasing

Teste 1: Sem Aliasing
Teste 1: Sem Aliasing
Teste 1: Sem Aliasing
Teste 1: Sem Aliasing

Figura 1: Data Trial @ Delay 200Figure 2: Thresh Analyzed Data

- Parâmetro de atraso: 200

Peaks:

Contagem = 45

- Número de revoluções por minuto:

45 revoluções / minuto

---------------------------------------------------------------------------------------------------------

Sub-etapas:

  1. Conecte o Arduino ao seu laptop.

    Defina o atraso no código do Arduino para "200". Pressione Upload (no canto superior esquerdo do aplicativo)

  2. Vá para o seu arquivo Matlab HallRT [Linha 37] e altere a variável 'delayTime' para 200.
  3. Execute o programa HallRT.
  4. Salve o arquivo Matlab em "delay_200". (Salvar Figura)
  5. Carregue o arquivo delay_200.mat.
  6. Execute o programa thresh_analyze. (Salvar Figura)

Etapa 6: Teste 2: Aliasing do Sensor (i)

Ensaio 2: Aliasing do Sensor (i)
Ensaio 2: Aliasing do Sensor (i)
Ensaio 2: Aliasing do Sensor (i)
Ensaio 2: Aliasing do Sensor (i)

Figura 1: Data Trial @ Delay 50

Figura 2: Limite de dados analisados

Parâmetro de atraso: 50-Picos:

Contagem = 52

Número de revoluções por minuto:

52 Revoluções / Minuto

---------------------------------------------------------------------------------------------------------

Sub-etapas:

  1. Conecte o Arduino ao seu laptop.

    Defina o atraso no código do Arduino para "50". Pressione Upload (no canto superior esquerdo do aplicativo)

  2. Vá para o seu arquivo Matlab HallRT [Linha 37] e altere a variável 'delayTime' para 50.
  3. Execute o programa HallRT.
  4. Salve o arquivo Matlab em "delay_50". (Salvar Figura)
  5. Carregue o arquivo delay_50.mat.
  6. Execute o programa thresh_analyze. (Salvar Figura)

Etapa 7: Teste 3: Aliasing do Sensor (ii)

Teste 3: Aliasing do Sensor (ii)
Teste 3: Aliasing do Sensor (ii)
Teste 3: Aliasing do Sensor (ii)
Teste 3: Aliasing do Sensor (ii)

Figura 1: Data Trial @ Delay 100Figure 2: Thresh Analisados Dados

Parâmetro de atraso: 100-Picos:

Contagem = 54

Número de revoluções por minuto:

54 revoluções / minuto

------------------------------------------------ -------------------------------------------------- ------- Sub-etapas:

  1. Conecte o Arduino ao seu laptop.

    Defina o atraso no código do Arduino para "100". Pressione Upload (no canto superior esquerdo do aplicativo). '

  2. Vá para o seu arquivo Matlab HallRT [Linha 37] e altere a variável 'delayTime' para 100.
  3. Execute o programa HallRT.
  4. Salve o arquivo Matlab em "delay_100". (Salvar Figura)
  5. Carregue o arquivo delay_100.mat.
  6. Execute o programa thresh_analyze. (Salvar Figura)

Etapa 8: Teste 4: Aliasing do Sensor (iii)

Teste 4: Aliasing do Sensor (iii)
Teste 4: Aliasing do Sensor (iii)
Teste 4: Aliasing do Sensor (iii)
Teste 4: Aliasing do Sensor (iii)

Figura 1: Data Trial @ Delay 300Figure 2: Thresh Analyzed Data

- Parâmetro de atraso: 300

Peaks:

Contagem = 32

Número de revoluções por minuto:

32 revoluções / minuto

-------------------------------------------------- -------------------------------------------------- ------- Sub-etapas:

  1. Conecte o Arduino ao seu laptop.

    Defina o atraso no código do Arduino para "300". Pressione Upload (no canto superior esquerdo do aplicativo)

  2. Vá para o seu arquivo Matlab HallRT [Linha 37] e altere a variável 'delayTime' para 300.
  3. Execute o programa HallRT.
  4. Salve o arquivo Matlab em "delay_300". (Salvar Figura)
  5. Carregue o arquivo delay_300.mat.
  6. Execute o programa thresh_analyze. (Salvar Figura)

Recomendado: