Andrei Shelkovenko. Een van de ontwikkelaars en oprichter van Vibromera.
De vertaling van het artikel kan onnauwkeurigheden bevatten.
- Fouriertransformatie en signaalspectrum
In veel gevallen gaat het verkrijgen (berekenen) van het spectrum van een signaal als volgt. Er is een ADC die met bemonsteringsfrequentie Fd het continue signaal, dat gedurende tijd T zijn ingang bereikt, omzet in digitale samples - N stuks. Vervolgens wordt deze reeks monsters ingevoerd in een programma (bijvoorbeeld FourierScope) die N/2 numerieke waarden geeft.
Om te controleren of het programma correct werkt, vormen we een matrix van monsters als een som van twee sin(10*2*pi*x)+0,5*sin(5*2*pi*x) en voeren deze in het programma in. Het programma tekende het volgende:
Er zijn twee harmonischen op de spectrumgrafiek - 5 Hz met een amplitude van 0,5 V en 10 Hz met een amplitude van 1 V, alles is zoals in de formule van het originele signaal. Alles is in orde, het grogram werkt correct.
Dit betekent dat als we een echt signaal van een mengsel van twee sinusoïden naar de ADC-ingang voeren, we een soortgelijk spectrum krijgen dat bestaat uit twee harmonischen.
Dus onze Echt gemeten signaal van 5 sec. duurgedigitaliseerd door ADC, d.w.z. vertegenwoordigd discreet monsters, heeft een discreet niet-periodiek spectrum.
Vanuit wiskundig oogpunt - hoeveel fouten zitten er in deze zin?
Laten we nu proberen hetzelfde signaal te meten gedurende 0,5 sec.
Hier klopt iets niet! De harmonische bij 10 Hz is normaal getekend, en in plaats van de harmonische bij 5 Hz zijn er een paar onduidelijke harmonischen.
Op het internet zeggen ze dat het nodig is om nullen toe te voegen aan het einde van de steekproef en dat het spectrum dan normaal getekend wordt.
Dat is het helemaal niet. Ik zal me met de theorie moeten bezighouden. Laten we naar wikipedia - de bron van kennis.
2. Continue functie en de weergave in de Fourierreeks
Wiskundig gezien is ons signaal met een duur van T seconden een functie f(x) gegeven op het interval {0, T} (X is in dit geval tijd). Zo'n functie kan altijd worden voorgesteld als een som van harmonische functies (sinus of cosinus) van de vorm:
k is het getal van de goniometrische functie (het getal van de harmonische component, het getal van de harmonische)
T - segment waarin de functie wordt gedefinieerd (de duur van het signaal)
Ak- amplitude van de k-de harmonische component,
θk- de beginfase van de k-de harmonische component
Wat betekent het om "de functie weer te geven als de som van de reeksen"? Het betekent dat we door de waarden van de harmonische componenten van de Fourier-reeks op elk punt op te tellen, de waarde van onze functie op dat punt krijgen.
(Strikt genomen zal de gemiddelde kwadratische afwijking van de reeks van de functie f(x) naar nul neigen, maar ondanks de gemiddelde kwadratische convergentie hoeft de Fourierreeks van een functie er in het algemeen niet punt voor punt naar toe te convergeren. )
Deze reeks kan ook geschreven worden in de vorm:
waarbij de k-de complexe amplitude.
of
De relatie tussen de coëfficiënten (1) en (3) wordt uitgedrukt door de volgende formules:
Merk op dat al deze drie voorstellingen van Fourierreeksen perfect equivalent zijn. Soms is het handiger om bij het werken met Fourierreeksen exponenten van het imaginaire argument te gebruiken in plaats van sinussen en cosinussen, d.w.z. om de Fouriertransformatie in complexe vorm te gebruiken. Maar het is handig voor ons om formule (1) te gebruiken, waarbij de Fourier-serie wordt weergegeven als een som van cosinussen met bijbehorende amplitudes en fasen. In ieder geval is het fout om te zeggen dat het resultaat van de Fouriertransformatie van het echte signaal complexe harmonische amplitudes zal zijn. Zoals Wiki correct zegt: "De Fouriertransformatie (ℱ) is een bewerking die een functie van een reële variabele omzet in een andere functie van eveneens een reële variabele."
Conclusie:
De wiskundige basis voor spectrale analyse van signalen is de Fouriertransformatie.
De Fouriertransformatie maakt het mogelijk om een continue functie f(x) (signaal) gedefinieerd op het interval {0, T} te representeren als een som van oneindig veel (oneindige series) goniometrische functies (sinus en/of cosinus) met bepaalde amplitudes en fasen die ook beschouwd worden op het interval {0, T}. Zo'n reeks wordt een Fourierreeks genoemd.
Er zijn nog enkele punten die we moeten begrijpen om de Fouriertransformatie correct te kunnen toepassen bij signaalanalyse. Als we de Fourierreeks (som van sinusoïden) op de gehele X-as beschouwen, zullen we zien dat buiten het interval {0, T} de functie van de Fourierreeks onze functie periodiek herhaalt.
Bijvoorbeeld, in de grafiek in Fig. 7 is de originele functie gedefinieerd op het interval {T\2, +T\2}, en de Fourier-reeks vertegenwoordigt een periodieke functie gedefinieerd op de gehele x-as.
Dit komt omdat de sinusoïden zelf periodieke functies zijn, dus hun som zal ook een periodieke functie zijn.
Dus:
Onze oorspronkelijke functie is een continue, niet-periodieke functie gedefinieerd op een segment met lengte T.
Het spectrum van deze functie is discreet, dat wil zeggen dat het wordt weergegeven als een oneindige reeks harmonische componenten - een Fourierreeks.
In feite definieert de Fourierreeks een periodieke functie die samenvalt met onze functie op het interval {0, T}, maar voor ons is deze periodiciteit niet essentieel.
Volgende.
De perioden van harmonische componenten zijn veelvouden van het interval {0, T}, waarop de initiële functie f(x) is gedefinieerd. Met andere woorden, de perioden van harmonischen zijn veelvouden van de duur van de signaalmeting. De periode van de eerste harmonische in een Fourierreeks is bijvoorbeeld gelijk aan het interval T waarin de functie f(x) is gedefinieerd. De periode van de tweede harmonische in een Fourierreeks is gelijk aan het interval T/2. Enzovoort (zie figuur 8).
Dienovereenkomstig zijn de frequenties van harmonische componenten veelvouden van 1/T. Dat wil zeggen, frequenties van harmonische componenten Fk zijn Fk= kT, waarbij k waarden heeft van 0 tot ∞, bijvoorbeeld, k=0 F0=0; k=1 F1=1\T; k=2 F2=2\T;k=3 F3=3\T;.... Fk= k (bij nulfrequentie een constante component).
Laat onze beginfunctie een signaal zijn dat is opgenomen gedurende T=1 sec. Dan is de periode van de eerste harmonische gelijk aan de duur van ons signaal T1=T=1 sec. en de frequentie van de harmonische is gelijk aan 1 Hz. De periode van de tweede harmonische is gelijk aan de duur van ons signaal gedeeld door 2 (T2=T/2=0,5 sec.) en de frequentie is gelijk aan 2 Hz. Voor de derde harmonische is T3=T/3 sec en de frequentie is 3 Hz. Enzovoort.
De stap tussen harmonischen is in dit geval 1 Hz.
Zo kan een signaal met een duur van 1 sec. ontleed worden in harmonische componenten (om een spectrum te verkrijgen) met een frequentieresolutie van 1 Hz.
Om de resolutie te verhogen met een factor 2 tot 0,5 Hz, is het nodig om de duur van de meting te verhogen met een factor 2 tot 2 sec. Een signaal van 10 seconden kan worden ontleed in harmonische componenten (spectrum) met een frequentieresolutie van 0,1 Hz. Er zijn geen andere manieren om de frequentieresolutie te verhogen.
Er is een manier om de signaalduur kunstmatig te verhogen door nullen toe te voegen aan de reeks samples. Maar dit verhoogt de echte frequentieresolutie niet.
3. Discrete signalen en discrete fouriertransformatie
Met de ontwikkeling van digitale technologie zijn de manieren waarop meetgegevens (signalen) worden opgeslagen veranderd. Waar voorheen een signaal kon worden opgenomen op een bandrecorder en analoog kon worden opgeslagen op een band, worden signalen nu gedigitaliseerd en opgeslagen in bestanden in het computergeheugen als een reeks getallen (tellingen).
Het gebruikelijke schema van signaalmeting en digitalisering ziet er als volgt uit.
Meettransducer -- Signaalnormalisator -- ADC -- Computer
(Fig.9 Schematische weergave van het meetkanaal)
Het signaal van de meetopnemer gaat naar de ADC voor een periode T. De signaalwaarden (bemonstering) ontvangen gedurende tijd T worden doorgestuurd naar de computer en opgeslagen in het geheugen.
Wat zijn de vereisten voor signaaldigitaliseringsparameters? Een apparaat dat het analoge ingangssignaal omzet in een discrete code (digitaal signaal) wordt een analoog-digitaalomzetter (ADC) genoemd (© Wiki).
Een van de basisparameters van ADC is de maximale bemonsteringssnelheid - de frequentie waarmee een signaal dat continu is in de tijd, wordt bemonsterd. De bemonsteringsfrequentie wordt gemeten in hertz. ((© Wiki))
Volgens de stelling van Kotelnikov, als een continu signaal een spectrum heeft dat begrensd wordt door de frequentie Fmax, dan kan het volledig en uniek gereconstrueerd worden uit de discrete monsters die genomen zijn met tijdsintervallen T = 1/2*Fmax, d.w.z. met een frequentie Fd ≥ 2*Fmax, waarbij Fd - samplefrequentie; Fmax - de maximale frequentie van het signaalspectrum. Met andere woorden, de frequentie van de digitalisering van het signaal (samplefrequentie van de ADC) moet minstens 2 keer zo hoog zijn als de maximale frequentie van het signaal dat we willen meten.
En wat gebeurt er als we monsters nemen met een lagere frequentie dan vereist door de stelling van Kotelnikov?
In dit geval is er sprake van een "aliasing"-effect (ook wel stroboscopisch effect, moiré-effect genoemd), waarbij een hoogfrequent signaal na digitalisering verandert in een laagfrequent signaal dat in feite niet bestaat. In Fig. 11 is de rode sinus van hoge frequentie het echte signaal. De blauwe sinus van lagere frequentie is een fictief signaal, dat ontstaat doordat gedurende de samplingtijd meer dan een halve periode van het hoogfrequente signaal voorbij is gegaan.
Om het aliasingeffect te vermijden, wordt een speciaal anti-aliasfilter (laagdoorlaatfilter) vóór de ADC geplaatst. Het laat frequenties lager dan de helft van de ADC-samplefrequentie door en sluit hogere frequenties af.
Om het signaalspectrum te berekenen aan de hand van de discrete samples wordt de discrete fouriertransformatie (DFT) gebruikt. Merk opnieuw op dat het spectrum van een discreet signaal "per definitie" beperkt is tot een frequentie Fmax kleiner dan de helft van de samplefrequentie Fd. Daarom kan het spectrum van een discreet signaal worden weergegeven door de som van een eindig aantal harmonischen, in tegenstelling tot de oneindige som voor de Fourierreeks van een continu signaal, waarvan het spectrum onbeperkt kan zijn. Volgens de stelling van Kotelnikov moet de maximale frequentie van een harmonische zodanig zijn dat deze ten minste twee samples omvat, dus het aantal harmonischen is gelijk aan de helft van het aantal samples van een discreet signaal. Dat wil zeggen, als er N samples in het sample zitten, zal het aantal harmonischen in het spectrum N/2 zijn.
Beschouw nu de discrete fouriertransformatie (DFT).
Vergelijken met de Fourier-reeks
Zoals we kunnen zien, komen ze overeen, behalve dat de tijd in de FFT discreet is en het aantal harmonischen beperkt is tot N/2, wat de helft is van het aantal samples.
DFT-formules worden geschreven in dimensieloze gehele variabelen k, s, waarbij k het aantal signaalmonsters is en s het aantal spectrale componenten.
De waarde s toont het aantal volledige harmonische oscillaties per periode T (duur van de signaalmeting). De discrete Fouriertransformatie wordt gebruikt om de amplitudes en fasen van harmonischen numeriek te vinden, dus "op de computer".
Zoals hierboven al is gezegd, komt bij het ontbinden van een niet-periodieke functie (ons signaal) in Fourierreeksen de resulterende Fourierreeks feitelijk overeen met een periodieke functie met periode T (Fig.12).
Zoals te zien is in Fig. 12 is de functie f(x) periodiek met periode T0. Omdat de lengte van het meetmonster T echter niet gelijk is aan de functieperiode T0, heeft de functie die wordt verkregen als een Fourierreeks een discontinuïteit in punt T. Als gevolg daarvan zal het spectrum van deze functie een groot aantal hoogfrequente harmonischen bevatten. Als de duur van meetmonster T zou samenvallen met de periode van functie T0, dan zou het spectrum dat wordt verkregen na de Fouriertransformatie alleen de eerste harmonische bevatten (een sinusoïde met een periode die gelijk is aan de duur van het meetmonster), omdat de functie f(x) een sinusoïde is.
Met andere woorden, het DFT-programma "weet" niet dat ons signaal een "plak van een sinus" is, maar probeert een periodieke functie die een discontinuïteit heeft door de discontinuïteit van afzonderlijke stukken van de sinus, weer te geven als een reeks.
Als gevolg hiervan verschijnen er harmonischen in het spectrum, die in totaal de vorm van de functie moeten weergeven, inclusief deze discontinuïteit.
Om een "correct" spectrum te krijgen van een signaal dat een som is van meerdere sinusoïden met verschillende perioden, is het dus noodzakelijk dat een geheel aantal perioden van Elke sinusoïde moet aanwezig zijn tijdens de meetperiode van het signaal. In de praktijk kan aan deze voorwaarde worden voldaan met een voldoende lange duur van de signaalmeting.
Bij een kortere duur ziet het beeld er "slechter" uit:
In de praktijk kan het moeilijk zijn om te begrijpen waar de "echte componenten" zitten en waar de "artefacten", veroorzaakt door inconsistentie van componentperioden en duur van signaalbemonstering of "sprongen en onderbrekingen" in de golfvorm. Natuurlijk staan de woorden "echte componenten" en "artefacten" niet voor niets tussen aanhalingstekens. De aanwezigheid van veel harmonischen op de spectrumgrafiek betekent niet dat ons signaal daar ook echt uit bestaat. Het is net zoiets als denken dat getal 7 "bestaat" uit de getallen 3 en 4. Je kunt het getal 7 zien als de som van 3 en 4 - dat klopt.
Dus ook ons signaal... of eigenlijk niet eens "ons signaal", maar een periodieke functie samengesteld door herhaling van ons signaal (sample) kan worden weergegeven als een som van harmonischen (sinusgolven) met bepaalde amplitudes en fasen. Maar in veel gevallen die belangrijk zijn voor de praktijk (zie bovenstaande figuren) is het inderdaad mogelijk om de verkregen harmonischen in het spectrum ook in verband te brengen met echte processen die een cyclisch karakter hebben en significant bijdragen aan de vorm van het signaal.
Enkele resultaten
1. Een echt gemeten signaal met een duur van T sec. gedigitaliseerd door ADC, d.w.z. weergegeven door een set discrete monsters (N stuks), heeft een discreet niet-periodiek spectrum weergegeven door een set harmonischen (N/2 stuks).
2. Het signaal wordt voorgesteld door een verzameling geldige waarden en het spectrum wordt voorgesteld door een verzameling geldige waarden. De frequenties van de harmonischen zijn positief. Het is niet omdat het wiskundig handiger is om het spectrum in complexe vorm weer te geven met negatieve frequenties dat "dit juist is" en "dit is hoe je het altijd moet doen".
3. Wat er gebeurde voordat we het signaal begonnen te meten en wat er daarna zal gebeuren is onbekend voor de wetenschap. En in ons geval is het niet interessant. FFT van het in de tijd beperkte signaal geeft het "echte" spectrum, in de zin dat het onder bepaalde omstandigheden mogelijk is om de amplitude en frequentie van de componenten te berekenen.