Ce vă arată de fapt FFT
Fiecare sunet pe care îl auzi este o sumă de valuri sinusale. Transformarea Fast Fourier descompune suma. Iată ce înseamnă asta, cum funcționează, și de ce un algoritm vechi de 60 de ani este încă peste tot.
On this page
Întrebarea
Joaca o coarda pe un pian spune, C şi E împreună. Urechea ta aude un sunet. Dar sunetul este suprapus la două frecvențe: 261.6 Hz și 329.6 Hz. Cochlea dvs. fizic le separă diferite celule de păr rezonează la diferite frecvențe, trimiterea de semnale distincte la creier.
Fast Fourier Transform face același lucru, dar cu numere în loc de celule de păr. Dă-i un semnal (o secvență de eșantioane de amplitudine în timp) și returnează o listă de frecvențe și punctele lor forte. Ea răspunde: ce frecvenţe sunt prezente, şi cât de mult din fiecare?
Ce se întâmplă de fapt
Un semnal eșantionat în timp este o listă de numere: amplitudinea la fiecare punct de eșantionare. O înregistrare de 1 secundă la 44,100 Hz este 44,100 numere. Aceste numere descriu semnalul în domeniul temporal amplitudinea ca funcție a timpului.
De asemenea, Comisia a considerat că, în cazul de față, Comisia a considerat că, în conformitate cu articolul 107 alineatul (3) litera (c) din tratat, Comisia consideră că ajutorul de stat acordat în temeiul articolului 107 alineatul (1) din tratat constituie ajutor de stat în sensul articolului 107 alineatul (1) din tratat amplitudinea ca funcție de frecvență. Aceleaşi informaţii, reprezentare diferită. Cum ar fi schimbarea coordonatelor carteziene şi polare: nimic nu este creat sau distrus, doar re-exprimat.
Nucleul matematic: fiecare semnal periodic poate fi scris ca o sumă de unde sinusale și cosine la frecvențe diferite. Aceasta este teoria lui Fourier (1807). Prin urmare, Comisia concluzionează că, în conformitate cu articolul 107 alineatul (1) din tratat, Comisia consideră că ajutorul de stat acordat în temeiul articolului 107 alineatul (1) din tratat este compatibil cu piața internă cât de mult din fiecare frecvență este în semnal.
De ce "Fast"
Modul naiv de a calcula o transformare Fourier necesită Operațiuni N2 pentru eșantioane N. Pentru 1024 de mostre, asta înseamnă cam 1 milion de operaţiuni. Algoritmul Cooley-Tukey (1965) reduce acest lucru la N·log2(N) aproximativ 10.000 de operațiuni pentru aceeași intrare. O viteză de 100x. Pentru un milion de mostre, viteza este de 50.000x.
Trucul: se împarte N-punct transforma în două N/2-punct se transformă, recursiv. Acest lucru necesită N să fie o putere de 2 (sau pad cu zerouri). Fiecare împărţire în două face problema. Operaţiunea "Butterfly" combină jumătăţile:
X[k] = Even[k] + W · Odd[k]
X[k+N/2] = Even[k] - W · Odd[k]
În cazul în care W este un complex exponențial (o rotație în planul complex). Aceleaşi două sub-rezultate vă oferă două puncte de ieşire. Acesta este motivul pentru care algoritmul este "rapid" refolosi fiecare calcul de două ori.
Punerea în aplicare a PinePaper este un manual Cooley-Tukey radix-2 DIT (decimare în timp). 40 de linii de JavaScript. Am scris-o de la zero în loc să importăm o bibliotecă pentru că am vrut ca elevii să poată citi sursa şi să înţeleagă fiecare linie.
Ce înseamnă aceste bare
Când vezi un analizator de spectru baruri sărituri la muzică fiecare bară reprezintă un coş de frecvenţe. Înălțimea este magnitudinea (puterea) acestei frecvențe în semnalul curent.
- Un val de sine pur produce un bar înalt la frecvenţa sa şi nimic altceva.
- Un val pătrat produce bare la baza și fiecare armonică ciudată (3, 5, 7...), în scădere cu 1/n. Acesta este motivul pentru valuri patrate sunet "buzzy" conţin energie de înaltă frecvenţă pe care sinele pur nu o conţin.
- Zgomot alb produce bare de aproximativ egală înălțime peste tot. Fiecare frecvenţă este prezentă cu probabilitate egală.
- O voce umană produce un element fundamental (smoul pe care-l auzi) plus formatori vârfuri rezonante din forma tractului vocal care distinge vocale.
Primele trei sunt de mai jos faceți clic pe între ele. Înălţimile sunt formulele, nu este un desen: sinusul este 1 la fundamental, val pătrat este exact 1/n pe armonici ciudate.
Fereastra: De ce contează marginile
Există o captură. În cazul în care se utilizează o metodă de stabilire a valorii de piață, se utilizează o metodă de calculare a valorii de piață. Dar proba noastră e finită începe şi se opreşte. În cazul în care semnalul nu se întâmplă să fie la zero la ambele obiective, întreruperea bruscă creează un conținut artificial de înaltă frecvență. Acest lucru se numește scurgere spectral.
Fix: multiplicaţi semnalul cu o funcţie de fereastră care se reduce uşor la zero la margini. Ferestre comune:
- Hann (Cosine Bell): bun scop general, pierde unele rezoluție a frecvenței
- Hamming: similar cu Hann, dar nu ajunge la zero la margini, suprimarea lobului lateral ușor mai bine
- Blackman: lobul principal mai îngust, o mai bună suprimare a lobului lateral, pierde mai multă rezoluție a frecvenței
Alegerea este întotdeauna un compromis între rezoluția frecvenței (cât de precis puteți identifica o frecvență) și scurgeri spectrale (câtă energie sângerează în pubele învecinate). Nu există fereastră perfectă. Aceasta este o consecinţă a principiului incertitudinii nu puteți avea în mod arbitrar cunoștințe precise atât de timp și frecvență simultan.
În cazul în care FFT trăiește
Interacţionaţi constant cu rezultatele FFT:
- MP3 şi compresia AAC: transformaţi audio în domeniu de frecvenţă, aruncaţi frecvenţele sub pragul auditiv, comprimaţi ce rămâne. Transforma este întreaga bază de compresie audio pierdere.
- JPEG compresie: versiunea 2D (DCT) transformă 8×8 blocuri de pixeli în domeniul de frecvenţă, cuantizează componentele de înaltă frecvenţă. De aceea artefactele JPEG apar ca blocuri.
- WiFi and 5G: OFDM coding divide date pe mai multe sub-carrieri de frecventa. În cazul în care se utilizează o metodă bazată pe rata dobânzii, se utilizează o rată a dobânzii mai mică de 10%.
- Imagistica RMN: semnalul brut de la un scaner RMN este în spațiul de frecvență. Inversul FFT reconstituie imaginea spațială. La propriu: fiecare RMN pe care l-ai văzut vreodată este o transformare Fourier inversă.
- Shazam: calculează spectrograma (FFT peste ferestre glisante), extrase vârfuri, se potrivește modelului cu o bază de date. FFT este primul pas în recunoașterea fiecărui cântec.
Un algoritm vechi de 60 de ani, în buzunar, care rulează de miliarde de ori pe zi.
Încearcă
Deschideți PinePaper, selectați generatorul de analiză a spectrului. Generează un val pătrat. Uită-te la baruri veţi vedea armonicile ciudate căzând ca 1/n. Comută la un fierăstrău acum toate armonicile sunt prezente, cazând ca 1/n. Comută la zgomote spectru plat, fiecare frecvență la fel de probabil.
Schimbă funcţia ferestrei. Uită-te cum Hann netede spectrul cu costul vârfurilor mai largi. Comută la Blackman vârfuri mai înguste, dar sidelobes mai mici.
Nu citeşti despre FFT. Măsori semnale şi observi ce dezvăluie transformarea. Asta e diferenţa dintre cunoaştere şi înţelegere.
Referințe
- Brigham, E.O. (1988). The Fast Fourier Transform and Its Applications. Prentice Hall.
- Cooley, J.W. & Tukey, J.W. (1965). Un Algoritm pentru calculul mecanic al Complexului Fourier Series. Matematică de calcul, 19(90), 297-301.
- Fourier, J. (1822). Théorie analytique de la chaleur. Paris: Firmin Didot.
- Harris, F.J. (1978). Cu privire la utilizarea Windows pentru analiza armonică cu Discrete Fourier Transform. Proceedings of the IEEE, 66(1), 51-83.
- Oppenheim, AV. & Schafer, R.W. (2009). Discrete-Time Signal Processing (3rd ed.). Prentice Hall.
- Shannon, e.n. (1949). Comunicare în prezența zgomotului. Proceedings of the IRE, 37(1), 10-21.
- Smith, S.W. (1997). The Scientist and Engineer's Guide to Digital Signal Processing. California Technical Publishing.
- Wang, A., et al. (2003). A Industrial-Forngth Audio Search Algoritm. Proceedings of ISMIR 2003. (Algoritmul de amprentare audio Shazam.)
- Wallace, G.K. (1991). The JPEG Still Picture Compression Standard. Comunications of the ACM, 34(4), 30-44.
PinePaper's FFT este o punere în aplicare Cooley-Tukey radix-2 cu Hann, Hamming și Blackman, plus filtre de joasă trecere și de mare trecere. Încercaţi gratuit la paper.studio/editor.
Ready to create?
Start making animated GIFs, videos, and graphics — free, no signup.
Open PinePaper Editor