Why am I not able to obtain the Fourier Transform of exponent expression using Symbolic math?

The answer should be a closed-form solution.
% Practice, Problem 7 from Kreyszig sec 10.10, p. 575
syms f(x)
f(x) = x*exp(-x);
f_FT = fourier(f(x))
% Doesn't find transform
assume(x>0)
f_FT_condition = fourier(f(x))
assume(x,'clear')
ans:
f_FT =
f_FT_condition =

 Accepted Answer

Based on the assumption, I'm going to assume that f(x) = x*exp(-x) for x>=0 and f(x) = 0 for x < 0. In which case
syms f(x)
f(x) = x*exp(-x)*heaviside(x);
fourier(f(x))
ans = 
If that's the expected result check out
doc heaviside
to understand why f(x) is defined that way.

3 Comments

Thank you for the quick response! This is VERY close to the expected result...
Expected result: 1/((1+wi)^2*sqrt(2*pi))
Any ideas?
The scaling on the Fourier transform is arbitrary, but must be consistent with the scaling on the inverse transform. This scaling is controlled via sympref() (look at its doc page before you use it). The default is a scaling of 1 on the Fourier transform. But you can change that:
syms f(x)
f(x) = x*exp(-x)*heaviside(x);
sympref('FourierParameters',[1/(sqrt(2*sym(pi))) -1]);
fourier(f(x))
ans = 
Oh, right! I remember now that the scaling term can be applied to either one of the Fourier pairs. HUGE help! Thank you so much!

Sign in to comment.

More Answers (0)

Categories

Find more on Programming in Help Center and File Exchange

Products

Release

R2020a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!