Spisu treści:

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) 2024, Listopad
Anonim
Instruktaż częstotliwości próbkowania/aliasingu
Instruktaż częstotliwości próbkowania/aliasingu

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

Układ obwodu
Układ obwodu
Układ obwodu
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

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

Kod Matlab (plik HallRT)
Kod Matlab (plik HallRT)
Kod Matlab (plik HallRT)
Kod Matlab (plik HallRT)
Kod Matlab (plik HallRT)
Kod Matlab (plik HallRT)
Kod Matlab (plik HallRT)
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)

Kod Matlaba (thresh_analyze)
Kod Matlaba (thresh_analyze)
Kod Matlaba (thresh_analyze)
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

Próba 1: brak aliasingu
Próba 1: brak aliasingu
Próba 1: brak aliasingu
Próba 1: brak 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)

Próba 2: Aliasing czujnika (i)
Próba 2: Aliasing czujnika (i)
Próba 2: Aliasing czujnika (i)
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)

Próba 3: Aliasing czujnika (ii)
Próba 3: Aliasing czujnika (ii)
Próba 3: Aliasing czujnika (ii)
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)

Próba 4: Aliasing czujnika (iii)
Próba 4: Aliasing czujnika (iii)
Próba 4: Aliasing czujnika (iii)
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)

Zalecana: