1 votos

ecuación única que puede aproximar ondas sinusoidales, triangulares y cuadradas cambiando una sola variable

Estoy intentando desarrollar una función que pueda utilizarse para aproximar una onda sinusoidal, una onda triangular y una onda cuadrada ajustando una variable en la ecuación.

Esta función se utilizará como oscilador principal en un sintetizador suave y prefiero la simplicidad computacional a la precisión. Así que una aproximación parabólica del seno sería mucho mejor que usar realmente una función seno.

La transición entre formas de onda sería Triángulo -> Seno -> Cuadrado a medida que la constante aumenta de 0 a 1 (o cualquier rango numérico similar).

El diseño del sintetizador asume que la entrada (x) de esta función oscilará de -1 a 1 linealmente. Pero esto podría cambiarse a cualquier rango si fuera necesario.

Además, también me gustaría ajustar la pendiente/ángulo de la onda con una variable independiente (piensa en la transición entre una onda diente de sierra y una onda triangular).

1voto

scott Puntos 71

Yo consideraría sólo la asignación de la función de 0 a 1, y luego reflejar a través de la $x$ -eje para el intervalo de 0 a -1.

En ese contexto, una forma de aproximar la Onda Triangular sería una función de valor absoluto. Una aproximación de Seno sería una parábola (tu sugerencia aquí inició todo mi tren de pensamiento, así que gracias). Entonces, una aproximación de una onda Cuadrada podría ser una función de potencia con un exponente grande que tiene pequeñas curvas en las esquinas. Considera esta captura de pantalla (tomada de desmos.com):

enter image description here

La función en rojo es $f(x)=-\left|x-1\right|+1$ .
La función en azul es $f(x)=-\left(x-1\right)^2+1$ .
La función en verde es $f(x)=-\left(x-1\right)^{100}+1$ .

Esto sugiere que su variable podría ir de 0 a 100, donde la variable es el grado (exponente) de la función base (tenga en cuenta que 0 representa la función de valor absoluto, una forma de función lineal, que en realidad es de grado 1). Asegúrese de que sólo se permiten valores pares de la variable.

Si esto funciona, puede que haya algún aspecto en el que podamos mejorarlo. No hay mucha diferencia de forma entre una función de grado 50 y una función de grado 100. Eso sugiere que el oído tampoco percibe mucha diferencia. Si es así, calcula el logaritmo de la variable y utiliza el logaritmo como grado de la función.

Espero que le sirva de ayuda.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X