Objetivo C - Correlación cruzada para la estimación del retraso de audio

Me gustaría saber si alguien sabe cómo realizar un correlación cruzada entre dos señales de audio en iOS.

Me gustaría alinear las ventanas FFT que obtengo en el receptor (estoy recibiendo la señal del micrófono) con las del transmisor (que está reproduciendo la pista de audio), es decir, asegúrese de que la primera muestra de cada ventana (además de un período de "sincronización") en el transmisor también será la primera ventana en el receptor.

I inyecté en cada fragmento del audio transmitido una forma de onda conocida (en el dominio de la frecuencia). Quiero estimar el retraso mediante la correlación cruzada entre la forma de onda conocida y la señal recibida (en varios fragmentos consecutivos), pero no sé cómo hacerlo.

Parece que existe el métodovDSP_convD para hacerlo, pero no tengo idea de cómo usarlo y si primero tengo que realizar la FFT real de las muestras (probablemente sí, porque tengo que pasar el doble []).

void vDSP_convD (
   const double __vDSP_signal[],
   vDSP_Stride __vDSP_signalStride,
   const double __vDSP_filter[],
   vDSP_Stride __vDSP_strideFilter,
   double __vDSP_result[],
   vDSP_Stride __vDSP_strideResult,
   vDSP_Length __vDSP_lenResult,
   vDSP_Length __vDSP_lenFilter
)

Respuestas a la pregunta(2)

Su respuesta a la pregunta