Post on 04-Oct-2018
1
IMPLEMENTACION DE UN RECUPERADOR DE SINCRONISMO EN UNA FPGA PARA UNA SEÑAL BPSK
(BIT SYNCHRONIZER)
Brac Ezequiel, Ferreyra Pablo, Ferreyra Ricardo, Marqués Carlos, Jorge Naguil
Departamento de Electrónica, Facultad de Ingeniería, Instiuto Universitario Aeronáutico
Fuerza Aérea Argentina
bracezequiel@hotmail.com, pferreyra@famaf.unc.edu.ar, rferrey@gtwing.efn.uncor.edu,
marques@famaf.unc.edu.ar, jnaguil@iua.edu.ar
RESUMEN
La Recuperación de Sincronismo o Sincronización de
Símbolos es una de las funciones del receptor más críticas
en los sistemas de comunicaciones sincrónicos.
El clock del receptor debe ser continuamente ajustado
en su frecuencia como en su fase para optimizar los
instantes de muestreos de la señal de datos recibida y para
compensar las derivas entre el oscilador usado en el
transmisor y los circuitos de clock del receptor. La
información de sincronismo es usualmente derivada desde
los datos mismos y basados en algoritmos específicos de
optimización, se determina el punto de estado estacionario
de los instantes de muestreo.
Este documento se basa en el estudio, simulación y
finalmente implementación física sobre una FPGA de un
Recuperador de Sincronismo o Bit Synchronizer para una
señal BPSK, el cual tiene su fundamento teórico a partir
del uso de los algoritmos de Kurt H. Müller & Markus
Mueller [1]. También se presentan los resultados obtenidos
de las simulaciones y las mediciones de desempeño finales
del sistema.
1. INTRODUCCION
En algún punto del receptor de comunicaciones digitales,
una forma de onda analógica o digital (señal en banda
base) debe ser muestreada. Muestrear en el momento
correcto es crítico para lograr un buen desempeño de todo
el sistema de recepción.
El propósito de la Recuperación de Sincronismo es
recuperar el clock a la frecuencia de símbolos o a múltiplos
de la frecuencia de símbolo a partir de la forma de onda
recibida. Esta señal de clock es requerida para convertir la
señal recibida continua en tiempo en una secuencia discreta
de símbolos de datos.
Muchos sistemas digitales trasmiten la señal de clock
separada de la secuencia de datos. Esto es comúnmente
hecho en sistemas cuyo alcance es del tamaño de un
circuito integrado hasta, tal vez, el tamaño de una
habitación. Para sistemas de comunicaciones digitales, sin
embargo, la transmisión de un clock separado sería
totalmente ineficiente, dado que requiere recursos
adicionales, tales como ancho de banda, potencia, etc. Por
ello, es más económico implementar circuitos adicionales
para derivar la señal de clock desde la misma señal que es
recibida.
Circuitos prácticos para la Recuperación de
Sincronismo no pueden duplicar perfectamente el clock
utilizado en el trasmisor remoto. Pero el requerimiento más
básico impuesto es que la frecuencia promedio de clock
derivada iguale exactamente la frecuencia promedio de la
señal transmitida. Obviamente, el receptor debe solamente
generar tantos bits como hayan sido transmitidos, sobre un
largo período.
La mejor fase de muestreo para un sistema dado
dependerá de la respuesta global al impulso y en
consecuencia a las características del canal de
comunicaciones. Esto no es solo debido al retraso
desconocido el cual es introducido por el canal. El
problema principal es causado por el ruido y la distorsión
lineal (interferencia entre símbolos); estas perturbaciones
pueden limitar severamente el desempeño del lazo de
recuperación de sincronismo.
En este trabajo, se usa un método adaptable para
recuperación de sincronismo en receptores digitales de
datos sincrónicos, conocido como los Algoritmos de
Mueller y Müller[1]. El muestreo se asume a la tasa de bits.
2
Fig. 1 Diagrama en bloques del Recuperador de Sincronismo
o Bit Synchronizer.
La información para el lazo de control es derivada de
las muestras y la estimación del valor de los datos se hace
simple y directamente sin la necesidad de otro tipo de
información. La discusión se limita a señales en banda
base. Esto es justificado porque el más importante método
de modulación lineal permite el concepto de un canal
equivalente de banda base para la modelación de sistemas.
Un diagrama general del Recuperador de Sincronismo
en presentado en la Figura 1.
Para estos algoritmos se destaca que la información de
sincronismo es derivada de las muestras de la respuesta al
impulso. Dado que estas muestras no están disponibles
durante la transmisión, la técnica de Mueller y Müller
obtiene estimaciones directamente de las muestras de la
señal, en donde se deriva el límite para mínima varianza de
estas estimaciones. Finalmente, se presentarán
simulaciones por computadora que confirman la rápida
convergencia, incluso con decisor directo al comienzo (sin
fase de entrenamiento) y la implementación física del
recuperador de sincronismo en una FPGA, también con sus
respectivos resultados.
2. DETALLES DE LA CONFORMACION DE PULSOS
Antes de indagar en los detalles de la conformación del
pulso, es importante entender que los pulsos son enviados
por un transmisor y finalmente detectados por un receptor
en cualquier sistema de transmisión de datos. En el
receptor, la meta es muestrear la señal recibida en un punto
óptimo en el intervalo de pulso para maximizar la
probabilidad de una decisión binaria correcta. Esto implica
que la conformación fundamental del pulso tiene que ser
tal que no interfieran unos con otros en el punto de
muestreo.
Hay dos criterios que aseguran la no interferencia. El
Criterio Uno es que la forma del pulso exhiba un cruce por
cero en los puntos de muestreo de todos los intervalos del
pulso excepto en si mismo. El Criterio Dos es que la forma
del pulso sea tal que la amplitud decaiga rápidamente fuera
del intervalo del pulso.
Esto es importante porque cualquier sistema real
contendrá inestabilidades temporales, lo que significa que
Fig. 2 Forma espectral y la transformada inversa de Fourier
del pulso Raised Cosine.
el punto actual de muestreo del receptor no será siempre
óptimo para cada uno de los pulsos. Por lo tanto, aun si la
forma del pulso provee cruces por cero en los puntos
óptimos de muestreo de los intervalos de otros pulsos, las
inestabilidades temporales en el receptor pueden causar
que el instante de muestreo se mueva, y por ello, perder el
punto de cruce por cero.
Esto, también, introduce error en el proceso de realizar
la decisión. De esta manera, mientras mas rápido decaiga el
pulso fuera de su intervalo de pulso, menos probable será
que las inestabilidades de tiempo introduzcan errores al
momento de muestrear. Mas aún, en adición al criterio de
no interferencia, siempre está presente la necesidad de
limitar el ancho de banda del pulso, por razones ya
explicadas.
2.1. El pulso rectangular y el pulso Raised Cosine
El pulso rectangular, por definición, cumple con el criterio
“uno” porque es cero en todos los puntos fuera del presente
intervalo de pulso. Claramente no puede causar
interferencia durante el tiempo de muestreo de otros
pulsos. El problema con el pulso rectangular, sin embargo,
es que tiene significante energía sobre un gran ancho de
banda como lo indica su transformada de Fourier. De
hecho, debido a que el espectro del pulso está dado por la
familiar respuesta ( ) xxsen ππ / , su ancho de banda se
extiende infinitamente. Esta respuesta en frecuencia no
limitada del pulso rectangular da su inconveniente para los
sistemas de transmisión modernos. He aquí donde los
filtros de conformación de pulsos entran en juego.
El Pulso de Coseno Realzado o Raised Cosine Pulse es
usado en una variedad de sistemas de transmisión de datos
modernos. La magnitud del espectro, ( )ωP , del pulso
Raised Cosine está dada por:
(1)
( )
( )
( )
( )( )
( ) ( )
+<<−
−−+
−>
−<
=
αωωαωαω
αωωπ
αωω
αωω
112
2
1cos1
10
11
cc
c
c
c
c
wF
3
Fig. 3 Interacción de los pulsos Raised Cosine cuando el
tiempo entre los pulsos coincide con el Data Rate.
La forma espectral del pulso raised cosine se muestra en
la Figura 2.
La transformada inversa de Fourier de ( )ωP entrega la
respuesta en el dominio del tiempo, ( )tp , del pulso raised
cosine. Esto también es llamado la respuesta al impulso y
está dado por
(2)
Al contrario del pulso rectangular, el pulso Raised
Cosine toma la forma del pulso sinc como se indica en el
término izquierdo de ( )tp . La forma precisa del espectro
del Raised Cosine está determinada por el parámetro, α ,
donde 10 ≤≤α . Específicamente, α gobierna el ancho
de banda ocupado por el pulso y la tasa a la cual las colas
del pulso decaen. Un valor de 0=α ofrece un ancho de
banda angosto, pero tasa de decaimiento mucho mas lenta
en el dominio del tiempo. Cuando 1=α , el ancho de
banda es τ/1 , pero las colas en el dominio temporal
decaen rápidamente. La Figura 3 muestra un tren de pulsos
raised cosine interactuando unos con otros cuando el
tiempo entre pulsos coincide con la tasa de datos. Note
como los cruces por cero son coincidentes con los centros
de los pulsos como se desea (instantes de muestreo).
Entonces, estamos en presencia de los puntos donde el
recuperador de sincronismo tendrá que hallar su estado
Fig. 4 Señal binaria PAM hecha con 50% de exceso de ancho
de banda para un pulso raised cosine. Un segmento de
longitud 2T es mostrado con detalle en (a). Los círculos
pequeños indican los instantes de muestreo donde los
símbolos no están perturbados por los símbolos
vecinos. En (b), un diagrama de ojo es hecho al solapar
secciones de longitud 2T. La componente de la parte
(a) es mostrada en negro. Este gráfico de la señal es
típico de una pantalla de osciloscopio, donde el
osciloscopio es disparado (trigger) a la tasa de
símbolos.
Fig. 5 Diagrama de ojo para excesos de ancho de banda de (a)
25% y (b) 100% para un pulso raised cosine. Las líneas
verticales indican el alcance de las posibles fases de
sincronismo (instantes de muestreo) tal que pulsos
positivos y negativos pueden ser distinguidos. En cada
caso, la fase óptima de sincronismo está en el centro
donde la apertura del ojo es mayor.
estable para muestrear la señal en banda base (pulsos
raised cosine) en sus picos y así, maximizar la probabilidad
de realizar una correcta recuperación del símbolo
transmitido.
Con respecto a la recuperación del clock sincrónico a
los mencionados datos, se desprende de la Figura 3, que el
periodo del clock recuperado debe ser igual a la inversa de
la tasa de datos (data rate) y sus flancos ascendentes o
descendentes deben coincidir con el instante de muestreo.
2.2. Diagrama de ojo e Interferencia entre símbolos
Con el filtrado subóptimo, es útil cuantificar la
degradación de la señal. Una ilustración gráfica muy útil de
la degradación es el Diagrama de Ojo, así llamado porque
( )2
21
cossin
−
=
τα
ταπ
τt
ttc
tp
4
( ) ( )
1
2 1
2 1
2
0 0
0
0
0 0
3
: 5 3
k
k k
k k k k
k k
k
a
a a
A a a a
a a
a
m
tamaño
−
− −
− −
−
=
=
⋅
su forma es similar al ojo humano. Un diagrama de ojo
consiste en muchos trazos superpuestos de pequeñas
secciones de la señal como se muestra en la Figura 4. Si los
símbolos de datos son aleatorios e independientes, se
resume visualmente toda posible interferencia entre
símbolos de la forma de onda. Esto resume importantes
características de la señal, como se muestra en la Figura 5.
En la presencia de interferencia entre símbolos, cuando la
forma del pulso no satisface el criterio de Nyquist, el
diagrama de ojo se cerrará verticalmente. Para una
transmisión libre de errores en la ausencia de ruido, el ojo
debe mantener algo de apertura vertical, sino de otro modo
habría formas de onda con interferencia entre símbolos que
causarían error al detectar la señal.
Cuando la apertura vertical está incompleta (muy
cercana), la interferencia entre símbolos reducirá la
cantidad de ruido aditivo el cual introducirá errores. Sin
embargo, mientras más sea la apertura vertical mayor será
la inmunidad al ruido. El instante ideal de muestreo es
aquel punto donde se encuentra la máxima apertura de ojo
(vertical), pero esto nunca puede se logrado con precisión
por los circuitos recuperadores de sincronismo. Por lo
tanto, la apertura de ojo horizontal es también de
importancia práctica, dado que mientras más chica sea esta
apertura mayor será la sensibilidad a errores por fase de
sincronismo (el instante en el cual la señal es muestreada).
3. LOS ALGORITMOS DE MÜLLER & MUELLER
Los algoritmos para la Recuperación de Sincronismo de
Müller & Mueller [1], se construyen a partir de la
determinación del vector de pesos. El procedimiento de
determinar el vector de pesos va de acuerdo con un vector
u (es decir, una función de sincronismo) y una memoria
de longitud específica “m” que se desee utilizar. Para el
presente Recuperador de Sincronismo, se propone utilizar
un esquema Tipo A [1], basados en la ecuación
(3)
y una memoria de longitud m = 3. Con los datos
anteriores, se reemplaza el valor de m escogido en la
matriz kA , y se obtiene:
(4)
Fig. 6 Diagrama de bloques a implementar para el Detector de
Error de Sincronismo de M&M (con m=3).
Obtenida esta matriz, se reemplaza en la ecuación para
la obtención del vector de pesos
(5)
(6)
Despejando el vector de pesos kg de la ecuación
anterior, hallamos
(7)
3.1. Diagrama de bloques del Detector de Error de Sincronismo TED de M&M
La ecuación (7), nos permite modificar el diagrama de
bloques general y construirlo para m = 3, obteniendo el
Detector de Error de Sincronismo de M&M (T.E.D.
Timing Error Detector) como se muestra en la Figura 6.
Finalmente, con este vector se obtiene la función de error
para el TED al colocar el vector de pesos en la siguiente
ecuación
(8)
3 3 3 3
k k k= +A g u d
1
2 1
2 1
2
0 0 1/ 2
0 0
0
0 0
0 0 1/ 2
0
k
k k
k k k
k k
k
k
a
a a
a a a
a a
a
con d para transmisión binaria
−
− −
− −
−
− ⋅ =
=
kg
1 1 2
2
1 1 2
21
23
k k k k
k k
k k k k
a a a a
a a
a a a a
− − −
−
− − −
− − = + −
kg
( ) ( ) ( ) ( )1 1
1 1
2 2f h h h T h Tτ τ τ−= − = + − −
T
kz = ⋅k kg x
5
Fig. 7 Diagrama final a implementar para el Detector de Error
de Sincronismo de M&M, TED (con m=3).
Fig. 8 Diagrama final a implementar para el Bit Synchronizer
Operando
(9)
Con el resultado anterior, se permite hallar la versión
final para el TED de M&M. Un diagrama en bloques de la
Ecuación (11) se presenta en la Figura 7.
Nótese que la Figura 6 y la Figura 7 son exactamente
iguales. Dicha igualdad se observará al reemplazar la
Ecuación (7) en su bloque correspondiente de la Figura 6 y
al operar se llegará al resultado mostrado en la Figura 7.
Este proceso se demuestra en las ecuaciones (8,9,10 y 11).
3.2. Diagrama del Recuperador de Sincronismo de Müller & Mueller
Remitiéndose a la Figura 1, reemplazamos el Estimador de
Error de Sincronismo por el Detector de Error de
Sincronismo TED de M&M planteado en la Figura (7). El
resultado final se muestra en la Figura (8).
Fig. 9 Diagrama en bloques de Recuperador de Sincronismo a
simular en Matlab.
Fig. 10 Resultados de la simulación del Recuperador de
Sincronismo, en azul se muestra la señal banda base
recibida y en verde los instantes de muestreo decididos
por el algoritmos M&M una vez que el lazo ha
convergido.
4. SIMULACIONES EN MATLAB(SIMULINK)
Con el objeto de comprobar la teoría de los algoritmos de
M&M, se implementó en el programa Matlab (Simulink) el
diagrama propuesto en la Figura 8, al cual se le han
agregado los bloques para generar la señal en Banda Base
(Raw Data) y algunos visualizadores de forma de onda,
también llamados “Scope” para observar las señales de
salida de dato y clock. Con respecto a la señal excitadora,
se eligió una tasa de 2000 símbolos/s, la cual es luego
pasada por un mapeador para luego ser acondicionada por
un filtro Raised Cosine; con la lo que se obtiene la señal
Banda Base BPSK. Esta disposición se muestra en la
Figura 9.
Una vez corrida la simulación y esperado el tiempo de
convergencia del lazo de control, se superpuso la señal
banda base de entrada al sistema con el reloj recuperado
por el mismo. Los resultados pueden ser observados en la
Figura 10, allí se puede constatar que los flancos
ascendentes del reloj coinciden con los picos de la señal de
entrada; esta, por supuesto, era la cualidad buscada ya que
los símbolos transmitidos son recuperados con el flanco
ascendente del oscilador local. Al tomarse el símbolo en el
pico de la señal entrante se maximiza la probabilidad de
una correcta detección del símbolo transmitido ya que nos
encontramos en la máxima apertura del diagrama de ojo.
( )( )( )
−
++
+−−
=
−−−−
−−
−−−
2211
12
211
2
2
3
1
kkkkk
kkk
kkkkk
k
xaaaa
xaa
xaaaa
z
6
Fig. 11 Resultados de simulación para el Recuperador de
Sincronismo, se observa la señal de error a la salida de
Filtro de Lazo, en donde el sistema rastrea la frecuencia
de datos de la señal banda base.
En la Figura 11 se muestra la señal de error del lazo de
control cuando el mismo se encuentra rastreando una tasa
de datos específica.
Mas concretamente, esta prueba se realizó iniciando el
oscilador local 1995Hz y recibiendo una tasa de datos de
2000 símbolos/s. La señal muestra como el oscilador es
corrido de su frecuencia natural de oscilación para igualar
la tasa de entrada de símbolos.
5. SIMULACION EN FPGA CON EL PROGRAMA ALDEC ACTIVE-HDL
Como paso final para la comprobación de los Algoritmos
de M&M se implementó el Bit Synchronizer en una FPGA
Xilinx Virtex XVC300. Esta tarea demandó discretizar
cada uno de los bloques que se usaron en Simulink para
poder escribirlos en el lenguaje de programación VHDL
(Very High Speed Integrated Circuits Hardware
Description Lenguage). En las Figuras 12 y 13, se muestran los resultados de
las simulaciones llevadas a cabo. En la primera se ellas se
muestra la señal banda base, seguido por la señal banda
base contaminada por ruido aleatorio y finalmente la señal
de error del lazo, la cual muestra que el lazo en
convergente nuevamente. La figura siguiente es una
ampliación, en donde se observa con detalle la señal banda
base, luego contaminada por ruido y se agrega el reloj
recuperado (señal del oscilador local) y el símbolo
recuperado. En este punto, hay que destacar que otra vez, y
como era de esperarse, los flancos ascendentes de la señal
del reloj coinciden con los picos de la señal y con el
cambio del símbolo recuperado.
Fig. 12 Resultado de simulación, tiempo de convergencia en
aprox. 100ms. En la primer fila se observa la señal en
banda base a la salida del filtro Raised Cosine, la
segunda fila muestra la señal banda base contamina con
ruido, la tercer fila muestra el clock recuperado, la
cuarta muestra el dato recuperado y la quinta fila
muestra la señal de convergencia.
Fig. 13 Resultado de simulación una vez que el sistema ha
convergido, aquí se puede observar que el dato es
tomado con el pulso ascendente del clock recuperado el
cual coincide con los picos de la señal de banda base.
En la primera fila se muestra nuevamente la señal
banda base a la salida del filtro RC, la segunda fila
muestra la señal banda base contaminada y en la tercer
y cuarta fila, el clock y dato recuperados.
6. IMPLEMENTACION EN FPGA Y MEDICIONES DE DESEMPEÑO
Con las simulaciones funcionales y simulaciones de Timing
completadas para la FPGA, la misma fue grabada con
programa realizado.
A este sistema se la practicaron las mediciones de
comparación de señal de banda base contra reloj y datos
recuperados; así como la construcción del diagrama de ojo,
el cual es la comprobación final de la estabilidad del
sistema y del lugar donde los datos son recuperados.
data_out
Dataout1
clk
DataSalida
tk2
ms20 40 60 80 100 120 140 160 180 200 220 240 260 280 300 320 340 360 380
data_out
Dataout1
clk
DataSalida
ms508 509 510 511 512 513 514 515 516 517 518 519
7
Fig. 14 Resultado de las mediciones del Recuperador de
Sincronismo, tasa de datos en 2kbits/s, se observa en el
Canal 1 (señal en color amarilla) la señal banda base
recibida, en el Canal 2 (señal en color celeste) el clock
recuperado y en el Canal 3 (señal en color violeta) los
datos recuperados.
Fig. 15 Resultado de las mediciones del Recuperador de
Sincronismo, tasa de datos en 2kbits/s, se observa en el
Canal 1 (señal en color amarilla) el diagrama de ojo de
la señal banda base recibida, en el Canal 2 (señal en
color celeste) el clock recuperado y en el Canal 3 (señal
en color violeta) la transición de los datos recuperados.
El siguiente conjunto de mediciones fueron realizadas
con un osciloscopio Tektronik TDS7104. El la Figura 14,
se observa en amarillo la señal banda base recibida, en
celeste la señal del oscilador local y en violeta los datos
recuperados. Como se muestra con los dos cursores
amarrillos, los flancos ascendentes del reloj coinciden los
picos de la señal banda base, el cual es el punto donde no
hay interferencia entre símbolos.
Fig. 16 Diagrama de ojo de la Figura 15 ampliado, en amarillo
el diagrama de ojo y en celeste la señal del oscilador
local.
Fig. 17 Resultado de las mediciones del Recuperador de
Sincronismo, comparando los datos de entrada (señal
en color celeste) con los datos de salida (señal en color
violeta).
En la Figura 15, se muestra en amarillo la construcción
del diagrama de ojo de la señal recibida, en celeste la señal
del oscilador local y en violeta los símbolos recuperados.
En este punto, es muy importante tener en cuenta las Figura
4 y 5, ya estas figuras eran las predicciones teóricas del
comportamiento del Recuperador de Sincronismo y se
puede ver claramente que son iguales a las Figuras 14 y 15.
Para realizar la comprobación de la estabilidad del lazo
de control, se practicaron medidas de Tasa de Error de
Datos o BER (Bit Error Rate). Para dichas mediciones se
utilizaron los equipos Analizadores de Transmisión Digital,
Anritsu Receiver ME502B y Anritsu Transmitter ME502B.
8
Sobre una medición de 10 horas, se obtuvieron 5 errores,
lo que da el resultado
(10)
En la Figura 17 se puede observar un instante en la
comparación de los datos de entrada (señal en color
celeste) con los datos recuperados (señal en color violeta),
como se observa, a pesar del desfasaje por procesamiento,
los datos son coincidentes.
7. CONCLUSION
Se observó que los algoritmos de Müller y Mueller
implementados en una FPGA tienen una enorme
potencialidad para realizar la recuperación del sincronismo
en Receptores Digitales a partir de una señal banda base
recibida; siendo rápidamente convergentes y capaces de
soportar importantes cantidades de ruido en la señal
recibida.
Como punto destacable, se puede mencionar que este
proyecto será aplicado al Transmisor-Receptor de
Telemetría de 2kbits para el satélite SAOCOM 1A de la
Comisión Nacional de Actividades Espacial (C.O.N.A.E.).
8. AGRADECIMIENTOS
A la Empresa Consulfem S.A., por proveer los equipos y
kits de desarrollo necesarios, en especial al Ingeniero
Leonardo Villanueva, Fabrizio Barbero y Javier Siman por
su colaboración desinteresada.
9. REFERENCIAS [1] Kurt H.Mueller and Markus Müller, “Timing Recovery
in Digital Synchronous Data Receivers,” IEEE Trans.
On Communications COM-24 pp. 516-531 (May,
1976).
[2] B. R. SaltzBerg, “Timing Recovery for synchronous
binary data transmission,” Bell Syst. Tech. J., vol. 46,
pp. 593-622, March 1967.
[3] R. W. Chang, “Joint equalization, carrier acquisition,
and timing recovery for data communication,” in Conf.
Rec., Int. Conf. Commun., 1970.
[4] R . D. Gitlin and J. Salz, “Timing recovery in PAM-
systems,’’ Bell Syst. Tech. J., vol. 50, pp. 1645-1669,
May-June 1971.
[5] Edward A. Lee, David G. Messerschmitt, “Digital
Communications”, © 1988 by Kluwer Academic
Publishers, Boston.
[6] John G. Proakis, Dimitris G. Manolakis, “Digital
Signal Processing”, © 1992 by Macmillan Publishing
Company.
[7] Ingle, Proakis, “Digital Signal Processing using Matlab
V.4”, © 1997 by PWS Publishing Company.
[8] Louis Litwin, “Matched filtering and Timing Recovery
in digital receivers,” RF time and frequency, RF Design
(September 2001), www.rfdesign.com.
[9] Ken Gentile, “The Care and feeding of digital, pulse
shaping filters,” RF Mixed Signal, RF Design (April
2002) .
[10] Kevin Skahill on Cypress Semiconductor, “VHDL for
Programmable Logic,” © 1996 by Addison-Wesley
Publishing., Inc.
[11] Jan Van der Spiegel, “VHDL Tutorial,” University of
Pennsylvania, Copyright 2001, Sept. 28,2001; Updated
November 18,2001.
7101 −⋅≈BER