Signal Correction on the fly using Inverse Transfer Function
Show older comments
This is more of a conceptual question rather than asking for a specific solution. I'm new to signal processing so I didn't manage to come up with anything yet.
My task: Correct an incoming (realtime measured) signal from a tubing + pressure sensor system using the inverse transfer function (ITF) on the fly. Feed the corrected data forward into the existing data processor
What I have: I have a transfer function estimate for the tubing + pressure sensor system (obtained by comparing it to measurements without tubing). I have a stream of data while measuring which is going through an existing signal processor. However I now want to feed that signal processor the corrected signal (corrected using the ITF).
My idea: I should be able to build a buffer of N samples of the incoming signal x. I can then apply Short Time Fourier Transform to that chunk (should I use a tapered window?). In the spectral space I can apply the IFT to get the corrected spectrum. I would then inverse Fourier Transform to get N samples of the corrected signal y. Next step is to take the next N samples (should I use an overlap?) of signal x and repeat the process. I would then just chain the new y values to my existing 'stream' of y values (using overlap-add?). I could then continuously feed the y signal to the existing signal processor. I don't care if there is a delay, as long as I can do the process on the fly and not in post-processing
So my method would be:
- Wait for N samples of incoming signal x
- STFT (maybe using a window) to obtain F(x)
- Apply ITF to F(x) to obtain F(y)
- Inverse STFT to obtain y
- Overlap-add (maybe using a window)
- Advance buffer of incoming signal to next N samples (maybe using an overlap) and proceed with step 2.
It would be super helpful if you gave me some advice. Am I on the right way? Is there a fundamental issue with my idea? I reckon there must be a simple way as real time sound processors (e.g. filters) do exactly the same thing, right?
Answers (0)
Categories
Find more on Multirate Signal Processing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!