Estimación eficiente de desplazamiento de frecuencia de señales conocidas

7

Digamos que mi receptor recibirá señales de datos conocidas que van desde lo muy simple (tono) a lo complejo (secuencia de datos conocida que está modulada (PSK / QAM / OFDM / etc.)). ¿Cuáles son las formas más eficientes computacionalmente para obtener una estimación razonablemente precisa del desplazamiento de frecuencia?

Jim Clay
fuente
¿Has intentado trazar los resultados I y Q muestra por muestra uno contra el otro y observar la rotación a lo largo del tiempo? Es decir, para cada I (n) y Q (n) (siendo n el número de tiempo de muestra), trace esos dos valores uno en el eje x y el otro en el eje y. Con el tiempo, notará que están girando a lo largo del círculo de la unidad. La velocidad de rotación es su desplazamiento de frecuencia.
Spacey
1
@Mohammad Sé que puedo hacerlo de esa manera, pero no estoy seguro de que sea una manera computacionalmente eficiente de hacerlo. A riesgo de vencer a un caballo muerto, la clave, para mí, es la eficiencia computacional.
Jim Clay
No quiere decir que no haya otros métodos, pero no creo que de esta manera sea necesariamente computacionalmente intensivo. Después de todo, todo lo que está haciendo es comparar los valores de I y Q (que deben calcularse de todos modos ya que está demodulando, imagino), y solo comparar los valores actuales de I / Q con un valor I / Q anterior hace algún tiempo. Tal vez hay algo de lo que no estoy al tanto por su proyecto que está haciendo esto computacionalmente intensivo ... ¿qué tan limitada es su potencia informática para esta tarea?
Spacey
@Mohammad, supongo que tienes razón, no es tan intenso. Mi situación particular es que estoy buscando implementar paquetes y algunas veces demodulación de señales GSM (tono) y WiFi (PSK, OFDM) en un FPGA. Supongo que esperaba que hubiera una manera inteligente de hacer la estimación del desplazamiento de frecuencia al mismo tiempo que la detección de la señal, lo que probablemente haré usando correlaciones basadas en FFT.
Jim Clay
Hmm, bueno, busqué y he oído hablar de algunos métodos que utilizan la auto-correlación para hacer la detección de tono, (ver aquí: dsp.stackexchange.com/questions/1317/… ), ... y ya que estás haciendo cross- podría valer la pena mirar. (Cntrl-F para 'autocorrelación' y mire la respuesta de @ Phonon).
Spacey

Respuestas:

8

Tiempo alineado

Si las señales están alineadas en el tiempo, puede conjugar-multiplicar la señal recibida con la señal de referencia dividida por su magnitud al cuadrado. Básicamente dividiendo por la señal de referencia compleja.

Digamos que la señal de referencia es x(t), el desplazamiento de frecuencia (es decir, fase variable en el tiempo) es θ(t) y el ruido es N(t)

Entonces la señal recibida (alineada en el tiempo) en la banda base compleja o Hilbert es

r(t)=x(t)ejθ(t)+N(t)

Multiplicación por

x(t)|x(t)|2
descubre el desplazamiento de frecuencia + ruido. Se puede usar un FFT o algún estimador de frecuencia para recuperar la frecuencia dominante en
f(t)=x(t)x(t)|x(t)|2ejθ(t)+x(t)|x(t)|2N(t)=ejθ(t)+N2(t)

No alineado en el tiempo

Si las señales no están alineadas en el tiempo, entonces tienes un problema de búsqueda de tiempo y frecuencia en tu mano. Con una SNR baja, este es esencialmente el problema resuelto por la función de ambigüedad cruzada (CAF). Si tiene varios dB de margen, puede tomar un atajo.

Si tiene una señal de referencia con alguna variación de AM; puede alinear primero primero AM detectando ambas señales y luego correlacionando su entrada con el AM de referencia. Si su señal de referencia no tiene mucha variación de amplitud, pero su espectro es "puntiagudo", es posible que pueda correlacionar los espectros de magnitud de lo recibido y la referencia. Este es el mismo truco aplicado en el dominio de la frecuencia, en lugar del dominio del tiempo.

Con la excepción de la CAF, todas estas son operaciones bastante baratas.

Mark Borgerding
fuente
No estoy siguiendo el método "conjugar-multiplicar". Supongo que está hablando de multiplicar las dos secuencias muestra por muestra, con una de ellas conjugada. Cada producto, entonces, tendría una fase de n * fo + phi, donde n es el número de muestra, fo es la frecuencia de desplazamiento y phi es el desplazamiento de fase inicial. ¿Debo diferenciar las fases para obtener el incremento de fase de frecuencia de desplazamiento?
Jim Clay
Si. Si hay un desplazamiento de fase constante, entonces el resultado de la operación de conjugado-multiplicación tendrá una fase lineal. La pendiente de esa línea es el desplazamiento de frecuencia, por lo que la diferenciación le dará eso.
Jason R
Se me ocurrió que nos multiplicamos en el dominio de la frecuencia para correlacionar / convolucionar en el dominio del tiempo. Al multiplicar el conjugado en el dominio del tiempo, correlacionamos en el dominio de la frecuencia. Si FFT los resultados de conjugado-multiplicación deberíamos tener la correlación cruzada del dominio de frecuencia, ¿verdad? El pico de esa correlación cruzada debería indicar cuál es el desplazamiento de frecuencia.
Jim Clay
1
Si. Si el resultado de la conjugación-multiplicación tiene una fase lineal, entonces es de naturaleza de tono. Eso se corresponderá con un pico delgado en el dominio de la frecuencia, como notó.
Jason R
¿La respuesta editada es un poco más clara?
Mark Borgerding