Diferencia entre revisiones de «Taller de distorsión»
Sin resumen de edición |
|||
| (No se muestran 13 ediciones intermedias del mismo usuario) | |||
| Línea 1: | Línea 1: | ||
Podemos usar [https://en.wikipedia.org/wiki/Ngspice Ngspice] para simular la distorsión en circuitos. | |||
Tené en cuenta si estás introduciendo un comando de shell o un comando de ngspice, y también si estás dando órdenes al shell o a ngspice. Para salir de ngspice, escribe "quit". Se recomienda colocar todos los archivos en un único directorio y utilizarlo para ejecutar la simulación. | |||
Archivos que necesitas para esos ejemplos se colocan en este directorio: https://cloud.undernet.uy/s/ByzeA7arTfGdxGD | |||
=clip= | =clip= | ||
v1 es una fuente voltaje independiente. Consulta el capítulo en el manual de Ngspice: | |||
* 4.1 Independent Sources for Voltage or Current | |||
v1 tiene una onda de voltaje sinusoidal. Los parámetros se explican aqui: | |||
* 4.1.2 Sinusoidal | |||
d1 es un diodo de modelo 1N4148, algo común. El diodo (y varios otros componentes) necesita un comando ".model" para especificar sus parámetros. Podés ponerlo en un archivo se llama 1n4148.lib y incluir ese archivo. El contenido del archivo debe ser esto: | |||
<pre> | |||
.model 1n4148 D(IS=2.5n N=1.9 BV=100 RS=1) | |||
</pre> | |||
Los parámetros del modelo del diodo se definan en el capitulo "7.2.1 Diode Model (D)" del manual usuario de Ngspice. | |||
==Archivo SPICE (clip.cir)== | ==Archivo SPICE (clip.cir)== | ||
<pre> | <pre> | ||
| Línea 11: | Línea 30: | ||
==comandos== | ==comandos== | ||
* ngspice clip.cir | * ngspice clip.cir (en el shell) | ||
* tran 10us 3s | * tran 10us 3s (en ngspice) | ||
* plot v(sig) v(out) xlimit 0 10m | * plot v(sig) v(out) xlimit 0 10m (en ngspice) | ||
* plot v(sig) v(out)+1 xlimit 0 10m | * plot v(sig) v(out)+1 xlimit 0 10m (en ngspice) | ||
* plot v(sig) v(out) 1000*-1*v1#branch xlimit 0 10m | * plot v(sig) v(out) 1000*-1*v1#branch xlimit 0 10m (en ngspice) | ||
=amp 1= | =amp 1= | ||
| Línea 42: | Línea 61: | ||
==comandos== | ==comandos== | ||
* ngspice amp1.cir | * ngspice amp1.cir (en shell) | ||
* plot v(sig) v(out) xlimit 0 3 | * plot v(sig) v(out) xlimit 0 3 (en ngspice) | ||
* fft v(out) | * fft v(out) (en ngspice) | ||
* plot mag(v(out)) xlimit 0 10 | * plot mag(v(out)) xlimit 0 10 (en ngspice) | ||
=dist 1= | =dist 1= | ||
| Línea 81: | Línea 100: | ||
=amp 2= | =amp 2= | ||
Vamos a correr una simulación y escuchar a la salida del circuito. | |||
Para hacerlo, generamos un archivo que contiene una grabación de los voltages durante la simulación. | |||
Convertiramos ese archivo a un archivo de audio, en formato WAV. | |||
Para eso, usamos los programas de [https://github.com/Ttl/spice-audio-tools Spice Audio Tools]. | |||
==Archivo SPICE (amp2.cir)== | ==Archivo SPICE (amp2.cir)== | ||
<pre> | <pre> | ||
| Línea 191: | Línea 215: | ||
.ENDS | .ENDS | ||
</pre> | </pre> | ||
=Archivo de WAV de entrada, WAV de salida= | =Archivo de WAV de entrada, WAV de salida= | ||
Esta simulación consume el contenido de un archivo se llama [https://cloud.undernet.uy/s/FqfqEwxw7tsaHRy clean.wav]. | Esta simulación consume el contenido de un archivo se llama [https://cloud.undernet.uy/s/FqfqEwxw7tsaHRy clean.wav]. | ||
Genera un archivo se llama out.wav. | Genera un archivo se llama out.wav. | ||
| Línea 209: | Línea 228: | ||
* 13.5.56 General Form: Pre_<command>: execute commands prior to parsing the circuit | * 13.5.56 General Form: Pre_<command>: execute commands prior to parsing the circuit | ||
Necesitas esos archivos en el mismo directorio con el archivo SPICE (wav_in.cir): | |||
# [https://cloud.undernet.uy/s/ST4wXi67BBNZac5 wavtospice.py] | |||
# [https://cloud.undernet.uy/s/opnbgPRq6QmAepY spicetowav.py] | |||
# [https://cloud.undernet.uy/s/FqfqEwxw7tsaHRy clean.wav] | |||
==Archivo SPICE (wav_in.cir)== | |||
<pre> | <pre> | ||
.title wave input | .title wave input | ||
| Línea 223: | Línea 248: | ||
.control | .control | ||
pre_shell python3 wavtospice.py clean.wav in.dat | pre_shell python3 wavtospice.py clean.wav in.dat | ||
tran 0.02m 10 | tran 0.02m 10 | ||
| Línea 236: | Línea 260: | ||
* ngspice -b wav_in.cir | * ngspice -b wav_in.cir | ||
Ahora podés escuchar out.wav. | Ahora podés escuchar out.wav. Un ejemplo del archivo de salida es aquí: https://cloud.undernet.uy/s/e2fsjes6fy6P6Ei | ||