Aprenda cómo interactuar con LTSpice usando archivos WAV.
LTSpice tiene la capacidad de registrar datos de los nodos de voltaje y corriente como parte de una simulación transitoria. Los datos se graban en un archivo WAV. Los datos pueden leerse por voltaje y fuentes de corriente y usarse como entradas a otros circuitos LTS, verlos usando un circuito de reproducción simple o intercambiarlos con aplicaciones comunes de análisis de datos.
En este artículo, se exploran ejemplos de circuitos de reproducción y grabación de propósito general y detalles del formato de datos.
Una capacidad intrigante de LTSpice es grabar datos de simulación de Transient como archivos WAV. No entendí lo que esto significaba hasta que miré la especificación detallada de LTSpice y vi cómo estas especificaciones se alineaban con los detalles de bajo nivel del formato de archivo WAV. Los archivos WAV no son solo para audio. Una cosa clave es saber que los archivos WAV no están comprimidos. Si ingresas un número, obtienes el mismo número. Aparentemente, en la industria de la música, es lo último en grabaciones de alta calidad. Además, los datos se organizan en canales como cabría esperar en un estudio de grabación de música. Sin embargo, la cantidad de canales puede ser muy grande. Mucho más de lo que la grabación de música podría requerir. Para mí, este es un buen formato para un grabador de datos multicanal de propósito general.
Esta tabla resume las especificaciones de LTSpiceHelp
Especificaciones LTSpice .WAVE | Valor |
Directiva LTSpice | .OLA |
número de canales | 1 a 65535 |
Número de bits de muestreo | 1 a 32 |
Muestras por segundo simulado | 1 a 4,294,967,295 (232-1) |
Rango de voltaje a gran escala | -1 a +1 V |
Rango de corriente a gran escala | -1 a +1 A |
¡Guauu! Imagine un grabador de datos real con más de 60,000 canales, conversión de analógico a digital de 32 bits y más de mil millones de muestras por segundo. Quiero uno.
Mis pruebas encontraron que las muestras máximas por segundo son aproximadamente la mitad del valor en la tabla con una simulación de Transient que se ejecuta para 10 nanosec. Además, no pude verificar el número de bits de muestreo más allá de los 24 bits.
Todo esto se hace poniendo una directiva .WAVE en el esquema. Aquí hay un ejemplo.
.wave Circuit_Data.wav 16 10K V (ab) V (cd) V (ef) V (gh)
No he usado deliberadamente el ejemplo de LTSpiceHelp. Ese ejemplo es apropiado para crear un archivo WAV que se puede reproducir como audio. Vamos en una dirección totalmente diferente. El comando se descompone de la siguiente manera:
Aquí hay una grabadora de propósito general que se puede agregar a los circuitos. El esquema muestra un circuito de usuario conectado a la grabadora. Este ejemplo tiene cuatro canales, pero podría tener de 1 a 65535 canales. ¡Sólo he probado hasta ocho!
Tenga en cuenta que las figuras se pueden ver con mucho mayor detalle si se abren en una pestaña separada.
Las fuentes de voltaje controladas por voltaje (E100, etc.) tienen dos funciones. Primero, aíslan el nombre de nodo en el circuito de usuario de los nombres de nodo en la directiva .WAVE. El nodo del circuito del usuario se adjunta a la entrada de la grabadora sin preocuparse por los nombres de los nodos. En segundo lugar, las fuentes E proporcionan escalado para las entradas, ya que la función .WAVE tiene un rango de escala completo fijo. Las declaraciones .PARAM en la lista de "Parámetros de usuario" se modifican para establecer el rango de escala completo de cada canal de forma independiente. Otro "Parámetro de usuario" es el número de muestras por segundo. He arreglado el nombre de archivo en la directiva .WAVE.
Aquí está el jugador correspondiente que lee los datos para ser graficados o conectados a otros circuitos.
Las fuentes de voltaje leen los datos para cada canal. Los voltajes que se escalaron en el registrador luego no se escalan con las Fuentes de Voltaje Controladas por Voltaje. La escala completa especificada para cada canal se establece con sentencias .PARAM que coinciden con las sentencias .PARAM del grabador. La directiva .TRAN funciona normalmente y se utiliza para reproducir todos o una parte de los datos.
Los gráficos de la izquierda son la simulación que se está grabando. El circuito es un divisor de voltaje resistivo con un condensador agregado para dar forma variable a los bordes de la señal. La grabación es por dos segundos. Las parcelas de la derecha son salidas del jugador. La reproducción salta el primer segundo de la grabación y traza el segundo final. Al igual que con cualquier convertidor analógico a digital, asegúrese de que la frecuencia de muestreo sea lo suficientemente alta para evitar el aliasing.
Para producir estos circuitos y parcelas, tenía cuatro ventanas abiertas. Dos ventanas esquemáticas y dos ventanas de trama. Simplemente haga clic en el Runner en la grabadora y luego en su amigo en el reproductor.
El formato de datos es de propósito muy general y puede ser leído por programas comunes de análisis de datos. Como prueba, el registrador se ejecutó con la fuente de voltaje cambiada de un tren de pulsos a una constante de +1 VCC para simplificar. El archivo WAV fue leído por SciLab en una matriz con el wavread
Cada fila de la matriz es un canal WAV, y cada conjunto de muestras en el tiempo es una columna. En esta pantalla, la fila superior son las primeras seis muestras del Canal 0, la segunda fila es el Canal 1, etc.
0.1000061 0.1000061 0.1000061 0.1000061 0.1000061 0.1000061 0.0750122 0.0750122 0.0750122 0.0750122 0.0750122 0.0750122 0.0499878 0.0499878 0.0499878 0.0499878 0.0499878 0.0499878 0.0249939 0.0249939 0.0249939 0.0249939 0.0249939 0.0249939
Recuerde que la grabación se estableció para un rango de escala completa de +/- 10 V. Esto significa que los datos se dividieron por 10 para permanecer dentro del rango de -1 V a +1 V de la función .WAVE; 1 V en el nodo se registra como 0.1 V, 0.75 V se registra como 0.075 V, etc. El jugador multiplica estos datos por 10 para recuperar los voltajes originales.
Hizo el SciLab correspondiente wavwrite
MATLAB tiene las mismas funciones, pero no las verifiqué. Hay una función de terceros disponible para leer archivos "en bruto" de LTSpice en MATLAB, LTSPICE2MATLAB (). Esto tendrá lo último en amplitud y resolución de tiempo. No hay mención de ir a otro lado con un MATLAB2LTSPICE () función.
La grabación y reproducción de archivos WAV por LTSpice parecen útiles de varias maneras.
LTspice Amp Noise
ga('create', 'UA-1454132-1', 'auto'); ga('require', 'GTM-MMWSMVL'); ga('require', 'displayfeatures'); ga('set',{'dimension1':'computing,audio,power,eda,engineering-consulting'}); ga('set',{'contentGroup1':'computing,audio,power,eda,engineering-consulting'});
ga('set',{'dimension3':"June 04, 2019"});
ga('set',{'dimension4':"Stephen Colley"});
ga('send', 'pageview');
!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n; n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0; t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window, document,'script','https://connect.facebook.net/en_US/fbevents.js'); fbq('init', '1808435332737507'); // Insert your pixel ID here. fbq('track', 'PageView'); fbq('track', 'ViewContent', { content_ids: ['computing','audio','power','eda','engineering-consulting'], content_type: 'category'});
_linkedin_data_partner_id = "353081"; (function(){var s = document.getElementsByTagName("script")[0]; var b = document.createElement("script"); b.type = "text/javascript";b.async = true; b.src = "https://snap.licdn.com/li.lms-analytics/insight.min.js"; s.parentNode.insertBefore(b, s);})(); } if(jstz.determine().name().indexOf("Europe") === -1) { showSocialCode(); // NOT EU } else { showSocialCode(); window.addEventListener("load", function () { window.cookieconsent.initialise({ "palette": { "popup": { "background": "#252e39" }, "button": { "background": "#14a7d0" } }, "type": "opt-out", "content": { "message": "This website uses tracking cookies to ensure you get the best experience on our website.", "href": "https://www.allaboutcircuits.com/privacy-policy/", "dismiss": "OK, GOT IT" }, onInitialise: function (status) { var type = this.options.type; var didConsent = this.hasConsented(); if (type == 'opt-out' && didConsent) { console.log("eu"); //showSocialCode(); } },
onStatusChange: function (status, chosenBefore) { var type = this.options.type; var didConsent = this.hasConsented(); if (type == 'opt-out' && didConsent) { console.log("eu"); //showSocialCode(); } },
onRevokeChoice: function () { var type = this.options.type; if (type == 'opt-out') { console.log("eu"); //showSocialCode(); } },
}) }); }
Los días felices de la PDA y Blackberry han quedado definitivamente atrás, pero el factor…
Tutorial sobre cómo pronosticar usando un modelo autorregresivo en PythonFoto de Aron Visuals en UnsplashForecasting…
Si tienes un iPhone, los AirPods Pro son la opción obvia para escuchar música, ¡aunque…
Ilustración de Alex Castro / The Verge Plus nuevos rumores sobre el quinto Galaxy Fold.…
Se rumorea que los auriculares premium de próxima generación de Apple, los AirPods Max 2,…
El desarrollador Motive Studio y el editor EA han lanzado un nuevo tráiler de la…