Instruktaż częstotliwości próbkowania/aliasingu: 8 kroków (ze zdjęciami)
Instruktaż częstotliwości próbkowania/aliasingu: 8 kroków (ze zdjęciami)

Wideo: Instruktaż częstotliwości próbkowania/aliasingu: 8 kroków (ze zdjęciami)

Wideo: Instruktaż częstotliwości próbkowania/aliasingu: 8 kroków (ze zdjęciami)
Wideo: AGH - Metrologia - Próbkowanie sygnałów (cyfrowe przetwarzanie sygnałów) 2025, Styczeń
Anonim

Chcę stworzyć projekt edukacyjny, który demonstruje aliasowanie (i przykładowe stawki) i jest przeznaczony do umieszczenia na stronie internetowej jako źródła informacji dla uczniów, którzy uczą się aliasowania.

Krok 1: Układ obwodu

Arduino

Arduino jest podstawą układu; obsługa serwomotoru (z zamontowanym kołem enkoderowym) i pozycjonowanego czujnika Halla.

- Koło enkodera: Koło enkodera ma na celu zawieszenie magnesu, który obraca się po torze kołowym, unosząc się nad umieszczonym czujnikiem Halla.

-Konfiguracja czujnika: czujnik z efektem Halla jest umieszczony poniżej ścieżki obrotu magnesu, jego celem jest śledzenie przejścia magnesu przy różnych prędkościach obrotowych i szybkości zbierania danych.

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

Podetapy:

  1. Zdobądź materiały:

    Arduino (+ płytka chlebowa), przewody, koło enkodera, magnes, czujnik halla, serwomotor, aplikacja Matlab, aplikacja Arduino

  2. Wytnij koło enkodera, zamontuj na serwo, wciśnij magnes w szczelinę.
  3. Przymocuj czujnik efektu Halla pod ścieżką magnesu (może być wymagane przedłużenie przewodu czujnika).
  4. Zbuduj obwód.

Krok 2: Kod Arduino

Metoda zbierania danych

Kod Arduino używa [Linia 41] do zbierania informacji przez port A0 „Analog In” z czujnika efektu Halla

Sposób szeregowej transmisji danych

  • [Wiersz 43] Wyświetla na monitorze szeregowym zmienną 'timer', która implementuje funkcję 'millis()', aby utrzymać uruchomiony zegar w milisekundach przez cały czas trwania programu.
  • [Wiersz 45] Wyświetla na monitorze szeregowym zmienną 'hallsensor', która implementuje 'analogRead' w celu uzyskania informacji z czujnika efektu Halla podczas działania programu.

Cel parametru delay()

Celem parametru delay() jest zmiana czasu odpowiedzi zbierania danych, które są odbierane z czujnika efektu Halla

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

Podetapy:

Wprowadź kod Arduino w aplikacji Arduino

Krok 3: Kod Matlab (plik HallRT)

- Sposób odbioru danych - [Rysunek 3: Linia 77]

Uzyskiwanie danych z ArduinoStep

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

Podetapy:

Kod wejściowy Matlaba znajduje się powyżej liczb, zapisz w pliku HallRT

Krok 4: Kod Matlaba (thresh_analyze)

Metoda liczenia pików [Rysunek 2: Linie 45-53]

  • Użycie flagi w tym kodzie Matlaba jest takie, że gdy pętla for natknie się na wartość „aRval”, która jest większa niż wstępnie ustawiona liczba wartości „thresh”, wzrośnie o jeden, szczyt zostanie oznaczony gwiazdkami, a if-statement [Linia 45-50] ulegnie uszkodzeniu, ponieważ flag = 1. Drugi if-statement z flagą [Linia 51-53] wskazuje, że po osiągnięciu szczytu i wartościach wokół szczytu zaczną spadać, flaga = 0, a pętla for kontynuuje wyszukiwanie większej liczby pików.
  • Parametry/Niezbędne wartości:

    • 'aRval': zebrane dane z przebiegu próbnego.
    • 'thresh': wybrana wartość wskazująca cokolwiek powyżej tej wartości w aRval jako szczyt.

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

