How to make a signal more flat ?
9 ビュー (過去 30 日間)
古いコメントを表示
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 件のコメント
採用された回答
Image Analyst
2012 年 7 月 20 日
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 件のコメント
Miro
2012 年 7 月 20 日
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.
その他の回答 (2 件)
Miro
2012 年 7 月 20 日
you could use SMOOTH it provides a moving average, that makes a signal more continuous(flat)
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Fourier Analysis and Filtering についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!