Inhaltsverzeichnis:

Abtastrate / Aliasing anweisbar - Gunook
Abtastrate / Aliasing anweisbar - Gunook

Video: Abtastrate / Aliasing anweisbar - Gunook

Video: Abtastrate / Aliasing anweisbar - Gunook
Video: Avoid Aliasing - Setting Accelerometer Sampling Rate 2024, Juli
Anonim
Abtastrate/Aliasing Instructable
Abtastrate/Aliasing Instructable

Ich möchte ein Bildungsprojekt erstellen, das Aliasing (und Abtastraten) demonstriert und auf einer Website als Ressource für Studenten platziert werden soll, die etwas über Aliasing lernen.

Schritt 1: Schaltungslayout

Schaltungslayout
Schaltungslayout
Schaltungslayout
Schaltungslayout

Arduino

Der Arduino ist die Basis der Schaltung; Unterstützung des Servomotors (mit montiertem Encoderrad) und des positionierten Hall-Effekt-Sensors.

-Encoderrad: Der Zweck des Encoderrads besteht darin, einen Magneten aufzuhängen, der sich kreisförmig dreht und über einem positionierten Hall-Effekt-Sensor schwebt.

-Sensor-Setup: Der Hall-Effekt-Sensor wird unterhalb des Rotationsweges des Magneten platziert, sein Zweck ist es, den Durchgang des Magneten mit verschiedenen Rotationsgeschwindigkeiten und Datenerfassungsraten zu verfolgen.

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

Unterschritte:

  1. Materialien besorgen:

    Arduino (+ Steckbrett), Drähte, Encoderrad, Magnet, Hall-Effekt-Sensor, Servomotor, Matlab-Anwendung, Arduino-Anwendung

  2. Encoderrad ausschneiden, auf Servo montieren, Magnet in Nut einschieben.
  3. Bringen Sie den Hall-Effekt-Sensor unter dem Magnetpfad an (möglicherweise sind Kabelverlängerungen des Sensors erforderlich).
  4. Schaltung aufbauen.

Schritt 2: Arduino-Code

Arduino-Code
Arduino-Code

Methode der Datenerhebung

Der Arduino-Code verwendet [Line 41], um über den 'Analog In' A0-Port Informationen vom Hall-Effekt-Sensor zu sammeln

Methode der seriellen Datenübertragung

  • [Zeile 43] Zeigt im seriellen Monitor eine Variable 'timer' an, die die Funktion 'millis()' implementiert, um einen laufenden Timer in Millisekunden für die Dauer des Programms zu halten.
  • [Zeile 45] Zeigt im seriellen Monitor eine Variable 'hallsensor' an, die 'analogRead' implementiert, um Informationen vom Hall-Effekt-Sensor zu erhalten, während das Programm ausgeführt wird.

Zweck des Parameters delay()

Der Zweck des Parameters delay() besteht darin, die Reaktionszeit der Datenerfassung zu variieren, die vom Hall-Effekt-Sensor empfangen wird

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

Unterschritte:

Geben Sie Arduino-Code in die Arduino-Anwendung ein

Schritt 3: Matlab-Code (HallRT-Datei)

Matlab-Code (HallRT-Datei)
Matlab-Code (HallRT-Datei)
Matlab-Code (HallRT-Datei)
Matlab-Code (HallRT-Datei)
Matlab-Code (HallRT-Datei)
Matlab-Code (HallRT-Datei)
Matlab-Code (HallRT-Datei)
Matlab-Code (HallRT-Datei)

-Methode des Datenempfangs - [Abbildung 3: Zeile 77]

Abrufen von Daten aus dem ArduinoStep

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

Unterschritte:

Der eingegebene Matlab-Code liegt über den Zahlen, in der HallRT-Datei speichern

Schritt 4: Matlab-Code (thresh_analyze)

Matlab-Code (thresh_analyze)
Matlab-Code (thresh_analyze)
Matlab-Code (thresh_analyze)
Matlab-Code (thresh_analyze)

Methode zum Zählen von Peaks [Abbildung 2: Zeilen 45-53]

  • Die Verwendung des Flags in diesem Matlab-Code ist so, dass, sobald die for-Schleife auf ein 'aRval' stolpert, das größer als der voreingestellte 'thresh'-Wert ist, um eins erhöht wird, der Peak mit einem Sternchen markiert wird und die if-Anweisung [Zeile 45-50] wird abgebrochen, weil Flag = 1. Die zweite if-Anweisung mit einem Flag [Zeile 51-53] zeigt an, dass, sobald der Peak erreicht ist und die Werte um den Peak herum abzunehmen beginnen, flag = 0 und die for-Schleife sucht weiter nach weiteren Spitzen.
  • Parameter/Notwendige Werte:

    • 'aRval': Die gesammelten Daten aus einem Probelauf.
    • 'thresh': Ein gewählter Wert, um alles darüber in aRval als Spitze anzuzeigen.

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

Unterschritte:

Erstellen Sie eine zweite Matlab-Datei "thresh_analyze"

