Enhet 4 / 9

Signalbehandling och dataanalys

Vinster:

  • Möjlighet att exakt fastställa signalbehandlingsparametrar som samplingsfrekvens, filtertyp och fönster med AI
  • Möjlighet att generera Python-kod för FFT, filterdesign och brusanalys och kontrollera Nyquist och aliasing
  • Förmåga att verifiera AI-genererad spektrumtolkning genom att jämföra den med mätning och fysisk förväntan

Rådata från enbart en sensor, mikrofon eller kraftledning är ofta meningslösa; Det är nödvändigt att bearbeta och tolka det på axeln av frekvens, amplitud och tid. Extrahera spektrum med FFT, filtrera brus, känna igen en vibrationssignatur... Allt detta är signalbehandling och AI genererar snabb Python-kod inom detta område, förklarar koncept, beräknar filterkoefficient. Men ett litet parameterfel i signalbehandlingen (fel samplingsfrekvens, fel fönster, överhoppad Nyquist-kontroll) förstör tyst hela analysen; Koden ger inga fel, den ger bara fel resultat. I den här enheten kommer vi att täcka inställning av korrekta parametrar med AI, kontrollera den genererade koden i termer av Nyquist och aliasing, och verifiera spektrumtolkningen med den fysiska verkligheten.

Grundläggande parametrar: Sampling, Nyquist, Aliasing

Den första regeln för digital signalbehandling är Nyquist-Shannon-satsen: för att korrekt representera en signal måste samplingsfrekvensen vara minst två gånger den högsta frekvenskomponenten i signalen. Annars kommer höga frekvenser att visas som låga frekvenser (aliasing) och detta kan inte vändas.

Högsta frekvens i signalen: f_max = 2 kHzMinsta samplingsfrekvens: f_s ≥ 2 · f_max = 4 kHzFör att lämna marginal i praktiken: f_s ≈ 5 · f_max = 10 kHz väljs. Ett analogt anti-aliasing-filter är ett MÅSTE FÖRE sampling.

Varning: När AI föreslår en samplingsfrekvens, se till att kontrollera om den ger Nyquist baserat på den högsta komponenten i din signal. Koden körs utan fel även vid låg samplingsfrekvens; men resultatet är fel på grund av aliasing. Dessutom kan ingen programvara ångra detta fel utan ett kantutjämningsfilter i hårdvaran.

Upplösning och fönster för FFT

Frekvensupplösningen för FFT beror på samplingsfrekvensen och antalet samplingar: Δf = f_s / N. För finare upplösning samlar du antingen in fler sampel eller väljer lägre f_s (utan att bryta Nyquist). Dessutom skapar diskontinuiteten mellan början och slutet av signalen "spektralt läckage"; För att minska detta tillämpas fönsterfunktioner som Hann och Hamming.

f_s = 10 kHz, N = 1024 sampel Frekvensupplösning: Δf = 10000 / 1024 ≈ 9,77 HzTotal inspelningstid: T = N / f_s = 1024 / 10000 ≈ 102,4 ms

Generera och kontrollera FFT och filterkod

Ange samplingsfrekvens, fönstertyp och axelskala uttryckligen när du begär FFT-koden från AI. Följande kod matar ut det ensidiga amplitudspektrumet för en signal:

importera numpy som npfs = 10000 # samplingsfrekvens (Hz) - verifiera Nyquist!N = 1024t = np.arange(N) / fs# samplingssignal: 500 Hz + 1500 Hzx = np.sin(2*np.pi*500*t) + 0.5*np.sin(2*np.pi*1500*t)w = np.hanning(N) # windowing: reducerar spektralläckage normaliserad av gain# check peak frequencypeaks = f[np.argsort(mag)[-2:]]print("Dominanta frekvenser (Hz):", np)sort.

När du kontrollerar den här koden kommer du att få frågan: Är frekvensaxeln verkligen Hz eller används provindexet (rfftfreq)? Är amplituden normaliserad till fönsterförstärkningen? Uppstår verkligen de förväntade 500 och 1500 Hz topparna vid dessa punkter? Om du verifierar koden med en känd testsignal (sinus med en frekvens), kommer du säkert att bekräfta axeln och normaliseringen.

Svag prompt / Stark prompt

SVAG:"Tillämpa FFT på denna data."(Resultat: samplingsfrekvens, axelskalan och fönsterbilden är otydliga; grafen är med största sannolikhet plottad på fel axel.)STARK:"Applicera FFT på en 10 kHz samplad signal. Tillhandahåll:- Plotta frekvensaxeln i Hz (använd rfftförstärkningsfönstret och-normalisera fönstret för applicerad förstärkning och-normalisera rfft-förstärkningsfönstret). två dominerande frekvenser digitalt.- Markera Nyquist-gränsen (5 kHz) på grafen. Observera att axeln kommer att förskjutas om samplingsfrekvensen är felaktig."

