Tabla de contenido:

Frecuencia de muestreo / Aliasing Instructable: 8 pasos (con imágenes)
Frecuencia de muestreo / Aliasing Instructable: 8 pasos (con imágenes)

Video: Frecuencia de muestreo / Aliasing Instructable: 8 pasos (con imágenes)

Video: Frecuencia de muestreo / Aliasing Instructable: 8 pasos (con imágenes)
Video: ¿Qué es el efecto alias (aliasing) y el teorema de Nyquist? 2024, Mes de julio
Anonim
Frecuencia de muestreo / Aliasing Instructable
Frecuencia de muestreo / Aliasing Instructable

Deseo crear un proyecto educativo que demuestre el uso de alias (y tasas de muestreo) y esté destinado a ser colocado en un sitio web como un recurso para los estudiantes que están aprendiendo sobre el uso de alias.

Paso 1: diseño de Ciruit

Diseño de Ciruit
Diseño de Ciruit
Diseño de Ciruit
Diseño de Ciruit

Arduino

El Arduino es la base del circuito; que soporta el servomotor (con rueda codificadora montada) y el sensor de efecto Hall posicionado.

-Rueda del codificador: el propósito de la rueda del codificador es suspender un imán que gira en una trayectoria circular, flotando sobre un sensor de efecto hall colocado.

-Configuración del sensor: El sensor de efecto hall se coloca debajo de la ruta de rotación del imán, su propósito es rastrear el paso del imán con varias velocidades de rotación y tasas de recolección de datos.

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

Subpasos:

  1. Obtener materiales:

    Arduino (+ placa de pan), cables, rueda codificadora, imán, sensor de efecto Hall, servomotor, aplicación Matlab, aplicación Arduino

  2. Corte la rueda del codificador, móntelo en el servo, presione el imán en la ranura.
  3. Coloque el sensor de efecto Hall debajo de la trayectoria del imán (es posible que se requieran extensiones de cables del sensor).
  4. Construir circuito.

Paso 2: Código Arduino

Código Arduino
Código Arduino

Método de recopilación de datos

El código Arduino usa [Line 41] para recopilar información, a través del puerto A0 'Analog In', desde el sensor de efecto Hall

Método de transmisión de datos en serie

  • [Línea 43] Muestra en el monitor serial una variable 'temporizador' que implementa la función 'milis ()' para mantener un temporizador en ejecución en milisegundos durante la duración del programa.
  • [Línea 45] Muestra en el monitor serial una variable 'hallsensor' que implementa 'analogRead' para obtener información del sensor de efecto hall mientras se ejecuta el programa.

Propósito del parámetro delay ()

El propósito del parámetro delay () es variar el tiempo de respuesta de la recopilación de datos que se recibe del sensor de efecto Hall

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

Subpasos:

Ingrese el código Arduino en la aplicación Arduino

Paso 3: Código de Matlab (archivo HallRT)

Código Matlab (archivo HallRT)
Código Matlab (archivo HallRT)
Código Matlab (archivo HallRT)
Código Matlab (archivo HallRT)
Código Matlab (archivo HallRT)
Código Matlab (archivo HallRT)
Código Matlab (archivo HallRT)
Código Matlab (archivo HallRT)

-Método de recepción de datos - [Figura 3: Línea 77]

Obtención de datos del ArduinoStep

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

Subpasos:

El código de entrada de Matlab está por encima de las cifras, guárdelo en el archivo HallRT

Paso 4: Código de Matlab (thresh_analyze)

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

Método de recuento de picos [Figura 2: Líneas 45-53]

  • El uso de la bandera en este código de Matlab es para que una vez que el bucle for se tope con un 'aRval' que es más grande que el valor preestablecido de 'umbral', el recuento aumentará en uno, el pico se marcará con un asterisco y la sentencia if [Línea 45-50] se romperá porque flag = 1. La segunda sentencia if con una bandera [Línea 51-53] indica que una vez que se alcanza el pico y los valores comienzan a declinar alrededor del pico, entonces marca = 0 y el bucle for continúa buscando más picos.
  • Parámetros / valores necesarios:

    • 'aRval': los datos recopilados de una ejecución de prueba.
    • 'thresh': un valor elegido para indicar cualquier valor por encima de él en aRval como un pico.

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

Subpasos:

