Azzera filtri
Azzera filtri

How to Reduce Oscillations (not noise) in a Signal?

7 visualizzazioni (ultimi 30 giorni)
Sardius
Sardius il 12 Giu 2024
Commentato: John D'Errico il 18 Giu 2024 alle 22:09
How can oscillations be reduced in signals similar to the one shown in Figure 1 to achieve results like those in Figure 2? Please note that it is not a denoising or smoothing problem.

Risposte (1)

John D'Errico
John D'Errico il 12 Giu 2024
Modificato: John D'Errico il 12 Giu 2024
To me, the upper signal looks like the convolution of something like a sinc with the lower signal. And that would mean, IF you knew the convolution kernel, you could recover the lower signal using decomvolution, though deconvolution is a noise amplifying process, an ill-posed problem.
But even if we ignore the issue of deconvolution as an ill-posed problem, you don't have sufficient information to perform deconvolution. It is not unlike saying you know the product of two numbers.
P=a*b
Now, given only the number P, can you recover the value of a? Or b? And of course you cannot do so. Both a and b could be infinitely many possible numbers.
So, sadly, the answer seems to be not really, and certainly not simply. I'm not a signals expert though.
  2 Commenti
Sardius
Sardius il 14 Giu 2024
Dear John, Thank you for your message and comments. You are correct that this can be considered a deconvolution problem. However, we do not know the sequence or the pulse that needs to be deconvolved. The signals in question are the output of a medical imaging ultrasonic scanner, so we only have access to the recorded data. When using these signals to generate the corresponding images, such oscillations cause fake and redundant features. Therefore, we need to either remove them completely or at least shrink and reduce them around each of the five incidents (in this example, you can see five regions of interest).
John D'Errico
John D'Errico il 18 Giu 2024 alle 22:09
Yes. But I think you don't apppreciate my response. This is exactly a deconvolution problem, which is itself an ill-posed problem. But you don't know the convolution kernel. And that means there are infinitely many solutions, all equally good, or perhaps I should say equally bad.
Again, look at my simple counter-example. I'll give you a number x=123.45679. I'll tell you it is the product of two numbers, x=a*b. Now I'll ask you to tell me what were a and b? (It is a secret!) If I told you the value of a, then of course you can compute b. But my lips are sealed, and in that case, no meaningful solution exists.

Accedi per commentare.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by