Jednostka 4 / 9

Przetwarzanie sygnałów i analiza danych

Zyski:

  • Możliwość dokładnego ustalenia parametrów przetwarzania sygnału, takich jak częstotliwość próbkowania, typ filtra i okienkowanie za pomocą sztucznej inteligencji
  • Umiejętność generowania kodu w Pythonie dla FFT, projektowania filtrów i analizy szumów oraz sprawdzania Nyquista i aliasingu
  • Możliwość weryfikacji interpretacji widma generowanej przez sztuczną inteligencję poprzez porównanie jej z pomiarami i oczekiwaniami fizycznymi

Surowe dane z samego czujnika, mikrofonu lub linii zasilającej są często bez znaczenia; Należy go przetworzyć i zinterpretować na osi częstotliwości, amplitudy i czasu. Wyodrębnianie widma za pomocą FFT, filtrowanie szumu, rozpoznawanie sygnatury wibracji… To wszystko jest przetwarzanie sygnału, a sztuczna inteligencja generuje szybki kod Pythona w tym obszarze, wyjaśnia koncepcje, oblicza współczynnik filtra. Ale mały błąd parametrów w przetwarzaniu sygnału (niewłaściwa częstotliwość próbkowania, złe okno, pominięte sterowanie Nyquista) po cichu psuje całą analizę; Kod nie generuje błędów, po prostu daje błędne wyniki. W tym module zajmiemy się ustawieniem prawidłowych parametrów za pomocą AI, sprawdzeniem wygenerowanego kodu pod kątem Nyquista i aliasingu oraz weryfikacją interpretacji widma z rzeczywistością fizyczną.

Podstawowe parametry: próbkowanie, Nyquist, aliasing

Pierwszą zasadą cyfrowego przetwarzania sygnału jest twierdzenie Nyquista-Shannona: aby dokładnie przedstawić sygnał, częstotliwość próbkowania musi być co najmniej dwukrotnie większa od najwyższej składowej częstotliwości w sygnale. W przeciwnym razie wysokie częstotliwości będą widoczne jako niskie częstotliwości (aliasing) i nie będzie można tego odwrócić.

Najwyższa częstotliwość w sygnale: f_max = 2 kHz Minimalna częstotliwość próbkowania: f_s ≥ 2 · f_max = 4 kHz Aby pozostawić margines w praktyce: f_s ≈ 5 · f_max = 10 kHz Wybrano również analogowy filtr antyaliasingowy, który KONIECZNIE PRZED próbkowaniem.

Uwaga: gdy sztuczna inteligencja sugeruje częstotliwość próbkowania, należy sprawdzić, czy podaje Nyquist na podstawie najwyższej składowej sygnału. Kod działa bez błędów nawet przy niskiej częstotliwości próbkowania; ale wynik jest błędny z powodu aliasingu. Ponadto żadne oprogramowanie nie może cofnąć tego błędu bez sprzętowego filtra antyaliasingowego.

Rozdzielczość i okienkowanie dla FFT

Rozdzielczość częstotliwościowa FFT zależy od częstotliwości próbkowania i liczby próbek: Δf = f_s / N. Aby uzyskać lepszą rozdzielczość, albo zbierasz więcej próbek, albo wybierasz niższą f_s (bez przerywania Nyquista). Dodatkowo nieciągłość między początkiem i końcem sygnału powoduje „przeciek widma”; Aby to zmniejszyć, stosowane są funkcje okna, takie jak Hann i Hamming.

f_s = 10 kHz, N = 1024 próbki Rozdzielczość częstotliwości: Δf = 10000 / 1024 ≈ 9,77 Hz Całkowity czas rejestracji: T = N / f_s = 1024 / 10000 ≈ 102,4 ms

Generowanie i sprawdzanie FFT i kodu filtra

Określ wyraźnie częstotliwość próbkowania, typ okna i skalę osi, żądając kodu FFT od AI. Poniższy kod generuje jednostronne widmo amplitudy sygnału:

import numpy jako npfs = 10000 # częstotliwość próbkowania (Hz) - sprawdź Nyquist!N = 1024t = np.arange(N) / fs# przykładowy sygnał: 500 Hz + 1500 Hzx = np.sin(2*np.pi*500*t) + 0,5*np.sin(2*np.pi*1500*t)w = np.hanning(N) # okienkowanie: zmniejsza wyciek widma znormalizowany przez wzmocnienie# sprawdź częstotliwości szczytowepeaks = f[np.argsort(mag)[-2:]]print("Częstotliwości dominujące (Hz):", np.sort(peaks))

Podczas sprawdzania tego kodu zostaniesz zapytany: Czy oś częstotliwości to naprawdę Hz, czy też jest to indeks próbki (używany rftfreq)? Czy amplituda jest znormalizowana do wzmocnienia okna? Czy oczekiwane wartości szczytowe 500 i 1500 Hz rzeczywiście występują w tych punktach? Jeśli zweryfikujesz kod znanym sygnałem testowym (sinus pojedynczej częstotliwości), z pewnością potwierdzisz oś i normalizację.

Słaba podpowiedź/silna podpowiedź

SŁABY: „Zastosuj FFT do tych danych.” (Wynik: częstotliwość próbkowania, skala osi i okienkowanie są niejasne; wykres najprawdopodobniej jest wykreślony na niewłaściwej osi.) SILNY: „Zastosuj FFT do sygnału próbkowanego 10 kHz. Zapewnij: – Wykreśl oś częstotliwości w Hz (użyj rfftfreq). – Zastosuj okno Hanna i znormalizuj amplitudę według wzmocnienia okna. – Wydrukuj cyfrowo dwie dominujące częstotliwości. – Zaznacz granicę Nyquista (5 kHz). wykresie. Należy pamiętać, że oś ulegnie przesunięciu, jeśli częstotliwość próbkowania jest nieprawidłowa.

