Escribí una herramienta basada en Python que puede simular las señales de CA y el ruido utilizando los dispersores de matriz dispersos proporcionados por Ciencia Es un proyecto de código abierto basado en una herramienta de código cerrado en la comunidad de ondas gravitacionales llamada LISO .
He estructurado el código de manera que pueda crear diferentes bibliotecas de resolución o crear diferentes análisis que usen la misma definición de circuito. Los dos tipos de análisis que existen a partir de la escritura (análisis de señal y ruido) construyen una matriz a partir de los componentes del circuito y luego la resuelven para una excitación determinada, p. Ej. una entrada, sobre un rango de frecuencia dado.
Es similar a la forma en que funcionan SPICE y otros simuladores de circuitos de análisis nodal. Espero que el código sea relativamente fácil de entender.
Hay una documentación básica aquí , pero aún está en desarrollo. Avísame si terminas usándolo y tienes preguntas sobre cómo funciona.
Este es un ejemplo de la sintaxis LISO que admite (pero también puede definir circuitos únicamente en Python). Es un poco como un netlist de SPICE:
r r1 100 nin nsum
r r3 1.075k no nsum
r r4 42.2 nsum nm
r r6 65 nin gnd
c c2 4.7n nsum gnd
c c5 122p no nm
op op1 op27 gnd nm no
freq log 1 1M 101
uinput nin nsum 50
uoutput no nsum
El código anterior produce un gráfico como este: