· 7 min read

Wat de Fiat daadwerkelijk laat zien

Elk geluid dat je hoort is een som sinusgolven. De Fast Fourier Transform ontbindt dat bedrag. Dit is wat dat betekent, hoe het werkt, en waarom een 60-jarige algoritme nog overal is.

De vraag

Speel een akkoord op een piano zeg, C en E samen. Je oor hoort één geluid. Maar dat geluid is twee frequenties boven elkaar: 261,6 Hz en 329,6 Hz. Je cochlea scheidt ze fysiek verschillende haarcellen resoneren op verschillende frequenties en sturen verschillende signalen naar je hersenen.

De snelle Fourier Transform doet hetzelfde, maar met getallen in plaats van haarcellen. Geef het een signaal (een opeenvolging van amplitudemonsters in de tijd) en het geeft een lijst van frequenties en hun sterktes. Het antwoordt: Welke frequenties zijn aanwezig, en hoeveel van elk?

Wat gebeurt er eigenlijk

Een in de tijd bemonsterd signaal is een lijst van getallen: de amplitude op elk monsterpunt. Een 1-seconde opname bij 44,100 Hz is 44,100 nummers. Deze getallen beschrijven het signaal in het time domein amplitude als functie van de tijd.

De Commissie is van mening dat de Commissie in haar besluit tot inleiding van de procedure heeft geconcludeerd dat de door de Ierse autoriteiten verstrekte informatie in strijd is met artikel 107, lid 1, van het Verdrag amplitude als functie van de frequentie. Dezelfde informatie, andere vertegenwoordiging. Zoals schakelen tussen Cartesiaanse en poolcoördinaten: niets wordt gecreëerd of vernietigd, alleen opnieuw uitgedrukt.

