Enota 3 / 12

Obdelava signalov: filtri, vzorčenje in frekvenčna analiza

Dobički:

  • Sposobnost pravilne konstrukcije in uporabe konceptov vzorčenja, Nyquista in aliasinga s podporo AI
  • Sposobnost prevajanja korakov FFT, oblikovanja filtra in okna v osnutek kode in izračune z AI
  • Sposobnost preverjanja rezultatov obdelave signalov, ki jih ustvari AI z referenčnim signalom, krmiljenjem enote in merjenjem

Obdelava signalov je srce elektronike in komunikacijskega inženiringa: umetnost zajemanja napetostnega vala, zvočnega posnetka, odčitka senzorja ali radijskega signala in pridobivanja informacij v njem, čiščenja njegovega šuma in njegovega preoblikovanja. V tej enoti boste videli, kako uporabiti AI za učenje konceptov obdelave signalov, konstruirati izračune filtrov in transformacij ter izvesti analizo s kodo Python. A opozorilo že na samem začetku: majhna konceptualna napaka v obdelavi signala (napačna frekvenca vzorčenja, preskočeno okno, moteča enota) bo popolnoma in tiho popačila rezultat; Graf je še vedno videti dober, vendar je napačen. Zato je nujno preizkusiti vsak rezultat, ki ga ustvari umetna inteligenca, glede na znani referenčni signal in nadzor enote.

Vzorčenje in Nyquist: kje se vse začne

Za obdelavo analognega signala (zveznega vala) v računalniku ga merimo v določenih intervalih in pretvorimo v število; To se imenuje vzorčenje. To je frekvenca vzorčenja (fs, enota Hz), koliko vzorcev vzamemo na sekundo. Nyquistov kriterij navaja, da mora biti za natančno obnovitev signala frekvenca vzorčenja vsaj dvakrat večja od najvišje frekvence v signalu. Če ta pogoj ni izpolnjen, začnejo visoke frekvence izgledati kot nizke frekvence; To se imenuje vzdevek in podatki so trajno poškodovani, ker ne morete razlikovati med tema dvema situacijama.

AI ta koncept zelo dobro razloži in ga lahko prikaže s primeri. Toda vi se odločite, ko izberete frekvenco vzorčenja: kakšna je dejanska pasovna širina vašega signala, ali imate analogni filter proti zvijanju, s kakšno hitrostjo dejansko deluje vaš ADC (analogno-digitalni pretvornik: čip, ki pretvori analogni signal v število). AI lahko "predlaga" frekvenco vzorčenja, vendar je ta predlog ugibanje brez merjenja dejanskega spektra vašega signala.

Nasvet: ko AI postavljate vprašanje vzorčenja, sami določite najvišjo frekvenco in pasovno širino signala. "Če je najvišja komponenta mojega signala ~4 kHz, kako naj izberem fs in kam naj postavim filter za izravnavanje?" kot. Ne prisilite AI, da ugiba spekter; ukrep.

FFT in frekvenčna analiza

FFT (Fast Fourier Transform) je hiter algoritem, ki pretvori signal s časovne osi na frekvenčno os. Torej, "katere frekvence so v tem signalu in s kakšno močjo?" odgovarja na vprašanje. AI zelo dobro zna implementirati FFT, interpretirati rezultate in napisati kodo Python (numpy/scipy). Toda v FFT obstajajo pogoste napake in koda AI jih lahko tiho vključi:

  • Skaliranje frekvenčne osi: frekvenčna os izhoda FFT je odvisna od frekvence vzorčenja. Če je fs vnesen napačno, so vse frekvence prikazane nepravilno, vendar je graf videti normalen.
  • Okno: Ko je sprejet končni del signala, pride do prekinitve na robovih in v spektru opazimo psevdo-širjenje (spektralno uhajanje). Windows, kot sta Hann in Hamming, to zmanjšata. Če koda AI preskoči okna, bo rezultat zavajajoč.
  • Normalizacija amplitude: za pretvorbo amplitude izhoda FFT v dejansko fizično vrednost sta potrebna skaliranje in korekcija okna. Če je izpuščeno, bodo amplitude nepravilne.

oblikovanje filtra

