- Simulink library implementation of the behavioral model of Schmitt trigger: https://www.mathworks.com/help/sps/ref/schmitttrigger.html
- https://www.mathworks.com/matlabcentral/fileexchange/44419-schmitt-trigger
- https://www.mathworks.com/matlabcentral/fileexchange/56764-schmitt-trigger?s_tid=prof_contriblnk
Create an index based Schmitt Trigger
15 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hello, I have a function that mimics a Schmitt Trigger to translate an analog sine wave into a digital square wave. So far, I have accomplished this with a for loop and the function works as planned. However, since I have a significant amount of data to process, I would like to do this index based for speed. I cannot think of a way to make this index based so the function performes faster.
My function is below, any suggestions on how to make this index based? Is it possible?
Thanks.
function [y] = Schmitt_Trigger(x,tL,tH)
%x is the input array that contains the analog sine wave to process.
%tL is the lower bound of the hysteresis and tH is the upper bound.
N = length(x);
y = zeros(1,N);
for i = 2:N
y(i) = y(i-1);
if y(i-1) == 0 && x(i)>tH
y(i) = 1;
end
if y(i-1) == 1 && x(i)<tL
y(i) = 0;
end
end
end
0 commentaires
Réponses (1)
Yash
le 20 Juil 2025
Modifié(e) : Yash
le 20 Juil 2025
Check out these implementations of Schmitt Trigger:
In your implementation, if the crossings are well separated and the input isn't nosiy, you can use a logical mask and the function "find" to get the crossing points and reconstruct the output.
0 commentaires
Voir également
Catégories
En savoir plus sur Matrix Indexing dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!