Inverse Fourier transform of unilateral exponential function - ifourier MATLAB

11 visualizzazioni (ultimi 30 giorni)
Hi everyone. How can I get the inverse Fourier tranform of unilateral exponential? I tried with the following code:
close all
clear all
syms t f
a=sym('a','positive');
y=ifourier(1/(a + pi*f*2i),t)
the result is Y=(exp(-(a*t)/(2*pi))*(sign(t) + 1))/(4*pi). Instead I'd like to get Y=exp(-a*t)*heaviside(t).
Thank you for your time.

Risposte (1)

Paul
Paul il 6 Apr 2025
Modificato: Paul il 7 Apr 2025
syms t f
a = sym('a','positive');
Y(f) = 1/(a + pi*f*2i)
Y(f) = 
The default parameters in sympref assume that the transfomr variable is angular frequency (e.g., w, rad/sec) as opposed to ordinary frequency (e.g., f, Hz). So we can either change the sympref or operate with angular frequency. Choosing the latter yields
syms w
y(t) = ifourier(Y(w/2/sym(pi)),w,t)
y(t) = 
Now rewrite in terms of heaviside
y = rewrite(y,'heaviside')
y(t) = 
That rewrite worked with the default settings of sympref. However, if we have a different HeavisideAtOrigin we get an incorrect result for the inverse Fourier transform of Y(f) (in the sense that fourier(y) won't recover Y(w) )
sympref('HeavisideAtOrigin',10);
y(t) = ifourier(Y(w/2/sym(pi)),w,t);
y = rewrite(y,'heaviside')
y(t) = 
which is a consequence of ifourier returning the result in terms of sign instead of heaviside. However, going the other way, fourier does not care about the HeavisideAtOrigin
Y(f) = fourier(exp(-a*t)*heaviside(t),t,2*sym(pi)*f) % same as above
Y(f) = 

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by