Schritt 5: Versuch 1: Kein Aliasing

Versuch 1: Kein Aliasing
Versuch 1: Kein Aliasing
Versuch 1: Kein Aliasing
Versuch 1: Kein Aliasing

Abbildung 1: Data Trial @ Delay 200Abbildung 2: Thresh-analysierte Daten

-Verzögerungsparameter: 200

Spitzen:

Anzahl = 45

-Anzahl der Umdrehungen pro Minute:

45 Umdrehungen/Minute

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

Unterschritte:

  1. Verbinden Sie das Arduino mit Ihrem Laptop.

    Stellen Sie die Verzögerung im Arduino-Code auf "200". Drücken Sie Hochladen (in der oberen linken Ecke der Anwendung)

  2. Gehen Sie zu Ihrer Matlab-Datei HallRT [Zeile 37] und ändern Sie die Variable 'delayTime' auf 200.
  3. Führen Sie das HallRT-Programm aus.
  4. Speichern Sie die Matlab-Datei unter "delay_200". (Abbildung speichern)
  5. Laden Sie die Datei delay_200.mat.
  6. Führen Sie das Programm thresh_analyze aus. (Abbildung speichern)

Schritt 6: Versuch 2: Aliasing des Sensors (i)

Versuch 2: Aliasing des Sensors (i)
Versuch 2: Aliasing des Sensors (i)
Versuch 2: Aliasing des Sensors (i)
Versuch 2: Aliasing des Sensors (i)

Abbildung 1: Datentest @ Verzögerung 50

Abbildung 2: Thresh-analysierte Daten

Verzögerungsparameter: 50-Peaks:

Anzahl = 52

Anzahl der Umdrehungen pro Minute:

52 Umdrehungen/Minute

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

Unterschritte:

  1. Verbinden Sie das Arduino mit Ihrem Laptop.

    Stellen Sie die Verzögerung im Arduino-Code auf "50". Drücken Sie auf Hochladen (in der oberen linken Ecke der Anwendung)

  2. Gehen Sie zu Ihrer Matlab-Datei HallRT [Zeile 37] und ändern Sie die Variable 'delayTime' auf 50.
  3. Führen Sie das HallRT-Programm aus.
  4. Speichern Sie die Matlab-Datei unter "delay_50". (Abbildung speichern)
  5. Laden Sie die Datei delay_50.mat.
  6. Führen Sie das Programm thresh_analyze aus. (Abbildung speichern)

Schritt 7: Versuch 3: Aliasing des Sensors (ii)

Versuch 3: Aliasing des Sensors (ii)
Versuch 3: Aliasing des Sensors (ii)
Versuch 3: Aliasing des Sensors (ii)
Versuch 3: Aliasing des Sensors (ii)

Abbildung 1: Data Trial @ Delay 100Abbildung 2: Thresh-analysierte Daten

Verzögerungsparameter: 100-Peaks:

Anzahl = 54

Anzahl der Umdrehungen pro Minute:

54 Umdrehungen/Minute

------------------------------------------------ -------------------------------------------------- --------Unterschritte:

  1. Verbinden Sie das Arduino mit Ihrem Laptop.

    Stellen Sie die Verzögerung im Arduino-Code auf "100". Drücken Sie auf Hochladen (in der oberen linken Ecke der Anwendung).'

  2. Gehen Sie zu Ihrer Matlab-Datei HallRT [Zeile 37] und ändern Sie die Variable 'delayTime' auf 100.
  3. Führen Sie das HallRT-Programm aus.
  4. Speichern Sie die Matlab-Datei unter "delay_100". (Abbildung speichern)
  5. Laden Sie die Datei delay_100.mat.
  6. Führen Sie das Programm thresh_analyze aus. (Abbildung speichern)

Schritt 8: Versuch 4: Aliasing des Sensors (iii)

Versuch 4: Aliasing des Sensors (iii)
Versuch 4: Aliasing des Sensors (iii)
Versuch 4: Aliasing des Sensors (iii)
Versuch 4: Aliasing des Sensors (iii)

Abbildung 1: Data Trial @ Delay 300Abbildung 2: Thresh-analysierte Daten

-Verzögerungsparameter: 300

Spitzen:

Anzahl = 32

Anzahl der Umdrehungen pro Minute:

32 Umdrehungen/Minute

-------------------------------------------------- -------------------------------------------------- --------Unterschritte:

  1. Verbinden Sie das Arduino mit Ihrem Laptop.

    Setzen Sie die Verzögerung im Arduino-Code auf "300". Drücken Sie Hochladen (in der oberen linken Ecke der Anwendung)

  2. Gehen Sie zu Ihrer Matlab-Datei HallRT [Zeile 37] und ändern Sie die Variable 'delayTime' auf 300.
  3. Führen Sie das HallRT-Programm aus.
  4. Speichern Sie die Matlab-Datei unter "delay_300". (Abbildung speichern)
  5. Laden Sie die Datei delay_300.mat.
  6. Führen Sie das Programm thresh_analyze aus. (Abbildung speichern)