Cree un segundo archivo de Matlab "thresh_analyze"

Paso 5: Prueba 1: Sin aliasing

Prueba 1: sin alias
Prueba 1: sin alias
Prueba 1: sin alias
Prueba 1: sin alias

Figura 1: Prueba de datos @ Delay 200 Figura 2: Datos analizados de umbral

-Parámetro de retardo: 200

Picos:

Cuenta = 45

-Número de revoluciones por minuto:

45 revoluciones / minuto

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

Subpasos:

  1. Conecte el Arduino a su computadora portátil.

    Establezca la demora en el código Arduino en "200". Presione Cargar (en la esquina superior izquierda de la aplicación)

  2. Vaya a su archivo Matlab HallRT [Línea 37] y cambie la variable 'delayTime' a 200.
  3. Ejecute el programa HallRT.
  4. Guarde el archivo Matlab en "delay_200". (Guardar figura)
  5. Cargue el archivo delay_200.mat.
  6. Ejecute el programa thresh_analyze. (Guardar figura)

Paso 6: Prueba 2: Aliasing del sensor (i)

Prueba 2: Aliasing del sensor (i)
Prueba 2: Aliasing del sensor (i)
Prueba 2: Aliasing del sensor (i)
Prueba 2: Aliasing del sensor (i)

Figura 1: Prueba de datos @ Delay 50

Figura 2: Datos analizados de Thresh

Parámetro de retardo: 50 picos:

Recuento = 52

Número de revoluciones por minuto:

52 revoluciones / minuto

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

Subpasos:

  1. Conecte el Arduino a su computadora portátil.

    Establezca la demora en el código Arduino en "50". Presione Cargar (en la esquina superior izquierda de la aplicación)

  2. Vaya a su archivo Matlab HallRT [Línea 37] y cambie la variable 'delayTime' a 50.
  3. Ejecute el programa HallRT.
  4. Guarde el archivo Matlab en "delay_50". (Guardar figura)
  5. Cargue el archivo delay_50.mat.
  6. Ejecute el programa thresh_analyze. (Guardar figura)

Paso 7: Prueba 3: Aliasing del sensor (ii)

Prueba 3: Aliasing del sensor (ii)
Prueba 3: Aliasing del sensor (ii)
Prueba 3: Aliasing del sensor (ii)
Prueba 3: Aliasing del sensor (ii)

Figura 1: Prueba de datos @ Delay 100 Figura 2: Datos analizados de umbral

Parámetro de retardo: 100 picos:

Cuenta = 54

Número de revoluciones por minuto:

54 revoluciones / minuto

------------------------------------------------ -------------------------------------------------- ------- Subpasos:

  1. Conecte el Arduino a su computadora portátil.

    Establezca el retraso en el código Arduino en "100". Presione Cargar (en la esquina superior izquierda de la aplicación). '

  2. Vaya a su archivo Matlab HallRT [Línea 37] y cambie la variable 'delayTime' a 100.
  3. Ejecute el programa HallRT.
  4. Guarde el archivo Matlab en "delay_100". (Guardar figura)
  5. Cargue el archivo delay_100.mat.
  6. Ejecute el programa thresh_analyze. (Guardar figura)

Paso 8: Prueba 4: Aliasing del sensor (iii)

Prueba 4: Aliasing del sensor (iii)
Prueba 4: Aliasing del sensor (iii)
Prueba 4: Aliasing del sensor (iii)
Prueba 4: Aliasing del sensor (iii)

Figura 1: Prueba de datos @ Delay 300 Figura 2: Datos analizados de umbral

-Parámetro de retardo: 300

Picos:

Cuenta = 32

Número de revoluciones por minuto:

32 revoluciones / minuto

-------------------------------------------------- -------------------------------------------------- ------- Subpasos:

  1. Conecte el Arduino a su computadora portátil.

    Establezca la demora en el código Arduino en "300". Presione Cargar (en la esquina superior izquierda de la aplicación)

  2. Vaya a su archivo Matlab HallRT [Línea 37] y cambie la variable 'delayTime' a 300.
  3. Ejecute el programa HallRT.
  4. Guarde el archivo Matlab en "delay_300". (Guardar figura)
  5. Cargue el archivo delay_300.mat.
  6. Ejecute el programa thresh_analyze. (Guardar figura)

Recomendado: