Red de conocimiento informático - Material del sitio web - Diseño de identificador de código Barker basado en Systemview

Diseño de identificador de código Barker basado en Systemview

Nombre: Wang Duopeng

ID de estudiante: 20000300055

Embedded Bull Introducción: este artículo analiza principalmente el algoritmo del código Barker, que es más común en la comunicación digital. Implementación de principios y simulación.

Texto incrustado:

La sincronización es una cuestión práctica importante en los sistemas de comunicación. El funcionamiento eficaz y fiable del sistema de comunicación se basa en un buen sistema de sincronización. La sincronización de tramas en los sistemas de comunicación digital generalmente utiliza el método de sincronización de inserción centralizada, y el código Barker con buen rendimiento es un código de sincronización ampliamente utilizado en los sistemas actuales de sincronización de tramas (sincronización de grupo). Este grupo de códigos tiene una función de autocorrelación nítida y es cuando el terminal. Al realizar la identificación de sincronización, la probabilidad de pérdida de sincronización y sincronización falsa es pequeña, el tiempo promedio de establecimiento de sincronización de grupo es corto y el identificador del código de sincronización del extremo receptor es relativamente simple [1]. Este artículo explica principalmente cómo utilizar SystemView para implementar la simulación del reconocedor de código Barker. El sistema de simulación consta principalmente de un generador de secuencia pseudoaleatoria (Pseudo-Ruido, PN), un generador de reloj, un registro de desplazamiento de 8 bits, un sumador y un comparador lógico. Al diseñar circuitos de simulación y analizar los resultados de la simulación de circuitos, proporcionamos una base teórica para la implementación final del hardware.

El sistema de identificación de códigos Barker consta de un generador de secuencias pseudoaleatorias (datos), un generador de reloj, un circuito de generación de códigos Barker y un circuito de detección. El código Barker se agrega al generador de secuencias PN. impulsos de reloj generados. El diagrama de bloques del principio del sistema se muestra en la figura

Sincronización de grupo

El flujo digital de mensajes en la sincronización de cuadros del sistema de comunicación siempre utiliza varios elementos de código para formar una "palabra", y varias "palabras" "para formar una" oración ", es decir, para formar un" grupo "para su transmisión. Por lo tanto, al recibir estos flujos digitales, también es necesario conocer las horas de inicio y finalización de estas "palabras" y "oraciones", y generar una secuencia de pulsos de temporización coherente con las horas de inicio y finalización de las "palabras" y "oraciones". " en el extremo receptor, denominado colectivamente sincronización de grupo o sincronización de trama [2].

El grupo de códigos de recepción y el grupo de códigos de envío deben ser completamente consistentes en estructura, frecuencia y fase. De lo contrario, la información transmitida no se puede recibir normalmente y todo lo que se recibe es ruido. Si se logra la sincronización de envío y recepción pero no se puede mantener, los datos de información enviados no se pueden obtener de manera precisa y confiable. El transmisor y el receptor pueden utilizar fuentes de frecuencia de reloj de alta precisión y alta estabilidad para garantizar la estabilidad de frecuencia y fase. Sin embargo, en aplicaciones prácticas, existen muchos factores inciertos que no se pueden estimar de antemano, como relojes de envío y recepción inestables, tiempos de envío inciertos, retrasos e interferencias en la transmisión del canal, etc. Especialmente en las comunicaciones móviles, estos factores inciertos son aleatorios. no se puede precompensar y, por lo tanto, sólo se puede eliminar mediante un sistema sincronizado.

La tarea de la sincronización grupal es identificar los momentos iniciales y finales de los grupos de información digital ("palabras" u "oraciones") en función de la información de sincronización de bits, o dar el "principio" y la "oración". " de cada grupo. El momento del “fin”. Estas palabras de código especiales no deben aparecer en la secuencia de símbolos de información, o pueden aparecer accidentalmente, pero no aparecerán repetidamente. En este momento, siempre que la palabra de código especial se envíe varias veces seguidas, el extremo receptor puede reconocerla. Según las posiciones de estas palabras de código especiales, la sincronización de cuadros del dispositivo receptor se sincroniza con la sincronización de cuadros en la señal recibida para lograr la sincronización de grupo.

2. 2 Método de inserción continua

El método de inserción continua también se denomina método de inserción concentrada. Se refiere a insertar un grupo de códigos especial como grupo de códigos de sincronización de cuadros al comienzo de cada cuadro de información. Este grupo de códigos rara vez debe aparecer en el código de información. Incluso si aparece ocasionalmente, es poco probable que aparezca de acuerdo con el período regular. el marco. El extremo receptor detecta el grupo de códigos especiales varias veces continuamente según el período de la trama, para obtener la información de sincronización de la trama.

2. 3 principios de selección del código de sincronización de cuadros

Requisitos del código de sincronización de cuadros:

(1) Función de autocorrelación con características nítidas de un solo pico y pequeña probabilidad de falta de sincronización;

(2) Fácil de distinguir de los códigos de información y la probabilidad de una sincronización falsa es pequeña;

(3) La longitud del código es adecuada para garantizar la eficiencia de la transmisión.

2. 4 Código Barker

El código Barker es una palabra de código binario con reglas especiales. Es una secuencia no periódica. Su regla especial es: si hay un código Barker de n bits, cada elemento del código solo puede tomar el. valor +1 o -1 Se puede ver en su función de autocorrelación local

que la función de autocorrelación local R (j) calculada por el código de Barker tiene características nítidas de pico único. Igual como se puede observar, su estructura de reconocedor es muy simple. Actualmente, solo se han encontrado 10 grupos de códigos Barker y la longitud máxima del grupo de códigos es 13. Todos se enumeran en la Tabla 3-1. En la tabla + significa +1 y – significa –1.

Tomando el código de Barker con n ?= 7 como ejemplo, se calcula su función de autocorrelación local para calcular los valores de R(j) cuando j=1, 2, 3, 4, 5, 6 y 7 respectivamente son -1, 0, -1, 0, -1, 0, y luego encuentre el valor de la función de autocorrelación cuando j es un valor negativo. Los dos se dibujan juntos en la Figura 3-2. Se puede ver en la figura que su función de autocorrelación tiene un pico único agudo cuando j = 0.

2. 5 Circuito de generación de código Barker

El pulso de reloj se agrega al generador de secuencia PN para generar código Barker. El circuito de generación de código Barker se muestra en la Figura 3-3

Circuito de generación de código Barker. esquema

2. 5. 1? Realización de la señal de reloj ?

Señal de reloj: proporciona una serie de señales de pulso estables para que el sistema cumpla con las señales de pulso estables requeridas por todas las partes del sistema para funcionar juntas.

Configuración de los parámetros de fuente de señal de reloj: una secuencia de pulso periódica debe ser igual o más larga que el ancho de pulso especificado, es decir, se garantiza que se mostrará una señal de pulso dentro de un ciclo. El ancho del pulso generalmente se establece en 5e-3 segundos, que es 0,005 s, entonces la frecuencia de entrada debe ser inferior a 200 Hz, porque 1/200 = 0,005 s, la frecuencia aquí se define como el valor común 100 Hz

¿100 Hz?

Figura 3-6 Diagrama de forma de onda de la señal de reloj

Obviamente, esta es la forma de onda de la señal de reloj, y el ícono de fuente de señal de reloj 1 está conectado directamente al ícono de recepción 3, por lo que se puede determinar que W1 (Figura 3-6) es la forma de onda de la señal de reloj.

2. 5. 2 Implementación de la función del generador de secuencia PN

SystemView proporciona un ícono de un generador de código PN en la biblioteca de íconos de comunicación. Simplemente agregue una señal de reloj de una determinada frecuencia al extremo de entrada del ícono y proporcione la longitud del registro de desplazamiento, el coeficiente de retroalimentación (o grifo) y la semilla inicial (Seed) correspondientes para obtener la secuencia PN requerida.

Secuencia pseudoaleatoria (PN): una determinada secuencia que se puede determinar de antemano, se puede producir y copiar repetidamente y tiene las características aleatorias (es decir, características estadísticas) de una determinada secuencia aleatoria.

La serie de secuencias pseudoaleatorias tiene buena aleatoriedad y autocorrelación, y tiene predeterminabilidad y repetibilidad. La secuencia PN binaria más común es la secuencia de registro de desplazamiento lineal de longitud máxima, denominada secuencia m [3], que se genera mediante un registro de desplazamiento de n etapas con retroalimentación lineal. La llamada retroalimentación lineal significa que la función de retroalimentación solo contiene operaciones de suma de módulo 2 sin operaciones no lineales. El registro de desplazamiento de n etapas tiene 2n estados, excluyendo los 0 estados, hay 2n-1 estados, por lo que la longitud máxima de la secuencia de código que puede generar es 2n-1 bits. La secuencia m generada de esta manera es una secuencia cíclica con un período de P=2 n -1.

El método de generar m secuencia mediante registro de desplazamiento de n etapas.

La Figura 3-7 es un generador de secuencia de código compuesto por registros de desplazamiento de n etapas. El estado del registro está determinado por la información ("0" o "1") ingresada bajo el control del reloj. Por ejemplo, el registro de desplazamiento de nivel i está determinado por el estado del registro de desplazamiento de nivel i después del pulso de reloj anterior. . La salida de cada nivel que participa en la retroalimentación se somete a múltiples sumas de módulo 2 y luego el resultado final se envía al primer nivel. Cabe señalar que la estructura debe tener un circuito de detección todo 0 y un circuito de arranque; de ​​lo contrario, el generador puede apagarse en un estado todo 0 por algún motivo (como el arranque).