Filter je vezje ali algoritem, ki iz signala izloči neželene frekvence. Obstajajo štiri osnovne vrste: nizkoprepustni (prepušča nizke frekvence), visokoprepustni, pasovni in pasovni (zareza). Obstajata dve veliki družini digitalnih filtrov: FIR (končni impulzni odziv, stabilna in linearna faza) in IIR (neskončni impulzni odziv, strm prehod z manj izračunavanja, vendar stabilnostjo in faznim tveganjem).

Umetna inteligenca pojasnjuje korake načrtovanja filtra (mejna frekvenca, pasovni pas, dušenje zavornega pasu, izbira vrstnega reda) in s scipyjem piše kodo za generiranje koeficientov. Toda mejna frekvenca filtra, ki ga oblikujete, je dana normalizirana (glede na Nyquistovo frekvenco) in nepravilen vnos fs tukaj je zelo pogosta napaka. Poleg tega sta lahko stabilnost in fazno popačenje težava v filtrih IIR, zakasnitev pa je lahko težava v sistemih v realnem času. Ne pozabite preveriti filtra, ki ga ustvari umetna inteligenca, z grafom frekvenčnega odziva in znanim preskusnim signalom.

trije mini kovčki

Primer 1 – Prekrivajoče se tresenje. Inženir vzorči vibracije motorja pri 1 kHz in vidi močan vrh FFT pri 300 Hz. Ta vrh, ki se ne ujema z zasnovo motorja, je zmeden. V motorju je dejansko prava komponenta okoli 1300 Hz; Vzorčenje 1 kHz za to ne zadošča (Nyquist 500 Hz) in 1300 Hz prekriva 300 Hz. Po razpravi z AI ​​"ali je ta vrh resničen ali vzdevek" in povečanju frekvence vzorčenja na 5 kHz, se vrh pojavi na pravem mestu pri 1300 Hz. Lekcija: na vprašljivem hribu, prvo vprašanje ustreznosti vzorčenja.

2. primer – preskočeno okno. Pripravnik od umetne inteligence zahteva kodo FFT in jo izvede. Pričakuje enofrekvenčni preizkusni ton, vendar vidi široko razpršenost po spektru. Težava je v tem, da koda ne izvaja oken (spektralno uhajanje). Povejte AI ​​"dodaj Hannovo okno in uporabi popravek amplitude" in izhod se vrne na pričakovani oster vrh. Lekcija: preizkusite kodo FFT z znanim enofrekvenčnim signalom; Preverite okno, če pušča.

Primer 3 – Napačen fs. Inženir analizira podatke snemalnika. Naprava je snemala pri 48 kHz, vendar je bila v kodo AI vnesena privzeta 44,1 kHz. Vse frekvence so zamaknjene za 8 %; Ton 1000 Hz se pojavi pri 1088 Hz. Napaka je ugotovljena pri preverjanju dejanskega fs merilne opreme. Lekcija: frekvenca vzorčenja je posamezno najbolj kritično število v verigi analize; je treba preveriti iz vira.

Kopirane predloge pozivov

NASTAVITEVNA PREDLOGA FFT"Napišite kodo za analizo FFT v Pythonu (numpy/scipy). Vnos: frekvenca vzorčenja fs=[vrednost] Hz, signalni niz 'x'. Naj koda naredi NASLEDNJE: (1) Uporabi Hannovo okno, (2) Pridobi FFT, (3) natančno prilagodi frekvenčno os glede na fs, (4) nariši enostransko amplitudo spekter s popravkom okna Na vsakem koraku kode "Prosimo, navedite v vrstici za komentar, katero predpostavko postavljate, da jo lahko preverim."

PREDLOGA ZA NADZOR VZORČENJA "Najvišja pomembna frekvenca mojega signala je približno [X] Hz. Pojasnite Nyquistov rob, potrebo po filtru za izravnavanje in praktično mejo varnosti pri izbiri frekvence vzorčenja. Predlagajte obseg, vendar poudarite, da moram to preveriti z merjenjem pravega spektra signala."

PREDLOGA ZA OBLIKOVANJE FILTRA "Načrtujte [nizko/visoko/pasovni] digitalni filter s scipy. Mejna frekvenca [X] Hz, frekvenca vzorčenja fs=[Y] Hz. Primerjajte možnosti FIR in IIR (stabilnost, faza, zakasnitev, računska obremenitev). V kodi jasno pokažite, kako je mejna frekvenca normalizirana na fs. Vključite tudi kodo, ki potrdi filter z grafom frekvenčnega odziva."

