Omit detrending in certain portion of signal
Ältere Kommentare anzeigen
Hello,
I have a signal with a certain portion that is much higher than the rest of the signal.
How can I avoid applying detrending to this portion but apply detrending to everything to the left and right of this signal? Blue portion should be detrended. Red portion should not be detrended and stay at this or a similar level.
What if I have two of these red portions within my signal? For example the lower peak portion in the middle and the higher portion to the right. Do not detrend both portions?
Thanks.

2 Kommentare
Mathieu NOE
am 22 Mär. 2022
hello
We can better help you if you share data (and code ?)
tx
Konvictus177
am 22 Mär. 2022
Akzeptierte Antwort
Weitere Antworten (1)
Benjamin Thompson
am 22 Mär. 2022
0 Stimmen
You can use an index vector and the 'SamplePoints' option for the detrend function:
>> n = 1:length(signal);
>>n = n';
>> I = (n < 4000) | ((n > 4500)) & (n < 8500);
>> signal_detrended = detrend(signal(I), 'SamplePoints', n(I));
>> hold off;
>> figure, plot(n, signal)
>> grid on, zoom on
>> hold on
>> plot(n(I), signal_detrended, 'r')
2 Kommentare
Konvictus177
am 22 Mär. 2022
Bearbeitet: Konvictus177
am 22 Mär. 2022
Benjamin Thompson
am 22 Mär. 2022
This is just some basic MATLAB commands, but here you are. The index vector defines the set of what was detrended and what was not.
>> signal_combined = zeros(length(signal), 1);
>> signal_combined(I) = signal_detrended;
>> signal_combined(~I) = signal(~I);
>> figure, plot(n, signal_combined)
Kategorien
Mehr zu Descriptive Statistics finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


