Ritardo in avantiSto tentando di scrivere una formula che funzioni con una funzione di ritardo in avanti. Ho più set di dati con valori che sono una funzione del tempo (1200 Hz). Voglio modificare queste colonne in modo che il valore massimo sia uguale a 0,5 secondi, in modo che quando rappresento graficamente i dati, posso farlo dove i valori massimi si sovrappongono. Sono riuscito a scrivere questa formula in modo che funzioni sopra il massimo della colonna, ma non riesco a farla funzionare in una funzione di ritardo inversa.
Se(
:A == Col Massimo( :A ), 0.5,
Lag(Col Massimo( :A ), 1 ), Lag( :B, 1 ) + 1 / 1200,
Ritardo (Col Massimo (: A), -1), Ritardo (: B, -1) - 1 / 1200
)
Come puoi vedere dall'anteprima, funziona dopo il

Organizzazione dei contenutiRe: ritardo in avantiCredo che questo sia ciò di cui hai bisogno
If(
:A == Col Maximum( :A ), 0.5,
Lag( :A, 1 ) == Col Maximum( :A ), Lag( :B, 1 ) + 1 / 1200,
Lag( :A, -1 ) == Col Maximum( :A ), Lag( :B, -1 ) - 1 / 1200
)
BTW.....è molto più comodo per chi risponde avere i dati campione non solo visualizzati come un'immagine, ma anche in un formato leggibile dalla macchina. Allegare la tabella dei dati sarebbe bello.
Re: ritardo in avantiCiao, grazie per la risposta!
Non ho ottenuto esattamente ciò che cercavo. Grazie per la nota sull'allegato dei dati, dato che questa è la mia prima domanda: non ero sicuro del protocollo corretto. Ho allegato di seguito.
Come vedrai, la formula di output della colonna B crea il prodotto desiderato sopra 0,5, contando 1/1200 di secondo da lì, ma ho bisogno che conti all'indietro di 1/1200 di secondo da 0,5, ed è qui che ho difficoltà poiché dipende dalla colonna massima della colonna A.
Re: ritardo in avantiL'istruzione IF() viene interpretata così come è stata scritta.
Tuttavia,
Lag( Col Maximum( :A ), 1 )
restituisce il valore 2693.162203 che verrà interpretato come VERO, quindi
Lag( :B, 1 ) + 1 / 1200
Verrà eseguito. Il terzo confronto non verrà mai eseguito poiché il secondo confronto restituirà sempre un valore positivo.
Cosa ti aspetti?
Lag( Col Maximum( :A ), 1 )
tornare?