Diseño de un transciever BPSK y / o QPSK óptimo en SDR

5

Actualmente estoy trabajando en escribir firmware para el módem en un satélite cúbico para el equipo de satélites de mi universidad. Mi objetivo principal es implementar el enlace ascendente de datos & enlace descendente.

El sistema de RF, completado antes de mi llegada, recibe en la banda de 2 m y transmite en la banda de 70 cm. El sistema de RF toma las señales (IF de 10.7 MHz) y las convierte utilizando un transceptor I-Q en una banda base compleja de IF de cero kHz de 48 kHz, que se transmiten hacia y desde el reino digital a través de un códec de audio estéreo.

El propio DSP se realizará en un microcontrolador PIC32 usando aritmética de punto fijo, y mi tarea es escribir el firmware para él.

Para el canal de datos, solo estaba planeando hacer algo "simple" como BPSK o QPSK ya que tienen un buen rendimiento en condiciones de alto ruido.

Mi pregunta es la siguiente: ¿cuál es la estructura ideal de un transceptor BPSK óptimo y cuál sería la forma más eficiente de hacerlo en SDR?

Sé que tendré que incluir algún tipo de modelado de pulso, como un filtro de coseno elevado a raíz. Por lo que sé, el transmisor BPSK ideal debería tener este aspecto:

  1. flujo de bits de entrada a 2 kB / s
  2. Codificación diferencial de bits
  3. Secuencia de bits diferencial de muestra máxima a 48 kS / sy pase a través del filtro Cosine Raised Raised para el modelado de pulsos.
  4. Tome la salida del filtro RRC como I (t), y tome Q (t) como cero
  5. Multiplica por sinusoide complejo para subir unos pocos kHz (también habrá un canal de voz FM y me gustaría mantenerlos bien separados)
  6. Pase muestras complejas a la salida del códec donde se mezclarán con RF en la cadena de conversión ascendente.

¿Esto parece correcto?

Aunque estoy un poco perdido para el receptor. Por lo que sé, esto es lo que tengo que hacer:

  1. Recupere y rastree el operador, utilícelo para entrenar el oscilador local.
  2. Conversión descendente mediante un oscilador sincronizado, que da I (t) y Q (t)
  3. Suponiendo una sincronización perfecta, I (t) es la señal de mensaje y Q (t) es cero, así que pase I (t) a través de un filtro RRC para eliminar el ruido y el ISI.
  4. Realice la sincronización del reloj, la decodificación diferencial y la recuperación de datos en I (t)

Estoy un poco confundido sobre cómo realizar mejor la recuperación del operador. Sé de Multiply-Filter-Divide, pero eso significaría que podría necesitar remuestrear la señal dependiendo de su desplazamiento de frecuencia (ya que el aliasing puede ocurrir si el borde exterior de la banda es menor que la mitad de mi ancho de banda superior, o menos de un cuarto en el caso de QPSK).

Sé que los Costas Loops existen, pero no mucho más allá de eso (mi universidad nunca ha sido muy grande en materia práctica y mi libro de texto de comunicaciones básicamente menciona "esto es una cosa"). ¿Sería esta una manera razonable de hacer la recuperación del operador? en SDR?

La sincronización del reloj es otro punto dudoso: ¿cuál es la mejor manera de hacer esto? ¿Preámbulo de código de Barker? 8b / 10b?

    
pregunta Peter

1 respuesta

2

Para un proyecto mío (radios uhf, pic32mx450f), fui con codificación bpsk y 8b / 10b, con un preámbulo k_28_1 de 10 sine + 8b / 10b. Esto permite la sincronización con la fase correcta, y luego ejecuto el flujo de bits en movimiento a través del detector hasta que llega al código especial.

Para la detección de fase, busqué varias maneras diferentes, pero terminé haciendo un seguimiento de picos simple y un ajuste de fase en cada detección de picos, lo que podría interpretarse como una forma de bucle bloqueado. Terminé bloqueando el ajuste del reloj después del preámbulo, pero también funcionaría para mantenerlo abierto. El audio entrante se filtra con filtros de disparo de paso alto y bajo para limpiar la señal y eliminar los subaudibles. Todo lo que leí parecía apuntar a que el filtro era una parte importante del detector.

Creo que el bloqueo en una raíz elevada sinusoidal filtrada qpsk va a ser un desafío, pero menos, pero probablemente más factible. Las mejores opciones dependerán de la calidad del canal, diría yo.

Supongo que, dado que se trata de un proyecto universitario, ¿quizás haya elegido algunos de estos elementos complejos para el desafío? Una alternativa que viene a la mente en lugar de compartir directamente la voz con los datos, sería utilizar una portadora sub audible o de baja frecuencia para diferenciar entre voz y datos repetidos, similar a los tonos subaudibles utilizados por los sistemas de radio uhf.

Esto no es realmente una respuesta directa para todas sus preguntas, pero es demasiado largo para un comentario.

Aquí hay algunos enlaces que estudié en dsp.stackexchange.com, que por cierto pueden ser más adecuados para esta pregunta, o que tienen más personas familiarizadas con los matices de sus preguntas.

enlace

enlace

    
respondido por el Erik Friesen

Lea otras preguntas en las etiquetas