¿Cuáles son las opciones para recuperar la fase de una señal BPSK en el software? Los únicos recursos que puedo encontrar en línea contienen diagramas de circuitos: parece que no hay nadie dispuesto a explicar esto a personas que no están familiarizadas con los circuitos analógicos.
Me gustaría cualquier explicación de cómo funciona la recuperación del operador en teoría, y también me encantaría el pseudocódigo o los ejemplos de código.
Respuestas:
Para demodular una señal con clave de cambio de fase, de la cual BPSK es la más simple, debe recuperar la frecuencia de la portadora, la fase y la sincronización de los símbolos.
Señales de ráfaga Algunas señales son de ráfaga y proporcionan una secuencia de datos conocida llamada preámbulo o ambigüedad media (dependiendo de si aparece al principio o en medio de la ráfaga). Los demoduladores pueden usar un filtro coincidente que "busca" la secuencia de datos conocida y usarla para determinar la frecuencia de la ráfaga, la fase y la sincronización de los símbolos. Lo hacen para cada ráfaga y no necesitan molestarse con la "deriva" (la distancia gradual que se acumula entre el demodulador y la señal recibida a medida que se acumulan pequeños errores) porque las ráfagas son generalmente lo suficientemente cortas como para que la deriva no sea problema.
Señales continuas Luego hay señales continuas. En muchos sentidos, son más difíciles de recuperar que las señales de ráfagas porque normalmente no tiene una secuencia de datos conocida que lo ayude a bloquear la señal, y debe preocuparse por la deriva incluso después de bloquear la señal. Trataré de describir a un alto nivel los pasos principales que generalmente se utilizan para recuperar señales continuas.
Recuperación del operador
Por lo general, sabe en qué frecuencia estará la señal que está buscando, o al menos en qué conjunto de frecuencias podría estar. Sin embargo, incluso con este conocimiento, generalmente debe poder corregir el desplazamiento de frecuencia porque no hay dos transmisores que transmitan a la misma frecuencia. Siempre hay algún error. El método habitual, entonces, es mezclar la frecuencia en la que cree que estará la señal, y luego corregir el error de frecuencia residual. Esto se puede hacer con un Costas Loop, o tomando la cuarta potencia de los datos de la señal de banda base y buscando un pico de frecuencia. Debería haber un pico de frecuencia en el desplazamiento de la portadora * 4 (por ejemplo, si lleva una FFT de los datos a la cuarta potencia y ve un pico de frecuencia a 8300 Hz, eso significa que el desplazamiento de la portadora es 8300/4 = 2075 Hz). Este es un medio muy efectivo para obtener un bloqueo inicial en el desplazamiento de frecuencia. También puede usarlo para compensar la deriva si lo vuelve a hacer ocasionalmente. Hay otra forma de compensar la deriva que abordaré más adelante.
Fase portadora
En este punto, si trazó sus datos complejos en el plano complejo (el eje x es real, el eje y es imaginario) debería verse algo así como lo siguiente:
Si observa de cerca, puede ver dos áreas densas hacia los extremos de la línea borrosa. Esos son los puntos de constelación de BPSK. Los puntos intermedios son las transiciones entre los puntos de constelación. Esos se aclararán una vez que obtengamos el símbolo del tiempo. La razón por la que la línea está en ángulo es debido a la fase portadora. Esto se puede medir reflejando la señal multiplicando todos los puntos que tienen valores reales negativos pormij ∗ π
y luego tomando la media de los ángulos de los puntos. Una vez que haya calculado eso, reste ese ángulo de todos los puntos a los que se haya eliminado el desplazamiento de la portadora multiplicando los puntos pormij ∗ - ω . También puede compensar la deriva del desplazamiento de la portadora con esta técnica actualizando dinámicamente el desplazamiento de fase. Una vez que los datos se corrigen por fase, debería verse así:
Una vez que los datos se corrigen por fase, puede descartar la parte imaginaria de los datos porque no agrega ninguna información.
Símbolo de sincronización
Normalmente debe saber, a priori, el período de símbolo de la señal que está intentando demodular. Sin embargo, si necesita determinar el período / frecuencia del símbolo, puede hacerlo de manera similar a cómo se detectó el desplazamiento de la portadora. Puede cuadrar los datos que causarán un pico de frecuencia al doble de la frecuencia del símbolo.
Al igual que con el transportista, tendrá que obtener la fase (sincronización) correcta y luego compensar la deriva. El método habitual para ambos problemas es buscar los cruces por cero. A menos que el ruido sea bastante malo, solo debe cruzar el punto cero en el medio de una transición de símbolo de -1 a 1 o de 1 a -1. Incluso si el ruido hace que esto suceda en medio de un símbolo, no sucederá muy a menudo.
La imagen de arriba generalmente se llama "diagrama de ojo" o "patrón de ojo". Tiene dos períodos de símbolos de ancho y tiene muchos símbolos "apilados" uno encima del otro. No sé si está familiarizado con los osciloscopios o no, pero puede obtener un osciloscopio para mostrar una imagen como esta. De todos modos, las dos "X" son transiciones de símbolos. Las líneas altas a bajas en las X son cuando el símbolo pasa de 1 a -1, y las líneas bajas a altas en las X son cuando el símbolo pasa de -1 a 1. El punto intermedio, donde el la línea rosada es el lugar óptimo para muestrear los datos para ver si el símbolo es un 1 o -1.
Esta misma técnica se puede utilizar para manejar la deriva de sincronización de símbolos. Tome un promedio de la distancia desde el cruce por cero anterior y el siguiente cruce por cero. Si los dos promedios son casi iguales, todo está bien. Si uno es más grande que el otro, entonces necesita cambiar donde está tomando su muestra.
Una vez que haya muestreado los símbolos en los puntos correctos, sus puntos de datos deberían obtener algo parecido a los puntos de constelación BPSK clásicos.
Espero que esto ayude.
fuente