Andrei Shelkovenko. Uno degli sviluppatori e fondatore di Vibromera.
La traduzione dell'articolo può contenere imprecisioni.
- Trasformata di Fourier e spettro del segnale
In molti casi il compito di ottenere (calcolare) lo spettro di un segnale è il seguente. C'è un ADC che, con frequenza di campionamento Fd, trasforma il segnale continuo che arriva al suo ingresso nel tempo T in campioni digitali - N pezzi. Questa serie di campioni viene poi inviata a un programma (per esempio FourierScope) che produce N/2 valori numerici.
Per verificare se il programma funziona correttamente, formiamo una matrice di campioni come somma di due sin(10*2*pi*x)+0,5*sin(5*2*pi*x) e la inseriamo nel programma. Il programma ha disegnato quanto segue:
Sul grafico dello spettro sono presenti due armoniche - 5 Hz con ampiezza di 0,5 V e 10 Hz con ampiezza di 1 V, tutto come nella formula del segnale originale. Tutto va bene, il programma funziona correttamente.
Ciò significa che se alimentiamo un segnale reale di una miscela di due sinusoidi all'ingresso dell'ADC, otterremo uno spettro simile costituito da due armoniche.
Quindi, il nostro reale segnale misurato della durata di 5 secondi, digitalizzata dall'ADC, cioè rappresentata da discreto campioni, ha un discreto non periodico spettro.
Da un punto di vista matematico, quanti errori ci sono in questa frase?
Ora proviamo a misurare lo stesso segnale per 0,5 secondi.
Qui c'è qualcosa di sbagliato! L'armonica a 10 Hz viene disegnata normalmente, mentre al posto dell'armonica a 5 Hz ci sono alcune armoniche poco chiare.
Su Internet si dice che è necessario aggiungere degli zeri alla fine del campione e lo spettro verrà disegnato normalmente.
Non è affatto così. Dovrò occuparmi della teoria. Andiamo a wikipedia - la fonte della conoscenza.
2. Funzione continua e sua rappresentazione in serie di Fourier
Matematicamente, il nostro segnale con durata T secondi è una funzione f(x) data sull'intervallo {0, T} (X in questo caso è il tempo). Tale funzione può sempre essere rappresentata come una somma di funzioni armoniche (seno o coseno) della forma:
k è il numero della funzione trigonometrica (il numero della componente armonica, il numero dell'armonica)
T - segmento in cui è definita la funzione (la durata del segnale)
Ak- ampiezza della componente armonica k-esima,
θk- la fase iniziale della kesima componente armonica
Cosa significa "rappresentare la funzione come somma delle serie"? Significa che sommando i valori delle componenti armoniche della serie di Fourier in ogni punto, otteniamo il valore della nostra funzione in quel punto.
(In senso più stretto, lo scarto quadratico medio della serie dalla funzione f(x) tenderà a zero, ma nonostante la convergenza quadratica media, la serie di Fourier di una funzione non deve necessariamente, in generale, convergere ad essa punto per punto). )
Questa serie può essere scritta anche nella forma:
dove , l'ampiezza complessa k.
o
La relazione tra i coefficienti (1) e (3) è espressa dalle seguenti formule:
Si noti che tutte e tre queste rappresentazioni delle serie di Fourier sono perfettamente equivalenti. A volte, quando si lavora con le serie di Fourier, è più comodo usare gli esponenti dell'argomento immaginario invece dei seni e dei coseni, cioè usare la trasformata di Fourier in forma complessa. Ma per noi è conveniente usare la formula (1), dove la serie di Fourier è rappresentata come una somma di coseni con le corrispondenti ampiezze e fasi. In ogni caso, è sbagliato dire che il risultato della trasformata di Fourier del segnale reale sarà costituito da ampiezze armoniche complesse. Come dice correttamente Wiki, "La trasformata di Fourier (ℱ) è un'operazione che mappa una funzione di una variabile reale in un'altra funzione anch'essa di una variabile reale".
In conclusione:
La base matematica dell'analisi spettrale dei segnali è la trasformata di Fourier.
La trasformata di Fourier consente di rappresentare una funzione continua f(x) (segnale) definita sull'intervallo {0, T} come somma di un numero infinito (serie infinita) di funzioni trigonometriche (seno e/o coseno) con ampiezze e fasi definite, anch'esse considerate sull'intervallo {0, T}. Tale serie è detta serie di Fourier.
Si notino ancora alcuni punti, la cui comprensione è necessaria per una corretta applicazione della trasformata di Fourier all'analisi dei segnali. Se consideriamo la serie di Fourier (somma di sinusoidi) sull'intero asse X, vedremo che al di fuori dell'intervallo {0, T} la funzione della serie di Fourier ripeterà periodicamente la nostra funzione.
Ad esempio, nel grafico di Fig. 7, la funzione originale è definita sull'intervallo {T\2, +T\2} e la serie di Fourier rappresenta una funzione periodica definita sull'intero asse delle ascisse.
Questo perché le sinusoidi stesse sono funzioni periodiche, quindi anche la loro somma sarà una funzione periodica.
Così:
La nostra funzione originaria è una funzione continua e non periodica definita su un segmento di lunghezza T.
Lo spettro di questa funzione è discreto, cioè è rappresentato da una serie infinita di componenti armoniche - una serie di Fourier.
In effetti, la serie di Fourier definisce una funzione periodica, che coincide con la nostra funzione sull'intervallo {0, T}, ma per noi questa periodicità non è essenziale.
Il prossimo.
I periodi delle componenti armoniche sono multipli dell'intervallo {0, T}, su cui è definita la funzione iniziale f(x). In altre parole, i periodi delle armoniche sono multipli della durata della misura del segnale. Ad esempio, il periodo della prima armonica in una serie di Fourier è uguale all'intervallo T in cui è definita la funzione f(x). Il periodo della seconda armonica in una serie di Fourier è uguale all'intervallo T/2. E così via (vedi Figura 8). E così via (si veda la Figura 8).
Di conseguenza, le frequenze delle componenti armoniche sono multipli di 1/T. Cioè, le frequenze delle componenti armoniche Fk sono Fk= k\T, dove k assume valori da 0 a ∞, ad esempio, k=0 F0=0; k=1 F1=1\T; k=2 F2=2\T;k=3 F3=3\T;.... Fk= k\T (a frequenza zero, una componente costante).
Sia la nostra funzione iniziale un segnale registrato durante T=1 sec. Il periodo della prima armonica sarà pari alla durata del nostro segnale T1=T=1 sec. e la frequenza dell'armonica sarà pari a 1 Hz. Il periodo della seconda armonica sarà pari alla durata del nostro segnale diviso per 2 (T2=T/2=0,5 sec.) e la frequenza è pari a 2 Hz. Per la terza armonica, T3=T/3 sec. e la frequenza è di 3 Hz. E così via.
Il passo tra le armoniche in questo caso è di 1 Hz.
Pertanto, un segnale della durata di 1 secondo può essere scomposto in componenti armoniche (per ottenere uno spettro) con una risoluzione in frequenza di 1 Hz.
Per aumentare la risoluzione di un fattore 2 a 0,5 Hz, è necessario aumentare la durata della misura di un fattore 2 a 2 secondi. Un segnale di 10 secondi può essere scomposto in componenti armoniche (spettro) con una risoluzione in frequenza di 0,1 Hz. Non ci sono altri modi per aumentare la risoluzione in frequenza.
Esiste un modo per aumentare artificialmente la durata del segnale aggiungendo zeri all'array di campioni. Ma questo non aumenta la risoluzione della frequenza reale.
3. Segnali discreti e trasformata di Fourier discreta
Con lo sviluppo della tecnologia digitale sono cambiate le modalità di memorizzazione dei dati di misura (segnali). Mentre prima un segnale poteva essere registrato su un registratore e memorizzato su un nastro in forma analogica, ora i segnali sono digitalizzati e memorizzati in file nella memoria di un computer come un insieme di numeri (conteggi).
Lo schema usuale di misurazione e digitalizzazione del segnale è il seguente.
Trasduttore di misura -- Normalizzatore di segnale -- ADC -- Computer
(Fig.9 Schema del canale di misura)
Il segnale proveniente dal trasduttore di misura passa all'ADC per un periodo di tempo T. Le letture del segnale (campionamento) ricevute durante il tempo T vengono trasmesse al computer e salvate nella memoria.
Quali sono i requisiti dei parametri di digitalizzazione del segnale? Un dispositivo che converte il segnale analogico in ingresso in un codice discreto (segnale digitale) è chiamato convertitore analogico-digitale (ADC) (© Wiki).
Uno dei parametri fondamentali dell'ADC è la frequenza di campionamento massima, ovvero la frequenza di campionamento di un segnale continuo nel tempo. La frequenza di campionamento si misura in hertz. ((© Wiki))
Secondo il teorema di Kotelnikov, se un segnale continuo ha uno spettro limitato dalla frequenza Fmax, può essere ricostruito in modo completo e univoco dai suoi campioni discreti presi a intervalli di tempo T = 1/2*Fmax, cioè con una frequenza Fd ≥ 2*Fmax, dove Fd - frequenza di campionamento; Fmax - la frequenza massima dello spettro del segnale. In altre parole, la frequenza di digitalizzazione del segnale (frequenza di campionamento dell'ADC) deve essere almeno 2 volte superiore alla frequenza massima del segnale che si vuole misurare.
E cosa succede se prendiamo campioni con una frequenza inferiore a quella richiesta dal teorema di Kotelnikov?
In questo caso si verifica un effetto "aliasing" (anche detto effetto stroboscopico, effetto moiré), in cui un segnale ad alta frequenza dopo la digitalizzazione si trasforma in un segnale a bassa frequenza, che in realtà non esiste. Nella Fig. 11 l'onda sinusoidale rossa ad alta frequenza è il segnale reale. L'onda sinusoidale blu di frequenza inferiore è un segnale fittizio, dovuto al fatto che durante il tempo di campionamento è passato più di mezzo periodo del segnale ad alta frequenza.
Per evitare l'effetto aliasing, prima dell'ADC viene collocato uno speciale filtro anti-alias (filtro passa-basso). Esso fa passare le frequenze inferiori alla metà della frequenza di campionamento dell'ADC e taglia le frequenze superiori.
Per calcolare lo spettro del segnale dai suoi campioni discreti si utilizza la trasformata discreta di Fourier (DFT). Si noti ancora una volta che lo spettro di un segnale discreto è "per definizione" limitato a una frequenza Fmax inferiore alla metà della frequenza di campionamento Fd. Pertanto, lo spettro di un segnale discreto può essere rappresentato dalla somma di a finito numero di armoniche, a differenza della somma infinita per la serie di Fourier di un segnale continuo, il cui spettro può essere illimitato. Secondo il teorema di Kotelnikov, la frequenza massima di un'armonica deve essere tale da rappresentare almeno due campioni, quindi il numero di armoniche è pari alla metà del numero di campioni di un segnale discreto. Cioè, se ci sono N campioni nel campione, il numero di armoniche nello spettro sarà N/2.
Consideriamo ora la trasformata discreta di Fourier (DFT).
Il confronto con la serie di Fourier
Come si vede, coincidono, tranne per il fatto che il tempo nella FFT è discreto e il numero di armoniche è limitato a N/2, che è la metà del numero di campioni.
Le formule DFT sono scritte in variabili intere adimensionali k, s, dove k è il numero di campioni del segnale, s è il numero di componenti spettrali.
Il valore s indica il numero di oscillazioni armoniche complete per periodo T (durata della misura del segnale). La trasformata discreta di Fourier viene utilizzata per trovare le ampiezze e le fasi delle armoniche in modo numerico, cioè "al computer".
Come già detto in precedenza, quando si decompone una funzione non periodica (il nostro segnale) in serie di Fourier, la serie di Fourier risultante corrisponde in realtà a una funzione periodica con periodo T (Fig.12).
Come si può osservare nella Fig. 12, la funzione f(x) è periodica con periodo T0. Tuttavia, poiché la lunghezza del campione di misura T non è uguale al periodo T0 della funzione, la funzione ottenuta come serie di Fourier presenta una discontinuità nel punto T. Di conseguenza, lo spettro di questa funzione conterrà un gran numero di armoniche ad alta frequenza. Se la durata del campione di misura T coincidesse con il periodo della funzione T0, lo spettro ottenuto dopo la trasformata di Fourier conterrebbe solo la prima armonica (una sinusoide con periodo pari alla durata del campione), poiché la funzione f(x) è una sinusoide.
In altre parole, il programma DFT "non sa" che il nostro segnale è una "fetta di onda sinusoidale", ma cerca di rappresentare in serie una funzione periodica che presenta una discontinuità dovuta alla discontinuità di pezzi separati dell'onda sinusoidale.
Di conseguenza, nello spettro compaiono delle armoniche, che dovrebbero rappresentare complessivamente la forma della funzione, compresa questa discontinuità.
Quindi, per ottenere uno spettro "corretto" di un segnale che è una somma di più sinusoidi con periodi diversi, è necessario che una numero intero di periodi di ogni sinusoide deve essere presente nel periodo di misurazione del segnale. In pratica, questa condizione può essere soddisfatta con una durata di misurazione del segnale sufficientemente lunga.
Con una durata inferiore l'immagine apparirà "peggiore":
In pratica, può essere difficile capire dove si trovano i "componenti reali" e dove gli "artefatti" causati dall'incoerenza dei periodi dei componenti e delle durate di campionamento del segnale o da "salti e interruzioni" nella forma d'onda. Naturalmente, le parole "componenti reali" e "artefatti" sono messe tra virgolette per un motivo. La presenza di molte armoniche sul grafico dello spettro non significa che il nostro segnale ne sia effettivamente composto. È come pensare che il numero 7 sia "composto" dai numeri 3 e 4. Il numero 7 può essere considerato come un numero di armoniche che non è stato mai utilizzato. Il numero 7 può essere considerato come la somma di 3 e 4: è corretto.
Così anche il nostro segnale... o meglio nemmeno il "nostro segnale", ma una funzione periodica composta dalla ripetizione del nostro segnale (campione) può essere rappresentata come una somma di armoniche (sinusoidi) con determinate ampiezze e fasi. Ma in molti casi importanti per la pratica (si vedano le figure precedenti) è effettivamente possibile mettere in relazione le armoniche ottenute nello spettro anche con processi reali a carattere ciclico che contribuiscono in modo significativo alla forma del segnale.
Alcuni risultati
1. Un segnale reale misurato con durata T sec. digitalizzato dall'ADC, cioè rappresentato da un insieme di campioni discreti (N pezzi), ha uno spettro discreto non periodico rappresentato da un insieme di armoniche (N/2 pezzi).
2. Il segnale è rappresentato da un insieme di valori validi e il suo spettro è rappresentato da un insieme di valori validi. Le frequenze delle armoniche sono positive. Il fatto che sia matematicamente più conveniente rappresentare lo spettro in forma complessa utilizzando frequenze negative non significa che "questo è giusto" e "questo è il modo in cui si dovrebbe sempre fare".
3. Il segnale misurato al tempo T è determinato solo al tempo T. Ciò che è accaduto prima di iniziare a misurare il segnale e ciò che accadrà dopo è sconosciuto alla scienza. E nel nostro caso non è interessante. La FFT del segnale limitato nel tempo fornisce il suo spettro "reale", nel senso che in determinate condizioni permette di calcolare l'ampiezza e la frequenza delle sue componenti.