Puede detectar fácilmente algunas formas de onda simples detectando los flancos de la señal. Un cuadrado tiene flancos ascendentes y descendentes rápidos, un diente de sierra solo tiene flancos ascendentes o descendentes rápidos, según la señal.
Así que verifica los flancos ascendentes y descendentes: si detecta ambos, es cuadrado. Si detecta solo un tipo, es un triángulo, siempre y cuando esté seguro de que solo se ingresarán estas señales.
Pruebe con un circuito diferenciador, que se realiza fácilmente con un opamp. Ver aquí: http://www.physics.iitm.ac.in/courses_files/courses/eleclab03_odd/mathematical_operations.htm
La inclinación del flanco está representada en la salida del diferenciador.
Alimente esta señal y su inversión en Schmitt-Triggers y / o monoflops retriggerables, y tendrá una representación de nivel lógico de RisingFlank y FallingFlank, que a su vez puede usar para un mayor cálculo o visualización.