Figura 3-7 Modelo de generador de secuencia cíclica de n etapas

Figura 3-2 Función de autocorrelación del código Barker de siete bits

Configuración del generador de secuencia PN Aquí está cómo hacerlo.

Arrastre un ícono "Comm" desde la biblioteca de íconos a la ventana de diseño, haga doble clic en el ícono y seleccione "Filtros/Datos" en la ventana emergente Figura 3-9 Biblioteca de íconos de comunicación PN. generador de secuencia "PN Gen", presione el botón "Parámetro",

Figura 3-9 Ventana de biblioteca de iconos de comunicación

Según la teoría anterior, n=3, Ci=(13 ) m secuencia de 8, así que defina la longitud del registro "Reg Len" en la ventana de configuración de parámetros como 3, defina la semilla "Seed" como 7 y marque 2 y 3 del elemento de toque "Taps". Confirme para salir y el icono cambiará a .

Figura 3-10 Ventana de configuración de parámetros del generador de secuencia PN

En el icono 14, se puede recibir y mostrar la forma de onda del código Barker de 7 bits, como se muestra en la Figura 3-11

Figura 3-11 Diagrama de forma de onda del código Barker

Se puede ver en el diagrama de forma de onda W3 que la forma de onda tiene el grupo de datos 1110010 como período porque el grupo de código Barker es de 7 bits. 1110010, W3 (Figura 3-11) son códigos Barker que generan formas de onda de salida.

2. 6 Circuito de detección

Como se muestra en la Figura 3-12, utiliza los primeros 7 bits de un registro de desplazamiento de 8 bits (icono 5), 3 puertas NOT (iconos 6, 7, 8) y una El sumador (imagen 5, símbolo 9) y el comparador (símbolo 16) constituyen el circuito de detección. La salida de señal es detectada e identificada por el juez de comparación (icono 16) para identificar pulsos de pico único mayores a 6.

2. 6. 1? ¿Implementación de señales de datos?

En las comunicaciones digitales, las señales de secuencia pseudoaleatorias se utilizan generalmente como secuencias de entrenamiento para simular flujos de datos con códigos Barker.

Señal de secuencia pseudoaleatoria: Genera una señal de secuencia pseudoaleatoria (PN) compuesta por pulsos con diferentes niveles de amplitud a una velocidad establecida.

Configuración de parámetros de fuente de señal de secuencia pseudoaleatoria: la frecuencia generalmente se define como 100 Hz y el número de niveles se define como 2, lo que es consistente con el código Barker ±1 y el número de niveles.

3 ? Diseño del modelo de simulación del sistema

3. 1 Pasos para el diseño del sistema

1). Ingrese a SystemView. Haga doble clic en el icono de acceso directo de SystemView en el escritorio o haga clic en SystemView en el grupo de programas para iniciar SystemView.

2). Haga clic en "Archivo->Nuevo sistema" en la barra de menú para crear un nuevo archivo.

3). Definir una fuente de señal de datos con una amplitud de 1V y una frecuencia de 100Hz. Arrastre un icono de fuente de señal "Fuente" desde la biblioteca de iconos a la ventana de diseño, haga doble clic en el icono y, en la ventana de la biblioteca de fuente de señal que aparece, seleccione la señal de secuencia pseudoaleatoria en la secuencia de ruido/pseudoaleatoria "Ruido /PN" "PN Seq", presione el botón "Parameter" y defina la amplitud "Amp" en la ventana de configuración de parámetros como 1 y la frecuencia "Frequency" como 100. Confirme para salir, el icono cambia a .

4). Definir una fuente de señal con una amplitud de 1V y una frecuencia de 100Hz. Arrastre un icono de fuente de señal "Fuente" desde la biblioteca de iconos a la ventana de diseño, haga doble clic en el icono, en la ventana de la biblioteca de fuente de señal que aparece, seleccione la señal de pulso "Tren de pulsos" en la señal periódica "Periódica" y presione Botón "Parámetro", defina la amplitud de voltaje "Amp" en la ventana de configuración de parámetros como 1, la frecuencia "Frecuencia" como 100, el ancho de pulso "PulseW" como 5e-3 y el voltaje de compensación "Offset" como -500e- 3 . Confirme para salir, el icono cambia a .

5). Defina cuatro iconos de recepción. Arrastre un ícono de recepción "sumidero" a la ventana de diseño, haga clic para copiar tres íconos idénticos, haga doble clic en ellos, seleccione el análisis que recibe "Análisis" en la clase de análisis "Análisis" para todos ellos, confirme para salir y el ícono cambia. a .

6). Presione la tecla de método abreviado para cambiar a la biblioteca de símbolos de comunicación, arrastre un símbolo lógico "Logic" desde la biblioteca de símbolos a la ventana de diseño, haga clic para copiar tres símbolos idénticos, haga doble clic en uno de ellos y seleccione "FF" en la ventana que aparece /Latch/Reg" en el registro de desplazamiento de 8 bits "Shft-8in", presione el botón "Parámetro", defina el valor verdadero de salida "True Output" en la ventana de configuración de parámetros como 1 y defina la salida falsa. valore "Salida falsa" como - 1. Confirme para salir y el icono cambiará a . Los otros tres íconos seleccionan el lógico no "Invertir" en la puerta/búfer "Puertas/Buffers", presionan el botón "Parámetro" y definen el valor verdadero de salida "Salida verdadera" en la ventana de configuración de parámetros como 1 y generan el El valor falso "Salida falsa" se define como -1. Confirme para salir y el icono cambiará a .

7). Arrastre un ícono de sumador "Sumador" desde la biblioteca de íconos a la ventana de diseño.

8). Arrastre un ícono "Comm" desde la biblioteca de íconos a la ventana de diseño, haga doble clic en el ícono, seleccione el generador de secuencia PN "PN Gen" en "Filtros/Datos" en la ventana emergente y presione el botón "Parámetro" Según la teoría anterior, para la secuencia m de n = 3, Ci = (13) 8, la longitud del registro "Reg Len" en la ventana de configuración de parámetros se define como 3, la semilla "Seed" se define como 7. y la suma de 2 del elemento de toque "Grifos" 3 ticks. Confirme para salir y el icono cambiará a .

9). Arrastre el ícono de un operador "Operador" desde la biblioteca de íconos a la ventana de diseño, haga doble clic en el ícono, seleccione el comparador "Comparar" en el operador lógico "Lógica" en la ventana emergente y presione el botón "Parámetro". Seleccione "a>b" para la comparación "Comparación" en la ventana de configuración de parámetros, defina la salida del valor verdadero "Salida verdadera" como 2 y defina la salida del valor falso "Salida falsa" como 0. Confirme para salir y el icono cambiará a .

10). Arrastre un ícono de fuente de señal "Fuente" desde la biblioteca de íconos a la ventana de diseño, haga doble clic en el ícono y seleccione la función de paso "Step Fct" de "Aperiodic" en la ventana emergente. ventana arriba. , presione el botón "Parámetro", defina la amplitud de voltaje "Amp" en la ventana de configuración de parámetros como 0, confirme para salir y el icono cambiará a. Haga clic para copiar el mismo icono, con la amplitud de voltaje "Amp" definida como 6.

11). Icono de conexión. Conecte el icono de salida de la fuente de señal de datos 0 al icono de registro de desplazamiento 5 y al icono de recepción 2 respectivamente; el icono de salida de la fuente de señal de reloj 1 está conectado al icono de registro de desplazamiento 5, al icono de recepción 3 y al diagrama del generador de secuencia PN respectivamente. 13, el símbolo 13 se conecta luego al símbolo de recepción 14; los puertos 0, 2 y 3 del símbolo de registro de desplazamiento 5 pasan a través de la puerta NOT y luego se conectan al símbolo sumador 9, mientras que 1, 4 y 5 del símbolo 5, el puerto 6 está conectado directamente al ícono sumador 9, y un ícono de fuente de señal de paso 4 se agrega al sumador, el ícono sumador 5 se envía al ícono de decisión 10, y finalmente el ícono de decisión 10 se envía al ícono de recepción; 12. Obtenga el diagrama esquemático del sistema de simulación del reconocedor de códigos Barker como se muestra en la siguiente figura.

12).Establezca el tiempo de ejecución del sistema. Haga clic en el botón "Tiempo del sistema" de sincronización del sistema en la barra de herramientas, establezca la frecuencia de muestreo "Samp1e Rate" en 10 veces la frecuencia portadora 1e+3 Hz y establezca el número de puntos de muestreo "No. of Samples" en 1024.

13). Presione el botón Crear nota y agregue el Bloc de notas como se muestra en la Figura 4-2. El color y la fuente de los caracteres chinos se pueden definir haciendo clic derecho en el cuadro de texto.

14). Ejecute el sistema. Haga clic en el botón Ejecutar en la barra de herramientas para ejecutar el sistema.

15) Haga clic en el botón de acceso directo "Análisis" para ingresar a la ventana de análisis y haga clic en la distribución horizontal de la barra de herramientas de la ventana para mostrar cuatro gráficos W0, W1, W2 y W3 en toda la ventana, que Es conveniente para la observación y el análisis comparativo. En este momento, puedes ver cuatro gráficos W0, W1, W2 y W3.

16). Finalizar la simulación y guardar el sistema.

Guarde el contenido que acaba de diseñar seleccionando "Archivo -> Guardar".