How to recover original raw signal from filtered results given filter coefficiencies?
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Currently we've got some filtered ECG signal and we got the filters' parameter when it's been collected, including low pass, notch filter, FIR and IIR. Now we want to recover the 500Hz-sample-rate-ECG raw data. Is it possible and is there any efficient way of doing this, math is ok, and Python or MATLAB tool is better. Thanks.
Sliding window averaging filter is quite easy but as for IIR and Other FIR filters, what should we do?
0 Kommentare
Antworten (1)
John D'Errico
am 5 Mär. 2024
Bearbeitet: John D'Errico
am 5 Mär. 2024
Is it possible? NO. Sorry. Mathematics does not give you a trash can, where this operation can be undone. Information content was effectively discarded in the filtering process. You cannot recover what was thrown out.
The extent where you could recover any information, using what is effectively a deconvolution, you should expect that deconvolution is a noise amplifying process. as such, in double precision arithmetic you can never recover the original data. You would need infinite precision results, as well as infinite precision arithmetic.
1 Kommentar
Paul
am 5 Mär. 2024
Bearbeitet: Paul
am 5 Mär. 2024
Sometimes, it is possible to exactly recover the input, even with double precision limitations.
b = conv([1 -0.5],[1 -0.3]);
a = 1;
x = [1:5 zeros(1,5)].';
y = filter(b,a,x);
[x filter(a,b,y)]
any(x - filter(a,b,y))
To the extent that floating point precision limits the accuracy of an inverse filtering operation for a case where one might reasonably expect that operation to work, such issues are true with any inverse operation. Here, ifft/fft doesn't exactly recover the original signal
rng(100);
x = rand(1,1000) + 1j*rand(1,1000);
norm(x - ifft(fft(x)))
but that's non an indictment of the ifft/fft functions.
Of course, in any realistic problem inverse filtering with floating point math won't exactly recover the original signal (no different than any forward/inverse operation in general). But that doesn't mean inverse filtering will always be a fruitless task (though in some cases it will).
Siehe auch
Kategorien
Mehr zu Single-Rate Filters finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!