Deconvolution using FFT - a classical problem
58 views (last 30 days)
Show older comments
Hello friends, I am new to signal processing and I am trying to achive deconvolution using FFT. I have an input step function u(t) applied to an impulse response given by
. The output function is
. I am trying to convolve g and u to get y as well as deconvolve y and g to get u. However, I quite cannot get the right answers. I understand that the deconvolution process is ill-posed and I have to use some kind of normalization process but I am lost. I also apply zero padding to twice the length of the input signals. Any sort of guidance will be appreciated.

After using deconvolution in the fourier domain:
Y = fft(y)
G = fft(g)
X = Y./G
x = ifft(X)
I am getting an output shown below:

Which is not the expected outcome. Can someone shead light on what is happening here? Thank you.
0 Comments
Answers (2)
Matt J
on 19 Feb 2026 at 20:20
Edited: Matt J
on 19 Feb 2026 at 20:49
dt=0.001;
N=20/dt;
t= ( (0:N-1)-ceil((N-1)/2) )*dt; %t-axis
u=(t>=0);
g=3*exp(-t).*u;
y=conv(g,u,'same')*dt;
Y = fft(y);
G = fft(g);
X = Y./G;
x = fftshift(ifft(X,'symmetric')/dt);
figure;
sub=1:0.3/dt:N;
plot(t,3*(1-exp(-t)).*u,'r.' , t(sub), y(sub),'-bo');
xlabel t
legend Theoretical Numeric Location northwest
title 'Output y(t)'
figure;
plot(t, u,'r.' , t(sub), x(sub),'-bo'); ylim([-1,4])
title Deconvolution
xlabel t
legend Theoretical Numeric Location northwest
7 Comments
Matt J
about 1 hour ago
Edited: Matt J
12 minutes ago
Did you mean "integrate" in the context of summation?
What I really meant was, when you use a DFT to discretize a continuous Fourier Transform integral of some finite duration signal s(t), what the DFT does is always equivalent to treating the right half of the sample vector
as drawn from the negative time axis, and the left half as drawn from the positive axis. Shifting the sampling interval in the continuous domain or redefining where t=0 is won't change that.
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!







