# Fourier transform of a bivariate normal distribution

I can define a Multinormal distribution by

p = PDF[MultinormalDistribution[
{mu1, mu2},
{{sig11^2, ρ sig11 sig22},
{ρ sig11 sig22, sig22^2}}], {x, y}]


I would like to do the 2D Fourier transform of this by

FourierTransform[p, {x, y}, {kx, ky}]


which gives the result. How can I make Mathematica give the result in matrix form instead of its expanded form?

• There is no distribution called Distribution. Also, avoid explicit subscripts, which only confuse matters, e.g., use μ1 and μ2, etc. Commented Jun 19, 2017 at 17:36
• What do you mean by matrix form? The result is a function, not a matrix. Commented Jun 19, 2017 at 19:01
• For a bivariate normal it is easier to enter the distribution as BinormalDistribution[{m1, m2}, {s1, s2}, r] and the FourierTransform of the PDF is just the CharacteristicFunction of the distribution. Commented Jun 19, 2017 at 19:07

You can do the Fourier transformation separately (because these are integrations). Using @BobHanlon suggestion:

dist = PDF[BinormalDistribution[{m1, m2}, {s1, s2}, \[Rho]], {x, y}]

Plot3D[dist /. {m1 -> 0, m2 -> 1, s1 -> 1, s2 -> 2, \[Rho] -> 0.2}, {x, -5, 5}, {y, -5, 6}, PlotRange -> Full,
MeshFunctions -> {#3 &}, MeshShading -> {White, Black, White, Black}]


I get for the 2D gaussian:

which when integrated over x and y with:

fourier =
FourierTransform[FourierTransform[dist, x, \[Omega]1], y, \[Omega]2]


becomes for the real part (in phase):

Plot3D[Re[fourier] /. {m1 -> 0, m2 -> 1, s1 -> 1, s2 -> 2, \[Rho] -> 0.2}, {\[Omega]1, -5, 5}, {\[Omega]2, -5, 5}, PlotRange -> Full,MeshFunctions -> {#3 &}, MeshShading -> {White, Black, White, Black}]


and the out of phase complex component (see the change of sign):

Plot3D[Im[fourier] /. {m1 -> 0, m2 -> 1, s1 -> 1, s2 -> 2, \[Rho] -> 0.2}, {\[Omega]1, -5, 5}, {\[Omega]2, -5, 5}, PlotRange -> Full, MeshFunctions -> {#3 &}, MeshShading -> {White, Black, White, Black}]


dist = BinormalDistribution[{mu1, mu2}, {sig11, sig22}, ρ];


The constraints on the parameters are given by DistributionParameterAssumptions

assume = DistributionParameterAssumptions[dist]

(* (mu1 | mu2) ∈ Reals && sig11 > 0 && sig22 > 0 && -1 < ρ < 1 *)


The FourierTransform of the PDF is

ft1 = FourierTransform[PDF[dist, {x, y}], {x, y}, {kx, ky},
FourierParameters -> {1, 1}] // FullSimplify[#, assume] &

(* E^((1/2)*(2*I*kx*mu1 + ky*(2*I*mu2 - ky*sig22^2) -
kx*sig11*(kx*sig11 + 2*ky*sig22*ρ))) *)


This is equivalent to the CharacteristicFunction of the distribution

ft2 = CharacteristicFunction[dist, {kx, ky}] // Simplify

(* E^(I*(kx*mu1 + ky*mu2) - (kx^2*sig11^2)/2 -
(ky^2*sig22^2)/2 - kx*ky*sig11*sig22*ρ) *)


Or alternatively,

ft3 = Expectation[Exp[I {kx, ky}.{x, y}], {x, y} \[Distributed] dist]

(* E^(I*(kx*mu1 + ky*mu2) - (kx^2*sig11^2)/2 -
(ky^2*sig22^2)/2 - kx*ky*sig11*sig22*ρ) *)


Verifying the equivalence of these values

ft1 == ft2 == ft3 // Simplify

(* True *)