Projekt filtra i analiza hałasu

Sztuczna inteligencja może generować współczynniki filtra dolnego/wysokiego/pasmowoprzepustowego (FIR/IIR). Należy jednak sprawdzić częstotliwość odcięcia, porządek i stabilność filtra. Może to powodować niestabilność wysokiego rzędu i zniekształcenie fazowe, szczególnie w filtrach IIR. Po zaprojektowaniu filtra narysuj charakterystykę częstotliwościową (w sposób Bode'a), aby sprawdzić, czy odcięcie znajduje się we właściwym miejscu i czy nie ma niepożądanych tętnień w paśmie przepustowym.

Typowym zadaniem analizy szumu jest oddzielenie sygnału rzeczywistego od szumu. W tym miejscu oceń sugerowany przez sztuczną inteligencję próg lub filtr w odniesieniu do fizycznej szerokości pasma sygnału: jeśli rzeczywisty sygnał ma częstotliwość 0–500 Hz, składowa o częstotliwości 2 kHz to najprawdopodobniej szum lub zakłócenia. AI daje statystyki; Dokonujesz fizycznej interpretacji.

Walidacja interpretacji widma z rzeczywistością fizyczną

Interpretując widmo, sztuczna inteligencja wyciąga rozsądne, ale nie zawsze dokładne wnioski, takie jak: „Przy 50 Hz występuje szczyt, oznacza to zakłócenia sieci”. Porównaj te uwagi z fizycznymi oczekiwaniami: czy system naprawdę ma połączenie z siecią 50 Hz? Czy oczekiwana częstotliwość obrotów i harmoniczne znajdują się prawie w widmie drgań silnika? Jeśli to możliwe, powtórz pomiar drugą metodą (inny czujnik, inne oprogramowanie) i zobacz te same piki.

Wskazówka: Dla każdej interpretacji widma „jakiemu zjawisku fizycznemu odpowiada ten pik?” Zadaj pytanie. Sieć 50/100/150 Hz i jej harmoniczne, częstotliwość obrotowa i jej wielokrotności w maszynach wirujących oraz częstotliwość przełączania w zasilaczach impulsowych to znane sygnatury. Nieznany pik jest albo rzeczywistym zdarzeniem, albo błędem pomiaru/przetwarzania; Zbadaj oba.

Mini etui

Inżynier ds. badań i rozwoju mierzy wibracje wentylatora, a sztuczna inteligencja interpretuje widmo. „Przy 1200 Hz występuje dominujący szczyt, który może oznaczać awarię łożyska” – mówi AI. Inżynier kontroluje prędkość wentylatora: 1800 obr./min = 30 Hz. Oczekuje się, że częstotliwości przejścia łożysk i łopatek będą miały pewne wartości zgodne z tym cyklem; 1200 Hz nie odpowiada żadnemu z nich. Kontroluje częstotliwość próbkowania: sygnał przenosi treść do 2 kHz, ale próbkowane jest tylko 2 kHz, co stanowi naruszenie Nyquista. Szczyt przy 1200 Hz to częstotliwość widmowa wynikająca z aliasingu. Kiedy zwiększam częstotliwość próbkowania do 8 kHz, fałszywy pik znika. Lekcja: zawsze sprawdzaj interpretację widma, uwzględniając oczekiwany cykl fizyczny/częstotliwość i prawidłowe próbkowanie.

Typowe błędy

  • Wybór częstotliwości próbkowania bez sprawdzania kryterium Nyquista; Pomijanie aliasingu.
  • Pozostawienie osi częstotliwości FFT przy indeksie próbki zamiast Hz.
  • Mylenie wycieku widma z sygnałem bez okienka.
  • Brak normalizacji amplitudy według liczby okien/próbek.
  • Nie sprawdzanie stabilności filtra IIR i zniekształceń fazowych.
  • Interpretacja pików widma bez testowania ich w oczekiwaniu na fizyczne obroty/częstotliwość.

Podsumowując

  • Częstotliwość próbkowania musi być co najmniej dwukrotnie większa od najwyższej składowej sygnału; W przeciwnym razie aliasing zakłóci całą analizę.
  • Rozdzielczość FFT Δf = f_s/N; Wybierz N i f_s w zależności od potrzeb.
  • Okienkowanie zmniejsza wyciek widma; normalizować amplitudę zgodnie ze wzmocnieniem okna.
  • Zweryfikuj kod AI znanym sygnałem testowym, aby potwierdzić oś i normalizację.
  • Sprawdź stabilność filtra i charakterystykę częstotliwościową, wykreślając je.
  • Zawsze sprawdzaj interpretację widma, spodziewając się częstotliwości fizycznej.

Zadanie aplikacji

Wygeneruj sygnał testowy o znanej częstotliwości (np. 500 Hz + 1500 Hz sinus). Poproś o FFT i kod filtra od AI. Następnie: (1) sprawdź, czy spełnione jest kryterium Nyquista, (2) sprawdź, czy piki FFT rzeczywiście pojawiają się przy 500 i 1500 Hz, (3) celowo zmniejsz częstotliwość próbkowania poniżej Nyquista i zaobserwuj, jak aliasing tworzy fałszywy pik. Zanotuj swoje obserwacje i poprawiony parametr.