How do I compare a current discrete value of a signal with a previous discrete value?
4 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Hi, How do I compare the current discrete value with a previous discrete value? It would be nice to see a simple matlab coded example, if possible. Is there a way to do that in simulink? Thanks!
0 Kommentare
Antworten (4)
Ameer Hamza
am 27 Mai 2018
Here is an example
x = [1 4 2 6 2 4];
y = diff(x)
y =
3 -2 4 -4 2
diff() will subtract every value with the previous value. If the value given by diff() is greater then 0, then it means that the current value is larger than the previous value, similarly, a negative value means current value is smaller then previous.
0 Kommentare
Image Analyst
am 27 Mai 2018
To compare elements of a signal with the elements immediately prior to them use diff(), as Ameer showed. To compare a whole signal to a later whole signal, then you'll have to save your original signal so it can be subtracted later:
oldSignal = signal; % Save a copy of the current signal.
% Now the signal changes somehow... Now check the difference:
differenceSignal = signal - oldSignal;
That's assuming that the "comparison" you want to do is a simple subtraction and not something else, like exclusive OR or spectral change or whatever.
0 Kommentare
kat001
am 27 Mai 2018
1 Kommentar
Image Analyst
am 27 Mai 2018
Yes, I gave you an idea. The code I gave will work for that case. Basically save your current value as the "old" value, then when you get a new value in subtract the old value from it and redefine the old value as the current value.
TAB
am 27 Mai 2018
Bearbeitet: TAB
am 27 Mai 2018
In Simulink you can use Unit delay block to extract previous step value and Relational Operator to compare.
0 Kommentare
Siehe auch
Kategorien
Mehr zu General Applications finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!