Using ifft() to deconvolve signal and frequency response
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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 Kommentare
Baltam
am 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.
Antworten (0)
Siehe auch
Kategorien
Mehr zu Digital Filter Analysis finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!