Prove FT

Riferimento : Matematica per l' Ingegneria dell' Informazione, Cap. 6 e par. 7.3

Clear["Global`"]

$Version

Mathematica dispone di varie definizioni della Trasformata di Fourier (abbreviata FT), che vengono individuate mediante la scelta dei parametri FourierParameters. Con la scelta FourierParameters -> {a, b} la FT è definita dalla formula

(Sqrt[((Abs[b])/(((2 π))^({1-a})))]) (∫_(-∞)^∞)f(t) exp(i b t ω)dt

Con la scelta FourierParameters ->  {1, -1} si individua la definizione in termini di pulsazione, corrispondente alla Definizione  6.1-1 di MI2.

Riportiamo un frammento del manuale in linea :

FourierParameters  (1)

Default modern physics convention:

FourierTransform[1,t,ω]

Convention for pure mathematics, systems engineering:

FourierTransform[1,t,ω,FourierParameters->{1,-1}]

Convention for classical physics:

FourierTransform[1,t,ω,FourierParameters->{-1,1}]

Convention for signal processing:

FourierTransform[1,t,ω,FourierParameters->{0,-2Pi}]

1. Alcuni esempi relativi alla definizione della FT in termini di pulsazione

Esempio 1.1

FourierTransform[1/(1+x^2),x,ω,FourierParameters->{1,-1}]

... e inversamente

InverseFourierTransform[%,ω,x,FourierParameters->{1,-1}]

Esempio 1.2

FourierTransform[Exp[-Abs[x]],x,ω,FourierParameters->{1,-1}]

InverseFourierTransform[%,ω,x,FourierParameters->{1,-1}]

Esempio 1.3

FourierTransform[Exp[-x^2],x,ω,FourierParameters->{1,-1}]

InverseFourierTransform[%,ω,x,FourierParameters->{1,-1}]

Esempio 1.4

Introduciamo la densità di una v.a. normale:

f[μ_,σ_,x_]:=1/(Sqrt[2π] σ) Exp[-(x-μ)^2/(2 σ^2)]

Trasformiamo due diverse densità:

FourierTransform[f[(Subscript[μ, 1]),(Subscript[σ, 1]),x],x,ω,FourierParameters->{1,-1}]

Simplify[%, (Subscript[σ, 1])>0]

FourierTransform[f[(Subscript[μ, 2]),(Subscript[σ, 2]),x],x,ω,FourierParameters->{1,-1}]

Simplify[%, (Subscript[σ, 2])>0]

Faccciamo il prodotto delle trasformate:

% %%%

Simplify[%]

... e invertiamo:

InverseFourierTransform[%,ω,x,FourierParameters->{1,-1}]

... sommiamo le varianze e le medie:

%/.{(Subscript[σ, 1]^2)+(Subscript[σ, 2]^2)->(σ^2), (Subscript[μ, 1])+(Subscript[μ, 2])->μ}

Simplify[%, σ>0]

Conclusione: la somma di due v.a. normali, tra loro indipendenti, è una v.a. normale che ha come media la somma delle medie e come varianza la somma delle varianze.

Esempio 1.5

In Mathematica Versione 7 la funzione HeavisidePi è la funzione caratteristica dell'intervallo [-1/2, 1/2]. Dal manuale in linea:

Di conseguenza, per avere la funzione caratteristica dell' intervallo [ -a, a ] , con a > 0, occorre considerare HeavisidePi[x/(2a)],
Ad esempio:

Plot[HeavisidePi[x/2], {x,-2,2},PlotStyle->{RGBColor[1,0,0],Thickness[0.01]}]

Calcoliamo la FT della funzione caratteristica dell' intervallo [-a, a ].

FourierTransform[HeavisidePi[x/(2a)],x,ω,FourierParameters->{1,-1}]

Simplify[%, a>0]

Per ritrovare il risultato dell' esempio 6.1-1 di MI2, occorre tenere presente che, per Mathematica, la funzione sinc non è sin(πx)/(πx), come abitualmente usano i comunicazionisti, bensì  (sin x)/x. Dal manuale in linea:

Sinc[z] is equivalent to Sin[z]/z for z≠0, but is 1 for z=0.

Altri esempi che riguardano le distribuzioni.

Esempio 1.6

FourierTransform[DiracDelta[x],x,ω,FourierParameters->{1,-1}]

