How to remove or identify spikes in a random signal.
12 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Subhash Sagar
il 26 Apr 2019
Commentato: Subhash Sagar
il 26 Apr 2019
I have signal from different RFID tags. I just want to remove the spikes occurs in the signal.
Data file and signal images is attached. I have to remove the highlighted spikes.
Thanks.
4 Commenti
Image Analyst
il 26 Apr 2019
"remove" means to clip/clamp/saturate, or to completely delete those elements from the array, essentially shortening it (it's less wide than before)?
Can you count on the spike always being below a threshold, and good values being above some threshold?
Risposta accettata
Akira Agata
il 26 Apr 2019
Looking at your data, negative spikes you mentioned is always less than 1000. So, if this condition is applicable to other data, you can simply remove them by:
idx = t1(:,3) < 1000;
t1(idx,:) = [];
If you have to detect negative peaks with more complex conditions, I believe findpeaks function will be some help.
3 Commenti
Akira Agata
il 26 Apr 2019
Thank you for your clarification.
Actually, rmoutlier might be one possible solution. But this function removes both higher- and lower-side outliers.
To remove lower-side outliers only, the following is one solution.
load('tag1.mat');
% Identify outliers of lower side
[~,lo] = isoutlier(double(t1(:,3)));
idx = t1(:,3) < int64(lo);
% Remove identified outliers
t1(idx,:) = [];
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Electrophysiology in Help Center e File Exchange
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!