Using ifft() to deconvolve signal and frequency response
3 views (last 30 days)
Show older comments
I have a measured time varying signal which is known to have a variable frequency response (I have freq vs. sensitivity data for the measurement device). I want to deconvolve using:
pt = ifft(fft(vt)./Mf)
where vt is the time varying signal and Mf is the frequency response.
I take the magnitude
abs(fft(vt))
and divide by the freq. vs. response curve Mf (interpolate to the same frequency range).
However if I set Mf=1 (for all values f=0 to X MHz) I don't get the original signal vt when I do the ifft.
My understanding is I need to perform the division (vt./Mf) on the fft magnitude but then use real/complex fft data for ifft to get the original signal but I'm unsure how to get this to work correctly.
2 Comments
Baltam
on 19 Apr 2016
Are you sure you didn't do anything wrong when setting Mf to 1?
x = 0:0.001:0.1-0.001;
y = sin(2*pi*50*x);
Mf = ones(size(y));
plot(x,y,'o'), hold all, plot(x,ifft(fft(y)./Mf),'-')
This seems to work fine with me.
Answers (0)
See Also
Categories
Find more on Transforms in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!