Tesis
Tesis
Tesis
FACULTAD DE INGENIERÍA
Diseño e implementación de un
transmisor AM, FM y ATSC en Radio
Definida por Software para docencia
TESIS
Que para obtener el título de
Ingeniera en
Telecomunicaciones
PRESENTA
Viridiana Mares Rodríguez
DIRECTOR DE TESIS
Dr. José María Matías Maruri
3
Índice general
Índice de figuras 7
Índice de cuadros 10
Lista de Términos 12
1. Introducción 14
1.1. Justificación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.2. Objetivo de la Tesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.3. Organización de la Tesis . . . . . . . . . . . . . . . . . . . . . . . . . 16
4
Índice general 5
4. El transmisor AM 47
4.1. Datos históricos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.2. Bases teóricas de la modulación en amplitud . . . . . . . . . . . . . . 47
4.3. Diseño . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
4.4. Implementación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
5. El Transmisor FM 64
5.1. Datos históricos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
5.2. Bases teóricas de la modulación en frecuencia . . . . . . . . . . . . . 65
5.3. Diseño . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
5.4. Implementación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
6. El transmisor ATSC 80
6.1. Datos históricos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
6.2. Características de transmisión de una señal ATSC . . . . . . . . . . . 82
6.2.1. Aleatorizador de datos . . . . . . . . . . . . . . . . . . . . . . 85
6.2.2. Codificador de Reed-Solomon . . . . . . . . . . . . . . . . . . 86
6.2.3. Entrelazado de Datos . . . . . . . . . . . . . . . . . . . . . . . 86
6.2.4. Codificador de Trellis . . . . . . . . . . . . . . . . . . . . . . . 87
6.2.5. Multiplexor y sincronización de datos . . . . . . . . . . . . . . 88
6.2.6. Inserción de piloto . . . . . . . . . . . . . . . . . . . . . . . . 88
6.2.7. Modulador VSB . . . . . . . . . . . . . . . . . . . . . . . . . . 88
6.2.8. Descripción del espectro, constelación y desempeño del sistema
8-VSB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
6.2.9. Descripción de la trama de datos . . . . . . . . . . . . . . . . 91
6.3. Diseño . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
6.4. Implementación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Índice general 6
7. Conclusiones 109
Bibliografía 115
Índice de figuras
7
Índice de figuras 8
10
Índice de cuadros 11
12
Lista de Términos 13
Introducción
14
Capítulo 1. Introducción 15
el nuevo estándar que adoptó México para la emisión de señales digitales de televi-
sión, y el espacio que se tendría que destinar para este laboratorio, sería absurdo.
Además comprar transmisores de AM, FM y ATSC no permitiría al futuro ingeniero
experimentar con la tecnología en cuestión, solamente serviría para obtener buenas
señales de AM, FM y ATSC. Es decir, es necesario contar con transmisores de costo
accesible y que puedan ser reconfigurables para la experimentación, por estas dos
razones los transmisores desarrollados en esta tesis son implementados en una pla-
taforma llamada Radio Definida por Software (RDS) o en inglés Software Defined
Radio (SDR).
SDR en los últimos años ha sido de gran interés para la investigación y la do-
cencia, ya que en un mismo hardware es posible implementar diferentes sistemas de
comunicación. Es decir, para la implementación de los transmisores se utiliza como
hardware un equipo llamado USRP (Universal Software Radio Peripheral) que es un
transceptor genérico y configurable, y como software se utiliza un programa llamado
GNU Radio. El comportamiento de cada transmisor depende básicamente de cómo
se programe en el software GNU Radio. De esta manera crear un transmisor AM,
uno FM y otro ATSC no supone más costo de hardware que el del USRP, y controlar
los transmisores mediante software permite que estos sean dinámicos en su configu-
ración. Por lo que, es posible cambiar de un transmisor a otro solo con cargar un
programa diferente y además se añade otra característica importante para el labora-
torio, es posible utilizar valores diferentes a los predeterminados comercialmente en
la emisión de las señales, lo que da lugar a la experimentación y pruebas.
Una ventaja más es que se pueden implementar con el mismo equipo y el mismo
software futuras tecnologías de radiodifusión que surjan, esto es importante porque
nos encontramos frente a un mundo donde la tecnología avanza y cambia rápida-
mente.
1.1. Justificación
Actualmente en la carrera de Ingeniería en Telecomunicaciones de la UNAM
existen materias como Radiodifusión, que no cuentan con ningún tipo de material
para realizar prácticas. Es importante empezar a crear material para ejemplificar
Capítulo 1. Introducción 16
capítulo tres se describen conceptos básicos del procesamiento digital de señales que
son necesarios para el diseño de los transmisores. El capítulo cuatro es la descripción
del transmisor AM, se ilustra cómo ha sido diseñado e implementado; en el capítulo
cinco se describe el transmisor FM y en el capítulo seis se describe el transmisor
ATSC. Por último en el capítulo siete se resumen las conclusiones de la tesis.
Capítulo 2
La tecnología SDR (Radio Definida por Software, RDS o en inglés Software De-
fined Radio, SDR) propone un modelo de sistema programable para la generación y
recepción de señales RF, independiente del hardware, se trata de un sistema diná-
mico en el que el comportamiento del mismo depende del software [1]. Un sistema
basado en esta plataforma es capaz de modificar su funcionamiento y características
dinámicamente, como ancho de banda, modulación, codificación, etc., esto quiere
decir que la forma de onda es modificada solo mediante software.
2.1. Historia
Inicialmente se utilizaban componentes analógicos en la construcción de transmi-
sores o receptores independientemente de si la información era digital o analógica;
es hasta el desarrollo de los microprocesadores en los años setenta y de los circui-
tos integrados de pequeña escala y gran escala en los sesenta, en inglés SSI (Small
Scale Integration) y LSI (Large Scale Integration) respectivamente, que se empiezan
a incluir circuitos digitales en transmisores y receptores de radio. En un principio
estos circuitos integrados fueron usados para la codificación y decodificación de in-
formación digital y para el control de la frecuencia [2]. Sin embargo la posibilidad de
tener un sistema de radio con procesamiento digital fue tangible hasta el desarrollo
del DSP (Digital Signal Processor) y del FPGA (Field Programmable Gate Array),
es hasta entonces que los sistemas de radio progresaron significativamente. Debido
18
Capítulo 2. La Radio Definida por Software 19
Con esta implementación los dos convertidores D/A utilizados para generar una
señal en fase y otra en cuadratura solo requieren trabajar a la frecuencia de Nyquist
de la señal modulada en banda base . Ahora bien si se habla del receptor, un demo-
dulador en cuadratura también es utilizado para reducir la frecuencia de muestreo,
Capítulo 2. La Radio Definida por Software 22
el demodulador mezcla la señal de entrada con la señal del oscilador local una en
fase y la otra desplazada 90 grados, y de esta manera pueden ser generadas las com-
ponentes I y Q de la señal banda base. Hay que señalar que para demodular AM
solo se requiere la componente I, pero para las demás modulaciones se requieren las
dos componentes.
Pero también surge como alternativa al demodulador de cuadratura un demodu-
lador como el mostrado en la figura 2.3 que es más simple y no es tan sensible a las
variaciones de cada una de las componentes, es el detector Tayloe.
Este detector requiere que la frecuencia del oscilador local sea cuatro veces la fre-
cuencia de la señal portadora, la señal del oscilador local es decodificada y conducida
a cuatro interruptores RF, las salidas de los interruptores conducen a amplificado-
res operacionales que están configurados para generan las componentes I y Q. El
detector de Tayloe tiene varias ventajas pues no requiere circuitería analógica y por
lo tanto el límite de la frecuencia de portadora que se puede recibir se ve limitada
solamente por los circuitos digitales. Otra ventaja es que la frecuencia del oscilador
local puede ser fácilmente modificada obteniendo así la posibilidad de implementar
un receptor sintonizable [2]. Todo esto nos da una idea de cómo se han implementado
los convertidores de señal en SDR.
Una vez que se analizó de forma general cómo trabaja una arquitectura SDR es
posible comprender una configuración más completa de SDR, como la mostrada en
Capítulo 2. La Radio Definida por Software 23
Arquitectura de bus
Esta arquitectura, conocida también como arquitectura abierta y en general este tipo
de arquitectura es llamada así debido a que es adaptable al usuario. En un hardware
SDR es posible acceder directamente a la placa madre (específicamente al FPGA o
DSP del hardware SDR) mediante un puerto que nos ofrece. Mediante este puerto es
posible conectar dispositivos o tarjetas que el usuario requiera [8]. La tecnología SDR
emplea este tipo de arquitectura para satisfacer las necesidades de una red inalám-
brica definida por software. Esta arquitectura puede interconectar varios módulos de
hardware logrando altas velocidades de transmisión [7]. La arquitectura de bus es
definida por la ISO (International Organization for Standardization) y su estructu-
ra consiste en tres capas. La capa de interfaz de radio, capa de configuración y la
capa de proceso. La capa de interfaz de radio, es como su nombre lo dice la interfaz
entre el hardware y el exterior. Esta capa se encarga de coordinar la información de
entrada y salida, contiene la información de los algoritmos y las funciones que son
necesarias para el sistema. Envía mensajes a la capa de configuración especificando
qué algoritmos debe correr el sistema y el orden en que deben ser realizados. La
Capítulo 2. La Radio Definida por Software 24
Antenas inteligentes
Como se pudo intuir anteriormente una parte esencial de un sistema de radio de-
finido por software son los convertidores de señal digital-analógico y viceversa, por
lo que es importante detallar su rol en el sistema. En un receptor SDR la señal de
RF es convertida en una señal de frecuencia intermedia (IF) a través de mezclador
Capítulo 2. La Radio Definida por Software 25
Procesador de señales
Paquetes de software
Son los bloques generadores de formas de onda (seno, coseno, etc.), generadores de
ruido, generador de señal aleatoria entre otros.
Con estos bloques se declaran las variables y parámetros que serán utilizados en el
programa.
Bloques de Audio
Implementa operadores lógicos (AND, OR, NOT, XOR) que permiten realizar bús-
quedas complejas.
Operadores Matemáticos
Aquí se encuentran los bloques que permiten intercalar datos o repiten datos (cadenas
de bits).
Bloques convertidores
Se trata de bloques que convierten un tipo de dato a otro, se manejan datos de tipo
flotante, entero, entero corto, complejo, etc.
Bloques de filtros
Son bloques que implementan filtros paso bajas, filtros pasa banda, paso altas, tam-
bién se encuentra “remuestreadores” de señal que permiten ajustar la velocidad de
muestreo de la señal entre dos bloques.
Los bloques también se encuentran agrupados de acuerdo a la tecnología de ra-
diodifusión por lo que existen bloques especiales para las diferentes tecnologías que
existen (AM, FM, televisión digital, etc.) como moduladores, demoduladores, deco-
dificadores, etc.
Capítulo 2. La Radio Definida por Software 29
GNU Radio trabaja con un concepto llamado ítem [20]. En GNU Radio no todos
los bloques procesan muestras, algunos bloques pueden trabajar con bits, bytes,
símbolos, paquetes, etc. Al elemento con el que funciona cada bloque se le llama
ítem y en cada bloque se específica el tipo de ítem. A continuación se encuentra la
nomenclatura utilizada para cada tipo de ítem:
c: complejo (flotante de precisión simple)
z: complejo (flotante de doble precisión)
f: flotante de precisión simple
d: flotante de doble precisión
Capítulo 2. La Radio Definida por Software 30
Python
2.4.1. USRP
El USRP (Universal Software Radio Peripheral) es un equipo que permite im-
plementar radios definidos por software, ha sido utilizado en numerosos proyectos
de todo tipo de SDR [22]. El USRP es fabricado por la compañía americana Ettus
Research de NI (National Instruments). En este proyecto se utiliza la serie de USRP
X300, la apariencia de este equipo es mostrada en la figura 2.7.
Utiliza una FPGA para un mejor rendimiento, el Xilinx Kintex-7 FPGA y más
específicamente la serie XC7K325T. Ésta cuenta con un reloj de 200 MHz y
200 MS/s 1 de ancho de banda para cada canal de 16 bits.
Para realizar el diseño y la implementación de sistemas electrónicos en el FPGA
1
106 muestras por segundo
Capítulo 2. La Radio Definida por Software 32
Es posible que el usuario pueda controlar estas dos etapas de sintonización [24]. El
USRP utiliza dos mezcladores de señal también llamados procesadores Font-end los
cuales realizan la conversión analógica a digital y digital a analógica de las señales
[25].
Respecto a la frecuencia de muestreo es importante entender ciertas reglas:
Los parámetros de interpolación y decimación utilizados deben ser estrictamente
enteros. Para conseguir esto se debe cumplir que la relación entre la frecuencia del
reloj maestro del USRP y la frecuencia deseada dé como resultado un entero. En el
Capítulo 2. La Radio Definida por Software 33
USRP X300 es posible elegir de entre tres frecuencias de reloj maestro con el objetivo
de conseguir otras frecuencias de muestreo, el reloj maestro de este hardware puede
soportar los valores de 200 MHz, 184.32 MHz y 120 MHz [24].
En la figura 2.8 se observa la estructura interna del USRP X300, figura tomada
de la hoja de especificaciones proporcionada por la compañía NI [26]. En el apéndice
A se anexan todas las especificaciones de la serie X (X300 y X310).
Cuenta con dos entradas/salidas, una que puede ser utilizada tanto para trans-
mitir como recibir (TX/ RX) y otra que solo permite recepción (RX).
2.4.3. El CPU
Lógicamente se necesita de una maquina o CPU para ejecutar un sistema ope-
rativo y por lo tanto utilizar el software GNU Radio. La computadora utilizada en
este proyecto es marca DELL modelo Vostro, sus características son las siguientes:
35
Capítulo 3. Conceptos básicos del procesamiento digital de señales 36
fs ≥ 2 ∗ fmax . (3.2)
Es necesario resaltar que para cumplir con este teorema debe existir un filtro
paso bajas antes del convertidor analógico-digital, con lo que se evita que entren al
convertidor frecuencias mayores a la mitad de la tasa de muestreo. Algunos filtros
utilizados en este tipo de aplicación son el filtro Chebychev, el filtro Bessel y el filtro
Butterworth [27].
sea mucho más simple, por ejemplo un filtro paso bajo RC [27]. Los datos digitales
obtenidos tendrán la información de la señal original pero también información in-
necesaria. Debido a esto se requiere ahora eliminar estas muestras, es posible hacer
esto simplemente descartando las muestras innecesarias, proceso llamado diezmado
o también llamado decimación. Cuando el proceso para modificar la frecuencia de
muestreo, en vez de descartar muestras, añade muestras con valor de 0, es llamado
interpolación.
Estas técnicas son utilizadas porque, como se pueden inferir de lo anterior, per-
miten sustituir componentes analógicos mediante software y en el caso de algunas
aplicaciones mejoran el rendimiento de los sistemas [27]. En el software GNU Radio
existen bloques entre los que es imposible trabajar con la misma frecuencia de mues-
treo por lo que la interpolación y la decimación como técnicas de conversión de tasa
de muestreo son necesarias.
Se obtiene la respuesta al impulso del filtro ideal que se desea diseñar (filtro
paso bajas, filtro paso banda, etc.).
Ventana Rectangular
Ventana Hanning
Ventana Hamming
Ventana Kaiser
Esta ventana presenta un buen compromiso entre el ancho de banda del lóbulo
principal, la amplitud del lóbulo secundario y el decaimiento de los lóbulos laterales.
Es implementada mediante funciones de Bessel y se caracteriza por que es definida
por un parámetro llamado β, el cual evita que el ancho de banda del lóbulo prin-
cipal dependa directamente del número de muestras M como en todas las ventanas
Capítulo 3. Conceptos básicos del procesamiento digital de señales 45
Las ventanas descritas anteriormente son las ventanas que existen y pueden ser
usadas en bloques de GNU Radio que tienen como propósito mostrar el espectro
de la señal. Seleccionar qué ventana se utiliza para multiplicar a nuestra señal es
muy importante ya que de esto depende el análisis correcto del espectro de la señal.
Escoger cual es la mejor ventana depende de la aplicación. Aunque en general algunas
ventanas representan desempeños superiores como es el caso de la ventana Blackman-
Harris y la ventana Kaiser.
3.6. Resumen
En general en este capítulo se describieron los conceptos básicos para llevar a
cabo el diseño de los transmisores. El teorema de muestreo tanto para señales reales
como complejas es básico para trabajar con el software GNU Radio. Otros conceptos
como la interpolación y decimación no son en general básicos pero si necesarios en
el caso de los transmisores desarrollados. Entender bajo que principios funcionan los
bloques en GNU Radio es fundamental para hacer un diseño correcto por lo que
conceptos como la transformada de Fourier y el método de las ventanas para filtros
FIR fueron abordados.
Capítulo 4
El transmisor AM
47
Capítulo 4. El transmisor AM 48
Am
m= (4.3)
Ac
mAc mAc
SAM (t) = Ac sen(2πfc t) − cos(2π(fc + fm )t) + cos(2π(fc − fm )t) (4.5)
2 2
A2c
Pc = (4.7)
2R
(mAc /2)2
PBL = (4.8)
2R
Respecto al ancho de banda de una señal AM se puede apreciar de la figura 4.1
que es igual a dos veces la frecuencia máxima de la señal moduladora (ecuación 4.9).
El ancho de banda de un canal en radiodifusión AM es de tan solo 10 KHz por lo
que el ancho de banda de cada banda lateral es de tan solo 5 kHz.
B = 2 ∗ fm(max) (4.9)
4.3. Diseño
m = m0 Am (4.11)
Es el primer bloque del diagrama 4.5. Este bloque genera la señal en banda base
es decir la información que se desea transmitir o señal moduladora. Existen diferentes
propiedades del bloque que pueden ser configuradas:
Output Type
Este parámetro específica el tipo de dato que se tendrá a la salida del bloque. Existen
cuatro tipos de datos: complejo, flotante, entero (de 32 bits) y entero corto (16
bits) [44]. En el transmisor se optó por un dato de tipo flotante.
Frequency
Signal Source
Parámetro Valor
Output Type Float
Frequency fm
Sample Rate 15 ∗ 106
Waveform Sine
Amplitude Am
Offset 0
IO Type
Con este parámetro se indica el tipo de dato de entrada y salida al bloque por lo
tanto tiene que ser el mismo tipo de dato que envía el bloque anterior (flotante).
Const
Especifica el valor por el cual se multiplicará la entrada o en este caso señal modu-
ladora. Para el transmisor esta constante en realidad es una variable llamada m que
toma valores de 0 a 2.5. El índice de modulación para el transmisor esta definido
como m = m0 ∗ Am pero debido a que el valor por defecto de Am es 1, m es igual a
m0 . Para cualquier otro valor de Am el índice de modulación debe ser calculado.
Vec Length
El nombre o ID del bloque indica que los ítems que procesa son vectores (nomen-
clatura encontrada en el capítulo 2) por lo que es necesario indicar la longitud del
vector. Para la mayoría de las aplicaciones se utiliza el valor predeterminando que
es uno.
Capítulo 4. El transmisor AM 57
Multiply Const
Parámetro Valor
Output Type Float
Constant m
Vec Length 1
IO Type
Este parámetro especifica lo mismo que en el bloque anterior por lo que también es
de tipo flotante.
Const
Add Const
Parámetro Valor
Output Type Float
Constant 1
Vec Length 1
Signal Source
Parámetro Valor
Output Type Float
Frequency fc
Sample Rate samp_rate
Waveform Sine
Amplitude 1
Offset 0
Bloque 5: Multiply
De forma general este bloque realiza la multiplicación de una o más entradas. Para
el caso de este transmisor solo se tienen dos entradas y la función implementada es
la siguiente: salida = moduladora ∗ portadora. En esencia en este bloque se realiza
la modulación en amplitud.
IO Type
Num inputs
Este bloque también trabaja con vectores por lo que es necesario especificar la
longitud, en el cuadro 4.5 se muestra el resumen de la configuración.
Multiply
Parámetro Valor
IO Type 2
Num inputs 2
Vec Length 1
Este bloque recibe la señal modulada en amplitud y la envía al USRP para ter-
minar el procesamiento de la señal y finalmente radiar una señal analógica modulada
en amplitud. A continuación se describen los parámetros del bloque utilizados en el
transmisor.
In Type
En este bloque los datos flotantes son convertidos a tipo complejo de longitud de 16
bits. Recordar del capítulo dos que el USRP procesa señales de tipo complejo, por
lo que a la salida del bloque la señal tiene que ser compleja, representada por dos
componentes.
Sample rate
Center Frequency
Antenna
Capítulo 4. El transmisor AM 60
Para dispositivos con una sola antena este espacio puede dejarse en blanco. La tarjeta
hija utilizada en esta tesis cuenta con dos antenas por lo que es necesario especificar
la antena que se utiliza, en este caso es la TX/RX.
Bandwidth
4.4. Implementación
El diagrama real del transmisor programado a bloques en GNU Radio es el de la
figura 4.6.
En resumen el transmisor consta de siete bloques para el procesado de la señal,
dos bloques para mostrar las características de la señal modulada (espectro y oscilo-
grama), y cinco bloques que permiten tener el control de las variables involucradas
en el programa. Los bloques más importantes del programa son los bloques que in-
volucran el procesado de la señal para obtener una modulación en amplitud. Todos
estos bloques ya han sido descritos anteriormente excepto uno, el bloque llamado
“Rational Resampler”. Este bloque se utiliza como interpolador con el fin de tener el
mismo número de muestras a la entrada del bloque multiplicador, recordar que las
Capítulo 4. El transmisor AM 61
señales multiplicadas son discretas por lo que se requiere el mismo número de puntos
o muestras para la multiplicación. El factor de interpolación es de 10, lo que quiere
decir que a la salida de éste se tendrán 15 M S/s ∗ 10 1 dando un total de 150 MS/s
que es la frecuencia de muestreo de la señal portadora. La señal moduladora no tiene
desde un principio una tasa de muestreo de 150 MS/s con el fin de reducir la carga
computacional.
Las variables utilizadas en el programa se pueden observar en la parte supe-
rior: sample_rate, fm , m, Am y fc . Todas explicadas en el diseño del transmisor.
También aparecen dos bloques para obtener el espectro y oscilograma de la señal.
Para observar la señal en el dominio de la frecuencia se utiliza un bloque llamado
W X GU I F F T Sink. Como el nombre del bloque lo indica, este bloque implemen-
ta la transformada rápida de Fourier. La señal en el dominio del tiempo es obtenida
mediante el bloque W X GU I Scope Sink que implementa un osciloscopio. Para
estos dos bloques el parámetro Sample Rate tiene que ser el mismo que para los
bloques anteriores con el fin de que la señal sea representada correctamente. La
interfaz gráfica utilizada en este transmisor es la W X GU I, permite visualizar las
ventanas donde se muestra el oscilograma y espectro de la señal modulada, un pa-
1
S/s son muestras por segundo
Capítulo 4. El transmisor AM 62
nel de control y las variables que pueden ser modificadas por el usuario. El bloque
W X GU I N otebook simplemente muestra las ventanas mediante pestañas que si-
guen un orden indicado. La interfaz descrita anteriormente a través de la cual los
alumnos interactuarán con el programa es la mostrada en la imagen 4.7.
Figura 4.8: Espectros de una señal de AM sin sobre modulación (derecha) y con
sobre modulación (izquierda).
El Transmisor FM
La modulación angular1 apareció por primera vez en 1931 como una alternativa
de la modulación AM pues se sugirió que una modulación angular es más robusta ante
el ruido. En 1933 Edwin H. Armstrong creó y produjo el sistema de modulación en
frecuencia FM, este sistema demostró tener una mejor recepción frente a tormentas
violentas y una mejor fidelidad de sonido que el sistema AM. Sin embargo no fue
sino hasta 1940 que surgió la primera estación de FM debido a que la industria de
la radio no pudo asumir un cambio de sistema, finalmente en 1941 bajo la dirección
de Armstrong se iniciaron transmisiones regulares en FM [41].
A finales de la década de 1960 el sistema FM se estableció claramente como
un sistema superior, la mayoría de los aparatos de radio se vendieron en FM, la
mayoría de repetidoras de microonda fueron establecidas en FM. La modulación en
FM fue utilizada en TV analógica para la modulación del audio y en comunicaciones
espaciales. Actualmente la modulación angular sigue siendo ampliamente utilizada
en emisiones de radio comercial, televisión y transmisión de sonido, radioteléfonos,
y sistemas de comunicaciones por microondas y satélites [31].
1
La modulación angular tiene dos variantes: modulación de frecuencia (FM) y modulación de
fase (PM). Posteriormente se explicará la diferencia entre ambas modulaciones.
64
Capítulo 5. El Transmisor FM 65
kAm
m= (5.2)
fm
∆f = kAm (5.3)
Por lo que el índice de modulación también puede ser visto como la relación de
la desviación máxima entre la frecuencia de la señal moduladora sustituyendo la
ecuación 5.3 en 5.2. Respecto al porcentaje de índice de modulación, su concepto
es muy diferente del de una modulación en amplitud. Para una señal FM el índice
de modulación porcentual es la relación de la desviación en frecuencia producida
realmente entre la desviación máxima de frecuencia permitida:
∆freal
%m = (5.4)
∆fmax
existen identidades de funciones de Bessel como la ecuación 5.5 que es posible aplicar
directamente a la ecuación 5.1. Resultando la ecuación 5.6 [31].
∞
X nπ
(cosα + mcosβ) = Jn (m)cos(α + nβ + ) (5.5)
n=−∞ 2
π π
SF M (t) = Ac {J0 (m)cos[wct]+J1 (m)cos[(wc +wm )t+ ]−J1 (m)[(wc +wm )t− ]+. . .
2 2
(5.6)
donde m es el índice de modulación, J0 es la componente de la portadora y J1
es el primer conjunto de bandas laterales. Se observa que se producen conjuntos
de componentes laterales infinitos, pero es posible solo considerar las frecuencias
laterales significativas (amplitud mayor al 1 %).
Debido a lo anterior existen aproximaciones para el ancho de banda de una señal
FM dependiendo de su índice de modulación [31]:
para este trabajo es un transmisor monofónico, es decir se utiliza un solo canal para
la señal moduladora.
5.3. Diseño
El diagrama general del transmisor FM es el presentado en la figura 5.1. El
funcionamiento general del transmisor se explica en el siguiente párrafo.
La señal moduladora en el caso del transmisor de FM puede ser un archivo de
audio o un tono. El filtro paso bajas limita la señal de audio a una frecuencia de
15 KHz para concordar con el rango de frecuencias establecido por la IFT [46]. Al
demodular una señal de FM se tiene que el voltaje de ruido aumenta conforme au-
menta la frecuencia de la señal demodulada. Ésta distribución no uniforme de ruido
es inherente a la modulación FM [31]. El amplificador de preénfasis simplemente
contrarresta este fenómeno amplificando más la frecuencias altas de la señal modu-
ladora. El siguiente bloque es el encargado de realizar la modulación en frecuencia
por lo que a la salida de éste se tiene una señal de frecuencia modulada.
En la figura 5.2 se muestra el mismo diagrama del transmisor FM pero con los
nombres reales de los bloques en el software GNU Radio. A continuación se describen
cada uno de los bloques del diagrama 5.2.
Figura 5.2: Nombres reales de los bloques que conforman el transmisor de FM pro-
gramado en GNU Radio.
Capítulo 5. El Transmisor FM 69
File
Repeat
N Channels
Es el número de canales a leer del archivo WAV. Se utiliza un canal si es una trans-
misión monofónica o dos canales si es estereofónica [44]. El valor en este caso es 1
pues se trata de un transmisor monofónico.
En el cuadro 5.1 se presenta el resumen de la configuración del bloque.
Decimation
Capítulo 5. El Transmisor FM 70
Gain
Es la ganancia del filtro, en este caso tiene un valor de 1 por lo que la señal tiene la
misma amplitud a la entrada y salida del filtro.
Sample rate
Cuttoff Freq
Es la frecuencia de corte para el filtro paso bajas. Tiene un valor de 15 KHz pues es
el ancho de banda máximo de la señal de audio establecido para FM.
Transition Width
Es la banda de transición del filtro, como se vio en el capítulo dos existe una relación
entre la banda de transición y la banda de paso. En una ventana Blackman-Harris
la banda de transición es mucho más ancha que en otras ventanas. Éste parámetro
se fijó a lo menor posible o permitido por el bloque para esta ventana, el valor
conseguido fue de 1 kHz.
Window
Beta
Solo para la ventana Kaiser [44], explicado en capítulo dos. En este transmisor no se
usa.
El resumen del bloque se encuentra en el cuadro 5.2.
Capítulo 5. El Transmisor FM 71
Bloque 3: FM Preemphasis
Sample Rate
Tau
Las redes de preémfasis comerciales utilizan una constante de tiempo de 75µs que
es el tiempo de carga de un circuito RL o RC. Una red de preénfasis involucra un
circuito RL [31]. Éste valor también es el predeterminado.
El resumen del la configuración de este bloque es el presentado en el cuadro 5.3.
FM Preemphasis
Parámetro Valor
Sample rate 44.1 ∗ 103
Tau 75 ∗ 10− 6
Audio Rate
Sample Rate
Tau
Max desviation
WBFM Transmit
Parámetro Valor
Audio Rate 44.1 ∗ 103
Sample Rate 396.9 ∗ 103
Tau 0
Max desviation max_desv
Sample rate
Center Frequency
Gain
Antenna
Bandwidth
Este valor se dejó en cero para que el bloque utilice un ancho de banda automático.
La configuración del bloque se encuentra en el cuadro 5.5.
Capítulo 5. El Transmisor FM 74
5.4. Implementación
El diagrama real del transmisor FM desarrollado en GNU Radio es el de la figura
5.3.
Multiply Const
Parámetro Valor
IO Type Float
Constant vol
Vec Length 1
El bloque que sigue al modulador es el UHD USRP Sink también descrito a detalle
en el diseño del transmisor. Adicionalmente se observan 7 bloques en la figura 5.3
para controlar las variables del programa: samp_rate, audio_rate, vol, tunf, gain,
index_mod y max_desv, explicadas durante el diseño.
Los bloques W X GU I F F T Sink muestran el espectro de la señal moduladora
y señal modulada en frecuencia, su configuración se detalla en los cuadros 5.7 y
5.8 respectivamente . El bloque W X GU I Scope Sink muestra la señal FM en el
dominio temporal, configuración presentada en el cuadro 5.9
W X GU I F F T Sink.
Parámetro Valor
Title Espectro Fuente
Sample rate 396.9 ∗ 103
Baseband Freq 0
Window Blackman
En la figura 5.4 se presenta la interfaz del programa con los alumnos. En la figura
se aprecian las variables que pueden ser modificadas. Tres pestañas mediante las
cuales se puede observar el espectro de la señal FM, su oscilograma y el espectro
de la señal moduladora. También se tiene un panel de control con el que es posible
Capítulo 5. El Transmisor FM 76
W X GU I F F T Sink
Parámetro Valor
Title EspectroFM
Sample rate 396.9 ∗ 103
Baseband Freq tunf
Window Blackman
Cuadro 5.9: Configuración del bloque “W X GU I Scope Sink” para señal modulada
en el tx FM
El transmisor ATSC
80
Capítulo 6. El transmisor ATSC 81
sistemas de los cuales cuatro eran sistemas de alta definición totalmente digitales. De
1991 a 1992 los seis sistemas fueron probados por tres laboratorios que trabajaron
de manera independiente. En 1993 se determinó que un sistema totalmente digi-
tal era factible mostrando mejores resultados. Los cuatro sistemas digitales fueron
recomendados al comité consultivo con mejoras a cada uno de ellos. El comité con-
sultivo recomendó establecer un único sistema de televisión digital que incorporara
los mejores componentes de cada uno de los cuatro sistemas propuestos.
formato MPEG-2 para la señal en banda base. La señal de vídeo está codificada en
MPEG-2 mientras que la señal de audio esta codificada en Dolby AC-3. En ATSC las
señales de vídeo pueden ser de dos tipos: SDTV (Televisión de Definición Estándar)
o señales de HDTV (Televisión de Alta Definición). El modo de transmisión terrestre
o modulación 8-VSB puede tener una tasa de hasta 19.39 Mbps en el ancho de banda
de 6MHz. El modo 8-VSB se explica de forma general en el siguiente párrafo.
En general los ocho niveles de la modulación se consiguen a partir de un codifica-
dor de Trellis de ocho niveles. Para llegar a la modulación 8-VSB primero se genera
una modulación por desplazamiento de amplitud 8ASK, dicha señal modula a una
portadora en amplitud por lo que se genera un espectro de doble banda lateral [54].
El modo de modulación VSB es decir banda lateral vestigial, consiste en tomar de un
espectro de doble banda lateral, una banda completa y el vestigio de la otra banda,
esto se consigue mediante un filtro de respuesta suave como el representado en la
figura 6.2, el cual permite el paso de una banda lateral y de las primeras componen-
tes en frecuencia de la otra banda, la banda vestigial se utiliza con el objetivo de
incrementar la relación señal a ruido en bajas frecuencias del mensaje.
El aleatorizador de datos fragmenta las secuencias largas de unos y ceros que cau-
sarían problemas de sincronización en el receptor. Éste bloque ejecuta una opera-
ción lógica XOR entre los datos entrantes y una secuencia binaria pseudo-aleatoria
(PRBS) generada con un registro de corrimiento de 16 bits y nueve bits de retro-
alimentación. Ocho de las salidas del registro de corrimiento son seleccionadas para
formar el byte pseudoaleatorio, cada bit del byte pseudoaleatorio se utiliza con un
bit de entrada para la operación XOR [53]. La palabra pseudo-aleatoria es definida
en un momento durante el intervalo de sincronización. Este proceso da lugar a lo
que se conoce como espectro disperso o uniformemente distribuido, cabe destacar
nuevamente que la información de sincronización no pasa por este proceso.
Capítulo 6. El transmisor ATSC 86
Alterar los datos antes y después del codificador de Reed Solomon mediante el
aleatorizador y la etapa de entrelazado respectivamente hace que la codificación sea
sumamente robusta. Para tener una idea aproximada de esto, supóngase que la tasa
de errores de un caudal binario sin protección contra errores es de 10− 3, cuando
se utiliza este tipo de codificación la tasa de errores puede reducirse a 10− 6. En
la practica se consiguen tasas de error del orden de 10− 9 o menores [56]. Aun así
el empleo de una sola etapa de codificación no es suficiente debido al medio de
propagación.
A la salida de este bloque se tienen 828 símbolos por paquete donde cada símbolo
es formado por 3 bits. Es decir 4 símbolos por los 207 bytes procesados (207 bytes *
4 símbolos/byte = 828 símbolos).
En la figura 6.7 se tiene la constelación de una señal 8-VSB, cabe destacar que
esta constelación es producida después del filtrado de banda lateral, debido a este
filtrado el diagrama de constelación aparece con líneas verticales. En realidad el
filtrado de la señal no es hecho por un filtro analógico convencional. La señal que
llega al filtro es dividida en dos, una es aplicada directamente al mezclador I y la
Capítulo 6. El transmisor ATSC 90
En la figura 6.8 se presenta una curva del BER (Bit Error Rate) contra la energía
por símbolo entre la densidad espectral de potencia de ruido (Es /N0 ). El sistema
de codificación fue conectado al sistema de decodificación mediante un generador
de ruido aditivo Gaussiano. Esta curva fue obtenida a través de una simulación
con el objetivo de analizar el desempeño de la codificación de canal utilizada en el
sistema 8-VSB. Mediante esta simulación se concluyó que la codificación de canal
del sistema ATSC 8-VSB es robusto frente a ruido aditivo Gaussiano y frente ruido
impulsivo [58].
1
Un transformador de Hilbert es un desfasador de 90 grados para todas las frecuencias de una
banda [54].
Capítulo 6. El transmisor ATSC 91
Total de bytes por segmento: 187 bytes + 20 bytes de cabecera = 207 bytes
Capítulo 6. El transmisor ATSC 92
10.76
Calculo de la tasa de segmentos: 832
= 12.04 ∗ 103 Segmentos/s
Capítulo 6. El transmisor ATSC 93
En general se envían los bits de sincronización de datos de campo, los bits de sincro-
nización de segmento de datos y los bits de información.
6.3. Diseño
El diagrama general de un transmisor programado en el software GNU Radio es
muy similar al de la figura 6.4. De cualquier manera en la figura 6.10 se presenta
el diagrama del transmisor de ATSC con los bloques tal y como existen en GNU
Radio. Es importante aclarar que otros bloques fueron necesarios para el manejo de
datos en el software, los cuales serán presentados en la parte de implementación del
transmisor. A continuación se explicarán los bloques del diagrama 6.10 así como el
nombre que asigna el software GNU Radio a los paquetes de datos antes y después
de cada bloque.
Este bloque lee el valor de los datos en formato binario del archivo especificado
[44]. El archivo fuente puede ser obtenido con un bloque de salida o sumidero de GNU
Radio. Es mediante este bloque que el transmisor obtiene el archivo con formato
MPEG-2 mencionado anteriormente. La descripción de cada una de las propiedades
de este bloque es la siguiente:
File
Output Type
Especifica el tipo de dato que se tendrá a la salida. Para este transmisor el tipo de
dato a la salida es el byte.
Repeat
Se indica si el archivo solo debe ser leído una vez o si se debe repetir la lectura del
archivo hasta el fin de la ejecución del programa.
Vec Length
Este campo debe ser siempre de tipo entero, especifica la longitud del vector de ítems
a procesar. En este caso los ítems son bytes.
En la tabla 6.1 se resume la configuración del bloque.
File Source
Parámetro Valor
File archivo.ts
Output Type byte
Repeat yes
Vec Length 1
De forma general, este bloque mapea cadenas de bits a valores flotantes o comple-
jos. Realiza el mapeo de símbolos a valores complejos o flotantes [59], esto se indica a
través de su tabla de mapeo. Con este bloque se inserta la señal piloto, sumando le a
cada símbolo generado por el codificador de Trellis un valor de 1.25. Los parámetros
o propiedades del bloque son las siguientes:
Symbol Table
Es la lista o tabla que asocia las entradas con los símbolos de salida. El formato es
out[nD + k] = symbol_table[in[n]D + k] donde k = 0, 1, ..., D − 1 [59].
Dimension
Bloque 8: Multiply
Multiply
Parámetro Valor
IO Type Complex
Num Inputs 2
Vect Length 1
Con este bloque se genera una portadora que debe estar situada a 309.441 kHz
de la frecuencia inferior del espectro de ATSC, valor que es llamado pilot_f req
en el programa. La variable symbol_rate es de 10.76 ∗ 106 valor que corresponde
con la tasa de símbolos generada y calculada previamente. Las propiedades de este
bloque fueron descritas a detalle en el diseño del transmisor AM. En el cuadro 6.4
se encuentra el resumen de la configuración de éste bloque.
Signal Source
Parámetro Valor
Output Type Complex
Frequency −3000000 + pilot_f req
Sample Rate symbol_rate
Waveform Cosine
Amplitude 0.9
Offset 0
Type
Parámetro que indica el tipo de dato a la entrada, salida y el tipo de dato del vector
(taps) a utilizar [59].
Taps
Este parámetro se configura dependiendo del filtro que se desee implementar: filtro
paso bajas, paso altas, paso banda, banda de rechazo, Hilbert, coseno elevado, etc.
Para un filtro coseno elevado debe configurase de la siguiente manera [60]:
gr.firdes.root_raised_cosine ( \
double gain,
double sampling_freq,
double symbol_rate
double alpha
int ntaps )
Este bloque recibe la señal de ATSC y la envía al USRP para terminar el procesa-
miento y finalmente radiarla. A continuación se describen los parámetros del bloque
utilizados en el transmisor.
In Type
Capítulo 6. El transmisor ATSC 98
FFT Filter
Par. Valor
Type Complex to Complex
Deci. 1
Taps f irdes.root_raised_cosine(0.1, symbol_rate, symbol_rate/2, 0.1152, 100)
Los datos flotantes son convertidos a tipo complejo de longitud de 16 bits. Recordar
del capítulo dos que el USRP procesa señales de tipo complejo, por lo que a la salida
del bloque la señal tiene que ser compleja.
Sample rate
Center Frequency
Ésta es la frecuencia central del canal RF. Es la variable llamada center_f req.
Gain
Antenna
Bandwidth
6.4. Implementación
Uno de los Transport Stream (TS) utilizado en el transmisor fue obtenido de
internet, mientras que el otro fue obtenido con un grabador de señales de ATSC y
un convertidor a Transport Stream desarrollado en GNU Radio. Para verificar que
los Transport Stream utilizados eran correctos se recurrió a un analizador de TS. El
programa fue descargado de internet [61]. Cada TS fue identificado por el analizador
como un TS de ATSC y decodificado correctamente. Algunos de los datos obtenidos
adicionalmente son los mostrados en la figura 6.11. En la imagen se observa una tasa
de bit de 19.39 Mbps, la cual corresponde con la cifra mencionada anteriormente.
Este TS tiene 26 secciones de PAT (Program Association Table), 6 secciones de PMT
(Program Map Table), no tiene secciones de CAT (Conditional Access Table). Todas
estas secciones son tablas PSI (Program Specific Information) lo que quiere decir que
son tablas que contienen información de programas. Las siguientes secciones son la
ETT (Extended Text Table), la PSIP (Program and System Information Protocol)
y EIT (Event Information Table). Estas tres secciones son tablas con información
del sistema y del protocolo que utiliza ATSC para transportar los metadatos [62].
El diagrama general del transmisor ATSC programado en GNU Radio es el de
la figura 6.12. En él se observa que el primer bloque del transmisor es el File Source
tal y como se describió en el diseño, sin embargo el segundo bloque es un bloque
llamado ATSC Pad.
El bloque ATSC Pad convierte paquetes de 188 bytes a 256 bytes, esto se hace
para resolver un problema llamado alineamiento de buffer o memoria en la compu-
Capítulo 6. El transmisor ATSC 100
tadora. Para que el CPU pueda tener acceso a un dato en memoria éste debe estar en
una localidad de memoria cuya posición sea múltiplo de su ancho en bytes. Es decir
en un sistema de 32 bits (4 bytes) las localidades de memoria deben ser múltiplos
de 4. Si los datos no están alineados el acceso a ellos es mucho más lento pues se
requieren muchos más ciclos para leer los datos. La computadora utilizada para el
desarrollo de los transmisores es de 64 bits (8 bytes) por lo que necesitamos tener
datos de ancho que sea múltiplo de 8.
Los paquetes del TS son de 188 bytes por lo que el bloque ATSC Pad añade 68 bits
para obtener paquetes de 256 bytes número que además es potencia de 2 (28 bytes).
Para verificar que el bloque funcione correctamente se grabó la salida mediante un
bloque File Sink y se analizó el archivo mediante un programa en lenguaje C que
muestra el archivo byte por byte en formato hexadecimal, el código se encuentra en
el apéndice B. El archivo en formato hexadecimal a la salida del bloque Pad es el de
la figura 6.13. En él se observan los paquetes de 188 bytes seguidos de 68 bytes de
relleno con valor de 0. Cabe destacar que se observa el byte de sincronía al principio
del paquete cuyo valor es de 0x47 [53].
El bloque que sigue es el aleatorizador que recibe 187 bytes para multiplicarlos por
la palabra pseudo-aleatoria. En la figura 6.14 se aprecia que el byte de sincronía fue
remplazado por 4 bytes. Éstos bytes son banderas que de igual manera contribuyen
a la sincronía [63] [64]. Cabe resaltar que el tercer byte lleva la secuencia de los
paquetes, en la figura 6.14 se observan los dos primeros paquetes completos y la
primera línea del tercer paquete. Ahora se tiene paquetes de 187 bytes más 4 de
sincronía, dando un total de 191 bytes de información útil. Para seguir teniendo
alineamiento de memoria se tienen ahora 65 bytes de relleno. Los paquetes siguen
siendo de 256 bytes.
Capítulo 6. El transmisor ATSC 101
El paquete o segmento tiene una longitud de 1024 bytes, número que es múltiplo de
ocho y al mismo tiempo potencia de dos. Se tienen 836 bytes de información útil y
188 bytes con valor de 0 (bytes de relleno). En la figura 6.17 es posible observar que
la secuencia de bytes añadida por el bloque es la 06 01 01 06, la cual se observa al
comienzo de cada segmento y es la sincronización de segmento [64]. Los siguientes
bytes de información útil después de esta secuencia son los bytes que se obtuvieron
después del codificador de Trellis. Recordar que a la salida del codificador de Trellis
se tienen 828 símbolos de 3 bits cada uno. La figura 6.17 muestra los 828 símbolos,
en ella se marca el inicio y fin de los 828 símbolos. A manera de comprobación: se
tiene un total de 33 filas de información útil del lado izquierdo de la figura 6.17, de
lado derecho un total de 20 filas. Por lo tanto se tienen 53 filas es decir 848 bytes
(53*16) de información. Después hay que restar 8 bytes de cabecera y 12 bytes de
relleno de la última fila con lo que se obtienen los 828 símbolos. Cabe destacar que
el bloque Sync también introduce cada 312 segmentos un segmento completo que es
la sincronización de campo.
El bloque subsecuente es un bloque llamado Vector to Stream. Para GNU Radio
todos los bloques mencionados hasta éste punto procesan vectores de ítems, en este
caso procesan vectores de bytes. Éste bloque recibe vectores de bytes o paquetes
de bytes y entrega la información byte por byte al siguiente bloque debido a que el
Capítulo 6. El transmisor ATSC 103
El programa muestra los bytes en formato hexadecimal y remarca con color rojo
los bytes diferentes. El resultado de la comparación se muestra en la figura 6.18, el
Capítulo 6. El transmisor ATSC 104
Keep M in N
Parámetro Valor
Type Byte
M 832
N 1024
initial offset 4
Figura 6.17: Paquete de datos a la salida del bloque “Field Sync Mux”
partir del transmisor. De igual forma en la figura 6.21 se distinguen los ocho niveles
de la modulación 8-VSB, esta señal fue tomada a la salida del codificador de Trellis.
Capítulo 6. El transmisor ATSC 107
Figura 6.18: Comparación de datos entre los bloques “Field Sync Mux” y “Vector to
Stream”
Figura 6.20: Constelación de una señal de ATSC obtenida a través de GNU Radio.
Conclusiones
La presente tesis tuvo como objetivo implementar tres tipos de transmisores para
ser usados en prácticas de la materia de radiodifusión de la Facultad de Ingeniería.
Para el logro del principal objetivo se realizó una investigación sobre la tecnología
SDR. Posteriormente sobre los módulos de GNU Radio para proponer un diseño.
Los transmisores desarrollados tienen características que contribuyen a la compre-
sión de los conceptos claves de AM, FM y ATSC. A continuación se describen las
características generales de cada transmisor.
Transmisor AM
109
Capítulo 7. Conclusiones 110
El transmisor FM
El transmisor de ATSC
Trabajos futuros
Como trabajo futuro sería deseable aumentar un control de nivel de ruido a cada
transmisor. Este indicaría la amplitud del ruido que se le añade a la señal antes de
ser transmitida y con esto estudiar los efectos que el ruido tiene en el espectro de la
señal y en el receptor.
En el transmisor de ATSC sería posible simular el fenómeno de multitrayecto y
estudiar los efectos que éste tiene en el espectro de la señal y en el receptor.
El desarrollo más importante a futuro es la elaboración de las prácticas de labo-
ratorio que involucren los transmisores, las cuales tiene que ser desarrolladas consi-
derando las características de cada transmisor. Así como también lograr emisiones
de TV digital en tiempo real y recibirlas en un televisor digital.
Apéndice A
FEATURES
Two wideband RF daughterboard slots
o Up 120MHz bandwidth per channel
o Selection covers DC to 6 GHz
Large, customizable Kintex-7 FPGA
o USRP X300 - XC7K325T
o USRP X310 – XC7K410T
UHD architecture provides compatibility:
o GNURadio
o C++ API/Python
o Other third-party frameworks and applications
Multiple high-speed interfaces
o Dual SFP(+) ports for 1/10 Gigabit Ethernet
o PCIe x4
Flexible clocking architecture
o Configurable sample clock
o Optional GPS-disciplined OCXO
111
Apéndice A. Data Sheet USRPTM X300 and X310 X Series 112
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#define KGRN "\x1B[32m"
#define KWHT "\x1B[37m"
#define KNRM "\x1B[0m"
if(argc != 3){
printf("Este programa muestra un archivo en formato hexadecimal\n");
113
Apéndice B. Código para visualizar archivos en formato hexadecimal 114
byte = atoi(argv[2]);
fp = fopen(argv[1], "rb");
printf("\n\n\t\t ");
printf("01 02 03 04 05 06 07 08 - 09 10 11 12 13 14 15 16\n\n");
do{
//memset(buffer, ’\0’, sizeof(buffer));
ret_read = fread(buffer, 1, 16, fp);
printf("%.10x0\t ", while_counter);
for(count = 0; count < ret_read; count++){
if(buffer[count] == byte)
printf(KGRN "%.2x ", buffer[count]);
else
printf(KWHT "%.2x ", buffer[count]);
if(count == 7)
printf("- ");
}
printf(KNRM "\n");
while_counter++;
}while(ret_read == 16);
fclose(fp);
return 0;
}
Bibliografía
[2] L. S. Nagurney, “Software defined radio in the electrical and computer enginee-
ring curriculum,” Frontiers in Education Conference IEEE., pp. 1–6, October
18, 2009.
[7] B. Li, “Analysis and design of Software Defined Radio,” Internet Computing
and Information Services (ICICIS), 2011 International Conference on, IEEE,
pp. 415–418, September 17, 2011.
115
Bibliografía 116
[13] “Evolving wireless technology, crowded spectrum, and the USRP platform
by John Malsbury, June, 2012,” Marzo de 2016. [Online]. Available:
https://www.ettus.com/
[14] H. Arslan, Cognitive Radio, Software Defined Radio, and Adaptive Wireless Sys-
tems. Florida, U.S.A: Springer Science and Business Media, 2007.
[15] M. Fähnle, Software-Defined Radio with GNU Radio and USRP/2 Hardware
Frontend: Setup and FM/GSM Applications, Thesis. Ulm, Germany: Hochs-
chule Ulm, University of Applied Sciences, Institute of Communication Techno-
logy, 2010.
[16] “Enabling technologies for SDR: Comparing FPGA and DSP performance,
Berkeley Design Technology, Inc. U.S.A,” Marzo de 2016. [Online]. Available:
http://www.bdti.com/MyBDTI/pubs/20061115_sdr06_fpgas.pdf
[17] “The object management group (OMG),” Marzo de 2016. [Online]. Available:
http://www.omg.org/gettingstarted/gettingstartedindex.htm
[20] “GNU Radio. The free and open software radio ecosystem,” Marzo de 2016.
[Online]. Available: http://gnuradio.org/redmine/projects/gnuradio/wiki
[24] “USRP hardware driver and USRP manual,” Marzo de 2016. [Online].
Available: http://files.ettus.com/manual/page_usrp_x3x0.html
[25] P. Balister and J. H. Reed, “USRP hardware and software description,” Bradley
Dept. of Electrical and Computer Engineering, Virginia Polytechnic Institute
and State University, no. 9, pp. 1–15, 2006.
[27] S. W. Smith, The Scientist and Engineer’s Guide to Digital Signal Processing.
San Diego California, U.S.A: California Technical Publishing, 1997.
[36] DSP and Digital Filters. Windows Filter Design. Imperial College London.
Department of Electrical and Electronic Enginnering, 2015.
[38] S. Ireland and P. Harman, “Watch your I and Q signals,” RadCom, pp. 2–5,
Enero, 2007.
[39] M. Renfors, Sampling and Multirate Techniques for Complex and Bandpass Sig-
nals. Finland: Tampere University of Technology, Department of Communica-
tions Engineering, 2010.
[42] Signals and Modulation (Draft ELEC 350). Victoria, Canadá: University of
Victoria. Electrical and Computer Enginnering, 2015.
Bibliografía 119
[43] R. E. Tohmas and A. J. Rosa, Circuitos y señales. New York, U.S.A: Editorial
Reverté, 2002.
[55] D. Sparano, What Exactly is 8-VSB. N.Y, U.S.A: Master of Science degree
from Rensselaer Polytechinc Institute, 1997.
[59] “GNU Radio Manual and C++ API Reference 3.7.9.1,” Marzo de 2016.
[Online]. Available: https://gnuradio.org/doc/doxygen/index.html
[60] “PHP5 Database Access Demo, FIR Filter,” Marzo de 2016. [Online]. Available:
http://swigerco.com/gnuradio/fir_filter.html
[62] W. Fischer, Digital Television: A Practical Guide for Engineers. Berlín, Ale-
mania: Springer, 2013.