Steady state data filtering
9 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Hi,
In the above image i need to filter steady state data( 1,2,3,4), which may contain noisy data as well. Visually i can see the points stabilized at 1750,2250,3500 and 5500, but how to do that programatically. As an output i need the start and end index of the steady state points(noisy data should be removed as well). I can able to specify the tolerance as 3%.
0 Commenti
Risposta accettata
Star Strider
il 3 Nov 2017
If you have R2016a or later, the Signal processing Toolbox findchangepts (link) function may do what you want.
2 Commenti
Star Strider
il 3 Nov 2017
I would do a fft (link) of your signal to get its spectral characteristics. It would seem that the signal transitions are low-frequency, so the high-frequency noise should be easy to filter out. If you have a signal processing background, you can use a linear-phase FIR filter with the filter (link) function to filter your signal. Probably the easiest way to do this is to ask your colleague to give you the coefficients of such a filter that meets your design requirements. (It’s been a while since I manually designed filters, so I won’t attempt to describe those calculations here.)
Più risposte (1)
Greg Dionne
il 1 Dic 2017
If you have a version of MATLAB beyond R2017b you can try removing outliers with filloutliers and subsequently use ischange.
I think the following syntax is what you would want for ischange:
[TF,S1] = ischange(...) also returns information about the line segments in between change points. For example, [TF,S1] = ischange(A) returns a vector S1 containing the mean of data between change points of a vector A.
2 Commenti
Greg Dionne
il 28 Dic 2017
Hi Vick,
It seems I missed your reply. Hopefully you've worked past this issue, but if not, could you post your data?
Vedere anche
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!