Podetapy:

Utwórz drugi plik Matlaba „thresh_analyze”

Krok 5: Próba 1: Bez aliasingu

Rysunek 1: Próba danych @ opóźnienie 200 Rysunek 2: Dane analizowane przez Thresha

-Parametr opóźnienia: 200

Szczyty:

Liczba = 45

-Liczba obrotów na minutę:

45 obrotów/minutę

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

Podetapy:

  1. Podłącz Arduino do laptopa.

    Ustaw opóźnienie w kodzie Arduino na „200”. Naciśnij Prześlij (w lewym górnym rogu aplikacji)

  2. Przejdź do swojego pliku Matlab HallRT [Linia 37] i zmień zmienną 'delayTime' na 200.
  3. Uruchom program HallRT.
  4. Zapisz plik Matlab pod "delay_200". (Zapisz rysunek)
  5. Załaduj plik delay_200.mat.
  6. Uruchom program thresh_analyze. (Zapisz rysunek)

Krok 6: Próba 2: Aliasing czujnika (i)

Rysunek 1: Próba danych przy opóźnieniu 50

Rysunek 2: Dane przeanalizowane przez Thresha

Parametr opóźnienia: 50-Peaks:

Liczba = 52

Liczba obrotów na minutę:

52 obroty/minutę

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

Podetapy:

  1. Podłącz Arduino do laptopa.

    Ustaw opóźnienie w kodzie Arduino na „50”. Naciśnij Prześlij (w lewym górnym rogu aplikacji)

  2. Przejdź do swojego pliku Matlab HallRT [Linia 37] i zmień zmienną 'delayTime' na 50.
  3. Uruchom program HallRT.
  4. Zapisz plik Matlab pod "delay_50". (Zapisz rysunek)
  5. Załaduj plik delay_50.mat.
  6. Uruchom program thresh_analyze. (Zapisz rysunek)

Krok 7: Próba 3: Aliasing czujnika (ii)

Rysunek 1: Próba danych @ Opóźnienie 100 Rysunek 2: Dane analizowane przez Thresha

Parametr opóźnienia: 100-Peaks:

Liczba = 54

Liczba obrotów na minutę:

54 obroty/minutę

------------------------------------------------ -------------------------------------------------- -------Podkroki:

  1. Podłącz Arduino do laptopa.

    Ustaw opóźnienie w kodzie Arduino na „100”. Naciśnij Prześlij (w lewym górnym rogu aplikacji).'

  2. Przejdź do swojego pliku Matlab HallRT [Linia 37] i zmień zmienną 'delayTime' na 100.
  3. Uruchom program HallRT.
  4. Zapisz plik Matlab pod "delay_100". (Zapisz rysunek)
  5. Załaduj plik delay_100.mat.
  6. Uruchom program thresh_analyze. (Zapisz rysunek)

Krok 8: Próba 4: Aliasing czujnika (iii)

Rysunek 1: Próba danych @ opóźnienie 300 Rysunek 2: Dane zanalizowane przez Thresha

-Parametr opóźnienia: 300

Szczyty:

Liczba = 32

Liczba obrotów na minutę:

32 obroty/minutę

-------------------------------------------------- -------------------------------------------------- -------Podkroki:

  1. Podłącz Arduino do laptopa.

    Ustaw opóźnienie w kodzie Arduino na „300”. Naciśnij Prześlij (w lewym górnym rogu aplikacji)

  2. Przejdź do swojego pliku Matlab HallRT [Linia 37] i zmień zmienną 'delayTime' na 300.
  3. Uruchom program HallRT.
  4. Zapisz plik Matlab pod "delay_300". (Zapisz rysunek)
  5. Załaduj plik delay_300.mat.
  6. Uruchom program thresh_analyze. (Zapisz rysunek)