Andrei Shelkovenko. En af udviklerne og grundlæggeren af Vibromera.
Oversættelsen af artiklen kan indeholde unøjagtigheder.
- Fourier-transformation og signalspektrum
I mange tilfælde er opgaven med at opnå (beregne) spektret af et signal som følger. Der er en ADC, som med samplingfrekvensen Fd omdanner det kontinuerlige signal, som kommer til dens input i løbet af tiden T, til digitale samples - N stykker. Derefter sendes dette array af prøver til et program (for eksempel FourierScope), som udlæser N/2 nogle numeriske værdier.
For at tjekke, om programmet fungerer korrekt, danner vi et array af prøver som en sum af to sin(10*2*pi*x)+0,5*sin(5*2*pi*x) og sender det ind i programmet. Programmet tegnede følgende:
Der er to harmoniske på spektrumgrafen - 5 Hz med en amplitude på 0,5 V og 10 Hz med en amplitude på 1 V, alt er som i formlen for det originale signal. Alt er fint, grogrammet fungerer korrekt.
Det betyder, at hvis vi sender et reelt signal fra en blanding af to sinusoider til ADC-indgangen, vil vi få et lignende spektrum bestående af to harmoniske.
Så vores ægte målt signal af 5 sekunders varigheddigitaliseret af ADC, dvs. repræsenteret ved af diskrete prøver, har en diskret ikke-periodisk spektrum.
Fra et matematisk synspunkt - hvor mange fejl er der i denne sætning?
Lad os nu prøve at måle det samme signal i 0,5 sek.
Der er noget galt her! Den harmoniske ved 10 Hz er tegnet normalt, og i stedet for den harmoniske ved 5 Hz er der nogle uklare harmoniske.
På internettet siger de, at det er nødvendigt at tilføje nuller til slutningen af prøven, og at spektret vil blive tegnet normalt.
Det er slet ikke det. Jeg bliver nødt til at forholde mig til teorien. Lad os gå til wikipedia - kilden til viden.
2. Kontinuerlig funktion og dens Fourier-serie-repræsentation
Matematisk set er vores signal med en varighed på T sekunder en funktion f(x) givet på intervallet {0, T} (X er i dette tilfælde tid). En sådan funktion kan altid repræsenteres som en sum af harmoniske funktioner (sinus eller cosinus) af formen:
k er nummeret på den trigonometriske funktion ( nummeret på den harmoniske komponent, nummeret på den harmoniske)
T - segment, hvor funktionen er defineret (signalets varighed)
Ak- amplitude af den k'te harmoniske komponent,
θk- den indledende fase af den k'te harmoniske komponent
Hvad betyder det at "repræsentere funktionen som summen af serierne"? Det betyder, at ved at addere værdierne af de harmoniske komponenter i Fourier-serien i hvert punkt, får vi værdien af vores funktion i det punkt.
(Mere præcist vil seriens gennemsnitlige kvadratafvigelse fra funktionen f(x) gå mod nul, men på trods af den gennemsnitlige kvadratkonvergens behøver Fourier-serien af en funktion generelt set ikke at konvergere til den punkt for punkt. )
Denne serie kan også skrives i formen:
hvor , den k. komplekse amplitude.
eller
Forholdet mellem koefficienterne (1) og (3) er udtrykt ved følgende formler:
Bemærk, at alle disse tre repræsentationer af Fourier-serier er helt ækvivalente. Nogle gange, når man arbejder med Fourier-serier, er det mere praktisk at bruge eksponenter med imaginært argument i stedet for sinus og cosinus, dvs. at bruge Fourier-transformationen på kompleks form. Men det er praktisk for os at bruge formel (1), hvor Fourier-serien er repræsenteret som en sum af cosinus med tilsvarende amplituder og faser. Under alle omstændigheder er det forkert at sige, at resultatet af Fouriertransformationen af det reelle signal vil være komplekse harmoniske amplituder. Som Wiki korrekt siger: "Fouriertransformationen (ℱ) er en operation, der afbilder en funktion af en reel variabel til en anden funktion også af en reel variabel."
Det korte af det lange:
Det matematiske grundlag for spektralanalyse af signaler er Fourier-transformationen.
Fouriertransformationen gør det muligt at repræsentere en kontinuerlig funktion f(x) (signal) defineret på intervallet {0, T} som en sum af uendeligt mange (uendelige serier) trigonometriske funktioner (sinus og/eller cosinus) med bestemte amplituder og faser, der også betragtes på intervallet {0, T}. En sådan serie kaldes en Fourier-serie.
Bemærk nogle flere punkter, hvis forståelse er nødvendig for korrekt anvendelse af Fourier-transformationen til signalanalyse. Hvis vi betragter Fourier-serien (summen af sinusoider) på hele X-aksen, vil vi se, at uden for intervallet {0, T} vil Fourier-seriens funktion periodisk gentage vores funktion.
I grafen i fig. 7 er den oprindelige funktion f.eks. defineret på intervallet {-T\2, +T\2}, og Fourier-serien repræsenterer en periodisk funktion defineret på hele x-aksen.
Det skyldes, at sinusoiderne i sig selv er periodiske funktioner, så deres sum vil også være en periodisk funktion.
Således:
Vores oprindelige funktion er en kontinuerlig, ikke-periodisk funktion defineret på et segment med længden T.
Spektret for denne funktion er diskret, dvs. det er repræsenteret som en uendelig serie af harmoniske komponenter - en Fourier-serie.
Faktisk definerer Fourier-serien en periodisk funktion, som falder sammen med vores funktion på intervallet {0, T}, men for os er denne periodicitet ikke afgørende.
Næste.
Perioderne for de harmoniske komponenter er multipla af intervallet {0, T}, hvor den oprindelige funktion f(x) er defineret. Med andre ord er de harmoniske komponenters perioder multipler af varigheden af signalmålingen. For eksempel er perioden for den første harmoniske i en Fourier-serie lig med intervallet T, hvor funktionen f(x) er defineret. Perioden for den anden harmoniske i en Fourier-serie er lig med intervallet T/2. Og så videre (se figur 8).
Følgelig er frekvenserne af harmoniske komponenter multipler af 1/T. Det vil sige, at frekvenserne af de harmoniske komponenter Fk er Fk= k\T, hvor k har værdier fra 0 til ∞, for eksempel k=0 F0=0; k=1 F1=1\T; k=2 F2=2\T;k=3 F3=3\T;.... Fk= k\T (ved nul frekvens, en konstant komponent).
Lad vores startfunktion være et signal, der er optaget i løbet af T=1 sek. Så vil perioden for den første harmoniske være lig med varigheden af vores signal T1=T=1 sek, og frekvensen af den harmoniske er lig med 1 Hz. Perioden for den anden harmoniske vil være lig med varigheden af vores signal divideret med 2 (T2=T/2=0,5 sek.), og frekvensen er lig med 2 Hz. For den tredje harmoniske er T3=T/3 sek., og frekvensen er 3 Hz. Og så videre.
Skridtet mellem overtonerne er i dette tilfælde 1 Hz.
Således kan et signal med en varighed på 1 sek. dekomponeres i harmoniske komponenter (for at få et spektrum) med en frekvensopløsning på 1 Hz.
For at øge opløsningen med en faktor 2 til 0,5 Hz, er det nødvendigt at øge målingens varighed med en faktor 2 til 2 sek. Et 10-sekunders signal kan nedbrydes i harmoniske komponenter (spektrum) med en frekvensopløsning på 0,1 Hz. Der er ingen andre måder at øge frekvensopløsningen på.
Der er en måde, hvorpå man kunstigt kan øge signalets varighed ved at tilføje nuller til rækken af samples. Men det øger ikke den reelle frekvensopløsning.
3. Diskrete signaler og diskret Fourier-transformation
Med udviklingen af digital teknologi har måden, man lagrer måledata (signaler) på, ændret sig. Hvor et signal tidligere kunne optages på en båndoptager og lagres på et bånd i analog form, digitaliseres signaler nu og lagres i filer i computerens hukommelse som et sæt tal (counts).
Det sædvanlige skema for signalmåling og -digitalisering ser ud som følger.
Måletransducer -- Signal normalisator -- ADC -- Computer
(Fig.9 Skematisk oversigt over målekanalen)
Signalet fra måletransduceren går til ADC'en i et tidsrum T. De signalaflæsninger (sampling), der modtages i tidsrummet T, overføres til computeren og gemmes i hukommelsen.
Hvilke krav er der til parametrene for signaldigitalisering? En enhed, der konverterer det analoge indgangssignal til en diskret kode (digitalt signal), kaldes en analog-til-digital-konverter (ADC) (© Wiki).
En af de grundlæggende parametre for ADC er den maksimale samplinghastighed - frekvensen for sampling af et signal, som er kontinuerligt i tid. Sampleraten måles i hertz. ((© Wiki))
Ifølge Kotelnikovs sætning, hvis et kontinuerligt signal har et spektrum begrænset af frekvensen Fmax, kan det fuldt og entydigt rekonstrueres fra dets diskrete prøver taget med tidsintervaller T = 1/2*Fmax, dvs. med en frekvens Fd ≥ 2*Fmax, hvor Fd - samplingfrekvens; Fmax - den maksimale frekvens af signalspektret. Med andre ord skal frekvensen for signaldigitalisering (ADC'ens samplingfrekvens) være mindst 2 gange højere end den maksimale frekvens for det signal, vi ønsker at måle.
Og hvad sker der, hvis vi tager prøver med lavere frekvens, end Kotelnikovs teorem kræver?
I dette tilfælde er der en "aliasing"-effekt (også kaldet stroboskopisk effekt, moiré-effekt), hvor et højfrekvent signal efter digitalisering bliver til et lavfrekvent signal, som i virkeligheden ikke eksisterer. I fig. 11 er den røde sinuskurve med høj frekvens det virkelige signal. Den blå sinuskurve med lavere frekvens er et fiktivt signal, der opstår, fordi der i løbet af samplingstiden er gået mere end en halv periode af det højfrekvente signal.
For at undgå aliasing-effekten er der placeret et særligt anti-alias-filter (lavpasfilter) før ADC'en. Det passerer frekvenser, der er lavere end halvdelen af ADC-samplingfrekvensen, og afskærer højere frekvenser.
For at beregne signalets spektrum ud fra dets diskrete samples bruges den diskrete Fourier-transformation (DFT). Bemærk igen, at spektret for et diskret signal "pr. definition" er begrænset til en frekvens Fmax, der er mindre end halvdelen af samplingfrekvensen Fd. Derfor kan spektret af et diskret signal repræsenteres ved summen af en endelig antal harmoniske, i modsætning til den uendelige sum for Fourier-serien af et kontinuerligt signal, hvis spektrum kan være ubegrænset. Ifølge Kotelnikovs teorem skal den maksimale frekvens for en harmonisk være sådan, at den udgør mindst to samples, så antallet af harmoniske er lig med halvdelen af antallet af samples i et diskret signal. Det vil sige, at hvis der er N samples i samplet, vil antallet af overtoner i spektret være N/2.
Betragt nu den diskrete Fourier-transformation (DFT).
Hvis man sammenligner det med Fourier-serien
Som vi kan se, er de sammenfaldende, bortset fra at tiden i FFT'en er diskret, og antallet af harmoniske er begrænset til N/2, som er halvdelen af antallet af samples.
DFT-formler skrives i dimensionsløse heltalsvariabler k, s, hvor k er antallet af signalprøver, og s er antallet af spektralkomponenter.
Værdien s viser antallet af fulde harmoniske svingninger pr. periode T (signalmålingens varighed). Den diskrete Fourier-transformation bruges til at finde de harmoniske svingningers amplituder og faser numerisk, dvs. "på computeren".
Som det allerede blev sagt ovenfor, når man dekomponerer en ikke-periodisk funktion (vores signal) i Fourier-serier, svarer den resulterende Fourier-serie faktisk til en periodisk funktion med periode T (Fig.12).
Som det kan ses i fig. 12, er funktionen f(x) periodisk med perioden T0. Men på grund af det faktum, at måleprøvelængden T ikke er lig med funktionsperioden T0, har funktionen opnået som en Fourier-serie en diskontinuitet i punktet T. Som et resultat vil spektret af denne funktion indeholde et stort antal højfrekvente harmoniske. Hvis varigheden af måleprøven T faldt sammen med perioden for funktionen T0, ville spektret efter Fourier-transformationen kun indeholde den første harmoniske (en sinuskurve med en periode lig med varigheden af prøven), fordi funktionen f(x) er en sinuskurve.
Med andre ord "ved" DFT-programmet ikke, at vores signal er et "udsnit af en sinuskurve", men forsøger at repræsentere en periodisk funktion som en serie, der har en diskontinuitet på grund af diskontinuiteten i de enkelte stykker af sinuskurven.
Resultatet er, at der opstår overtoner i spektret, som samlet set skal repræsentere funktionens form, inklusive denne diskontinuitet.
For at få et "korrekt" spektrum af et signal, der er en sum af flere sinusoider med forskellige perioder, er det således nødvendigt, at en heltalligt antal perioder af hver sinuskurve skal være til stede i signalets måleperiode. I praksis kan denne betingelse opfyldes med en tilstrækkelig lang varighed af signalmåling.
Ved kortere varighed vil billedet se "værre" ud:
I praksis kan det være svært at forstå, hvor de "rigtige komponenter" er, og hvor "artefakterne" er forårsaget af uoverensstemmelse mellem komponentperioder og signalets samplingvarighed eller "spring og brud" i bølgeformen. Der er selvfølgelig en grund til, at ordene "ægte komponenter" og "artefakter" er sat i anførselstegn. Tilstedeværelsen af mange overtoner på spektrumgrafen betyder ikke, at vores signal faktisk består af dem. Det er som at tro, at tallet 7 "består" af tallene 3 og 4. Tallet 7 kan opfattes som summen af 3 og 4 - det er korrekt.
Så vores signal... eller rettere ikke engang "vores signal", men en periodisk funktion, der er sammensat ved at gentage vores signal (sample), kan også repræsenteres som en sum af harmoniske (sinusbølger) med bestemte amplituder og faser. Men i mange tilfælde, der er vigtige for praksis (se figurerne ovenfor), er det faktisk muligt at relatere de harmoniske, der opnås i spektret, til reelle processer, der har cyklisk karakter og bidrager væsentligt til signalets form.
Nogle resultater
1. Et reelt målt signal med en varighed på T sekunder digitaliseret af ADC, dvs. repræsenteret af et sæt diskrete samples (N stykker), har et diskret ikke-periodisk spektrum repræsenteret af et sæt harmoniske (N/2 stykker).
2. Signalet er repræsenteret af et sæt gyldige værdier, og dets spektrum er repræsenteret af et sæt gyldige værdier. Frekvenserne for de harmoniske er positive. Bare fordi det er matematisk mere bekvemt at repræsentere spektret i kompleks form ved hjælp af negative frekvenser, betyder det ikke, at "det er rigtigt", og "det er sådan, du altid skal gøre det".
3. Signalet målt på tidspunkt T er kun bestemt på tidspunkt T. Hvad der skete, før vi begyndte at måle signalet, og hvad der vil ske derefter, er ukendt for videnskaben. Og i vores tilfælde er det ikke interessant. FFT af det tidsbegrænsede signal giver dets "rigtige" spektrum i den forstand, at det under visse betingelser gør det muligt at beregne amplituden og frekvensen af dets komponenter.