Esto no contesta a lo que te pregunté, pero creo relevante aborda el problema.
Hoy en día haciendo esto en analógico es tonta, excepto, quizá, para algunos muy especializados o de alta frecuencia de las aplicaciones. Usted ha mencionado que esta es una aplicación de audio, así que no puedo imaginar una buena razón para que todos los analógica. Su primera frase menciona a usted quiere de un banco entero de estas cosas, y desea que el diseño compacto. El enfoque analógico definitivamente no se compacta. Otro problema con el analógico enfoque es que las frecuencias y las amplitudes va a la deriva.
Una forma mucho mejor para hacerlo es generar todas las ondas sinusoidales en un procesador y sumarlos digitalmente. Todos ellos pueden utilizar el mismo de 1/4 de onda sinusoidal de la tabla de índice en ella en diferentes incrementos por ejemplo, para obtener las diferentes frecuencias.
Esto es así dentro de la capacidad de incluso de gama baja de Dsp, como el dsPIC de Microchip línea. Un dsPIC33F suena como un buen ajuste. En 40 MIPS, usted tiene 1000 instrucción de los ciclos de cada una de las muestras a 40 kHz de frecuencia de muestreo. Eso es un montón, y permitirá un montón de diferentes senos para cada muestra. El DSP multiplicación-acumulación de hardware permitirá que cada contribución se añade su propia ganancia fácilmente.
Digitalmente señales derivadas como que no deriva en la frecuencia o la amplitud, y tendrá una mejor relación señal-ruido. Con 16 bits de números 96 dB. Eso es factible en analógico si tienes cuidado. Sin embargo, la exactitud de la señal digital será mucho mayor. No hay ninguna posibilidad en todos los analógica generadores pueden ser dentro de 1 parte en 65000 cada muestra sólo debido a la amplitud de la imprevisibilidad solo. La frecuencia de las señales digitales también se pueden ajustar de forma muy precisa, y la digital sine sintetizador de no necesitar un par de ciclos a stabalize antes de su salida es lo que usted espera.
Edit: Aclaración en el Seno de la Generación de
Veo algunos inconvenientes de búsqueda de la tabla sine generación mencionado en otras respuestas que son incorrectas, por lo que estoy añadiendo más aclaración del método aquí. Dos objeciones que se plantearon, la precisión y la resolución de frecuencia.
En primer lugar, permítanme explicar la estructura normal de una condición de búsqueda. Tenga en cuenta que una onda sinusoidal es de cuatro manera simétrica. Por lo tanto, usted sólo necesita almacenar 1/4 de ciclo. El primer cuadrante de la forma de onda se repite, ya sea revertido, negado, o ambos, en los tres restantes 1/4 de ciclos. Un buen truco para hacer esto fácil es expresar el ángulo de tal manera que un círculo completo es una potencia de dos, preferentemente, a través de toda la palabra de la máquina que está ejecutando el código. Eso significa que el ángulo de adiciones y resta de envoltura alrededor del círculo automáticamente sin código explícito para ese propósito, si usted hace el ángulo de las matemáticas de aritmética de enteros sin signo. Esta representación también se hace la búsqueda en el 1/4 de onda de mesa muy fácil.
Los dos bits altos del ángulo indicar el cuadrante, por lo que sólo el restante inferior de bits utilizados para el índice en la tabla. Si el mayor ángulo de bit se establece, entonces, la tabla de resultados es negada. Si el nivel siguiente de bit se establece, a continuación, la tabla está indexado al revés. Que es tan simple como complemento de los restantes bits bajos antes de usarlos como el índice. La mesa no tiene que ser el tamaño de tal manera que todos los bits bajos puede ser utilizado como índice. Por ejemplo, en un 16 bits de la máquina como un dsPIC, sería natural que el uso de 16 bits para el ángulo. Que deje de 14 bits para índice en la tabla, lo que sería una mesa muy grande. Normalmente, y en este caso, de una gran mesa, no es necesario. Un tamaño razonable podría ser de 1024 segmentos, que haría uso de 10 bits de índice. El resto de los 4 bits de índice (en este ejemplo) puede ser ignorado o se utiliza para interpolar entre adyacente entradas. La tabla tendrían 1025 entradas, lo que significa 1024 segmentos. Una onda sinusoidal aproximada con 4096 (la tabla se usa 4 veces durante toda la onda sinusoidal) pasos sería muy bueno. Si los bits adicionales se utilizan para interpolar entre adyacente entradas de la tabla, es aún mejor. Imaginar una onda sinusoidal aproximada con 4096 segmentos lineales por ciclo. Sería muy difícil ver algún error.
Como para exactitud, no las matemáticas. Una onda sinusoidal cambios más rápidamente a cero ángulo, por lo que es fácil calcular el peor de los casos de error de sólo un tonto de búsqueda en una resolución de 1024 punto de la tabla. El primer valor de la tabla sería 0, y el segundo seno(Pi/2048) = .00153. El peor de los casos el error es, por tanto, la mitad de la que, o .000767. Que equivale a una relación señal a ruido de 62 dB, y que es sólo de elegir un valor de la tabla sin interpolación. Utilizando el resto de los 4 bits de índice para interpolar aumenta la relación señal a ruido a 86 dB. Si eso no es suficiente, utilice un número más grande para el ángulo y interpolar el uso de los bits adicionales.
La resolución de la frecuencia no es también un problema. Al parecer, algunos están pensando que el ángulo de incremento por cada muestra debe ser un múltiplo del ángulo de paso por la entrada de la tabla. Eso no es cierto en absoluto. Con tan solo un 16 bits ángulo y una resolución de 1024 tabla de segmentos ya le da 16 veces más ángulo de resolución de cada entrada de la tabla. En la práctica, me gustaría probable que el uso de dos palabras (32 bits en este ejemplo) para los ángulos y el ángulo de incrementos. Que proporciona una frecuencia muy alta resolución, y también le da más de interpolación de bits para obtener la relación señal a ruido. En un 40 kHz de frecuencia de muestreo de 20 Hz tono (el peor de los casos) requeriría un ángulo de incremento de 1/2000 círculo por ejemplo. Esa es una parte en el 33 es el uso de 16 bits ángulos. Eso por sí solo puede ser suficiente para muchas aplicaciones. Si utiliza una versión de 32 bits de ángulo, la resolución de frecuencia de 20 Hz es de más de 1 parte en 2 millones de dólares.
Así que no descartemos de búsqueda basado sine generación en el firmware tan rápidamente. Al menos no vamos a descartar por las razones equivocadas. Tenga en cuenta que ninguna de las cosas que he descrito, sería difícil para un dsPIC a hacer. Esto incluye interplation desde un dsPIC puede hacer un 16 x 16 a 32 bits se multiplican en un solo ciclo de instrucción.