Filterdesign och brusanalys

AI kan generera låg/hög/bandpassfilterkoefficienter (FIR/IIR). Men filtrets gränsfrekvens, ordning och stabilitet måste kontrolleras. Det kan orsaka instabilitet av hög ordning och fasförvrängning, särskilt i IIR-filter. Efter att ha designat filtret, rita upp frekvenssvaret (Bode-liknande) för att se att cutoff är på rätt plats och att det inte finns någon oönskad rippel i passbandet.

Den typiska uppgiften vid brusanalys är att separera den verkliga signalen från bruset. Här, utvärdera AI:s föreslagna tröskelvärde eller filter mot signalens fysiska bandbredd: om din verkliga signal är på 0-500 Hz, är en komponent på 2 kHz troligen brus eller störningar. AI ger statistik; Du gör den fysiska tolkningen.

Validera spektrumtolkningen med fysisk verklighet

När man tolkar ett spektrum gör AI rimliga men inte alltid exakta slutsatser som "Det finns en topp vid 50 Hz, det här är nätinterferens." Jämför dessa kommentarer med den fysiska förväntan: Har systemet verkligen en 50 Hz nätanslutning? Finns den förväntade rotationsfrekvensen och övertonerna nästan där i en motors vibrationsspektrum? Om möjligt, upprepa mätningen med en andra metod (annan sensor, annan programvara) och se samma toppar.

Tips: För varje spektrumtolkning, "vilket fysiskt fenomen motsvarar denna topp?" Ställ frågan. 50/100/150 Hz nätverk och dess övertoner, rotationsfrekvens och dess multipler i roterande maskiner, och switchfrekvens i switchande strömförsörjning är kända signaturer. En okänd topp är antingen en verklig händelse eller ett mät-/bearbetningsfel; Undersök båda.

Minifodral

En FoU-ingenjör mäter vibrationen hos en fläkt och låter AI tolka spektrumet. "Det finns en dominant topp vid 1200 Hz, detta kan vara ett lagerfel", säger AI. Ingenjören styr fläktens varvtal: 1800 rpm = 30 Hz. Lager- och bladövergångsfrekvenser förväntas vara på vissa värden som är kompatibla med denna cykel; 1200 Hz motsvarar inte någon av dessa. Den kontrollerar samplingsfrekvensen: signalen bär innehåll upp till 2 kHz, men endast 2 kHz samplas, så en Nyquist-överträdelse. Toppen vid 1200 Hz är en spökfrekvens som härrör från aliasing. När jag ökar samplingsfrekvensen till 8 kHz försvinner den falska toppen. Lektion: testa alltid spektrumtolkning med fysisk cykel/frekvensförväntning och korrekt provtagning.

Vanliga misstag

  • Att välja samplingsfrekvens utan att kontrollera Nyquist-kriteriet; Med utsikt över aliasing.
  • Lämna FFT-frekvensaxeln vid sampelindex istället för Hz.
  • Missförstå spektralt läckage som en signal utan fönster.
  • Normaliserar inte amplituden efter antal fönster/prover.
  • Kontrollerar inte IIR-filtrets stabilitet och fasförvrängning.
  • Tolkning av spektrumtoppar utan att testa dem i väntan på fysiskt varvtal/frekvens.

Sammanfattningsvis

  • Samplingsfrekvensen måste vara minst två gånger den högsta komponenten av signalen; Annars kommer aliasing att störa hela analysen.
  • FFT-upplösning Af = f_s/N; Välj N och f_s efter ditt behov.
  • Fönster minskar spektralt läckage; normalisera amplituden enligt fönsterförstärkningen.
  • Verify the AI ​​code with a known test signal to confirm axis and normalization.
  • Kontrollera filtrets stabilitet och frekvenssvar genom att plotta det.
  • Testa alltid spektrumtolkning med förväntan på fysisk frekvens.

Applikationsuppgift

Generera en testsignal med känd frekvens (t.ex. 500 Hz + 1500 Hz sinus). Begär FFT och filterkod från AI. Sedan: (1) verifiera att Nyquist-kriteriet är uppfyllt, (2) kontrollera att FFT-topparna faktiskt visas vid 500 och 1500 Hz, (3) medvetet minska samplingsfrekvensen under Nyquist och observera hur aliasing skapar en falsk topp. Notera dina observationer och parametern du korrigerade.