Am crezut că DSP se va face folosind FFT din porțiuni de un semnal, modificați eșantioanele care rezultă din FFT (deoarece reprezintă spectrul semnalului nostru + zgomot) și eliminați orice semnal nedorit și faceți un FFT invers pentru a obține o reprezentare a domeniului de timp al semnalului filtrat (zgomotul a fost eliminat acum) . Cu toate acestea, acest lucru nu este realizat, în schimb, facem toată munca în domeniul timpului folosind funcțiile ferestrei. De ce?

Dacă înmulțim funcția ferestrei în domeniul timp decât convingem răspunsul de frecvență al funcției ferestrei cu spectrul semnalului nostru în domeniul frecvenței, cum funcționează asta? Adică dacă tocmai am făcut toate munca în domeniul frecvenței prin multiplicarea semnalului nostru cu răspunsul în frecvență al filtrului, ar fi ca și cum ar fi filtrarea corectă? Dar aici facem toate lucrurile din domeniul timpului folosind în schimb fereastra.

-> Să vedem unde confuzia mea vine de la. Pentru filtrele analogice, de exemplu, filtrul de trecere joasă, avem acest impuls ca răspuns de frecvență. Când filtrăm un semnal, înmulțim efectiv spectrul semnalului nostru cu răspunsul de frecvență al filtrului ca impulsul. Acest lucru va reduce toate frecvențele semnalului nostru peste o limită la 0. Astfel funcționează esențial un filtru trece jos. De ce să nu faci același lucru și cu filtrele digitale?

Comentarii

Răspuns

Înfășurarea reduce spectrul scurgere.

Spuneți că începeți cu $ \ sin (y) = \ cos (\ omega_0 t) $. Perioada este evident $ 2 \ pi / \ omega_0 $.

Dar dacă nimeni nu ți-a spus că perioada este de $ 2 \ pi / \ omega $ și alegi orbește intervalul $ [0, 1,8 \ pi / \ omega_0] $ și iei FFT din această formă de undă trunchiată, tu va observa componentele de frecvență în alte frecvențe care sunt toate false, deoarece salturile create prin copierea-lipirea formei de undă trunchiate pentru periodicitate nu sunt cu adevărat prezente în semnalul original – este un artefact al unei trunchieri ghinioniste care nu surprinde tranziția între perioade fără probleme . În mod ideal, există o singură componentă spectrală la $ \ omega = \ omega_0 $.

Scopul ferestrei în domeniul timpului este de a reduce toate aceste componente spectrale fictive.

Răspuns

Înfășurarea este utilizată deoarece calculele DFT operează pe extensia periodică infinită a semnalului de intrare. Deoarece multe semnale efective nu sunt deloc periodice sau sunt eșantionate pe un interval diferit de perioada lor reală, acest lucru poate produce componente de frecvență falsă la „marginea” artificială între intervale repetate, numite scurgeri . Înmulțind mai întâi semnalul domeniului de timp cu o funcție de fereastră care merge la zero la ambele capete, creați o tranziție lină între intervale repetate în extensia periodică infinită, atenuând astfel crearea acestor componente de frecvență artificială atunci când luăm DFT.

Această lucrare oferă o privire mai aprofundată asupra acestui fenomen, precum și o oarecare perspectivă asupra efectelor diferitelor funcții de fereastră.

Răspuns

Cred că confundați două operații diferite.

Înfășurarea în domeniul timpului este explicată de @ sam, așa că nu voi mai repeta asta. Dar ferestrele nu se fac pentru a efectua filtrarea. Filtrarea prin înmulțirea FFT a unui semnal cu răspunsul de frecvență al filtrului este complet rezonabilă în multe situații și se face într-adevăr. Alternativa pentru filtrare este timpul -convoluția domeniului (care este diferit de fereastră). Aceasta are propriile sale avantaje, cum ar fi funcționarea pe un semnal în timp real e „deoarece se măsoară fără a aștepta ca totul să fie stocat și apoi transformat.

Deci, la întrebarea dvs.„ De ce să nu facem același lucru și cu filtrele digitale? ”, răspunsul este pur și simplu„ noi facem , atunci când se potrivește. „

Comentarii

  • Am și impresia că convoluția și ferestrele s-au amestecat în întrebare. Bine, ai subliniat-o!

Răspuns

Au existat mai multe răspunsuri bune la această întrebare. Cu toate acestea, consider că un punct important nu a fost clarificat în totalitate. O parte a întrebării a fost de ce nu doar înmulțim FFT-ul unui semnal cu răspunsul dorit al filtrului. De exemplu, dacă dorim să ne filtrăm semnalul cu trecere joasă, am putea pur și simplu zero toate componentele de frecvență mai mari decât frecvența de întrerupere dorită. Aceasta este de fapt o aplicație simplă a binecunoscutei metode de eșantionare a frecvenței pentru proiectarea filtrelor FIR. Problema este că putem zero doar componentele discrete de frecvență calculate de FFT. Nu avem control asupra a ceea ce se întâmplă între aceste frecvențe discrete. .Se pare că o astfel de versiune simplă de filtrare va oferi doar o atenuare slabă a benzii de oprire (indiferent de lungimea FFT). Dacă aveți acces la matlab sau octavă, este foarte instructiv să încercați singur:

x=2*rand(1024,1)-1; X=fft(x); Y=X.*[ones(200,1);zeros(625,1);ones(199,1)]; % lowpass filter y=real(ifft(Y)); % real() just to remove numerical errors Y=fft(y,4096); plot(20*log10(abs(Y(1:2048)))),axis([0,2048,-30,50]) 

Răspundeți

Dacă nu utilizați o fereastră non-dreptunghiulară, atunci rezultatele FFT vor fi deja implicate cu transformarea unei ferestre dreptunghiulare implicite (un Sinc periodic) înainte de a efectua filtrarea domeniului de frecvență. de exemplu. veți primi două filtre aplicate, unul dintre care probabil nu doriți.

Prin fereastra în domeniul timpului, înainte de filtrarea FFT și a domeniului de frecvență, înlocuiți orice filtrare (așa-numita „scurgere”) ) realizat prin fereastră dreptunghiulară și, prin urmare, nu obțineți o convoluție suplimentară a filtrului nedorit.

Cealaltă modalitate de a face acest lucru este să utilizați metode de salvare suprapunere-adăugare sau suprapunere pe ferestre consecutive, unde efectele unei fereastra dreptunghiulară este anulată de efecte similare din ferestrele adiacente.

Răspuns

Fereastra din domeniul orar deoarece

  • putem garanta zero la marginile ferestrei
  • funcțiile ferestrei au o expresie analitică frumoasă în domeniul spațial
  • multe funcții ale ferestrei au un spectru de formă ciudat care ar fi greu de aproximat
  • este nevoie doar de un număr finit de eșantioane (fereastra se poate face ca fluxurile de semnal)

de ex. din wikipedia

introduceți descrierea imaginii aici

The hard Cut off merge la zero din funcțiile de fereastră înseamnă că în domeniul spectral au lobi laterali care merg la zero foarte încet. Dacă scăpăm de această constrângere, putem avea funcții compacte atât în domeniile spațiale, cât și în cele spectrale, cum ar fi filtrul Gaussian. Aceasta înseamnă că puteți filtra prin domeniul spectral, dar acest lucru necesită cunoașterea întregului semnal.

Dacă aveți deja întregul semnal, o altă alternativă ar fi să utilizați wavelets

Răspuns

Am avut aceeași întrebare.

O convoluție este suma integrală / cumulativă a semnalului domeniului de timp înmulțit cu fereastra. Acest lucru nu trebuie confundat cu semnalul domeniului de timp „cu fereastră”.

Sfârșitul articolului din acest articol m-a ajutat foarte mult.

Practic se spune că semnalele reale sunt finite și întreruperea bruscă a unui semnal real duce la o mulțime de frecvențe / artefacte nedorite în domeniul frecvenței.

Pentru a evita / minimiza aceste artefacte puteți utiliza o funcție de fereastră netedă (de exemplu, în formă de clopot), astfel încât eșantionul dvs. începe și se termină cu un zero, mai degrabă decât să se termine brusc cu o valoare scalară diferită de zero.

Decupare lină

Eșantionul de fereastră de mai sus va avea mai puține artefacte în domeniul frecvenței decât eșantionul brut de mai jos.

Decupare bruscă

Răspuns

Există două mari categorii asociate cu un FFT și sunt 1) o modalitate eficientă de a implementa un filtru FIR și 2) Analiza spectrală.

Pentru Filtrarea FIR, nu vă faceți griji cu privire la ferestre și nu le folosiți, cu excepția cazului în care fereastra corespunde unui filtru, dar asta nu este o subțire comună g să fac. Scurgerile nu sunt o preocupare.

Analiza spectrală este locul în care se folosește Windows. Aici vă uitați la un senzor atașat la o mașină industrială mare și încercați să vă dați seama dacă este adânc în interiorul acesteia, un rulment defect. Rulmenții scârțâie pe măsură ce nu reușesc, dar zgomotul pe care îl au este de obicei mult mai mic decât celelalte sunete pe care le face mașina. Aici intervin scurgerile și mediile. Având în vedere tonurile puternice, scurgerile vor înăbuși semnalul slab pe care îl căutăm câteva pubele. Îmbunătățește sensibilitatea analizei spectrale la semnale slabe în prezența semnalelor puternice. Există un efect similar atunci când zgomotul de fundal este înclinat. Informațiile pe care le căutăm sunt în domeniul frecvenței. Aceasta este aceeași problemă în RADAR și SONAR și Geofizică. Vederea semnalului slab este obiectiv.

Răspuns

Înfășurarea în domeniul timpului este necesară pentru a evita o singură frecvență care nu este exact pe un coș de frecvențe pentru a se răspândi pe întregul spectru. Poate că această pagină ajută: http://www.sm5bsz.com/slfft/slfft.htm Linrad (proiectul meu vechi de 20 de ani) folosește un FFT cu ferestre, apoi aplică un filtru în domeniul frecvenței (faceți zero ceea ce nu dorim.) Aplicați o fereastră – nu treceți brusc de la greutatea 1 la greutatea 0 pe coșurile de frecvență. Apoi aplicați un FFT înapoi – dar acum pe un număr mult mai mic de puncte. Nu este nevoie să includem toate coșurile de frecvență pe care le știm sunt zero !! Ca rezultat, obținem o funcție de timp cu o dimensiune mult mai mică – asta înseamnă cu o rată de eșantionare mult mai mică. Procedura efectuează filtrarea și decimarea într-un singur pas.Acest lucru este foarte eficient în cazul în care se dorește filtrarea mai multor canale în același timp. Pagina principală linrad este aici: http://www.sm5bsz.com/linuxdsp/linrad.htm

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *