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.