Tengo un simple demodulador BPSK. Muy simple, la señal entra y se divide en dos ramas, una para I y otra para Q.
- La rama I se mezcla con una onda sinusoidal del portador, y la rama Q se mezcla con la onda cosenoidal del portador.
- Luego, cada una de las salidas se convoluciona con un filtro adaptado (en este caso, un coseno raíz elevado, que inicialmente pulso formó mis bits transmitidos).
- Ahora, si combino ambas salidas y tomo la magnitud de ambas (I ^ 2 + Q ^ 2), obtengo el sobre.
- A partir de aquí, busco picos y elijo sus indicaciones.
- Luego uso esas mismas indicaciones que obtuve de (4), y muestro mis I y Q en esas mismas indicaciones. Ahora tengo valores complejos de softbit, y soy capaz de corregir cualquier desfase o desplazamiento de frecuencia, y puedo tomar decisiones difíciles a partir de ahí. (Tengo el lujo de post procesamiento por cierto).
Esta técnica funcionó bien con SNR de alto a medio. El problema es que con una SNR más baja (y tal vez con trayectos múltiples), no sé cómo realizar la viñeta (4). El problema es que, en lugar de un pico en los sobres correspondientes a un bit, ahora tengo varios picos, y la 'selección de picos' no funcionará porque hay tantos para elegir ... ¿cómo se mitiga este problema? Esto parece ser un cuello de botella porque si no puedo decir dónde está mi 'bit', no puedo avanzar. ¿Alguna idea?
Se agradece cualquier ayuda, las matemáticas son buenas, aunque pediría que las respuestas sean más pesudo-codificadas / orientadas al concepto de antemano. ¡Gracias!
Editar: Gracias a los comentarios de Dilip, también debo agregar que puedo ver claramente 'energía' en el sobre cuando hay una señal y no hay una señal. (es decir, antes de que llegara mi señal), así que esto me lleva a creer que debería poder sincronizar / demodir y que no es un problema de SNR únicamente ...
Respuestas:
He hecho algo similar a esto en MATLAB. En mi causa, utilicé un método de recuperación de reloj de puerta temprana / tardía para obtener una estimación del desplazamiento entre la transmisión y la sincronización del símbolo de recepción. Este método usa 3 muestras por símbolo: una en el tiempo de muestra óptimo, una con 1 muestra demorada y 1 con una muestra avanzada. Esto funciona bien para las señales de activación / desactivación, ya que no hay una porción negativa de la señal, pero creo que los métodos a continuación funcionarán mejor para las señales bipolares.
Otro método es el algoritmo de Muller y Mueller , que utiliza 1 muestra por símbolo. Utiliza la ecuación , donde es el error, e son las muestras de símbolos anteriores y actuales, y y son las salidas de decisión (-1 o +1 en su caso). M&M requiere que el transportista se recupere primero.e n y n - 1en=(ynˆyn−1)−(ynyˆn−1) en yn−1 ^ y n y n - 1yn ynˆ yˆn−1
Un tercer algoritmo, que es muy similar al anterior, es el algoritmo de Gardner . En este algoritmo, la señal de error es , donde es la muestra de un símbolo en el pasado, y es la mitad de un símbolo en el pasado. Esto requiere 2 muestras por símbolo, pero no es sensible al operador. y n - T y n - T / 2en=(yn−yn−T)yn−T/2 yn−T yn−T/2
El detector M&M está mirando los picos , mientras que el método Gardner está mirando el pico y el cruce por cero para obtener estimaciones de tiempo.
En todos los casos, tomará la estimación de error, la introducirá en un filtro de bucle cuya salida se utilizará para avanzar o retrasar el reloj del símbolo para la próxima estimación de temporización. El filtro de bucle se puede considerar como un filtro de paso bajo, un filtro de suavizado o simplemente como una ponderación de las estimaciones anteriores menos que las nuevas. El filtro de bucle controla a) qué tan rápido converge el tiempo yb) cuánto ruido afecta las estimaciones.
Otra opción es usar un ecualizador que luego eliminará el retraso de la señal. Esto también puede ayudar para señales muy ruidosas, creo.
He utilizado estos recursos para formar esta respuesta: http://www.comlab.hut.fi/opetus/333/2004_2005_slides/CarrierTimingRecovery.pdf http://mobiledevdesign.com/tutorials/radio_matched_filtering_timing/
Este artículo es especialmente útil: http://rfdesign.com/images/archive/0901Litwin32.pdf Aquí hay un enlace al documento original de Gardner de 1986: http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber= 1096561 & tag = 1
Nota En general, esta área se denomina "recuperación de reloj y datos" o "CDR". Específicamente estamos tratando con la "sincronización de símbolos". Estos términos deberían ayudarlo en su búsqueda.
fuente