How to make a signal more flat ?
15 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hello,
I have a signal which looks like a dome and I would like to make it flat (hence reducing its amplitude). I can reduce the amplitude by dividing the whole signal by the same amount, but I would like to be able to control the amount of reduction I do on each signal location. Any idea of what kind of operation i should use ?
Regards
0 commentaires
Réponse acceptée
Image Analyst
le 20 Juil 2012
You can subtract the mean
newSignal = yourSignal - mean(yourSignal);
Then multiply by the array that contains the reduction factors that varies as a function of location:
flattenedSignal = reductionFactors .* newSignal;
Note, you must have reductionFactors because you said "I would like to be able to control the amount of reduction I do on each signal location" so you obviously know what those reductions are. Then finally add back in the mean:
finalSignal = flattenedSignal + mean(yourSignal);
3 commentaires
Miro
le 20 Juil 2012
this depends on the theoretical background of the data. I mean sure, you can just cut the signal fe. like:
ref = yoursignal/max(yoursignal);
newSignal = yoursignal*exp(-ref);
in this case larger signals get cutted more than smaller ones relative to the maximum of the signal.
Plus de réponses (2)
Miro
le 20 Juil 2012
you could use SMOOTH it provides a moving average, that makes a signal more continuous(flat)
0 commentaires
Voir également
Catégories
En savoir plus sur Fourier Analysis and Filtering dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!