fourier
Description
fourier(f) returns the Fourier Transform
of f. By default, the function symvar
determines the independent variable, and w is the transformation
variable.
fourier(f,transVar)
uses the transformation variable transVar instead of
w.
var and the transformation variable
transVar instead of symvar and
w, respectively.
Examples
Fourier Transform of Common Inputs
Compute the Fourier transform of common inputs. By default, the
transform is in terms of w.
FunctionInput and OutputRectangular pulsesyms a b t
f = rectangularPulse(a,b,t);
f_FT = fourier(f)
f_FT =
- (sin(a*w) + cos(a*w)*1i)/w + (sin(b*w) + cos(b*w)*1i)/w
Unit impulse (Dirac delta)f = dirac(t);
f_FT = fourier(f)
f_FT =
1
Absolute valuef = a*abs(t);
f_FT = fourier(f)
f_FT =
-(2*a)/w^2
Step (Heaviside)f = heaviside(t);
f_FT = fourier(f)
f_FT =
pi*dirac(w) - 1i/w
Constantf = a;
f_FT = fourier(a)
f_FT =
pi*dirac(1, w)*2i
Cosinef = a*cos(b*t);
f_FT = fourier(f)
f_FT =
pi*a*(dirac(b + w) + dirac(b - w))
Sinef = a*sin(b*t);
f_FT = fourier(f)
f_FT =
pi*a*(dirac(b + w) - dirac(b - w))*1i
Signf = sign(t);
f_FT = fourier(f)
f_FT =
-2i/w
Trianglesyms c
f = triangularPulse(a,b,c,t);
f_FT = fourier(f)
f_FT =
-(a*exp(-b*w*1i) - b*exp(-a*w*1i) - a*exp(-c*w*1i) + ...
c*exp(-a*w*1i) + b*exp(-c*w*1i) - c*exp(-b*w*1i))/ ...
(w^2*(a - b)*(b - c))
Right-sided exponentialAlso calculate transform with condition a > 0.
Clear
assumptions.
f = exp(-t*abs(a))*heaviside(t);
f_FT = fourier(f)
assume(a > 0)
f_FT_condition = fourier(f)
assume(a,'clear')
f_FT =
1/(abs(a) + w*1i) - (sign(abs(a))/2 - 1/2)*fourier(exp(-t*abs(a)),t,w)
f_FT_condition =
1/(a + w*1i)
Double-sided exponentialAssume a > 0. Clear
assumptions.
assume(a > 0)
f = exp(-a*t^2);
f_FT = fourier(f)
assume(a,'clear')
f_FT =
(pi^(1/2)*exp(-w^2/(4*a)))/a^(1/2)
GaussianAssume b and c are real.
Simplify result and clear
assumptions.
assume([b c],'real')
f = a*exp(-(t-b)^2/(2*c^2));
f_FT = fourier(f)
f_FT_simplify = simplify(f_FT)
assume([b c],'clear')
f_FT =
(a*pi^(1/2)*exp(- (c^2*(w + (b*1i)/c^2)^2)/2 - b^2/(2*c^2)))/ ...
(1/(2*c^2))^(1/2)
f_FT_simplify =
2^(1/2)*a*pi^(1/2)*exp(-(w*(w*c^2 + b*2i))/2)*abs(c)
Bessel of first kind with nu = 1Simplify the
result.
syms x
f = besselj(1,x);
f_FT = fourier(f);
f_FT = simplify(f_FT)
f_FT =
(2*w*(heaviside(w - 1)*1i - heaviside(w + 1)*1i))/(1 - w^2)^(1/2)
Specify Independent Variable and Transformation Variable
Compute the Fourier transform of
exp(-t^2-x^2). By default, symvar determines
the independent variable, and w is the transformation variable.
Here, symvar chooses x.
syms t x
f = exp(-t^2-x^2);
fourier(f)
ans =
pi^(1/2)*exp(- t^2 - w^2/4)
Specify the transformation variable as y. If you specify
only one variable, that variable is the transformation variable.
symvar still determines the independent variable.
syms y
fourier(f,y)
ans =
pi^(1/2)*exp(- t^2 - y^2/4)
Specify both the independent and transformation variables as
t and y in the second and third
arguments, respectively.
fourier(f,t,y)
ans =
pi^(1/2)*exp(- x^2 - y^2/4)
Fourier Transforms Involving Dirac and Heaviside Functions
Compute the following Fourier transforms. The results are in
terms of the Dirac and Heaviside functions.
syms t w
fourier(t^3, t, w)
ans =
-pi*dirac(3, w)*2i
syms t0
fourier(heaviside(t - t0),t,w)
ans =
exp(-t0*w*1i)*(pi*dirac(w) - 1i/w)
Specify Fourier Transform Parameters
Specify parameters of the Fourier transform.
Compute the Fourier transform of f using the default values
of the Fourier parameters c = 1, s = -1. For
details, see Fourier Transform.
syms t w
f = t*exp(-t^2);
fourier(f,t,w)
ans =
-(w*pi^(1/2)*exp(-w^2/4)*1i)/2
Change the Fourier parameters to c = 1, s =
1 by using sympref, and compute the transform
again. The result changes.
sympref('FourierParameters',[1 1]);
fourier(f,t,w)
ans =
(w*pi^(1/2)*exp(-w^2/4)*1i)/2
Change the Fourier parameters to c = 1/(2*pi), s =
1. The result changes.
sympref('FourierParameters', [1/(2*sym(pi)), 1]);
fourier(f,t,w)
ans =
(w*exp(-w^2/4)*1i)/(4*pi^(1/2))
Preferences set by sympref persist through your current
and future MATLAB® sessions. Restore the default values of c and
s by setting FourierParameters to
'default'.
sympref('FourierParameters','default');
Fourier Transform of Array Inputs
Find the Fourier transform of the matrix M.
Specify the independent and transformation variables for each matrix entry by using
matrices of the same size. When the arguments are nonscalars,
fourier acts on them element-wise.
syms a b c d w x y z
M = [exp(x) 1; sin(y) i*z];
vars = [w x; y z];
transVars = [a b; c d];
fourier(M,vars,transVars)
ans =
[ 2*pi*exp(x)*dirac(a), 2*pi*dirac(b)]
[ -pi*(dirac(c - 1) - dirac(c + 1))*1i, -2*pi*dirac(1, d)]
If fourier is called with both scalar and nonscalar
arguments, then it expands the scalars to match the nonscalars by using scalar
expansion. Nonscalar arguments must be the same size.
fourier(x,vars,transVars)
ans =
[ 2*pi*x*dirac(a), pi*dirac(1, b)*2i]
[ 2*pi*x*dirac(c), 2*pi*x*dirac(d)]
If Fourier Transform Cannot Be Found
If fourier cannot transform the input then
it returns an unevaluated call.
syms f(t) w
F = fourier(f,t,w)
F =
fourier(f(t), t, w)
Return the original expression by using ifourier.
ifourier(F,w,t)
ans =
f(t)
Input Arguments
f — Input
symbolic expression | symbolic function | symbolic vector | symbolic matrix
Input, specified as a symbolic expression, function, vector, or matrix.
var — Independent variable
x (default) | symbolic variable
Independent variable, specified as a symbolic variable. This variable is often
called the "time variable" or the "space variable." If you do not specify the
variable, then fourier uses the function
symvar to determine the independent variable.
transVar — Transformation variable
w (default) | v | symbolic variable | symbolic expression | symbolic vector | symbolic matrix
Transformation variable, specified as a symbolic variable, expression, vector,
or matrix. This variable is often called the "frequency variable." By default,
fourier uses w. If w
is the independent variable of f, then
fourier uses v.
More About
Fourier Transform
The Fourier transform of the expression f = f(x) with respect to the variable x at the point
w is
F(w)=c∫−∞∞f(x)eiswxdx.
c and s are parameters of the Fourier
transform. The fourier function uses c = 1, s = –1.
Tips
If any argument is an array, then fourier acts element-wise
on all elements of the array.
If the first argument contains a symbolic function, then the second argument must
be a scalar.
To compute the inverse Fourier transform, use
ifourier.
fourier does not transform piecewise.
Instead, try to rewrite piecewise by using the functions
heaviside, rectangularPulse, or
triangularPulse.
References
[1] Oberhettinger F., "Tables of Fourier Transforms and Fourier Transforms of
Distributions." Springer, 1990.
Introduced before R2006a