Cuprins:

Rată de eșantionare / Aliasing Instrucționabil: 8 pași (cu imagini)
Rată de eșantionare / Aliasing Instrucționabil: 8 pași (cu imagini)

Video: Rată de eșantionare / Aliasing Instrucționabil: 8 pași (cu imagini)

Video: Rată de eșantionare / Aliasing Instrucționabil: 8 pași (cu imagini)
Video: What is The Nyquist Rate? 2024, Noiembrie
Anonim
Rata de eșantionare / Aliasing instructabile
Rata de eșantionare / Aliasing instructabile

Doresc să creez un proiect educațional care să demonstreze aliasarea (și ratele de eșantionare) și să fie plasat pe un site web ca resursă pentru studenții care învață despre aliasare.

Pasul 1: Layout Ciruit

Layout Ciruit
Layout Ciruit
Layout Ciruit
Layout Ciruit

Arduino

Arduino este baza circuitului; susținând servomotorul (cu roata codificatoare montată) și senzorul de efect poziționat.

-Roata codificatorului: Scopul roții codificatorului este de a suspenda un magnet care se rotește într-o cale circulară, plutind deasupra unui senzor de efect poziționat.

- Configurarea senzorului: Senorul cu efect de hală este plasat sub calea de rotație a magnetului, scopul său este de a urmări trecerea magnetului cu diferite viteze de rotație și rate de colectare a datelor.

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

Sub-pași:

  1. Obțineți materiale:

    Arduino (+ placă de pâine), fire, roată codificator, magnet, senzor de efect de hală, servomotor, aplicație Matlab, aplicație Arduino

  2. Decupați roata codificatorului, montați pe servo, împingeți magnetul în slot.
  3. Atașați senzorul de efect hall sub traseul magnetului (poate fi necesară prelungirea firului senzorului).
  4. Construiește circuitul.

Pasul 2: Cod Arduino

Cod Arduino
Cod Arduino

Metoda de colectare a datelor

Codul Arduino folosește [Linia 41] pentru a colecta informații, prin intermediul portului A0 „Analog In”, de la senzorul de efect hall

Metoda de transmitere a datelor în serie

  • [Linia 43] Afișează în monitorul serial o „cronometru” variabilă care implementează funcția „milis ()” pentru a menține un cronometru de rulare în milisecunde pe durata programului.
  • [Linia 45] Afișează pe monitorul serial o variabilă „hallsensor” care implementează „analogRead” pentru a obține informații de la senzorul de efect hall în timp ce programul este rulat.

Scopul parametrului delay ()

Scopul parametrului delay () este de a varia timpul de răspuns al colectării datelor care este primit de la senzorul de efect hall

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

Sub-pași:

Introduceți codul Arduino în aplicația Arduino

Pasul 3: Cod Matlab (fișier HallRT)

Cod Matlab (fișier HallRT)
Cod Matlab (fișier HallRT)
Cod Matlab (fișier HallRT)
Cod Matlab (fișier HallRT)
Cod Matlab (fișier HallRT)
Cod Matlab (fișier HallRT)
Cod Matlab (fișier HallRT)
Cod Matlab (fișier HallRT)

-Metoda de primire a datelor - [Figura 3: Linia 77]

Obținerea datelor din ArduinoStep

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

Sub-pași:

Codul Matlab de intrare este deasupra cifrelor, salvați în fișierul HallRT

Pasul 4: Cod Matlab (merge_analiza)

Codul Matlab (merge_analiza)
Codul Matlab (merge_analiza)
Codul Matlab (merge_analiza)
Codul Matlab (merge_analiza)

Metoda de numărare a vârfurilor [Figura 2: Liniile 45-53]

  • Utilizarea steagului în acest cod Matlab este astfel încât odată ce bucla for se împiedică de un „aRval” care este mai mare decât numărul de valori „treierat” prestabilit va crește cu unul, vârful va fi marcat de un asterisc și declarația if [Linia 45-50] se va sparge deoarece flag = 1. A doua declarație if cu un flag [Linia 51-53] indică faptul că odată ce vârful este atins și valorile încep să scadă în jurul vârfului, atunci flag = 0 și bucla for continuă să caute mai multe vârfuri.
  • Parametri / valori necesare:

    • „aRval”: datele colectate dintr-o încercare.
    • „treierat”: o valoare aleasă pentru a indica orice valoare deasupra ei în aRval ca vârf.

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

Sub-pași:

Creați un al doilea fișier Matlab „thirh_analyze”

Pasul 5: Încercare 1: Fără Aliasing

Încercarea 1: Fără Aliasing
Încercarea 1: Fără Aliasing
Încercarea 1: Fără aliasare
Încercarea 1: Fără aliasare

Figura 1: Data Trial @ Delay 200 Figura 2: Thresh Analised Data

-Parametru de întârziere: 200

Vârfuri:

Număr = 45

-Număr de revoluții pe minut:

45 Revoluții / Minut

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

Sub-pași:

  1. Conectați Arduino la laptop.

    Setați întârzierea în codul Arduino la „200”. Apăsați Încărcare (în colțul din stânga sus al aplicației)

  2. Accesați fișierul dvs. Matlab HallRT [Linia 37] și schimbați variabila „delayTime” la 200.
  3. Rulați programul HallRT.
  4. Salvați fișierul Matlab sub „delay_200”. (Salvați figura)
  5. Încărcați fișierul delay_200.mat.
  6. Rulați programul thrash_analyze. (Salvați figura)

Pasul 6: Încercarea 2: Aliasarea senzorului (i)

Încercarea 2: Aliasarea senzorului (i)
Încercarea 2: Aliasarea senzorului (i)
Încercarea 2: Aliasarea senzorului (i)
Încercarea 2: Aliasarea senzorului (i)

Figura 1: Data Trial @ Delay 50

Figura 2: Thresh Analised Data

Parametru de întârziere: 50-Vârfuri:

Număr = 52

Număr de revoluții pe minut:

52 Revoluții / Minut

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

Sub-pași:

  1. Conectați Arduino la laptop.

    Setați întârzierea în codul Arduino la „50”. Apăsați Încărcare (în colțul din stânga sus al aplicației)

  2. Accesați fișierul dvs. Matlab HallRT [Linia 37] și schimbați variabila „delayTime” la 50.
  3. Rulați programul HallRT.
  4. Salvați fișierul Matlab sub „delay_50”. (Salvați figura)
  5. Încărcați fișierul delay_50.mat.
  6. Rulați programul thrash_analyze. (Salvați figura)

Pasul 7: Încercarea 3: Aliasarea senzorului (ii)

Încercarea 3: Aliasarea senzorului (ii)
Încercarea 3: Aliasarea senzorului (ii)
Încercarea 3: Aliasarea senzorului (ii)
Încercarea 3: Aliasarea senzorului (ii)

Figura 1: Data Trial @ Delay 100 Figura 2: Thresh Analised Data

Parametru de întârziere: 100-Vârfuri:

Număr = 54

Număr de revoluții pe minut:

54 Revoluții / Minut

------------------------------------------------ -------------------------------------------------- ------- Sub-pași:

  1. Conectați Arduino la laptop.

    Setați întârzierea în codul Arduino la „100”. Apăsați Încărcare (în colțul din stânga sus al aplicației). '

  2. Accesați fișierul dvs. Matlab HallRT [Linia 37] și modificați variabila „delayTime” la 100.
  3. Rulați programul HallRT.
  4. Salvați fișierul Matlab sub „delay_100”. (Salvați figura)
  5. Încărcați fișierul delay_100.mat.
  6. Rulați programul thrash_analyze. (Salvați figura)

Pasul 8: Încercare 4: Aliasarea senzorului (iii)

Încercarea 4: Aliasarea senzorului (iii)
Încercarea 4: Aliasarea senzorului (iii)
Încercarea 4: Aliasarea senzorului (iii)
Încercarea 4: Aliasarea senzorului (iii)

Figura 1: Data Trial @ Delay 300 Figura 2: Thresh Analised Data

-Parametru de întârziere: 300

Vârfuri:

Număr = 32

Număr de revoluții pe minut:

32 Revoluții / Minut

-------------------------------------------------- -------------------------------------------------- ------- Sub-pași:

  1. Conectați Arduino la laptop.

    Setați întârzierea în codul Arduino la „300”. Apăsați Încărcare (în colțul din stânga sus al aplicației)

  2. Accesați fișierul dvs. Matlab HallRT [Linia 37] și modificați variabila „delayTime” la 300.
  3. Rulați programul HallRT.
  4. Salvați fișierul Matlab sub „delay_300”. (Salvați figura)
  5. Încărcați fișierul delay_300.mat.
  6. Rulați programul thirh_analyze. (Salvați figura)

Recomandat: