Separating data into different regions
Afficher commentaires plus anciens
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!

Réponse acceptée
Plus de réponses (1)
Image Analyst
le 8 Jan 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-
Catégories
En savoir plus sur Smoothing and Denoising dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

