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 2025, Janeiro
Anonim

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

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

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)

-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)

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

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)

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)

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)

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)