Separating data into different regions
Mostra commenti meno recenti
Hi!
Would anyone have any ideas on how to obtain the final processed signal from the raw data in the attached image?I tried setting thresholds to separate the signals the raw signal into the three regions,but the signal is too noisy. I tried filtering it but that introduces overshoots at the transition and adds to the difficulty to separate the signal. Any pointers on how to approach this problem would be greatly appreciated! Thanks!

Risposta accettata
Più risposte (1)
Image Analyst
il 8 Gen 2016
It's a little hard to tell what the signal is and what the noise is. But I guess the huge spikes are noise. If you just use a Savitzky-Golay filter with those included, then they will influence your result, which you do not want. It looks like the majority of the noise can be eliminated by just thresholding and setting to null:
threshold = 100; % whatever works.
% Find noise indexes:
indexesOfNoise = y > threshold;
% Remove x and y at those indexes by setting equal to null
y(indexesOfNoise) = [];
x(indexesOfNoise) = [];
% Now do sgolayfilt()
filteredSignal = sgolayfilt(y,k,f);
You might have to also remove spikes that go too low, like down to the x axis if those are not valid signal.
Perhaps you'd like to look at Dr. Abouali's File Exchange: http://www.mathworks.com/matlabcentral/fileexchange/38841-matlab-implementation-of-harmonic-analysis-of-time-series--hants-
Categorie
Scopri di più su Smoothing and Denoising in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