De wiskundige kern: elk periodiek signaal kan worden geschreven als een som van sinus- en cosinusgolven bij verschillende frequenties. Dit is de stelling van Fourier (1807). De [naam van de [naam van de entiteit] hoeveel van elke frequentie in het signaal zit.

Waarom "Snel"

De naïeve manier om een Fourier transformatie te berekenen vereist N2-operaties voor N-monsters. Voor 1024 monsters is dat ongeveer 1 miljoen operaties. Het algoritme van Cooley-Tukey (1965) reduceert dit tot N·log2(N) ongeveer 10.000 operaties voor dezelfde input. Een 100x snelheid. Voor een miljoen monsters is de snelheid 50.000x.

De truc: deel de N-punt om in twee N/2-punt transformeert, recursief. Dit vereist N om een vermogen van 2 (of je pad met nullen). Elke splitsing halveert het probleem. De "vlinder" operatie combineert de helften:

X[k]     = Even[k] + W · Odd[k]
X[k+N/2] = Even[k] - W · Odd[k]

Waar W een complexe exponentiële (een rotatie in het complexe vlak). Dezelfde twee subresultaten geven je twee outputpunten. Dit is de reden waarom het algoritme is "snel" het hergebruikt elke berekening twee keer.

De implementatie van PinePaper is een tekstboek Cooley-Tukey radix-2 DIT (decimation in time). 40 lijnen JavaScript. We schreven het vanaf nul in plaats van een bibliotheek te importeren omdat we wilden dat studenten de bron konden lezen en elke regel konden begrijpen.

Wat betekenen die bars

Wanneer u een spectrumanalyser ziet bars die naar muziek springen elke balk vertegenwoordigt een frequentiebak. De hoogte is de grootte (sterkte) van die frequentie in het huidige signaal.

  • Een zuivere sinusgolf produceert een hoge bar op zijn frequentie en niets anders.
  • Een vierkante golf produceert bars op de fundamentele en elke oneven harmonische (3rd, 5th, 7th...), afnemend als 1/n. Dit is waarom vierkante golven klinken "buzzy" ze bevatten hoogfrequente energie die zuivere zonden niet bevatten.
  • White noise produceert overal bars van ongeveer gelijke hoogte. Elke frequentie is aanwezig met gelijke waarschijnlijkheid.
  • Een menselijke stem produceert een fundamentele (de toonhoogte die je hoort) plus formanten resonante pieken van de vorm van je stem, die klinkers onderscheiden.

De eerste drie staan er onder klik tussen hen. De hoogten zijn de formules, geen tekening: de sinus is 1 bij de fundamentele, de vierkante golf is precies 1/n op de vreemde harmonischen.

Interactive demo — open in editor pp:PinePaper

Venster: Waarom de Randen Matter

Er zit een addertje onder het gras. De Commissie is van mening dat de maatregel een economisch voordeel vormt voor de regio Sardinië. Maar ons monster is eindig het begint en stopt. Als het signaal niet toevallig op nul staat bij beide eindpunten, zorgt de abrupte cutoff voor kunstmatig hoogfrequente inhoud. Dit heet spectrale lekkage.

De fix: vermenigvuldig het signaal met een vensterfunctie die soepel aan de randen tot nul kan leiden. Gemeenschappelijke vensters:

  • Hann (cosinusbel): goed algemeen doel, verliest enige frequentieresolutie
  • Hamming: vergelijkbaar met Hann maar bereikt geen nul aan de randen, iets betere sidelobe onderdrukking
  • Blackman: smallere hoofdkwab, betere sidelobe onderdrukking, verliest meer frequentieresolutie

De keuze is altijd een afweging tussen frequentieresolutie (hoe precies je een frequentie kunt identificeren) en spectrale lekkage (hoeveel energie er in de aangrenzende bakken bloedt). Er is geen perfect raam. Dit is een gevolg van het onzekerheidsbeginsel u kunt niet willekeurig nauwkeurige kennis hebben van zowel tijd als frequentie tegelijkertijd.

De Commissie is van mening dat de Commissie in haar besluit tot inleiding van de procedure heeft geconcludeerd dat de Commissie niet heeft aangetoond dat de maatregel niet verenigbaar is met de interne markt

U interageert voortdurend met de resultaten van het OT:

  • MP3 en AAC compressie: transformeer audio naar frequentiedomein, gooi frequenties onder de gehoordrempel weg, comprimeer wat overblijft. De transformatie is de volledige basis van verlies audio compressie.
  • JPEG-compressie: de 2D-versie (DCT) transformeert 8×8 pixelblokken naar frequentiedomein, quantiseert hoogfrequente componenten. Daarom verschijnen JPEG artefacten als blokken.
  • WiFi en 5G: OFDM-codering splitst gegevens over vele frequentiesub-carriers. De Commissie is van mening dat de Commissie van oordeel is dat de door de Commissie verstrekte informatie in overeenstemming is met artikel 107, lid 1, VWEU.
  • MRI beeldvorming: het ruwe signaal van een MRI scanner is in de frequentieruimte. De inverse Fiat reconstrueren het ruimtelijke beeld. Letterlijk: elke MRI die je ooit hebt gezien is een omgekeerde Fourier transformatie.
  • Shazam: berekent het spectrogram (FFT over schuifvensters), haalt pieken, past het patroon tegen een database. De Fiat is de eerste stap in het herkennen van elk nummer.

Een 60-jarige algoritme, in je zak, die miljarden keren per dag draait.

Interactive demo — open in editor pp:PinePaper

Probeer het

Open PinePaper, selecteer de Spectrum Analyzer generator. Genereer een vierkante golf. Kijk naar de bars je zult de vreemde harmonischen zien vallen als 1/n. Schakel over op een zaagtand nu zijn alle harmonischen aanwezig, vallen af als 1/n. Schakel over op lawaai plat spectrum, elke frequentie even waarschijnlijk.

Wijzig de vensterfunctie. Bekijk hoe Hann het spectrum glad maakt ten koste van bredere pieken. Schakel over naar Blackman smallere pieken maar lagere zijlobben.

Je leest niet over de Fiat. Je meet signalen en observeert wat de transformatie onthult. Dat is het verschil tussen weten en begrijpen.

Referenties

  • Brigham, E.O. (1988). The Fast Fourier Transform and Its Applications. Prentice Hall.
  • Cooley, JW. & Tukey, J.W. (1965). Een algoritme voor de Machine Berekening van Complex Fourier Series. Mathematics of Computation, 19(90), 297-301.
  • Fourier, J. (1822). Théorie analytique de la chaleur. Paris: Firmin Didot.
  • Harris, F.J. (1978). Over het gebruik van Windows voor Harmonische Analyse met de Discrete Fourier Transform. * Procedure IEEE*, 66(1), 51-83.
  • Oppenheim, AV. & Schafer, R.W. (2009). * Discrete-Time Signal Processing* (3rd ed.). Prentice Hall.
  • Shannon, CE. (1949). Communicatie in de aanwezigheid van lawaai. 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). Een Industrial-Strength Audio Search Algorithm. Proceedings of ISMIR 2003. (Shazam's audio vingerafdruk algoritme)
  • Wallace, G.K. (1991). De JPEG Still Picture Compression Standard. * Communications of the ACM*, 34(4), 30-44.

PinePaper'sBV is een Cooley-Tukey radix-2 implementatie met Hann, Hamming en Blackman windowing, plus low-pass en high-pass filters. Probeer het gratis bij pinepaper.studio/editor.

Ready to create?

Start making animated GIFs, videos, and graphics — free, no signup.

Open PinePaper Editor