LTSpice: ¿Cómo usar el comando .meas para encontrar la frecuencia fundamental de la señal no sinusoidal?

Quiero encontrar la frecuencia fundamental de una señal periódica (no sinusoidal) en cierta ventana de tiempo usando el .meascomando en LTSpice.

Estaba usando el siguiente código para calcular la frecuencia (en kHz).

.meas tran T1 find time when V(OUT)=0 rise 1000 .meas tran T2 find time when V(OUT)=0 rise 1100 .meas tran Frequency param 100/(1000*(T2-T1))

Esto funciona bien para ciertos casos, pero cuando hago el barrido paramétrico, da lecturas inexactas debido a dos problemas:

Aquí, supongo que en el ciclo 1000, la señal alcanza su ventana de medición (digamos desde el tiempo = 4 ms), pero a veces no lo hace. Por lo tanto, quiero especificar el tiempo absoluto para la medición. de 4 ms en este caso, he agregado una forma de onda de voltaje de muestra como se muestra a continuación (con barrido paramétrico)

ingrese la descripción de la imagen aquí

La forma de onda ampliada de 4ms es

ingrese la descripción de la imagen aquí

mi pregunta es

¿Es posible especificar la hora de inicio del código anterior para que cuente los ciclos a partir de la hora especificada? (Traté de usar trig- tragy from- tocomandos pero fallé)

Si solo te interesan los armónicos, el comando .four puede ser para ti
@PlasmaHH, gracias, pero ¿cómo podemos usarlo .fourcuando se desconoce la frecuencia fundamental? El objetivo principal aquí es medir la frecuencia fundamental en una ventana de tiempo específica
Suena un poco como misión imposible: no sabes lo fundamental (bien, ese es tu objetivo), pero no sabes cómo se comportará tu circuito (tiempo de asentamiento), o cuántos armónicos tendrá (no puede confiar en .meas). Lo único que veo es ejecutar su simulación y View > FFTluego decidir cuál es su fundamental, pero este no es un proceso automatizado. Dices que tienes un barrido paramétrico. ¿Tus armónicos, o cualquier cosa a la que te puedas aferrar, no pueden estar relacionados con los parámetros de barrido? ¿Alguna correlación?
Gracias, en realidad, el tiempo de asentamiento es conocido. Tampoco me importan las armonías. Básicamente, quiero una forma automatizada de obtener un valor aproximado cercano al fundamental desde la vista> FFT, para una ventana ampliada (por ejemplo, de 1,4 ms a 1,5 ms)
@PlasmaHH, reduje la pregunta. ¿Tendrías alguna recomendación?

Respuestas (2)

Parece que conoce su tiempo de simulación final, y las formas de onda están casi establecidas al final, por lo que, considerando lo que veo en su imagen, puede considerar 4,4 ms como una marca a partir de la cual puede medir, así:

.meas t1 find time when v(out)=0 cross=1 td=4.4m
.meas t2 find time when v(out)=0 cross=3 td=4.4m
.meas T param t2-t1

Mirando más de cerca (la forma de onda grisácea), parece que tiene senos sesgados allí, lo que explicará los armónicos, por lo que realmente no puede confiar en esta medida para detectar el fundamental, solo su período aparente . Solo pensé que debería agregar esto.

¡Excelente! Esto es lo que estaba buscando.

Si entendí correctamente, su señal es periódica, por lo tanto, esperaría un comando como este para medir correctamente su período fundamental:

.MEAS TRAN TRise TRIG cuando v(out) = 1.65 CROSS = 1 TARG cuando v(out)=1.65 CROSS=3

donde: out es el nombre de su pin de salida, CROSS=1 y CROSS=3 significa "la primera y la tercera vez que la señal cruza el valor especificado", en este caso vdd/2 asumiendo vdd = 3.3V. Lo uso para evaluar el retraso de propagación, también en simulaciones .param y funcionó hasta ahora.

¡Espero que esto ayude! Andrea

Gracias, pero esto también tendrá los mismos dos problemas asociados con mi código en la pregunta.
Ok, creo que entendí mal tu pregunta entonces. ¿Puedo pedirle que agregue a la pregunta una captura de pantalla de forma de onda de la señal que le gustaría estudiar?
Por favor refiérase a la pregunta editada