PREDLOGA ZA POTRDITEV REZULTATA "Preglejte spodnjo kodo za obdelavo signala in označite vire tihih napak: napačna fs, preskočeno okno, preslušavanje enote (Hz/kHz, V/mV), pomanjkanje normalizacije, eno-/dvostransko preslušavanje spektra. Predlagajte, kako naj testiram (s katerim referenčnim signalom) za vsako. Koda: [prilepi]."

Šibek poziv/močan poziv

WEAK PROMPT: "Poiščite frekvenco tega signala."

MOČEN POZIV: "Imam niz signalov s frekvenco vzorčenja 10 kHz. Napišite kodo Python, ki najde prevladujoče frekvenčne komponente s FFT; uporabite Hannovo okno in korekcijo amplitude, prilagodite frekvenčno os glede na fs. Na koncu kode dodajte potrditveni blok s sintetičnim testnim signalom 1 kHz fs in preverite, ali je skaliranje pravilno."

Šibek poziv ustvari odziv brez konteksta in predpostavlja fs; Vrne močne parametre poziva in pozive k samopreverljivemu testnemu bloku.

Tabela enot in predpostavk pri obdelavi signalov

koncept

pogosta napaka

preverjanje

Frekvenca vzorčenja (fs)

Privzeto namesto dejanskega FS naprave

Potrditev iz nastavitve snemalnika

frekvenčna os

Če je fs napačen, se premakne celotna os

Testni ton znane frekvence

Okna

Spektralno puščanje ob preskoku

Širina vrha v monotonem signalu

Amplituda

Manjka normalizacija/popravek

Primerjava z znanim signalom amplitude

filter rez

normalizirajte napako glede na fs

Graf frekvenčnega odziva

Pozor: Samo zato, ker je graf FFT videti gladek in verjeten, še ne pomeni, da je točen. Če je frekvenčna os nepravilno prilagojena, so vsi vrhovi na napačnem mestu, vendar je graf videti popoln. Vedno kalibrirajte z znano referenco.

Pogoste napake

  • Ni preverjanja frekvence vzorčenja iz vira. Napačen fs premakne vse frekvence.
  • Kršitev Nyquista in neopaženje vzdevkov. Na sumljivih gričih se najprej vprašajte o ustreznosti vzorčenja.
  • Preskakovanje okna v FFT. Spektralno uhajanje je videti kot pravi vrh.
  • Pozabimo na normalizacijo amplitude. Amplitude ostanejo neprimerjene na fizično vrednost.
  • Nepravilna normalizacija mejne frekvence filtra na fs. Filter reže na drugem mestu, kot je bilo pričakovano.

Če povzamem

V tej enoti ste umetno inteligenco postavili kot močno pomoč pri učenju konceptov obdelave signalov, pisanju FFT in filtrske kode ter konstruiranju analize. Toda pri obdelavi signala so lahko rezultati tiho popačeni: napačna frekvenca vzorčenja, preskočeno okno, moteča glasnost ali pomanjkanje normalizacije naredijo graf lep, a netočen. Zato preizkusite vsako kodo, ki jo ustvari umetna inteligenca, glede na znani referenčni signal, preverite frekvenco vzorčenja iz vira in preizkusite vsak rezultat glede enote in fizične verodostojnosti. Check the concept of Nyquist and aliasing at the beginning of each analysis.

Aplikacijska naloga

Create a synthetic test signal in Python: sum of two known frequencies (e.g. 1 kHz and 3 kHz), fs=10 kHz. Request the analysis code from the AI ​​with the “FFT setup” template and verify that the peaks appear at the correct frequencies. Then deliberately enter the fs incorrectly (e.g. 8 kHz) and observe how the peaks shift. Finally, remove the windowing and see the spectral leakage. Write down the results of each experiment in one sentence.

kontrolni seznam

  • [ ] I verified the sampling frequency (fs) from the actual setting of the recorder.
  • [ ] Preveril sem Nyquistov kriterij in ocenil tveganje aliasinga.
  • [ ] Preveril sem, ali sta okna in korekcija amplitude implementirana v kodo FFT.
  • [ ] Kodo sem preizkusil z referenčnim signalom znane frekvence.
  • [ ] Z vizualnim odzivom sem preveril, da je bila mejna frekvenca filtra pravilno normalizirana na fs.
  • [ ] Vse enote (Hz/kHz, V/mV) sem naredil skladne.