InverseFourierTransform[%,ω,x,FourierParameters->{1,-1}]

Esempio 1.7

FourierTransform[Sin[λ x],x,ω,FourierParameters->{1,-1}]

InverseFourierTransform[%,ω,x,FourierParameters->{1,-1}]//ExpToTrig

Simplify[%]

Esempio 1.8

FourierTransform[Cos[λ x],x,ω,FourierParameters->{1,-1}]

InverseFourierTransform[%,ω,x,FourierParameters->{1,-1}]//ExpToTrig//Simplify

Esempio 1.9

FourierTransform[Sign[ x],x,ω,FourierParameters->{1,-1}]

InverseFourierTransform[%,ω,x,FourierParameters->{1,-1}]

Esempio 1.10

FourierTransform[UnitStep[ x],x,ω,FourierParameters->{1,-1}]

InverseFourierTransform[%,ω,x,FourierParameters->{1,-1}]

L' ultima scrittura è semplicemente un modo diverso di scrivere la fuzione gradino unitario (in molti testi questa è semplicemente la funzione di Heaviside, per Mathematica è la funzione HeavisideTheta).

?HeavisideTheta

Non differisce dalla funzione UnitStep, se non per il fastto che non si considera definita per 
x = 0.

?UnitStep

Esempio 1.11

FourierTransform[Sin[x]/x,x,ω,FourierParameters->{1,-1}]//Simplify

Plot[%,{ω,-2,2},PlotStyle->{RGBColor[1,0,0],Thickness[0.01]}]

InverseFourierTransform[%%,ω,x,FourierParameters->{1,-1}]

Esempio 1.12

FourierTransform[1/(1+(x-1)^2),x,ω,FourierParameters->{1,-1}]//Simplify

Expand[%194]

InverseFourierTransform[%,ω,x,FourierParameters->{1,-1}]

Expand[1+(x-1)^2]

Commento finale: l'esempio precedente dava risultati errati nella versione 4.0 di Mathematica.

2. Esempi relativi alla definizione della FT in termini di frequenza

Esempio 2.1

Utilizziamo la lettera ν per la frequenza (si usa spesso anche la lettera f ):

FourierTransform[1/(1+t^2),t,ν,FourierParameters->{0,-2π}]

Simplify[%,ν > 0]

InverseFourierTransform[%%,ν,t,FourierParameters->{0,-2π}]//Simplify

Il risultato ottenuto può essere calcolato dalla FT precedentemente calcolata nell'esempio 1.1 in termini di pulsazione, con la sostituzione 
ω -> 2π ν

FourierTransform[1/(1+x^2),x,ω,FourierParameters->{1,-1}]

%/.ω-> 2π ν

Esempio 2.2

FourierTransform[1/t,t,ν,FourierParameters->{0,-2π}]

InverseFourierTransform[%,ν,t,FourierParameters->{0,-2π}]//Simplify

Esempio 2.3

FourierTransform[Sign[t],t,ν,FourierParameters->{0,-2π}]

InverseFourierTransform[%,ν,t,FourierParameters->{0,-2π}]//Simplify

Esempio 2.4

FourierTransform[Sin[2π λ t],t,ν,FourierParameters->{0,-2π}]

InverseFourierTransform[%,ν,t,FourierParameters->{0,-2π}]//ExpToTrig//Simplify

Esempio 2.5

Consideriamo la funzione, definita a tratti, che vale 2 x per | x | ≤ 1/2 , 1 per x ≥ 1/2, -1 per x ≤ -1/2.

Plot[HeavisidePi[t]*2t+UnitStep[t-1/2]-UnitStep[-t-1/2],{t,-1,1},PlotStyle->{RGBColor[1,0,0],Thickness[0.01]}]

Spezziamo la funzione trasformanda in due addendi:

FourierTransform[HeavisidePi[t]*2t,t,f,FourierParameters->{0,-2π}]

InverseFourierTransform[%,f,t,FourierParameters->{0,-2π}]//Simplify

FourierTransform[UnitStep[t-1/2]-UnitStep[-t-1/2],t,f,FourierParameters->{0,-2π}]

InverseFourierTransform[%,f,t,FourierParameters->{0,-2π}]//Simplify

% + %%% //Simplify

Controlliamo graficamente il risultato :

Plot[%,{t,-1,1},PlotStyle->{RGBColor[1,0,0],Thickness[0.01]}]