Salta al contenuto
Note per Studenti Trasformata di Fourier discreta (TFD)

Trasformata di Fourier discreta (TFD)

In questa pagina 9

La serie di Fourier (Serie di Fourier - analisi e sintesiUn segnale periodico di periodo $T$ si scrive come somma di esponenziali in relazione armonica, $x(t)=\sum_ka_ke^{jk\omega_0t}$ con $\omega_0=2\pi/T$, e i coefficienti si ottengono per proiezione, $a_k=\frac1T\int_Tx(t)e^{-jk\omega_0t}dt$. L'ortogonalità degli esponenziali dà la formula; la convergenza è in media quadratica (Riesz-Fischer), con il fenomeno di Gibbs nei salti.Serie di Fourier - analisi e sintesi →) scrive un segnale continuo periodico come somma di infinite armoniche. Per un segnale discreto periodico la situazione è più semplice: ci sono solo NN armoniche distinte e la serie diventa una somma finita. È la TFD (trasformata di Fourier discreta, in inglese DFT). In pratica si calcola con l'algoritmo FFT (vedi FFT e zero-padding - TF, TFtd e asse delle pulsazioniLa FFT dei campioni di un segnale a durata finita, moltiplicata per il passo $T_c$, approssima la trasformata di Fourier: $X(\omega_k)\approx T_c,\mathtt{fft}(x,M)[k]$ con $\omega_k=\frac{2\pi k}{MT_c}$ (e fattore di fase $e^{-j\omega t_0}$ se l'asse parte da $t_0$). Lo zero-padding ($M>N$) infittisce i punti della stessa TFtd senza aggiungere informazione; la risoluzione dipende dalla durata osservata. Per un segnale reale $|X|$ è simmetrico: il picco in $k$ ha un gemello in $M-k$.FFT e zero-padding - TF, TFtd e asse delle pulsazioni →).

Armoniche a tempo discreto

Sia x(n)x(n) periodico di periodo NN (intero). Gli esponenziali con lo stesso periodo sono ej2πNkn,k∈Z.e^{j\frac{2\pi}Nkn},\qquad k\in\mathbb Z. Ma nel discreto ej(ω+2π)n=ejωne^{j(\omega+2\pi)n}=e^{j\omega n} (Segnali periodici, sinusoidi ed esponenziali immaginari puriUn segnale continuo è periodico di periodo T se x(t+T)=x(t); $e^{j2\pi f_0t}$ ha periodo minimo $1/|f_0|$ e una somma di periodici è periodica solo se il rapporto dei periodi è razionale. A tempo discreto $e^{j2\pi\nu n}$ è periodico solo se $\nu$ è razionale, e le pulsazioni che differiscono di $2\pi$ sono lo stesso segnale: ogni sinusoide si riporta alla forma canonica con $\omega\in[0,\pi]$.Segnali periodici, sinusoidi ed esponenziali immaginari puri →): l'armonica k+Nk+N coincide con la kk, perché ej2πN(k+N)n=ej2πNkn ej2πn=ej2πNkne^{j\frac{2\pi}N(k+N)n}=e^{j\frac{2\pi}Nkn}\,e^{j2\pi n}=e^{j\frac{2\pi}Nkn}. Quindi le armoniche distinte sono solo NN: k=0,1,…,N−1k=0,1,\dots,N-1 (o equivalentemente −N2≤k<N2-\frac N2\le k<\frac N2).

L'ortogonalità vale ancora, con somme al posto di integrali: per k,m∈{0,…,N−1}k,m\in\{0,\ldots,N-1\} 1N∑n=0N−1ej2πN(k−m)n={1k=m0k≠m\frac1N\sum_{n=0}^{N-1}e^{j\frac{2\pi}N(k-m)n}=\begin{cases}1&k=m\\0&k\neq m\end{cases} (per k≠mk\ne m è una somma geometrica di ragione ej2π(k−m)/N≠1e^{j2\pi(k-m)/N}\ne1 e vale 1−ej2π(k−m)1−ej2π(k−m)/N=0\frac{1-e^{j2\pi(k-m)}}{1-e^{j2\pi(k-m)/N}}=0).

Definizione

X(k)=1N∑n=0N−1x(n) e−j2πNkn  (analisi),x(n)=∑k=0N−1X(k) ej2πNkn  (sintesi).\boxed{X(k)=\frac1N\sum_{n=0}^{N-1}x(n)\,e^{-j\frac{2\pi}Nkn}\ \ (\text{analisi}),\qquad x(n)=\sum_{k=0}^{N-1}X(k)\,e^{j\frac{2\pi}Nkn}\ \ (\text{sintesi}).}

X(k)X(k) è periodico in kk di periodo NN, come x(n)x(n) in nn. Il significato è quello della serie di Fourier: X(0)=1N∑x(n)X(0)=\frac1N\sum x(n) è il valor medio; X(k)X(k) misura la componente alla pulsazione 2πkN\frac{2\pi k}N (cioè kk cicli ogni NN campioni).

Attenzione alle convenzioni. In queste note il fattore 1N\frac1N sta nell'analisi (come nei coefficienti della serie). Le librerie di calcolo (numpy.fft.fft, fft di Matlab) non lo includono: fft(x) restituisce N⋅X(k)N\cdot X(k). Altri testi mettono 1N\frac1N nella sintesi o 1N\frac1{\sqrt N} in entrambe. Prima di usare una formula si controlla sempre la convenzione.

Versione matriciale

Si raccolgono i campioni in un vettore x=[x(0),…,x(N−1)]T∈CN\mathbf x=[x(0),\dots,x(N-1)]^T\in\mathbb C^N e i coefficienti in X\mathbf X. La sintesi è un prodotto matrice-vettore x=F X,Fnk=ej2πNnk.\mathbf x=F\,\mathbf X,\qquad F_{nk}=e^{j\frac{2\pi}Nnk}. Le colonne di FF sono le NN armoniche, ortogonali tra loro e di norma N\sqrt N: FHF=N IF^HF=N\,I (dove FHF^H è la trasposta coniugata). Quindi F−1=1NFHF^{-1}=\frac1NF^H e l'analisi è X=1NFHx.\mathbf X=\frac1NF^H\mathbf x. C'è un isomorfismo tra i segnali periodici di periodo NN e lo spazio euclideo CN\mathbb C^N: la TFD è un cambio di base (dalla base canonica a quella delle armoniche). Per N=4N=4 la matrice è F=(11111j−1−j1−11−11−j−1j)F=\begin{pmatrix}1&1&1&1\\1&j&-1&-j\\1&-1&1&-1\\1&-j&-1&j\end{pmatrix} (le potenze di j=ejπ/2j=e^{j\pi/2}).

Esempi

1. Calcolo diretto, N=4N=4. x=(1,2,3,4)x=(1,2,3,4). X(0)=14(1+2+3+4)=104=2,5;X(1)=14(1+2e−jπ/2+3e−jπ+4e−j3π/2)=14(1−2j−3+4j)=−2+2j4=−0,5+0,5j;X(0)=\tfrac14(1+2+3+4)=\tfrac{10}4=2{,}5;\qquad X(1)=\tfrac14\left(1+2e^{-j\pi/2}+3e^{-j\pi}+4e^{-j3\pi/2}\right)=\tfrac14(1-2j-3+4j)=\tfrac{-2+2j}{4}=-0{,}5+0{,}5j; X(2)=14(1−2+3−4)=−0,5;X(3)=14(1+2j−3−4j)=−0,5−0,5j.X(2)=\tfrac14(1-2+3-4)=-0{,}5;\qquad X(3)=\tfrac14\left(1+2j-3-4j\right)=-0{,}5-0{,}5j. Si nota X(3)=X∗(1)X(3)=X^*(1) (segnale reale: X(N−k)=X∗(k)X(N-k)=X^*(k)). Controllo con Parseval: 1N∑∣x∣2=1+4+9+164=7,5\frac1N\sum|x|^2=\frac{1+4+9+16}4=7{,}5 e ∑∣X∣2=6,25+0,5+0,25+0,5=7,5\sum|X|^2=6{,}25+0{,}5+0{,}25+0{,}5=7{,}5 ✓.

2. Impulso e costante. x(n)=δ(n)x(n)=\delta(n) (un impulso per periodo): X(k)=1NX(k)=\frac1N per ogni kk (tutte le armoniche uguali: il pettine). x(n)=1x(n)=1: X(0)=1X(0)=1, tutti gli altri 00.

3. Sinusoidi. x(n)=cos⁡(2πNmn)=12ej2πNmn+12e−j2πNmnx(n)=\cos\left(\frac{2\pi}Nmn\right)=\frac12e^{j\frac{2\pi}Nmn}+\frac12e^{-j\frac{2\pi}Nmn}: X(m)=X(−m)=X(N−m)=12X(m)=X(-m)=X(N-m)=\frac12. Per N=8N=8, x(n)=cos⁡(2πn8)+12sin⁡(2π3n8)x(n)=\cos\left(\frac{2\pi n}{8}\right)+\frac12\sin\left(\frac{2\pi3n}8\right): la parte coseno dà X(1)=X(7)=12X(1)=X(7)=\frac12; 12sin⁡(⋅)=14j(ej2π83n−e−j2π83n)\frac12\sin(\cdot)=\frac1{4j}\left(e^{j\frac{2\pi}83n}-e^{-j\frac{2\pi}83n}\right) dà X(3)=14j=−j4X(3)=\frac{1}{4j}=-\frac j4 e X(−3)=X(5)=+j4X(-3)=X(5)=+\frac j4. Tutti gli altri nulli (verificato con la FFT).

Proprietà

Valgono tutte con gli indici intesi modulo NN:

Operazione Effetto
ritardo ciclico x(n−n0)x(n-n_0) X(k) e−j2πNkn0X(k)\,e^{-j\frac{2\pi}Nkn_0}
modulazione x(n)ej2πNmnx(n)e^{j\frac{2\pi}Nmn} X(k−m)X(k-m)
ribaltamento x(−n)x(-n) X(−k)X(-k)
coniugio x∗(n)x^*(n) X∗(−k)X^*(-k)
reale X(−k)=X∗(k)X(-k)=X^*(k)
valor medio X(0)X(0)
potenza (Parseval) 1N∑n=0N−1∣x(n)∣2=∑k=0N−1∣X(k)∣2\frac1N\sum_{n=0}^{N-1}\lvert x(n)\rvert^2=\sum_{k=0}^{N-1}\lvert X(k)\rvert^2
convoluzione circolare N X(k) Y(k)N\,X(k)\,Y(k)
prodotto x(n)y(n)x(n)y(n) ∑m=0N−1X(m)Y(k−m)\sum_{m=0}^{N-1}X(m)Y(k-m)

Il ritardo x(n−n0)x(n-n_0) è un ritardo ciclico: gli ultimi campioni rientrano in testa (il segnale è periodico). Simmetria hermitiana: per un segnale reale, X(N−k)=X∗(k)X(N-k)=X^*(k): lo spettro in modulo è simmetrico rispetto a k=N2k=\frac N2, e basta guardarne la prima metà.

Convoluzione circolare

Per due segnali periodici di periodo NN la convoluzione ordinaria diverge (Calcolo della convoluzione e sue proprietàIl supporto della convoluzione è la somma dei supporti, $\operatorname{rect}*\operatorname{rect}=\Lambda$, e due esponenziali causali danno $(e^{-bt}-e^{-at})/(a-b)$. Si calcola con il metodo grafico a casi (ribaltare, traslare, individuare gli intervalli di sovrapposizione). Proprietà: lineare, commutativa, associativa, $\delta$ è l'elemento neutro, la traslazione si somma, l'area è il prodotto delle aree.Calcolo della convoluzione e sue proprietà →). Si definisce la convoluzione circolare (x⊛y)(n)=∑m=0N−1x(m) y((n−m) mod N).(x\circledast y)(n)=\sum_{m=0}^{N-1}x(m)\,y\big((n-m)\bmod N\big). È periodica di periodo NN, commutativa e associativa, e l'elemento neutro è il pettine comb⁡N\operatorname{comb}_N (cioè δ(n)\delta(n) nel periodo). Nel dominio della TFD diventa un prodotto: i coefficienti di x⊛yx\circledast y sono N X(k)Y(k)N\,X(k)Y(k) (con la convenzione dei coefficienti con 1N\frac1N).

Esempio. N=4N=4, x=(1,2,3,4)x=(1,2,3,4) e y=(1,0,0,1)y=(1,0,0,1), cioè y(n)=δ(n)+δ(n−3)y(n)=\delta(n)+\delta(n-3). La convoluzione con δ(n−3)\delta(n-3) è un ritardo ciclico di 3 campioni: z(n)=x(n)+x((n−3) mod 4) ⇒ z=(1+2, 2+3, 3+4, 4+1)=(3,5,7,5).z(n)=x(n)+x\big((n-3)\bmod4\big)\ \Rightarrow\ z=(1+2,\ 2+3,\ 3+4,\ 4+1)=(3,5,7,5). (Ad esempio z(0)=x(0)+x(1)z(0)=x(0)+x(1), perché (0−3) mod 4=1(0-3)\bmod4=1.) Lo stesso risultato si ottiene antitrasformando il prodotto delle trasformate.

Convoluzione lineare tramite TFD. Siano aa e bb sequenze finite di LaL_a e LbL_b campioni. La loro convoluzione ordinaria ha La+Lb−1L_a+L_b-1 campioni. Se si completano con zeri a una lunghezza M≥La+Lb−1M\ge L_a+L_b-1 e si fa la convoluzione circolare di periodo MM, i campioni "che ritornano" cadono su zeri e non si sovrappongono: il risultato coincide con la convoluzione lineare. Esempio: a=(1,2,1)a=(1,2,1), b=(1,−1,2)b=(1,-1,2), M=8M=8: antitrasformando il prodotto delle FFT si trova (1,1,1,3,2,0,0,0)(1,1,1,3,2,0,0,0), cioè la convoluzione (1,1,1,3,2)(1,1,1,3,2) calcolata in Sistemi LTI, risposta impulsiva e convoluzioneUn sistema lineare tempo-invariante (LTI) è completamente descritto dalla sua risposta impulsiva $h=\Sigma[\delta]$: l'uscita è la convoluzione $y=x*h$, cioè $y(t)=\int x(u)h(t-u)du$ (somma $\sum_k x(k)h(n-k)$ nel discreto). Il teorema discende da linearità e tempo-invarianza applicate alla scomposizione del segnale in impulsi.Sistemi LTI, risposta impulsiva e convoluzione →. È il modo in cui le librerie calcolano velocemente le convoluzioni lunghe.

Costo di calcolo e FFT

Calcolare direttamente NN coefficienti da NN campioni richiede N2N^2 moltiplicazioni (è il prodotto con la matrice FF). L'algoritmo FFT (Fast Fourier Transform) sfrutta la struttura di FF e richiede circa Nlog⁡2NN\log_2N operazioni: per N=220N=2^{20} (un milione di campioni) si passa da 101210^{12} a 2⋅1072\cdot10^7 operazioni. La FFT è più veloce quando NN è una potenza di 2.

Relazione con la serie e con la TFtd

Errori comuni

  • Confondere la convenzione con il fattore 1N\frac1N (fft\mathtt{fft} restituisce NXN X).
  • Usare il ritardo ordinario al posto del ritardo ciclico.
  • Dimenticare che gli indici kk sono modulo NN (la componente "−1-1" è la N−1N-1).
  • Aspettarsi che la convoluzione circolare coincida con la lineare senza zero-padding a lunghezza ≥La+Lb−1\ge L_a+L_b-1.

Versione ripasso

Teoria collegata