Pelnas:
- Gebėjimas tiksliai nustatyti signalo apdorojimo parametrus, tokius kaip diskretizavimo dažnis, filtro tipas ir langų kūrimas naudojant AI
- Galimybė generuoti Python kodą FFT, filtrų dizainą ir triukšmo analizę bei patikrinti Nyquist ir slapyvardį
- Galimybė patikrinti AI sukurtą spektro interpretaciją, lyginant ją su matavimu ir fiziniais lūkesčiais
Neapdoroti duomenys vien iš jutiklio, mikrofono ar maitinimo linijos dažnai yra beprasmiai; Jį reikia apdoroti ir interpretuoti dažnio, amplitudės ir laiko ašyje. Spektro ištraukimas naudojant FFT, triukšmo filtravimas, vibracijos parašo atpažinimas... Visa tai yra signalo apdorojimas ir AI generuoja greitą Python kodą šioje srityje, paaiškina sąvokas, skaičiuoja filtro koeficientą. Tačiau nedidelė signalo apdorojimo parametrų klaida (netinkamas diskretizavimo dažnis, netinkamas langas, praleistas Nyquist valdymas) tyliai sugadina visą analizę; Kodas neduoda klaidų, tik pateikia klaidingus rezultatus. Šiame skyriuje apžvelgsime teisingų parametrų nustatymą naudojant AI, sugeneruoto kodo patikrinimą Nyquist ir slapyvardžio atžvilgiu bei spektro interpretacijos patikrinimą su fizine realybe.
Pagrindiniai parametrai: Atranka, Nyquist, Aliasing
Pirmoji skaitmeninio signalo apdorojimo taisyklė yra Nyquist-Shannon teorema: norint tiksliai atvaizduoti signalą, diskretizavimo dažnis turi būti bent du kartus didesnis už didžiausio signalo dažnio komponentą. Priešingu atveju aukšti dažniai bus rodomi kaip žemi dažniai (su slapyvardžiu) ir to negalima pakeisti.
Didžiausias signalo dažnis: f_max = 2 kHz Minimalus diskretizavimo dažnis: f_s ≥ 2 · f_max = 4 kHz Praktikoje palikti ribą: f_s ≈ 5 · f_max = 10 kHz. Taip pat analoginis anti-aliasing filtras BŪTINA PRIEŠ atranką.
Įspėjimas: kai AI pasiūlo diskretizavimo dažnį, būtinai patikrinkite, ar jis teikia Nyquist pagal aukščiausią jūsų signalo komponentą. Kodas veikia be klaidų net esant žemam atrankos dažniui; bet rezultatas neteisingas dėl slapyvardžio. Be to, jokia programinė įranga negali anuliuoti šios klaidos be anti-aliasing filtro aparatinėje įrangoje.
FFT skiriamoji geba ir langai
FFT dažnio skiriamoji geba priklauso nuo mėginių ėmimo dažnio ir mėginių skaičiaus: Δf = f_s / N. Norėdami gauti geresnę skiriamąją gebą, renkate daugiau mėginių arba pasirenkate mažesnę f_s (nepažeidžiant Nyquist). Be to, pertrauka tarp signalo pradžios ir pabaigos sukuria "spektrinį nuotėkį"; Norėdami tai sumažinti, taikomos tokios langų funkcijos kaip Hann ir Hamming.
f_s = 10 kHz, N = 1024 pavyzdžiai. Dažnio skiriamoji geba: Δf = 10000 / 1024 ≈ 9,77 Hz Bendra įrašymo trukmė: T = N / f_s = 1024 / 10000 ≈ 102,4 ms
FFT ir filtro kodo generavimas ir tikrinimas
Aiškiai nurodykite mėginių ėmimo dažnį, lango tipą ir ašies mastelį, kai prašote FFT kodo iš AI. Šis kodas išveda vienpusį signalo amplitudės spektrą:
importuoti numpy kaip npfs = 10000 # diskretizavimo dažnis (Hz) – patikrinkite Nyquist!N = 1024t = np.arange(N) / fs# imties signalas: 500 Hz + 1500 Hzx = np.sin(2*np.pi*500*t) + 0.5*np.sin(2*np.pi*1500*t)w = np.hanning(N) # langų keitimas: sumažina spektrinį nutekėjimą, normalizuojamą gain# check peak frequenciespeaks = f[np.argsort(mag)[-2:]]print("Dominuojantys dažniai (Hz)sort):", np.)sort
Tikrindami šį kodą būsite paklausti: ar dažnio ašis tikrai Hz, ar imties indeksas (naudojamas rfftfreq)? Ar amplitudė normalizuota pagal lango padidėjimą? Ar tikrai tuose taškuose atsiranda laukiami 500 ir 1500 Hz smailės? Jei patikrinsite kodą žinomu bandymo signalu (vieno dažnio sinusu), užtikrintai patvirtinsite ašį ir normalizavimą.
Silpnas raginimas / stiprus raginimas
SILPNAS: "Taikykite FFT šiems duomenims." (Rezultatas: diskretizavimo dažnis, ašies mastelis ir langai yra neaiškūs; diagrama greičiausiai pavaizduota neteisingoje ašyje.) STIPRUS: "Taikykite FFT 10 kHz atrinktam signalui. Pateikite: - Nubraižykite dažnio ašį Hz (naudokite rfftfreq langą ir normalizavimo langą). - Taikykite du Hannlamp langą. dominuojančius dažnius skaitmeniniu būdu.- Grafike pažymėkite Nyquist ribą (5 kHz) Atkreipkite dėmesį, kad ašis pasislinks, jei diskretizavimo dažnis bus neteisingas.
Filtrų dizainas ir triukšmo analizė
AI gali generuoti žemo / aukšto / dažnių juostos pralaidumo filtro koeficientus (FIR / IIR). Tačiau reikia patikrinti filtro išjungimo dažnį, tvarką ir stabilumą. Tai gali sukelti didelį eilės nestabilumą ir fazės iškraipymą, ypač IIR filtruose. Suprojektavę filtrą, nubraižykite dažnio atsaką (panašų į Bodą), kad pamatytumėte, ar ribos yra tinkamoje vietoje, o praėjimo juostoje nėra nepageidaujamo bangavimo.
Įprasta triukšmo analizės užduotis yra atskirti tikrąjį signalą nuo triukšmo. Čia įvertinkite AI siūlomą slenkstį arba filtrą pagal fizinį signalo pralaidumą: jei jūsų tikrasis signalas yra 0–500 Hz, 2 kHz dažnio komponentas greičiausiai yra triukšmas arba trukdžiai. AI pateikia statistiką; Jūs darote fizinę interpretaciją.
Spektro interpretacijos patvirtinimas fizine realybe
Aiškindamas spektrą AI daro pagrįstas, bet ne visada tikslias išvadas, pvz., „Yra didžiausias 50 Hz dažnis, tai yra tinklo trikdžiai“. Palyginkite šiuos komentarus su fiziniais lūkesčiais: ar sistema tikrai turi 50 Hz tinklo jungtį? Ar numatomas sukimosi dažnis ir harmonikos beveik yra variklio virpesių spektre? Jei įmanoma, pakartokite matavimą antruoju metodu (kitu jutikliu, skirtinga programine įranga) ir pamatysite tas pačias smailes.
Užuomina: Kiekvienai spektro interpretacijai „kokį fizikinį reiškinį atitinka ši smailė? Užduokite klausimą. 50/100/150 Hz tinklas ir jo harmonikos, sukimosi dažnis ir jo kartotiniai besisukančiose mašinose bei perjungimo dažnis perjungiamuose maitinimo šaltiniuose yra žinomi parašai. Nežinoma smailė yra arba tikras įvykis, arba matavimo/apdorojimo klaida; Tyrinėkite abu.
Mini dėklas
Mokslinių tyrimų ir plėtros inžinierius matuoja ventiliatoriaus vibraciją ir AI interpretuoja spektrą. „Yra dominuojanti smailė esant 1200 Hz, tai gali būti guolių gedimas“, - sako AI. Inžinierius valdo ventiliatoriaus greitį: 1800 aps./min. = 30 Hz. Tikimasi, kad guolių ir ašmenų perėjimo dažniai atitiks tam tikras vertes, suderinamas su šiuo ciklu; 1200 Hz neatitinka nė vieno iš šių. Jis valdo diskretizavimo dažnį: signalas perduoda turinį iki 2 kHz, bet atrenkamas tik 2 kHz, taigi yra Nyquist pažeidimas. Didžiausias 1200 Hz dažnis yra šešėlių dažnis, atsirandantis dėl slapyvardžio. Kai padidinu mėginių ėmimo dažnį iki 8 kHz, klaidinga smailė išnyksta. Pamoka: visada patikrinkite spektro interpretaciją su fizinio ciklo / dažnio lūkesčiais ir teisingu mėginių ėmimu.
Dažnos klaidos
- Mėginių ėmimo dažnio pasirinkimas nepatikrinus Nyquist kriterijaus; Nepastebimas slapyvardis.
- Paliekant FFT dažnio ašį imties indekse, o ne Hz.
- Spektrinio nutekėjimo klaidinimas kaip signalas be langų.
- Nenormalizuojama amplitudė pagal langų / mėginių skaičių.
- Netikrinamas IIR filtro stabilumas ir fazės iškraipymai.
- Spektro smailių interpretavimas jų neišbandžius, tikintis fizinio apsisukimų per minutę / dažnio.
Apibendrinant
- Atrankos dažnis turi būti bent du kartus didesnis už didžiausią signalo komponentą; Priešingu atveju slapyvardžiai sutrikdys visą analizę.
- FFT skiriamoji geba Δf = f_s/N; Pasirinkite N ir f_s pagal savo poreikius.
- Langai sumažina spektrinį nuotėkį; normalizuoti amplitudę pagal lango stiprinimą.
- Patikrinkite AI kodą žinomu bandymo signalu, kad patvirtintumėte ašį ir normalizavimą.
- Patikrinkite filtro stabilumą ir dažnio atsaką, nubraižydami jį.
- Visada išbandykite spektro interpretaciją tikėdamiesi fizinio dažnio.
Taikymo užduotis
Sugeneruokite žinomo dažnio (pvz., 500 Hz + 1500 Hz sinuso) bandomąjį signalą. Prašyti FFT ir filtro kodo iš AI. Tada: (1) patikrinkite, ar laikomasi Nyquist kriterijaus, (2) patikrinkite, ar FFT smailės iš tikrųjų atsiranda esant 500 ir 1500 Hz, (3) sąmoningai sumažinkite mėginių ėmimo dažnį žemiau Nyquist ir stebėkite, kaip slapyvardis sukuria klaidingą smailę. Atkreipkite dėmesį į savo pastebėjimus ir pataisytą parametrą.