Está en la página 1de 224

Universidad de Costa Rica

Facultad de Ingeniería
Escuela de Ingeniería Eléctrica

IE – 0502 Proyecto Eléctrico

Diseño e implementación de un laboratorio virtual en


DSP para comunicaciones usando Matlab y Simulink

Por:

José Gabriel Fernández Carazo

Ciudad Universitaria Rodrigo Facio


Julio del 2007
Diseño e implementación de un laboratorio virtual en
DSP para Comunicaciones usando Matlab y Simulink

Por:
José Gabriel Fernández Carazo

Sometido a la Escuela de Ingeniería Eléctrica


de la Facultad de Ingeniería
de la Universidad de Costa Rica
como requisito parcial para optar por el grado de:

BACHILLER EN INGENIERÍA ELÉCTRICA

Aprobado por el Tribunal:

_________________________________
Ing. Jorge Romero Chacón
Profesor Guía

_________________________________ _________________________________
Ing. Víctor Hugo Chacón Ing. Lucía Acuña Avendaño
Profesor lector Profesora lectora

ii
DEDICATORIA

Este proyecto se lo dedico primero y sobre todo a

Dios por la vida, por la disposición y energía que ha hecho

crecer en mí y que me ha permitido llegar hasta este nivel.

A mi familia, razón importante para buscar siempre

una superación intelectual.

A mi madre por el consistente apoyo, paciencia y

motivación para siempre buscar obtener nuevos logros. Y

porque su sola presencia es una razón para seguir adelante.

iii
RECONOCIMIENTOS

Al profesor Jorge Romero por su confianza, paciencia, consejos, apoyo

bibliográfico, aportes y guía en la elaboración de este trabajo, así como el tiempo brindado

para discutir las dudas y avances.

A todas las personas que han tenido que ver con mi educación moral y profesional,

ya que en estos momentos tiene sentido todo el conocimiento y sabiduría que me han

transmitido.

A mis amigos, compañeros de carrera y a todas las personas que de una u otra

forma han influenciado mi manera de pensar y que de alguna manera han tenido que ver

con el camino profesional que he elegido.

A dos grandes amigas Joselyn Ovares por su compañía incondicional e interés en

mi avance en todo el transcurso del desarrollo de este proyecto y Jennifer Soto por su

apoyo y motivación para seguir adelante en los momentos difíciles.

iv
ÍNDICE GENERAL

ÍNDICE DE FIGURAS.................................................................................. ix
ÍNDICE DE TABLAS.................................................................................... xi
NOMENCLATURA...................................................................................... xii
RESUMEN .................................................................................................... xiii
CAPÍTULO 1: Introducción ...........................................................................1
1.1 Objetivos ................................................................................................................ 1
1.1.1 Objetivo general............................................................................................. 1
1.1.2 Objetivos específicos ..................................................................................... 1
1.2 Justificación del tema............................................................................................. 1
1.3 Problema a resolver................................................................................................ 2
1.4 Metodología ........................................................................................................... 3
CAPÍTULO 2: Desarrollo teórico...................................................................4
2.1 Introducción al procesamiento digital de señales .................................................. 4
2.2 Tipos de señales ..................................................................................................... 5
2.3 Representación frecuencial del dominio................................................................ 8
2.4 Filtros analógicos y digitales ............................................................................... 12
2.4.1 Filtros analógicos ......................................................................................... 12
2.4.2 Filtros digitales............................................................................................. 13
2.5 Nota teórica laboratorio de filtros digitales ......................................................... 14
2.5.1 Suma convolución y respuesta en frecuencia para tiempo discreto............. 14
2.5.2 Filtros de respuesta de duración finita al impulso (FIR).............................. 16
2.5.2.1 Estructura en forma directa de un filtro FIR................................................ 16
2.5.2.2 Métodos para el diseño de filtros FIR.......................................................... 18
2.5.3 Filtros de respuesta de duración infinita al impulso (IIR) ........................... 18
2.5.3.1 Estructura en forma directa de un filtro IIR................................................. 19
2.5.4 Transformación bilineal ............................................................................... 24
2.6 Nota teórica laboratorio de FFT........................................................................... 32
2.6.1 Muestreo en tiempo discreto utilizando la transformada de Fourier ........... 32
2.6.2 La transformada discreta de Fourier y su inversa ........................................ 33
2.6.3 La transformada rápida de Fourier............................................................... 34
2.6.4 Uso de la FFT para determinar la densidad espectral de potencia............... 41

v
2.7 Nota teórica laboratorio de modulación AM ....................................................... 44
2.7.1 Descripción de la modulación de amplitud (AM)........................................ 44
2.7.1.1 Espectro de una señal AM ........................................................................... 46
2.7.2 Demodulación de una señal AM capturando la envolvente......................... 48
2.7.2.1 Demodulación de señales AM utilizando la ley cuadrática ......................... 48
2.8 Nota teórica laboratorio de modulación DSBSC-AM ......................................... 50
2.8.1 Descripción matemática de una señal DSBSC-AM..................................... 50
2.8.2 El receptor coherente ideal........................................................................... 51
2.8.3 Lazo de Costas: técnica práctica para demodulación coherente .................. 54
2.9 Nota teórica laboratorio de modulación SSB....................................................... 60
2.9.1 Moduladores SSB ........................................................................................ 60
2.9.2 Demodulación coherente de señales SSB .................................................... 63
2.9.3 Desplazamiento en frecuencia ..................................................................... 66
2.10 Nota teórica laboratorio de modulación FM........................................................ 68
2.10.1 Descripción de la modulación FM............................................................... 68
2.10.1.1 Modulación FM de un tono simple.......................................................... 70
2.10.1.2 Ancho de banda de una señal FM ............................................................ 71
2.10.2 Demodulación FM: discriminador en frecuencia ........................................ 72
2.10.2.1 Discriminador FM utilizando un detector de envolvente ........................ 73
2.10.2.2 Discriminador FM utilizando la envolvente compleja............................. 74
2.10.3 Demodulación FM usando un PLL.............................................................. 75
2.11 Nota teórica laboratorio de modulación PAM ..................................................... 78
2.11.1 Descripción de la modulación PAM ............................................................ 78
2.11.2 Criterio de Nyquist para no tener ISI........................................................... 82
2.11.3 Diagramas de ojo ......................................................................................... 83
2.11.4 Recuperación de la frecuencia del tren de pulsos ........................................ 86
2.12 Nota teórica laboratorio de modulación QAM .................................................... 88
2.12.1 Transmisor QAM básico.............................................................................. 88
2.12.2 Modulador QAM utilizando filtros conformadores pasabandas.................. 92
CAPÍTULO 3: Laboratorios .........................................................................95
3.1 Laboratorio de filtros digitales............................................................................. 96
3.1.1 Filtros digitales FIR ..................................................................................... 98
3.1.2 Filtros digitales IIR ...................................................................................... 98
3.1.3 Filtrado en SIMULINK.............................................................................. 100
3.1.3 Cuestionario ............................................................................................... 101
3.2 Laboratorio de FFT ............................................................................................ 102
3.2.1 Cálculo de la FFT....................................................................................... 103
3.2.2 Analizador de espectro de frecuencia en SIMULINK............................... 104
3.2.3 Cuestionario ............................................................................................... 105
3.3 Laboratorio de modulación AM......................................................................... 106
3.3.1 Modulación AM......................................................................................... 107
3.3.2 Detector de envolvente (Ley Cuadrática) .................................................. 108

vi
3.3.3 Cuestionario ............................................................................................... 110
3.4 Laboratorio de modulación DSBSC-AM........................................................... 111
3.4.1 Modulación DSBSC-AM........................................................................... 112
3.4.2 Modulación y demodulación AM utilizando SIMULINK......................... 113
3.4.3 Cuestionario ............................................................................................... 113
3.5 Laboratorio de modulación SSB........................................................................ 114
3.5.1 Modulación SSB-AM ................................................................................ 114
3.5.2 Demodulación SSB-AM ............................................................................ 115
3.5.3 Modulación y demodulación SSB–AM en SIMULINK............................ 116
3.5.4 Cuestionario ............................................................................................... 117
3.6 Laboratorio de modulación FM ......................................................................... 118
3.6.1 Modulación FM ......................................................................................... 118
3.6.2 Modulación y demodulación FM utilizando SIMULINK ......................... 120
3.6.3 Cuestionario ............................................................................................... 121
3.7 Laboratorio de modulación PAM ...................................................................... 122
3.7.1 Modulación y demodulación PAM en MATLAB ..................................... 123
3.7.2 Modulación y demodulación PAM en SIMULINK................................... 125
3.7.3 Cuestionario ............................................................................................... 126
3.8 Laboratorio de modulación QAM...................................................................... 127
3.8.1 Modulación y demodulación QAM ........................................................... 129
3.8.2 Modulación y demodulación QAM con SIMULINK................................ 130
3.8.2 Cuestionario ............................................................................................... 131
CAPÍTULO 4: Conclusiones y recomendaciones .....................................132
4.1 Conclusiones ...................................................................................................... 132
4.2 Recomendaciones .............................................................................................. 134
BIBLIOGRAFÍA ..........................................................................................135
APÉNDICES.................................................................................................137
APÉNDICE A: Código fuente de los ejercicios de simulación en MATLAB .............. 137
A.1 Código fuente laboratorio de filtros digitales ................................................ 137
A.2 Código fuente laboratorio de FFT.................................................................. 152
A.3 Código fuente laboratorio de modulación AM .............................................. 157
A.4 Código fuente laboratorio de modulación DSBSC-AM ................................ 167
A.5 Código fuente laboratorio de modulación SSB-AM...................................... 172
A.6 Código fuente laboratorio de modulación FM............................................... 182
A.7 Código fuente laboratorio de modulación PAM............................................ 189
A.8 Código fuente laboratorio de modulación QAM ........................................... 196
APÉNDICE B: Diagramas de bloques de los ejercicios de simulación en SIMULINK204
B.1 Simulación: laboratorio de filtros digitales.................................................... 204
B.2 Simulación: laboratorio de FFT ..................................................................... 205
B.3 Simulación: laboratorio de modulación AM.................................................. 206

vii
B.4 Simulación: laboratorio de modulación DSBSC-AM.................................... 207
B.5 Simulación: laboratorio de modulación SSB-AM ......................................... 208
B.6 Simulación: laboratorio de modulación FM .................................................. 209
B.7 Simulación: laboratorio de modulación PAM ............................................... 210
B.8 Simulación: laboratorio de modulación QAM............................................... 211

viii
ÍNDICE DE FIGURAS

Figura 2.1 Tipos de señales: (a) Señal continua en el tiempo sin cuantificar, (b) señal
discreta en el tiempo sin cuantificar................................................................................... 7
Figura 2.2 Tipos de señales: (a) Señal continua en el tiempo cuantificada, (b) señal
discreta en el tiempo cuantificada...................................................................................... 8
Figura 2.3 Representación en el dominio del tiempo de la señal periódica dada por la
ecuación (2.3-1). .............................................................................................................. 10
Figura 2.4 Representación en el dominio de la frecuencia de la señal periódica de la
ecuación (2.3-1). (a) Espectro de Magnitud, (b) Espectro de Fase.................................. 10
Figura 2.5 Diagrama de bloques de la estructura en forma directa de un filtro FIR ....... 17
Figura 2.6 Primer paso de la estructura en forma directa tipo 1 de un filtro IIR............. 20
Figura 2.7 Diagrama de bloques de la estructura en forma directa tipo 1 de un filtro IIR
.......................................................................................................................................... 21
Figura 2.8 Diagrama de bloques de la estructura en forma directa tipo 2 de un filtro IIR
.......................................................................................................................................... 23
Figura 2.9 Mapeo del plano s al plano s’ ......................................................................... 26
Figura 2.10 Mapeo de Ω a ω por medio de la transformación bilineal. .......................... 27
Figura 2.11 Descripción del efecto de la transformación bilineal de Hc( jΩ) a H'(ω)..... 29
Figura 2.12 Esquema de Mariposa del algoritmo FFT de diezmado en el tiempo. ......... 37
Figura 2.13 Primera etapa del algoritmo FFT de diezmado en el tiempo........................ 37
Figura 2.14 Primera etapa del algoritmo FFT de diezmado en frecuencia...................... 40
Figura 2.15 Espectro de una señal AM............................................................................ 47
Figura 2.16 Detector de envolvente (Ley Cuadrática)..................................................... 49
Figura 2.17 Diagrama de bloques de un Receptor Coherente Ideal ................................ 52
Figura 2.18 Espectro de una señal DSBSC-AM .............................................................. 53
Figura 2.19 Diagrama de bloques del demodulador de lazo Costas ................................ 54
Figura 2.20 Diagrama de bloques del Lazo Costas linealizado ....................................... 59
Figura 2.21 Diagrama de bloques de la modulación SSB ............................................... 61
Figura 2.22 Modulador SSB utilizando la transformada de Hilbert ................................ 63
Figura 2.23 Modulación FM ............................................................................................ 71
Figura 2.24 Diagrama de bloques elemental de un discriminador de frecuencia ............ 73
Figura 2.25 Discriminador en tiempo discreto usando la envolvente compleja .............. 75
Figura 2.26 Demodulador FM con PLL en tiempo discreto............................................ 76
Figura 2.27 Modelo linearizado del PLL......................................................................... 77
Figura 2.28 Modulación PAM ......................................................................................... 78
Figura 2.29 Diagrama de bloques de un sistema de comunicación PAM ....................... 79
Figura 2.30 Señal binaria antes del muestreador ............................................................. 84
Figura 2.31 Diagrama de ojos para la señal de la figura 2.30.......................................... 85
Figura 2.32 Diagrama de bloques del sistema de recuperación de frecuencia ................ 87

ix
Figura 2.33 Diagrama de bloques de un transmisor QAM básico................................... 89
Figura 2.34 Constelaciones QAM.................................................................................... 90
Figura 2.35 Representación de un modulador QAM en términos de señales complejas. 92
Figura 2.36 Modulador QAM utilizando un filtro conformador pasabanda.................... 93
Figura 2.37 Diagrama de bloques expandido del nuevo modulador QAM ..................... 94
Figura 3.1 Respuesta en frecuencia de un filtro pasobajo ............................................... 96
Figura 3.3 Diagrama del principio básico de modulación AM...................................... 106
Figura 3.4 Detector de envolvente de Ley Cuadrática................................................... 110
Figura 3.5 Diagrama del principio básico de demodulación AM.................................. 111
Figura 3.6 Modulador SSB ............................................................................................ 114

x
ÍNDICE DE TABLAS

Tabla 2.1 Parámetros de una señal obtenidos a partir de la ecuación 2.3-1 ...................... 9
Tabla 3.1 Funciones más comunes para el diseño de filtros digitales en MATLAB....... 97
Tabla 3.2 Funciones utilizadas en MATLAB para el cálculo de la FFT. ...................... 102
Tabla 3.3 Funciones de MATLAB para modulación y demodulación AM .................. 106
Tabla 3.4 Funciones de MATLAB para modulación y demodulación PAM ................ 123
Tabla 3.5 Funciones de MATLAB para la modulación y demodulación QAM............ 128

xi
NOMENCLATURA

AM Modulación de amplitud (Amplitude Modulation)


DFT Transformada discreta de Fourier (Discrete Fourier Transform)
DSBSC-AM Modulación de amplitud de doble banda lateral con portadora
suprimida (Double Sideband Suppressed Carrier Amplitude
Modulation)
DSP Procesamiento digital de señales (Digital Signal Processing)
FFT Transformada rápida de Fourier (Fast Fourier Transform)
FIR Respuesta de duración finita al impulse (Finite duration Impulse
Response)
FM Modulación en frecuencia (Frequency Modulation)
IDFT Transformada Discreta de Fourier Inversa (Inverse Discrete Fourier
Transform)
IIR Respuesta de duración infinita al impulse (Infinite duration Impulse
Response)
LSB Banda lateral inferior (Low Sideband)
LSI Integración a gran escala (Large Scale Integration)
MSI Integración a media escala (Medium Scale Integration)
PLL Circuito de lazo por enganche de fase (Phase Locked Loop)
QAM Modulación de amplitud en cuadratura (Quadrature Amplitude
Modulation)
SSB-AM Modulación de amplitud de banda lateral única (Single Sideband
Amplitude Modulation)
USB Banda lateral superior (Upper Sideband)
VLSI Integración a muy gran escala (Very Large Scale Integration)

xii
RESUMEN

La Escuela de Ingeniería Eléctrica de la Universidad de Costa Rica tiene gran

interés en el Procesamiento Digital de Señales, y por eso se ha decidido desarrollar una

serie de prácticas de simulación en los apartados que envuelve la ciencia del procesamiento

digital de señales para los sistemas de comunicación.

Primero se presenta una investigación teórica de las técnicas de simulación

utilizadas en los sistemas de comunicación. Esta investigación teórica permite reforzar y

entender con claridad los conceptos básicos detrás de la ciencia de las comunicaciones.

Segundo se presentan los enunciados de las prácticas para los temas presentados en

el marco teórico. Se inicia con una práctica sencilla de filtros digitales, luego una para

evaluar los conceptos de la transformada discreta de Fourier utilizando la transformada

rápida de Fourier, le siguen las prácticas de modulación AM completa, DSBSC-AM, SSB-

AM y FM, después las prácticas de modulación digital PAM y QAM.

Por último, se muestra el código fuente generado para la solución de los ejercicios

de simulación en MATLAB planteados en cada una de las prácticas de laboratorio, así

como los diagramas de bloques de los ejercicios de simulación en SIMULINK planteados

para cada una de ellas.

xiii
CAPÍTULO 1: Introducción

1.1 Objetivos

1.1.1 Objetivo general

Preparar y generar prácticas para una simulación previa a la ejecución de

experimentos que emplearían tarjetas construidas para realizar procesamiento digital

de señales.

1.1.2 Objetivos específicos

Preparación del manual de prácticas para simulación.

Diseño de prácticas adicionales en el área de comunicaciones digitales.

Introducción de nuevas técnicas de simulación en el área de sistemas de

comunicaciones digitales.

1.2 Justificación del tema

El gran avance de la ciencia y la ingeniería, en el desarrollo de circuitos integrados,

microprocesadores y computadoras en los últimos 30 años, ha generado un gran interés en

el estudio del Procesamiento Digital de Señales (DSP, acrónimo para la frase en inglés

Digital Signal Processing). Este tema de estudio se ha vuelto tan indispensable que ha sido

aplicado a muchas disciplinas tanto en ingeniería como economía y desde la astronomía

hasta la biología molecular.

1
Es por eso que este es un tema de estudio de gran interés para la Escuela de

Ingeniería Eléctrica de la Universidad de Costa Rica, y por eso se ha decidido desarrollar

una serie de prácticas de simulación en los apartados que envuelve la ciencia del

procesamiento digital de señales, las cuales se realizarán de forma previa a un laboratorio

en el cual se pondrán en práctica todos los conocimientos adquiridos en el curso de

Procesamiento Digital de Señales que imparte dicha Escuela, con tarjetas de programación

de microprocesadores diseñados para el tratamiento digital de señales.

1.3 Problema a resolver

El problema a resolver, es el de realizar el manual de prácticas para simulación

utilizando MATLAB y SIMULINK. Este deberá abarcar los temas más importantes en el

área del procesamiento digital de señales, como por ejemplo el diseño de filtros digitales,

análisis del espectro de una señal digital aplicando la transformada discreta de Fourier,

modulación y demodulación AM, modulación y demodulación FM, detección de errores

de transmisión; y estos tan solo para mencionar algunos, los demás se deben determinar por

medio de la investigación teórica.

Las prácticas incluirán una nota teórica, un procedimiento detallado de los

ejercicios que se deben realizar, y por último tendrán un cuestionario para evaluar todos los

conceptos que en el experimento se incluyan.

2
1.4 Metodología

La metodología propuesta describe la manera en la cual va a transcurrir el proceso

de investigación hasta alcanzar la meta establecida por medio de los objetivos

anteriormente descritos.

Primeramente se debe elaborar un marco teórico, incluyendo una breve introducción

al DSP, seguido de los temas más importantes en el procesamiento digital de señales, los

cuales son la nota teórica de cada una de las prácticas que se pretenden generar. Esta

investigación teórica se debe realizar con la revisión, obtención, extracción y recopilación

de literatura proveniente de libros, revistas, artículos, bibliotecas e Internet.

El siguiente paso es el desarrollo de los ejercicios incluidos en las prácticas de

simulación, las cuales se deben plantear y solucionar con la ayuda de MATLAB y

SIMULINK, las cuales son dos herramientas informáticas muy poderosas y de gran

importancia para el desarrollo de sistemas de procesamiento digital de señales.

Por último se evalúa cada una de las prácticas por medio de un análisis de

resultados y el procedimiento efectuado para cada una de ellas.

3
CAPÍTULO 2: Desarrollo teórico

2.1 Introducción al procesamiento digital de señales

El acelerado desarrollo de circuitos integrados, comenzando con la integración a

media escala (MSI, medium scale integration), luego con la integración a gran escala (LSI,

large scale integration) y por último, hoy en día, con la integración a muy gran escala

(VLSI, very large scale integration) de circuitos electrónicos integrados ha estimulado el

desarrollo de ordenadores digitales más pequeños, rápidos, y baratos y de hardware de

propósito general. Con estos circuitos digitales, se ha hecho posible construir sistemas

digitales altamente sofisticados, capaces de realizar funciones y tareas para un

procesamiento de señal digital que normalmente eran demasiado difíciles y/o caras con

circuitería o sistemas de procesamiento de señales analógicas.

A través del DSP, se han desarrollado hoy en día, sofisticados sistemas de

comunicación, nació el Internet, se ha podido obtener valiosa información acerca del

cosmos a partir de las señales astronómicas, las señales sísmicas pueden ser analizadas para

determinar la magnitud de un terremoto o para predecir la estabilidad de un volcán, las

imágenes o fotografías por computador pueden ser ahora mejoradas, entre muchas otras

cosas más.

4
2.2 Tipos de señales1

Las señales se pueden encontrar en la mayoría de los campos de la ciencia y la

ingeniería, así como en la astronomía, acústica, biología, comunicaciones, sismología,

telemetría, y economía, tan solo como para nombrar algunos. Las señales naturalmente

provienen de los procesos físicos o son hechas por la humanidad. Las señales astronómicas

pueden ser generadas por explosiones celestes llamadas supernovas o por una estrella

pulsante, mientras las señales sísmicas son manifestaciones de terremotos o de volcanes

que están en actividad. Las señales en biología son producidas por el cerebro o el corazón,

por los delfines o las ballenas para comunicarse entre ellas, o por un murciélago para poder

volar en la oscuridad o para encontrar alimento. Por otra parte, las señales hechas por la

humanidad son producidas en procesos tecnológicos, tales como las que existen en las

computadoras, telefonía y sistemas de radar, o el Internet.

Son muchas las razones por las que existe un gran interés en las señales. Los

astrónomos pueden obtener información muy importante de las estrellas, tal como su

composición química, pueden determinar el tamaño y la densidad de una estrella pulsante

de acuerdo a la frecuencia de radiación de esta. Los sismólogos pueden determinar la

magnitud y el lugar de origen de un terremoto, al igual que un vulcanólogo puede predecir

cuando un volcán estará en erupción. Los cardiólogos pueden diagnosticar la condición del

corazón, al mirar los patrones o alteraciones de los tejidos a través de un

electrocardiograma. Se puede difundir información a través del Internet, ayudar a los

1
Proakis, J. G. “Tratamiento digital de señales”. Tercera Edición, Prentice Hall, Madrid, España, 1998.

5
aviones a aterrizar en condiciones climáticas muy malas y de poca visibilidad, o advertir a

los pilotos de la distancia entre un objeto y los aviones para evitar colisiones.

Entonces, con todo lo que se ha dicho anteriormente se puede decir que una señal es

una cantidad física que varía con el tiempo, el espacio o cualquier otra variable o variables

independientes. Las señales se pueden clasificar como:

• Señales continuas en el tiempo (analógicas)

• Señales discretas en el tiempo (digitales)

Una señal continua en el tiempo está definida para todos los valores del tiempo

desde el inicio hasta el final en un intervalo de tiempo dado, por ejemplo la señal acústica

producida por un delfín. Una señal discreta en el tiempo está definida como una señal con

valores en ciertos instantes del tiempo, los cuales pueden ser cada milisegundo, segundo,

minuto, hora o día, por ejemplo las gotas de lluvia como función del tiempo.

Matemáticamente, las señales analógicas se describen como funciones continuas de

variable continua, donde el dominio es un intervalo de valores (t1, t2), donde − ∞ < t1 y

t2 < ∞ , la cual está representada en la figura 2.1a. De forma similar una señal discreta

puede ser representada por una función x(nT ) , donde T es el período entre los valores

discretos adyacentes de la función y n es un integrador del intervalo (n1, n2) donde − ∞ < n1

y n2 < ∞ , tal y como se muestra en la figura 2.1b. Las señales de tiempo discreto a menudo

son generadas a partir de una señal continua por medio de un proceso de muestreo. En

6
particular, tenemos f s = 1 T , la cual es conocida como la frecuencia de muestreo. Las

señales también se pueden clasificar como:

• Sin cuantificar

• Cuantificada

Una señal sin cuantificar puede tomar cualquier valor en un intervalo, mientras que

una señal cuantificada sólo puede tomar valores discretos, usualmente de igual longitud de

separación. La figura 2.2a y 2.2b muestra respectivamente, a una señal cuantificada

continua en el tiempo y una señal cuantificada discreta en el tiempo.

(a) (b)

Figura 2.1 Tipos de señales: (a) Señal continua en el tiempo sin cuantificar, (b) señal

discreta en el tiempo sin cuantificar

7
(a) (b)

Figura 2.2 Tipos de señales: (a) Señal continua en el tiempo cuantificada, (b) señal

discreta en el tiempo cuantificada

2.3 Representación frecuencial del dominio1

Las señales la mayoría del tiempo son representadas por funciones en el dominio

del tiempo. Pero en algunas situaciones es de gran utilidad representar las señales con

funciones en el dominio de la frecuencia, por ejemplo un señal continua en el tiempo

compuesta por la sumatoria de las componentes sinusoidales, tal como

9
x(t ) = ∑ Ak sin (ωk t + φk ) (2.3-1)
k =1

puede ser descrita completamente por dos series,

A(ω ) = { Ak : ω = ωk para k = 1,2,3,K,9} (2.3-2)

y
1
Antoniou, A. “Digital Signal Processing: Signals, Systems and Filters”. Primera edición, McGraw Hill, New
York, Estados Unidos, 2006.

8
φ (ω ) = {φk : ω = ωk para k = 1,2,3,K,9} (2.3-3)

las cuales representan las magnitudes y las fases de las componentes sinusoidales presentes

en la señal. A las series A(ω ) y φ (ω ) se les conoce respectivamente como el espectro de

magnitud y el espectro de fase de la señal. Por ejemplo, si A(ω ) y φ (ω ) en la ecuación

2.3-1, tomaran los valores dados en la tabla 2.1 asociados con cierto valor de frecuencia,

x(t ) puede ser representada en el dominio del tiempo, tal y como se muestra en la figura

2.3 y en el dominio de la frecuencia en las figuras 2.4a y b.

Tabla 2.1 Parámetros de una señal obtenidos a partir de la ecuación 2.3-1

k ωk Ak φk
1 1 0.6154 0.0579
2 2 0.7919 0.3529
3 3 0.9218 -0.8132
4 4 0.7382 0.0099
5 5 0.1763 0.1389
6 6 0.4057 -0.2028
7 7 0.9355 0.1987
8 8 0.9169 -0.6038
9 9 0.4103 -0.2722

9
Figura 2.3 Representación en el dominio del tiempo de la señal periódica dada por la

ecuación (2.3-1).

Figura 2.4 Representación en el dominio de la frecuencia de la señal periódica de la

ecuación (2.3-1). (a) Espectro de Magnitud, (b) Espectro de Fase.

10
La utilidad de representar una señal en el dominio de la frecuencia, se puede

apreciar al comparar el dominio del tiempo con el dominio de la frecuencia al analizar la

figura 2.4. La representación en el dominio del tiempo muestra una señal ruidosa y

periódica. Lo cual implica que ésta señal está compuesta por la suma de componentes

periódicos. Por otro lado, la representación en el dominio de la frecuencia, provee una

descripción detallada y significativa de cada una de los componentes en frecuencia, y de los

aportes en magnitud y fase de cada uno de los componentes presentes en la secuencia.

La representación propuesta en la ecuación 2.3, se conoce como la Serie de Fourier

de una señal x(t ) y se obtiene como consecuencia, que las series de Fourier para una señal

periódica son la única manera para obtener una representación espectral de una señal. Los

científicos, matemáticos e ingenieros han ideado una gran variedad de herramientas

matemáticas, las cuales pueden ser usadas para representar diferentes tipos de señales de

forma espectral. Otras herramientas matemáticas, además de las Series de Fourier, son la

Transformada de Fourier, la cual se aplica tanto a señales periódicas o no periódicas

continuas en el tiempo; la Transformada Z, la cual se utiliza para señales no periódicas

discretas en el tiempo; y la Transformada Discreta de Fourier, la cual es la más adecuada

para señales periódicas discretas en el tiempo. Cada una de estas herramientas será

retomada en los siguientes apartados.

11
2.4 Filtros analógicos y digitales1

El término filtro se utiliza comúnmente para describir un dispositivo que discrimina,

según algún atributo de los objetos que se aplican a su entrada, aquello que pasa a su través.

Por ejemplo, un filtro de aire permite que el aire pase a su través, evitando que las

partículas de polvo presentes en el aire lo atraviesen.

El filtrado se emplea en el procesamiento digital de señales de diferentes maneras,

por ejemplo, en la eliminación de ruido indeseable de señales deseadas, en la conformación

espectral para ecualización de canales de comunicaciones, en la detección de señales en

radar, sonar y comunicaciones, en los análisis espectrales de señales, etc.

2.4.1 Filtros analógicos

Los filtros eléctricos, desde que fueron inventados, han hecho posible el gran

desarrollo de las telecomunicaciones. Originalmente los filtros analógicos fueron

inventados para ser usados para receptores de radio y sistemas telefónicos para comunicar

personas a larga distancia, convirtiéndose de esta manera en elementos importantes en

todos los tipos de sistemas de comunicación. Con el desarrollo de filtros en los últimos

años, estos se pueden clasificar según su función, su gama de frecuencias o según su

tecnología y de acuerdo, con los elementos que los componen. Algunos tipos de filtros

analógicos son los siguientes:

1
Antoniou, A. “Digital Signal Processing: Signals, Systems and Filters”. Primera edición, McGraw Hill, New
York, Estados Unidos, 2006.

12
• Filtros pasivos RLC • Filtros de capacitores conmutados

• Filtros activos RC discretos • Filtros de microondas

• Filtros activos RC integrados

2.4.2 Filtros digitales

En general, un filtro digital es un sistema que recibe de entrada una señal de tiempo

discreto y produce de salida una señal de tiempo discreto, pero modificada en cierta forma

ya sea en magnitud o en frecuencia. Con el rápido avance en la tecnología de los circuitos

integrados, el desarrollo de tecnologías digitales hizo que se construyeran sistemas más

versátiles y de muy bajo costo.

El desarrollo de filtros digitales sigue creciendo día con día, y por ello se tiene los

siguientes ejemplos:

• Filtros recursivos y no • Filtros adaptativos


recursivos
• Filtros multidimensionales
• Filtros de abanico
• Filtros Multitasa
• Filtros bidimensionales

Estos filtros digitales hoy en día, pueden ser implementados en lenguajes como

MATLAB o C++.

13
2.5 Nota teórica laboratorio de filtros digitales 1

El objetivo es aprender como implementar las técnicas de filtrado para señales de

tiempo discreto, usualmente utilizadas en el curso de Procesamiento Digital de Señales.

2.5.1 Suma convolución y respuesta en frecuencia para tiempo discreto

La salida y[n] de un sistema lineal e invariante en el tiempo se puede expresar

como la suma convolución de la entrada x[n] con su respuesta al impulso h[n] , por medio

de la siguiente ecuación:

∞ ∞
y[n] = ∑ x[k ] ⋅ h[n − k ] =
k = −∞
∑ h[k ] ⋅ x[n − k ]
k = −∞
(2.5-1)

La transformada z de la convolución de dos señales es igual a la multiplicación de

las transformadas de cada una:


Y ( z) = ∑ y[n]z
n = −∞
−n
= X ( z) ⋅ H ( z) (2.5-2)

donde

∞ ∞
H ( z) = ∑ h[n]z − n
n = −∞
y X ( z) = ∑ x[n]z
n = −∞
−n
(2.5-3)

1
Tretter, S. A. “Communication System Design Using DSP Algorithms”. Primera Edición, Kluwer Academic
/ Plenum Publishers, New York, Estados Unidos, 2003.

14
De acuerdo con la ecuación 2.5-1, la salida es

∞ ∞
y[n] = ∑ h[k ] ⋅ Ce ω
k = −∞
j ( n − k )T
= Ce jωnT ∑ h[k ] ⋅ e
k = −∞
− jωkT
= x[n]H ( z ) z = e jωT (2.5-4)

Por tanto, la salida tiene forma sinusoidal a la misma frecuencia que la entrada, pero

con su amplitud dada a partir del número complejo.

H * (ω ) = H ( z ) z = e jωT (2.5-5)

La expresión H * (ω ) se le conoce como la respuesta en frecuencia del sistema. La

expresión A(ω ) = H * (ω ) se le conoce como la amplitud de la respuesta del sistema y el

ángulo θ (ω ) = arg H * (ω ) se le conoce como la respuesta de fase del sistema. Estas

funciones todas están en función de ω con un período ωs = 2π T . En coordenadas polares

la respuesta en frecuencia se ve así

H * (ω ) = A(ω )e jθ (ω ) (2.5-6)

Entonces, de acuerdo con la ecuación 2.5-4, la salida puede ser expresada como

y[n] = CA(ω )e j[ωnT +θ (ω )] (2.5-7)

Cuando la entrada es una señal sinusoidal real, por ejemplo

x[n] = C cos(ωnT + φ ) = ℜe{Ce jφ e jωnT } (2.5-8)

La salida es de la siguiente manera

y[n] = ℜe{H * (ω )Ce jφ e jωnT } = CA(ω ) cos[ωnT + θ (ω ) + φ ] (2.5-9)

15
En otras palabras, el sistema modifica la magnitud de la señal sinusoidal de entrada

por medio de la amplitud de la respuesta y varía su fase a través de la fase de la respuesta

en frecuencia, lo que constituye la idea básica del filtrado digital.

2.5.2 Filtros de respuesta de duración finita al impulso (FIR)

FIR es un acrónimo en inglés para Finite Impulse Response o Respuesta finita al

impulso. Se trata de un filtro, en el cual si la entrada es una señal impulso, la salida tendrá

un número finito de términos no nulos.

Los filtros FIR tienen la gran ventaja de que pueden diseñarse para ser de fase

lineal, lo cual hace que presenten ciertas propiedades en la simetría de los coeficientes. Este

tipo de filtros tiene especial interés en aplicaciones de audio.

Estos filtros tienen todos los polos en el origen, por lo que son estables. Los ceros se

presentan en pares de recíprocos si el filtro se diseña para tener fase lineal. Una de sus

desventajas es de necesitar un orden mayor respecto a los filtros IIR para cumplir las

mismas características. Esto se traduce en un mayor gasto computacional.

2.5.2.1 Estructura en forma directa de un filtro FIR

La realización de la estructura en forma directa se deriva directamente de la

ecuación 2.5-1, cuando la respuesta al impulso es idénticamente a cero fuera del intervalo

de valores siguientes {0, 1,2,…, N-1}, de esta manera la suma convolución esta dada por:

16
N −1 n
y[n] = ∑ h[k ] ⋅ x[n − k ] = ∑ x[k ] ⋅ h[n − k ] (2.5-10)
k =0 k = n − N +1

Un filtro de este tipo se le conoce como un filtro de respuesta finita al impulso de

N-etapas (FIR), filtro no recursivo, filtro transversal, o moving average filter (filtro de

combinación lineal ponderada). El diagrama de bloques para la realización de la estructura

en forma directa para construir filtros FIR se muestra en la figura 2.5. Consiste en una línea

de retardos representada por la cadena de bloques llamados z-1 y una serie de divisiones que

salen de la línea de retardo, las cuales son muestras de la respuesta al impulso.

Figura 2.5 Diagrama de bloques de la estructura en forma directa de un filtro FIR

17
2.5.2.2 Métodos para el diseño de filtros FIR

Hay tres métodos básicos para diseñar este tipo de filtros:

• Método de las ventanas. Las más habituales son:

• Ventana rectangular

• Ventana de Barlett

• Ventana de Von Hann

• Ventana de Hamming

• Ventana de Blackman

• Ventana de Kaiser

• Muestreo en frecuencia

• Rizado constante (Aproximación de Chebyshev y algoritmo de


intercambio de Remez).

2.5.3 Filtros de respuesta de duración infinita al impulso (IIR)

Un filtro con respuesta al impulso, h(n), que tiene duración infinita es conocido

como un filtro IIR, h(n) es la suma de varios exponenciales. En el dominio de la

transformada z, H(z), se conoce como la función de transferencia, y es una función racional

de z. Es la razón de dos polinomios de grado finito, tal y como se muestra en la siguiente

función racional,

b0 + b1 z −1 + b2 z −2 + L + bN z − N B( z )
H ( z) = −1 −2 −M
= (2.5-11)
1 + a0 + a1 z + a2 z + L + aM z A( z )

18
2.5.3.1 Estructura en forma directa de un filtro IIR

La función de transferencia racional dada por la ecuación 2.5-11, se puede obtener

de diferentes maneras. Una de ellas, es por medio de la estructura en forma directa. La

razón de las transformadas z entre la salida y la entrada del filtro esta dada por

Y ( z) B( z )
= H ( z) = (2.5-12)
X ( z) A( z )

De la expresión anterior obtenemos,

⎛ M
⎞ N
Y ( z ) ⋅ A( z ) = X ( z ) ⋅ B( z ) o Y ( z )⎜1 + ∑ ak z − k ⎟ = X ( z )∑ bk z − k (2.5-13)
⎝ k =1 ⎠ k =0

Despejando para Y(z)

N M
Y ( z ) = ∑ bk X ( z ) z − k − ∑ ak Y ( z ) z − k (2.5-14)
k =0 k =1

La ecuación en diferencias es el equivalente en el dominio del tiempo

N M
y[n] = ∑ bk x[n − k ] − ∑ ak y[n − k ] (2.5-15)
k =0 k =1

La ecuación anterior muestra cómo construir un filtro a partir de las N entradas y M

salidas pasadas. Un filtro implementado de esta manera se le conoce como un filtro

recursivo, dado que las salidas pasadas son utilizadas para calcular la salida actual. Se le

llama de forma directa porque los coeficientes en la función de transferencia aparecen en la

ecuación en diferencias.

19
X ( z)
Y ( z) = B( z ) = V ( z ) B( z ) (2.5-16)
A( z )

donde

1
V ( z) = X ( z) (2.5-17)
A( z )

La expresión anterior se muestra en la siguiente figura

Figura 2.6 Primer paso de la estructura en forma directa tipo 1 de un filtro IIR

La Señal intermedia v[n] puede ser obtenida a partir de la estructura de forma

directa

M
v[n] = x[n] − ∑ ak v[n − k ] (2.5-18)
k =1

luego, la salida puede estar representada por

N
y[n] = ∑ bk v[n − k ] (2.5-19)
k =0

Un diagrama de bloques para las ecuaciones 2.5-18, 2.5-19 se muestra en la

siguiente figura, donde se asume que M=N. Este tipo de estructuras requieren menos

20
capacidad y se les conoce como estructura en forma directa tipo 1 y forma directa tipo 2

respectivamente.

Figura 2.7 Diagrama de bloques de la estructura en forma directa tipo 1 de un filtro

IIR

Los elementos s1[n],….,sN[n], son variables de estado para el filtro. La salida actual

y el siguiente estado pueden ser obtenidos a partir de la entrada y estado actual. La

siguiente secuencia de pasos puede ser utilizada para obtener las salidas y los estados del

filtro:

21
Paso1: Calculo de v[n]

M
v[n] = x[n] − ∑ ak v[n − k ]
k =1

Paso 2: Calculo de la salida y[n]

N
y[n] = b0v[n] + ∑ bk sk [n]
k =1

Paso 3: Actualizar las variables de estado

s N [n + 1] = s N −1[n]
s N −1[n + 1] = sN − 2 [n]
M
s2 [n + 1] = s1[n]
s1[n + 1] = v[n]

Otra estructura, es la de forma directa tipo 2, la cual se puede obtener de la ecuación

2.5-13. Para simplificar, sea M=N.

N
Y ( z ) = b0 X ( z ) + ∑ [bk X ( z ) − akY ( z )]z − k (2.5-20)
k =1

Un diagrama de bloques que representa la expresión anterior se muestra en la figura

siguiente.

22
Figura 2.8 Diagrama de bloques de la estructura en forma directa tipo 2 de un filtro

IIR

La secuencia de pasos siguiente es para obtener las salidas y para actualizar sus

variables de estado de este tipo de estructura.

Paso1: Cálculo de la salida y[n]

y[n] = b0 x[n] + s1[n]

23
Paso 2: Actualizar las variables de estado

s1[n + 1] = b1 x[n] − a1 y[n] + s2 [n]

s2 [n + 1] = b2 x[n] − a2 y[n] + s3[n]


M
s N −1[n + 1] = bN −1 x[n] − aN −1 y[n] + s N [n]
s N [n + 1] = bN x[n] − aN y[n]

2.5.4 Transformación bilineal1

El diseño de filtros digitales a partir de filtros analógicos es un campo maduro y

bien desarrollado, así que en la mayoría de las veces es de gran utilidad diseñar un filtro

digital en el dominio analógico y luego este se convierte al dominio digital.

Un filtro analógico se puede describir por su función de transferencia

B( s) ∑β s k
k

H a (s) = = k =0
N
(2.5-21)
A( s )
∑α s
k =0
k
k

donde {α k } y {β k } son los coeficientes del filtro, o por su respuesta al impulso, que

se relaciona con Ha(s) mediante la transformada de Laplace

H a (s ) = ∫ h(t )e − st dt

(2.5-22)
−∞

1
Proakis, J. G. “Tratamiento digital de señales”. Tercera Edición, Prentice Hall, Madrid, España, 1998.
Jackson, L. B. “Digital filters and Signal Processing”. Tercera Edición, Boston: Kluwer Academic Publishers,
Estados Unidos, 1996.

24
También, el filtro analógico que tiene la función de transferencia racional, H(s)

dada en (2.5-21), se puede describir mediante la ecuación diferencial lineal con coeficientes

lineales constantes

N
d k y (t ) M d k x(t )

k =0
αk
dt k
= ∑ βk
k =0 dt k
(2.5-23)

donde x(t) denota la señal de entrada e y(t) denota la salida del filtro.

Cada una de estas tres caracterizaciones equivalentes de un filtro analógico conduce

a métodos alternativos para convertir el filtro al dominio digital. Recuérdese que un sistema

analógico lineal invariante en el tiempo con función de transferencia H(s) es estable si

todos sus polos se encuentran en la mitad izquierda del plano s. Consecuentemente, si la

técnica de conversión es efectiva debería tener las siguientes propiedades deseables:

• El eje jΩ en el plano s debería corresponderse a la circunferencia unidad en

el plano z. Así, habrá una relación directa entre las dos variables de

frecuencia en los dos dominios.

• El semiplano izquierdo del plano s se debería corresponder con el interior de

la circunferencia unidad en el plano z. Así, un filtro analógico estable se

convertirá en un filtro digital estable.

Uno de estos métodos es la correspondencia del plano s al plano z, denominada

transformación bilineal, que soluciona ciertas limitaciones que poseen otros métodos. La

transformación bilineal es una correspondencia conformadora que transforma el eje jΩ en

25
la circunferencia unidad del plano z sólo una vez, evitando el solapamiento de componentes

de frecuencia. Además, todos los puntos en el semiplano izquierdo s se corresponden con el

interior de la circunferencia unidad en el plano z y todos los puntos en el semiplano

derecho de s se corresponden con puntos fuera de la circunferencia unidad del plano z.

De esta manera se necesita una transformación de s a s’, la cual contenga todo el

plano s dentro del intervalo − π T ≤ Im(s ' ) ≤ π T , luego para transformarlo al plano z

utilizando z = e s 'T . La transformación del plano s al plano s’ está descrita en la figura 2.9 y

esta dada por

2 ⎛ sT ⎞
s' = tan −1 ⎜ ⎟ (2.5-24)
T ⎝ 2 ⎠

Figura 2.9 Mapeo del plano s al plano s’

Ahora para ver el efecto de esta transformada es mejor pasar al eje jΩ. Sustituyendo

s=jΩ y s’=jΩ en (2.5-24), se obtiene

2 ⎛ ΩT ⎞
Ω' = tan −1 ⎜ ⎟ (2.5-25)
T ⎝ 2 ⎠

26
O equivalentemente,

⎛ ΩT ⎞
ω = 2 tan −1 ⎜ ⎟ (2.5-26)
⎝ 2 ⎠

Por tanto, el eje Ω esta completamente contenido en el intervalo (-π, π) para ω.

También se puede notar que la relación entre ω y Ω no es lineal, pero es aproximadamente

lineal para valores pequeños de ω ≈ ΩT , tal y como se muestra en la figura 2.10.

Figura 2.10 Mapeo de Ω a ω por medio de la transformación bilineal.

Ahora, la transformación del plano s al plano z se obtiene invirtiendo (2.5-24), así

2 ⎛ s'T ⎞
s= tanh⎜ ⎟ (2.5-27)
T ⎝ 2 ⎠

Luego a partir de z = e s 'T se obtiene s ' = (1 T )ln z y sustituyendo en (2.5-27), se

obtiene

27
2 ⎛ ln z ⎞
s= tanh⎜ ⎟ (2.5-28)
T ⎝ 2 ⎠

Recordando que:

e x − e − x 1 − e −2 x
tanh x = = y aplicándolo a la ecuación (2.5-28), se obtiene
e x + e− x 1 + e− 2 x

2 ⎛ 1 − z −1 ⎞
s = ⎜⎜ ⎟ (2.5-29)
T ⎝ 1 + z −1 ⎟⎠

Por tanto, el diseño en tiempo discreto de un filtro se obtiene a partir del diseño en

tiempo continuo a través de la transformada bilineal.

H ( z ) = H c ( s) 2 ⎛ 1− z − 1
S= ⎜

⎟ (2.5-30)
T ⎜⎝ 1+ z −1 ⎟

Se puede notar que la transformada bilineal es invertible, es decir hay una

transformada inversa que se deriva a partir de (2.5-29)

T
1+s
z= 2 (2.5-31)
T
1− s
2

La relación no-lineal que existe entre Ω y ω dada por la ecuación (2.5-26) se le

conoce como distorsión en frecuencia. De esta manera el efecto en H’(ω) relativo a Hc(jΩ)

se obtiene a partir de (2.5-30)

H ' (ω ) = H c ( jΩ) Ω=
2 ⎛ω ⎞
tan ⎜ ⎟
(2.5-32)
T ⎝2⎠

28
La relación es descrita en la siguiente figura

Figura 2.11 Descripción del efecto de la transformación bilineal de Hc( jΩ) a H'(ω).

De la figura anterior se puede notar que a partir de esta transformación Hc(jΩ) se

comprime en frecuencia, pero a pesar de esto, las características de Hc(jΩ) se mantienen en

H’(ω). Esta propiedad es la característica más importante de la transformada bilineal.

29
Para diseñar filtros utilizando la transformación bilineal se utiliza el siguiente

procedimiento:

Distorsión en Frecuencia: se calculan los valores de Ωc y Ωr correspondientes a los

valores especificados de ωc y ωr a partir de

2 ⎛ω ⎞
Ω= tan⎜ ⎟ (2.5-33)
T ⎝2⎠

Diseño en tiempo continuo: a partir de los valores de Ωc, Ωr, δ1, δ2, y N, se obtiene

las ceros y polos del filtro analógico.

Transformación de los ceros y polos: utilizando la ecuación (2.5-36) los ceros σm

y polos sk se transforman en zm y pk. Poniendo Hc(jΩ) en términos de sus polos y ceros de la

siguiente manera


Mc
(s − σ m )
H ( s) = K m =1
(2.5-34)

c N
k =1
( s − sk )

Y aplicando la transformada bilineal se produce


Mc
(1 − zm z −1 )
(
H ( z ) = b0 1 + z )
−1 N − M c m =1
(2.5-35)

N
k =1
(1 − pk z −1 )

30
donde

T T
1+ σm 1+ sk
zm = 2 y pk = 2 (2.5-36)
T T
1− σm 1 − sk
2 2

Calcular b0: se calcula el coeficiente de ganancia b0 igualando las ganancias

de H (1) = H c (0) o las ganancias de otras frecuencias equivalentes.

Por último se obtiene la función de transferencia del sistema H(z) la cual está dada

por (2.5-35).

31
2.6 Nota teórica laboratorio de FFT1

El objetivo es repasar y utilizar algunas técnicas importantes en el procesamiento

digital de señales. Prácticamente sería construir un analizador del espectro utilizando la

Transformada Rápida de Fourier (FFT, acrónimo en inglés de Fast Fourier Transform).

2.6.1 Muestreo en tiempo discreto utilizando la transformada de Fourier

Suponga que una señal continua en el tiempo, es muestreada con un período T o una

frecuencia de muestreo de ωs = 2π T para obtener una señal discreta en el tiempo

x[n]=x(nT).

Se define en tiempo discreto la Transformada de Fourier de x[n] como la siguiente

expresión,


X (ω ) = ∑ x[n] ⋅ e
n = −∞
− jωnT
(2.6-1)

La transformada Z de la señal se obtiene sustituyendo por z = e jωT . Nótese que

X (ω ) tiene un período ωs , puesto que la sumatoria es una serie de Fourier. La señal

discreta de Fourier puede ser determinada en tiempo discreto a partir de la transformada de

Fourier, por

1
Tretter, S. A. “Communication System Design Using DSP Algorithms”. Primera Edición, Kluwer Academic
/ Plenum Publishers, New York, Estados Unidos, 2003.

32
ws
2
1
x[n] = ∫ X (ω ) ⋅ e
jωnT
dω (2.6-2)
ωs ws

2

Así, x[n] puede ser considerada como la suma de ondas sinusoidales muestreadas

en un intervalo de frecuencias continuas, de acuerdo al ancho de banda según Nyquist

− ωs 2 < ω < ωs 2 con amplitudes complejas dadas por X(ω). De esta manera X(ω) se le

puede llamar como el espectro de frecuencia de la señal.

2.6.2 La transformada discreta de Fourier y su inversa

Sea x[n] una señal la cual es cero para valores de n que no estén en el siguiente

intervalo {0, 1, 2,…., N-1}. Sea X(ω) en tiempo discreto la transformada de Fourier de

x[n], la cual se definió en el punto 2.6.1. Entonces, la Transformada Discreta de Fourier

(DFT, acrónimo en inglés de Discrete Fourier Transform) de x[n], se define como

N −1 2π
−j nk
X k = X (kωs N ) = ∑ x[n] e N
para k = 0, 1,.…, N-1 (2.6-3)
n =0

La DFT es simplemente la serie de N muestras de X(ω) tomadas a diferentes valores

de frecuencia dadas por ωs N dentro del intervalo de Nyquist.

Los valores originales de la señal se pueden obtener utilizando la Transformada

Discreta Inversa de Fourier (IDFT, acrónimo en inglés de Inverse Discrete Fourier

Transform), dada por la siguiente fórmula

33
N −1 2π
1 j nk
x[n] =
N
∑X
k =0
k e N
para k = 0, 1,.…, N-1 (2.6-4)

2.6.3 La transformada rápida de Fourier1

La transformada discreta de Fourier (DFT) juega un papel importante en el análisis,

el diseño y la realización de algoritmos y sistemas de procesamiento digital de señales. Una

de las razones por las que el análisis en Fourier es de una amplia importancia en el

procesamiento digital de señales es debido a la existencia de un algoritmo eficiente para

calcular la DFT. Este algoritmo se le denomina como la Transformada Rápida de Fourier

(FFT). La FFT elimina información redundante que existe en la DFT, ya que esta explota

las propiedades de periodicidad y simetría del factor de fase WN. Estas propiedades son:

N
k+
WN 2
= −WNk Simetría (2.6-5)
k+N
W N =W k
N Periodicidad

Existen básicamente dos tipos de algoritmos FFT:

• Diezmado en el tiempo

• Diezmado en frecuencia

1
Proakis, J. G. “Tratamiento digital de señales”, Tercera edición, Prentice Hall, Madrid España, 1998.
Tretter, S. A. “Communication System Design Using DSP Algorithms”, Primera edición, Kluwer Academic /
Plenum Publishers, New York, Estados Unidos, 2003.

34
Estos algoritmos son de gran utilidad debido a que si se realiza el cálculo directo de

la DFT o IDFT dadas por (2.6-3) y (2.6-4), esto supone realizar N multiplicaciones

complejas y N − 1 sumas complejas. En consecuencia, para calcular los N valores de de

DFT necesitamos N 2 multiplicaciones complejas y N 2 − N sumas complejas. Por otra

parte el cálculo utilizando estos algoritmos reduce el número de sumas complejas a

N log 2 N . De manera para valores de N muy grandes es de gran importancia utilizar la FFT

en lugar de calcular directamente la DFT.

El algoritmo de diezmado en el tiempo es uno de los algoritmos mas utilizados en la

actualidad, este se presenta a continuación. Para simplificar la notación, sea WN = e − j 2π N ,

de esta manera de (2.6-3) obtengo

N −1 2π N −1
−j nk
Xk = ∑ x[n] e
n=0
N
= ∑ x[n]WNnk
n=0
(2.6-6)

Este algoritmo asume que N = 2v . Luego se separa la sumatoria en dos sumatorias,

cuando n es par y otra cuando n es impar.

N N
−1 −1
2 2
Xk = ∑ x[2n] W
n=0
2 nk
N + ∑ x[2n + 1] WN( 2 n +1) k para k = 0, 1, K , N − 1
n=0
(2.6-7)

Ahora sea,

a [n] = x[2n] N
para n = 0, 1, K , −1 (2.6-8)
b [n] = x[2n + 1] 2

35
Se puede notar que WN2 = WN 2 . Por tanto, (2.6-7) puede escribirse como

N N
−1 −1
2 2
Xk = ∑ a[n] W
n=0
nk
N /2 + WNk ∑ b[n] WNnk/ 2 para k = 0, 1, K , N − 1
n=0
(2.6-9)

y definiendo Ak y Bk de la siguiente manera

N
−1
2
Ak = ∑ a[n] W
n=0
nk
N /2

N
para n = 0, 1, K , N − 1 (2.6-10)
−1
2
Bk = ∑ b[n] W
n=0
nk
N /2

De esta manera (2.6-9) se puede escribir como

X k = Ak + WNk Bk para n = 0, 1, K , N − 1 (2.6-11)

El siguiente paso muestra las ecuaciones claves para la FFT de diezmado en el

tiempo. Primero se nota que WNN / 2 = −1 . Luego, la ecuación anterior se puede separar en

dos nuevas ecuaciones,

X k = Ak + WNk Bk
N
X = Ak − WNk Bk para n = 0, 1, K , −1 (2.6-12)
k+
N 2
2

El cálculo básico de las dos ecuaciones anteriores se muestra en la siguiente figura,

al cual se le denomina Mariposa, dado que el diagrama de flujo recuerda a una mariposa.

36
Figura 2.12 Esquema de Mariposa del algoritmo FFT de diezmado en el tiempo.

Un diagrama de flujo para un cálculo completo de la primera etapa de este

algoritmo con N = 8, se muestra en la siguiente figura.

Figura 2.13 Primera etapa del algoritmo FFT de diezmado en el tiempo.

37
Otro algoritmo para el cálculo de la FFT importante, denominado algoritmo de

diezmado en frecuencia. Esto implica un almacenamiento por columnas de la secuencia de

datos de entrada. Para deducir el algoritmo se empieza dividiendo la ecuación (2.6-6) en

dos sumatorias, una de las cuales contiene los primeros N 2 puntos de datos y el otro los

últimos N 2 puntos de datos. Así se obtiene

N
−1
2 N −1
Xk = ∑ x[n]WNkn +
n=0
∑ x[n]W
N
kn
N
n=
2
N N
(2.6-13)
−1 Nk 2 −1
2
⎡ N ⎤ kn
Xk = ∑ x[n]W
n=0
kn
N +W N
2
∑ x ⎢⎣n +
N 2 ⎥⎦
WN
n=
2

kN

Dado que WN 2 = (− 1) , la expresión (2.6-13) puede reescribirse como


k

N
Nk 2 −1
⎧ ⎡ N⎤⎫
Xk = W N
2
∑ ⎨ x[n] + (− 1) k
x ⎢n + ⎥ ⎬WNkn
⎣ 2⎦⎭
(2.6-14)
n=
N ⎩
2

Ahora se diezma X k en las muestras pares e impares. De esta manera, se obtiene

N
−1
2
⎧ ⎡ N ⎤ ⎫ kn N
X 2k = ∑ ⎨ x[n] + x ⎢⎣n + ⎬W N
2 ⎥⎦ ⎭ 2
para k = 0, 1,K,
2
−1 (2.6-15)
n=0 ⎩

N
−1
2
⎧ ⎡ N ⎤ ⎫ kn kn N
X 2 k +1 = ∑ ⎨ x[n] − x ⎢⎣n + ⎬W N W N
2 ⎥⎦ ⎭ 2 2
para k = 0, 1,K,
2
−1 (2.6-16)
n=0 ⎩

38
N
Donde se recurre al hecho de que WN2 = W N . Si se definen las secuencias de
2
2

puntos g1 (n ) y g 2 (n ) como

⎡ N⎤
g1 [n] = x[n] + x ⎢n + ⎥
⎣ 2⎦
(2.6-17)
⎧ ⎡ N ⎤⎫ N
g 2 [n] = ⎨ x[n] − x ⎢n + ⎥ ⎬WNn para n = 0, 1, 2,K , − 1
⎩ ⎣ 2 ⎦⎭ 2

Entonces

N
−1
2
X 2k = ∑ g [n]W
n =0
1
kn
N
2
N
(2.6-18)
−1
2
X 2 k +1 = ∑ g [n]W
n=0
2
kn
N
2

El cálculo de las secuencias g1 [n] y g 2 [n ] según (2.6-17) y el uso de estas

secuencias para el cálculo de la DFT de N 2 puntos se muestra en la figura 2.14.

Este procedimiento computacional puede repetirse diezmando la DFT de N 2

puntos para X 2 k y X 2 k +1 . Consecuentemente, el cálculo de la DFT de N puntos por medio

del algoritmo para la FFT de diezmado en frecuencia, requiere (N 2)log 2 N


multiplicaciones complejas y N log 2 N sumas complejas, igual que el algoritmo de

diezmado en tiempo.

39
Un diagrama de flujo para un cálculo completo de la primera etapa de este

algoritmo con N = 8, se muestra en la siguiente figura.

Figura 2.14 Primera etapa del algoritmo FFT de diezmado en frecuencia

Se puede observar que el cálculo básico en esta figura es la mariposa mostrada en la

figura 2.12

40
2.6.4 Uso de la FFT para determinar la densidad espectral de potencia1

Hay señales de energía finita que tienen transformada de Fourier y están

caracterizadas en el dominio espectral por su densidad espectral de energía. Por otro lado,

la clase importante de señales caracterizadas como procesos aleatorios estacionarios no

tienen energía finita y, por lo tanto, no tienen transformada de Fourier. Tales señales están

caracterizadas por la densidad espectral de potencia, ya que tienen potencia media finita.

Un método para estimar la densidad espectral de frecuencia está basado en usar una

función llamada periodograma. Esta función de una secuencia de N puntos y[n] esta

definida por

1
I N (ω ) = Y (ω )
2
(2.6-19)
N

donde

N −1
Y (ω ) = ∑ y[n] e − jωnT (2.6-20)
n=0

es en tiempo discreto la transformada de Fourier de y[n]. Se puede demostrar que la

transformada inversa del periodograma es iguala a la función de autocorrelación

⎧1 N −1


R(n ) = ⎨ N
∑ y[n + k ] y[k ]
k =0
para n ≤ N −1
(2.6-21)
⎪0 cualquier otro valor

1
Proakis, J. G. “Tratamiento digital de señales”, Tercera edición, Prentice Hall, Madrid España, 1998.
Tretter, S. A. “Communication System Design Using DSP Algorithms”, Primera edición, Kluwer Academic /
Plenum Publishers, New York, Estados Unidos, 2003.

41
La variable, n, en la función de autocorrelación se le conoce como el retardo. Para

un retardo cero

N −1
1 1
∑ y[k ]
ωs / 2
R(0 ) = I N (ω ) dω
ω 2 ∫−ω
2
= (2.6-22)
N k =0 s /2

es la potencia promedio de la secuencia de puntos. Esta relación justifica el uso de

la autocorrelación promediada en el tiempo, como la interpretación del periodograma como

una función que muestra como la potencia se distribuye en el dominio de la frecuencia.

A simple vista, se puede asumir que conforme aumenta N, el periodograma se

vuelve una mejor forma de estimar la densidad espectral de potencia para procesos

aleatorios estacionarios. Sin embargo, esto no es cierto. Conforme N aumenta, el

periodograma tiende a oscilar más y más rápidamente.

Una solución a este problema es promediar los periodogramas de diferentes

segmentos de la secuencia de N puntos. Sea x[n] una secuencia de duración M = LN y la

ventana L para cada uno de los segmentos.

⎧h[n] x[n + kL] para n = 0, 1,..., N − 1


yk [n] = ⎨ (2.6-23)
⎩0 cualquier otro

donde h[n] es la función de la ventana deseada. El periodograma obtenido del

segmento ventaneado está dado por I N , k (ω ) . Así, la densidad espectral de potencia se

determina ahora por

) 1 L −1
S = ∑ I N , k (ω ) (2.6-24)
L k =0

42
Cuando los segmentos de puntos son estadísticamente independientes, el promedio

de L segmentos reduce la varianza en un factor de L. Además los segmentos de datos se

pueden ir solapando a ciertos porcentajes para intentar mejorar las ganancias de la

estimación.

43
2.7 Nota teórica laboratorio de modulación AM1

El objetivo es examinar un método muy común de transmitir información conocido

como modulación de amplitud (AM, acrónimo en inglés de Amplitude Modulation), y a su

vez conocer como se utiliza para procesar señales digitales.

2.7.1 Descripción de la modulación de amplitud (AM)

Las señales de información deben ser transportadas entre un transmisor y un

receptor sobre alguna forma de medio de transmisión. Sin embargo, las señales de

información pocas veces encuentran una forma adecuada para la transmisión. La

modulación se define como el proceso de transformar información de su forma original a

una forma más adecuada para la transmisión. El propósito es transformar una señal m(t) en

otra señal s(t). Este proceso debe ser reversible, de tal manera que se pueda recuperar la

señal m(t) a partir de la señal s(t) en el receptor. La señal m(t) es la señal en banda base que

se va a transmitir. Puede ser representada tanto en forma temporal como en forma de

espectro de frecuencias. La modulación recurre a una nueva señal auxiliar de frecuencia f0.

Esta frecuencia f0 recibe el nombre de frecuencia portadora o frecuencia central.

Evidentemente la frecuencia f0 se elige de forma que se encuentre en la banda de paso del

canal de transmisión. La señal que será transmitida s(t), es la señal llamada portadora a la

frecuencia f0.

1
Tretter, S. A. “Communication System Design Using DSP Algorithms”. Primera Edición, Kluwer Academic
/ Plenum Publishers, New York, Estados Unidos, 2003.

44
Una señal AM está descrita por

s (t ) = Ac [1 + ka m(t )]cos ωct (2.7-1)

donde

c (t ) = Ac cos ωct (2.7-2)

es llamada la onda portadora de amplitud Ac y frecuencia f c = ωc (2π ) Hz. La

frecuencia portadora, fc, es relativamente alta de acuerdo con la amplitud de la señal

modulante (señal original). El parámetro k a es una constante positiva llamada índice de

modulación del modulador.

La señal

e(t ) = Ac 1 + k a m(t ) (2.7-3)

se le conoce como la envolvente de s(t). Cuando fc es relativamente alta de acuerdo

al ancho de banda de m(t), la envolvente es una señal suavizada que pasa por los picos

positivos de s(t) y puede ser vista al modular la amplitud de la onda portadora relativa a

m(t). En general, en radiodifusión AM, k a m(t ) es ajustado de la siguiente manera

1 + ka m(t ) ≥ 0 para todo t (2.7-4)

Para este caso la envolvente es

e(t ) = Ac [1 + k a m(t )] (2.7-5)

45
Entonces m(t) se puede obtener a partir de la envolvente, a los receptores que

poseen esta propiedad se les conoce como demoduladores no coherentes, porque no se

generan frecuencias en el receptor o las frecuencias utilizadas para la demodulación son

completamente independientes de la frecuencia o fase de la onda portadora del transmisor.

2.7.1.1 Espectro de una señal AM

Suponga que la señal de banda base m(t) tiene como transformada de Fourier M (ω )

y M (ω ) = 0 para ω ≥ W . Es una señal pasobajo con frecuencia de corte W. La

transformada de Fourier de la señal transmitida s(t), es

Ac A
S (ω ) = Acπ δ (ω + ωc ) + Acπ δ (ω − ωc ) + ka M (ω + ωc ) + c ka M (ω − ωc ) (2.7-6)
2 2

En la expresión anterior se identifican señales de cuatro frecuencias diferentes, dos

de amplitud π Ac y frecuencia ωc y − ωc , que corresponde a la portadora y cuya amplitud

y frecuencia no dependen de la señal moduladora. Las otras dos señales tienen frecuencias

(ω + ωc ) y (ω − ωc ) , separadas por debajo y arriba de la portadora por ω, cada una de

amplitud Ac k a 2 .

Para frecuencias positivas la parte del espectro por encima de ωc y para frecuencias

negativas la parte del espectro por debajo de -ωc se denomina banda lateral superior (USB,

acrónimo en inglés de Upper Side Band) y para frecuencias positivas la parte del espectro

por debajo de ωc y para frecuencias negativas la parte del espectro por encima de -ωc se

46
denomina banda lateral inferior (LSB, acrónimo en inglés para Lower Side Band). La

condición ωc > W asegura que las bandas laterales inferiores (la positiva y la negativa) no

se solapen.

Para frecuencias positivas, la componente frecuencial superior es (ωc + W ) y la

inferior (ωc − W ) . La diferencia entre ambas define el ancho de banda de transmisión de la

señal AM que se representa mediante Br y viene dado por la siguiente ecuación

Br = 2W (2.7-7)

Figura 2.15 Espectro de una señal AM

47
2.7.2 Demodulación de una señal AM capturando la envolvente

Un circuito análogo, muy simple y conocido como detector de envolvente es usado

comúnmente en los radios para demodular señales AM. Este circuito esta implementado

por un diodo, capacitores y resistencias, es un seguidor de picos de la onda AM. Existen

dos métodos para la detección de la envolvente de gran importancia en el procesamiento

digital de señales. El primer método se conoce como ley cuadrática y el segundo método

utiliza la transformación de Hilbert para crear algo llamado la envolvente compleja.

2.7.2.1 Demodulación de señales AM utilizando la ley cuadrática

El diagrama de bloques de la ley cuadrática se muestra en la figura 2.16. La entrada

s(t) tiene la forma de una señal AM dada por (2.7-1). Se asume que la señal banda base es

una señal pasobajo con frecuencia de corte W. El primer bloque da como resultado

s 2 (t ) = Ac2 [1 + ka m(t )] cos 2 ωct = 0.5 Ac2 [1 + k a m(t )] + 0.5 Ac2 [1 + ka m(t )] cos 2 2ωct
2 2 2
(2.7-8)

El primer término del lado derecho de la ecuación es una señal pasobajo excepto

que la frecuencia de corte se aumentó en 2W. El segundo término tiene un espectro

centrado en ± 2ωc . Para frecuencias positivas, este espectro se encuentra dentro del

intervalo (2ωc − 2W , 2ωc + 2W ) . Para que el detector funcione correctamente, los espectros

de estos dos términos no deben solaparse. Esto se logra si

2W < 2ωc − 2W or ωc > 2W (2.7-9)

48
De acuerdo a lo anterior, la señal AM tiene la banda lateral con una frecuencia de

corte de 2(ωc + W ) . Por consiguiente, la entrada s(t) debe ser muestreada a una tasa de al

menos 4(ωc + W ) para prevenir pérdidas y el filtro pasobajo H(ω) debe operar con

muestras tomadas de la tasa de muestreo de s2(t). La salida del filtro pasobajo tiene su

banda lateral en el ancho de banda Nyquist de corte 2W .

Figura 2.16 Detector de envolvente (Ley Cuadrática)

El filtro H(ω) es un filtro pasobajo ideal con una frecuencia de corte 2W de manera

que su salida es 0.5 Ac2 [1 + ka m(t )] . La caja final del diagrama de bloques del detector se
2

encarga de obtener la raíz cuadrada de la salida del filtro y da como resultado una señal que

es proporcional a m(t) con un nivel DC. En muchos casos, la señal que se desea transmitir

no tiene componentes de espectro cerca de la frecuencia cero y el nivel DC puede ser

eliminado utilizando un filtro pasoalto.

49
2.8 Nota teórica laboratorio de modulación DSBSC-AM1

Puesto que es indispensable que en el receptor se reinserte la portadora exactamente

a la misma frecuencia y fase de la portadora utilizada para modular la señal en el

transmisor, en el receptor sólo sería necesaria una muestra o piloto de esa portadora, de

nivel suficiente para sincronizar o enganchar la frecuencia de un oscilador local. En estas

condiciones, no es necesario transmitir la portadora con toda su potencia y basta, como se

mencionó con transmitir sólo una muestra de ella. Esto hace posible transmitir la señal

modulada en amplitud sólo con la potencia requerida para la señal de información y

permite reducir de manera importante la potencia del transmisor con la consiguiente

reducción del costo de operación. Este razonamiento da lugar a la posibilidad de transmitir

sólo las dos bandas laterales con, o sin un piloto de la portadora. Si no se transmite este

piloto, la complejidad del receptor aumenta ya que el oscilador local no tiene una referencia

precisa para sincronizarse, aunque es posible, a expensas de circuitos más complejos. A

este tipo de modulación se le conoce como modulación de amplitud con portadora

suprimida de doble banda lateral (DSBSC-AM, acrónimo en inglés para double-sideband

suppressed-carrier amplitude modulation).

2.8.1 Descripción matemática de una señal DSBSC-AM

Sea m(t) la señal que se desea transmitir. La señal DSBSC-AM obtenida a partir de

m(t) es

1
Tretter, S. A. “Communication System Design Using DSP Algorithms”. Primera Edición, Kluwer Academic
/ Plenum Publishers, New York, Estados Unidos, 2003.

50
s (t ) = Ac m(t )cos ωct (2.8-1)

Esta es la misma señal AM excepto que con la componente sinusoidal de la

portadora eliminada. Usualmente la señal m(t) que se transmite posee valores positivos y

negativos que no pueden ser recuperados por medio de un detector de envolvente. Un

método de demodulación llamado demodulación coherente es utilizado para este caso de

señales. Luego la transformada de Fourier de s(t) es

S (ω ) = 0.5 Ac M (ω − ωc ) + 0.5 Ac M (ω + ωc ) (2.8-2)

De la ecuación anterior se puede notar que es el mismo espectro de una señal AM

pero sin el valor discreto de la frecuencia de la portadora. Tal y como se muestra en la

figura 2.18, en este caso el proceso de modulación simplemente traslada la señal

moduladora a las frecuencias ± ωc . Se tienen las dos bandas laterales sin portadora. En este

caso el ancho de banda de la señal moduladora es B = 2W y la eficiencia en potencia

η = 1 . La parte del espectro para ω > ωc se le conoce como banda lateral superior (USB,

acrónimo en inglés de Upper Sideband) y la parte del espectro para ω < ωc se le conoce

como la banda lateral inferior (LSB, acrónimo en inglés para Lower Sideband).

2.8.2 El receptor coherente ideal

El diagrama de bloques de un receptor coherente ideal se muestra en la figura 2.17.

Primero la señal recibida se pasa a través de un filtro pasabanda centrado a la frecuencia de

51
la portadora de tal manera que pase la señal DSBSC y elimine el ruido. La salida del filtro

pasabanda luego es multiplicado por una réplica de la onda portadora. Esta replica es

generada por un dispositivo llamado oscilador local (LO, acrónimo en inglés para Local

Oscilator). Suponiendo una señal sin ruido, el producto de esa multiplicación es

s1 (t ) = 2s (t )cos ωct = 2 Ac m(t )cos 2 ωct = Ac m(t ) + Ac m(t )cos 2ωct (2.8-3)

El dispositivo que es capaz de obtener el resultado anterior se le conoce como

modulador balanceado.

Figura 2.17 Diagrama de bloques de un Receptor Coherente Ideal

La transformada de Fourier de la salida del modulador balanceado es

S1 (ω ) = Ac M (ω ) + 0.5 Ac M (ω + 2ωc ) + 0.5 Ac M (ω − 2ωc ) (2.8-4)

y se muestra en la figura 2.18(c). El primer término a mano derecha de la ecuación

(2.8-3) es proporcional a la señal transmitida. El segundo término tiene los componentes

del espectro centrados alrededor de − 2ωc y 2ωc , los cuales se pueden ver en S1 (ω ) . Las

52
altas frecuencias no deseadas son eliminadas finalmente por el filtro pasobajo con

frecuencia de corte W.

Figura 2.18 Espectro de una señal DSBSC-AM

53
2.8.3 Lazo de Costas: técnica práctica para demodulación coherente

Un receptor debe tener un perfecto conocimiento de la frecuencia de portadora y la

fase de la señal DSBSC-AM, para lograr una demodulación coherente exacta. Sin embargo,

estos parámetros pueden ser estimados con certeza por el receptor por medio de

dispositivos llamados circuito de lazo por enganche de fase (PLL, acrónimo en inglés de

phase-locked loops), y así poder obtener una demodulación coherente. Un método para

obtener un sistema receptor adecuado para demodular señales DSBSC-AM se denomina

lazo de costas, el cual es una modificación de un tipo de PLL. Un esquema de dicho

receptor se puede ver en la figura 2.19. Esta forma está particularmente diseñada para

aplicaciones de DSP, por tanto las señales que se muestran son señales discretas con un

período de muestreo T.

Figura 2.19 Diagrama de bloques del demodulador de lazo Costas

54
En general, la señal después de pasar por el filtro pasabanda tiene la forma

s (nT ) = Ac m(nT )cos(ωc nT + θ1 ) (2.8-5)

donde ωc es frecuencia nominal de la portadora y θ1 es una constante o un cambio

muy lento de fase. Cuando existe una diferencia en frecuencia entre la frecuencia nominal y

las frecuencias de la portadora, ya sea por una mala calibración en el transmisor o el

oscilador local del receptor, θ1 toma la forma

θ1 = ∆ω nT + γ (2.8-6)

donde ∆ω es la diferencia en frecuencia y γ es una constante de fase.

El primer paso de este sistema, es formar la envolvente compleja

)
s+ (nT ) = s(nT ) + js (nT ) = Ac m(nT )e j (ω c nT +θ1 ) (2.8-7)

Las líneas sólidas y punteadas paralelas en la figura 2.19 representan señales

complejas, donde las líneas sólidas corresponden a la parte real y las líneas punteadas a la

parte imaginaria.

El sistema genera un ángulo estimado φ (nT ) de la señal recibida, el cual puede ser

expresado como

φ (nT ) = ωc nT + θ 2 (nT ) (2.8-8)

Este ángulo es luego pasado por el bloque con el exponencial complejo para dar

lugar a la señal del oscilador local e − jφ (nT ) .

55
La señal del oscilador local es multiplicada por la envolvente compleja dando como

resultado

c(nT ) = s+ (nT )e − jφ (nT ) = Ac m(nT )e j [θ1 −θ 2 (nT )] (2.8-9)

Esta señal es separada en su parte real e imaginaria, tal y como se muestra

{ } )
c1 (nT ) = ℜe s+ (nT )e − jφ (nT ) = s(nT )cos φ (nT ) + s (nT )sin φ (nT )
c1 (nT ) = Ac m(nT ) cos[θ1 − θ 2 (nT )]
(2.8-10)
{ })
c2 (nT ) = ℑm s+ (nT )e − jφ (nT ) = s (nT )cos φ (nT ) − s(nT )sin φ (nT )
c2 (nT ) = Ac m(nT ) sin[θ1 − θ 2 (nT )]

Se dice que el lazo está enganchado cuando el error de fase θ1 − θ 2 se mantenga

pequeño. Cuando el error es exactamente cero, la señal inicial demodulada aparecerá en el

punto llamado m1(nT) del diagrama de bloques, de esta manera c1 (nT ) = m1 (nT ) y

c2 (nT ) = 0 .

Luego cuando se multiplica la parte real por la parte imaginaria se obtiene

q(nT ) = c1 (nT )c2 (nT ) = Ac2 m 2 (nT ) cos[θ1 − θ 2 (nT )]sin[θ1 − θ 2 (nT )]
(2.8-11)
q(nT ) = 0.5 Ac2 m 2 (nT )sin{2[θ1 − θ 2 (nT )]}

Se puede notar que cuando θ1 y θ2 difieren en menos de 90 grados, q (nT ) tiene el

mismo signo del error de fase, el cual indica en cual dirección la fase local que determina

θ2 se puede cambiar para reducir el error de fase hasta tender a cero. Cuando el lazo está

56
enganchado, el ángulo de aproximación sin x ≈ x puede ser utilizado para aproximar con

exactitud a q (nT )

q (nT ) ≈ Ac2 m 2 (nT )[θ1 − θ 2 (nT )] para θ1 − θ 2 (nT ) << 1 (2.8-12)

En el diagrama de la figura 2.19, los bloques siguientes son el lazo encargado de

determinar la fase de la señal recibida, por medio de la siguiente ecuación

φ ((n + 1)T ) = φ (nT ) + ωcT + α q(nT ) + σ (nT ) (2.8-13)

donde

σ (nT ) = β q(nT ) + σ ((n − 1)T ) (2.8-14)

luego α y β son pequeñas constantes positivas, normalmente β < α / 50 . La idea

básica detrás de estas ecuaciones es que en cada nuevo instante de muestreo el lazo de fase

determina si ha sido incrementada la fase al compararlo con la fase de la portadora para

cada una de las muestras ωcT , más un pequeño término de corrección α q (nT )

estrictamente proporcional al error de fase. También se puede notar que cuando q (nT ) = 0

para todo n, φ (nT ) es una función lineal

φ (nT ) = ωc nT + φ (0) (2.8-15)

la cual tiene una pendiente igual al valor de la frecuencia portadora nominal.

El bloque acumulador β 1 − z −1 ( ) le permite obtener al lazo el valor de la fase de

entrada θ1 (nT ) , la cual es una función lineal. La fase de entrada tiene esta forma lineal,

57
cuando existe una diferencia en frecuencia entre las frecuencias de la señal recibida y la

portadora. Este bloque junto con los demás bloques introduce un polo de segundo orden en

z = 1 en el lazo abierto el cual es equivalente a un adelanto doble en el dominio del tiempo.

El lazo Costas es un sistema no lineal y variante en el tiempo debido a los términos

sin ( ) y m 2 (nT ) presentes en q (nT ) . Debido a esto, el sistema no puede ser caracterizado

por una función de transferencia. Sin embargo, cuando m(nT ) es un proceso estacionario y

el lazo está enganchado, se puede aproximar con exactitud un sistema lineal e invariante en

el tiempo usando la aproximación (2.8-12) y reemplazando m 2 (nT ) por cierto valor

constante. Al hacer este reemplazo se justifica el hecho de que los lazos de filtrado actúen

como filtros pasobajos en q (nT ) . Entonces sea

{
k1 = Ac2 E m 2 (nT )} (2.8-16)

y una aproximación de q (nT ) por

q(nT ) ≈ k1[θ1 − θ 2 (nT )] (2.8-17)

Con estas ecuaciones aproximadas se puede representar el lazo linealizado en la

figura 2.20. La función de transferencia ahora se puede obtener, y es la siguiente

⎛ α ⎞
k1 (α + β )⎜⎜1 − z −1 ⎟⎟
Θ (z ) ⎝ α +β ⎠
H (z ) = 2 = (2.8-18)
Θ1 ( z ) 1 − [2 − k1 (α + β )]z −1 + (1 − k1α )z − 2

58
La respuesta en frecuencia se puede obtener por medio de z = e jωT y tiene la forma

de un filtro pasobajo muy estrecho para valores pequeños de α y β. La ganancia en lazo

cerrado con frecuencia igual a cero es H (1) = 1 .

Figura 2.20 Diagrama de bloques del Lazo Costas linealizado

59
2.9 Nota teórica laboratorio de modulación SSB1

Los tipos de modulación AM y DSBSC-AM no utilizan eficientemente el espectro

de frecuencia. Al analizar el espectro se encuentra que aún hay redundancia ya que las dos

bandas alrededor de la frecuencia de corte son simétricas. El objetivo es demostrar que una

señal puede ser transmitida tan solo utilizando una de las dos bandas, ya sea la banda

inferior o la banda superior, y por tanto utiliza tan solo la mitad del ancho de banda

respecto a AM y DSBSC-AM. Este tipo de modulación se le conoce como modulación de

banda lateral única (SSB, acrónimo en inglés para Single Sideband). Este método de

modulación es utilizado extensamente en los sistemas de comunicaciones.

2.9.1 Moduladores SSB

Un modulador SSB se muestra en la figura 2.21. Sea m(t) la señal de banda base

que se desea transmitir con una frecuencia de corte W, la cual es menor a la frecuencia de la

portadora ωc . La primera etapa de modelo genera una señal DSBSC-AM

a(t ) = Ac m(t )cos ωct (2.9-1)

a la cual se le aplica la transformada de Fourier

A(ω ) = 0.5 Ac M (ω − ωc ) + 0.5 Ac M (ω + ωc ) (2.9-2)

y está centrada alrededor de la frecuencia portadora ωc .

1
Tretter, S. A. “Communication System Design Using DSP Algorithms”. Primera Edición, Kluwer Academic
/ Plenum Publishers, New York, Estados Unidos, 2003.

60
Luego la señal DSBSC-AM se pasa a través de un filtro H (ω ) que elimina o

selecciona una de las bandas laterales. La banda lateral superior se selecciona utilizando un

filtro pasoalto ideal

⎧1 para ω > ωc
H sup (ω ) = ⎨ (2.9-3)
⎩0 cualquier otro

y la banda lateral inferior se selecciona utilizando un filtro pasobajo ideal

⎧1 para ω < ωc
H inf (ω ) = ⎨ (2.9-4)
⎩0 cualquier otro

Figura 2.21 Diagrama de bloques de la modulación SSB

Al utilizar alguno de estos dos filtros se obtiene una señal SSB, la cual puede ser

expresada en términos de la señal banda base m(t ) y su transformada Hilbert m̂(t ) , tal y

como se muestra a continuación. La señal SSB tiene la siguiente transformada de Fourier

S + (ω ) = 2S (ω )u (ω ) = 2 A(ω ) H (ω )u (ω ) = Ac M (ω − ωc )H (ω ) (2.9-5)

y la transformada de la envolvente compleja es

Sˆ (ω ) = S + (ω + ωc ) = Ac M (ω )H (ω + ωc ) (2.9-6)

61
para el caso de la banda lateral superior. Sustituyendo H sup (ω ) por H (ω ) en la

ecuación (2.9-6), se puede notar que

Sˆ (ω ) = Ac M (ω )u (ω ) = 0.5 Ac M (ω )(1 + sign ω )


(2.9-7)
Sˆ (ω ) = 0.5 Ac M (ω )[1 + j (− j sign ω )] = 0.5 Ac M (ω ) + j 0.5 Ac Mˆ (ω )

Entonces la envolvente compleja es

s (t ) = 0.5 Ac [m(t ) + jmˆ (t )]


~ (2.9-8)

Por consiguiente la señal SSB puede expresarse como

{
s (t ) = ℜe ~ }
s (t )e jω c t = 0.5 Ac m(t )cos ωct − 0.5 Ac mˆ (t )senωct (2.9-9)

Similarmente para el caso de la banda lateral inferior, al seguir el mismo desarrollo

se obtiene

Sˆ (ω ) = Ac M (ω )u (− ω ) = 0.5 Ac M (ω )(1 − sign ω )


(2.9-10)
Sˆ (ω ) = 0.5 Ac M (ω )[1 − j (− j sign ω )] = 0.5 Ac M (ω ) − j 0.5 Ac Mˆ (ω )

Por consiguiente, la envolvente compleja

s (t ) = 0.5 Ac [m(t ) − jmˆ (t )]


~ (2.9-11)

De esta manera la correspondiente señal SSB es

{
s (t ) = ℜe ~ }
s (t )e jω c t = 0.5 Ac m(t )cos ωct + 0.5 Ac mˆ (t )senωct (2.9-12)

A partir de las ecuaciones (2.9-9) y (2.9-12) se puede obtener la estructura del

modulador SSB mostrado en la figura 2.22.

62
Figura 2.22 Modulador SSB utilizando la transformada de Hilbert

2.9.2 Demodulación coherente de señales SSB

Para demodular señales SSB, existe una técnica conocida, la cual consiste en

multiplicar la señal por una réplica de la señal portadora. Al multiplicar la ecuación (2.9-9)

o (2.9-12) por 2 cos ωct se obtiene

b(t ) = Ac m(t )cos 2 ωct m Ac m(t )sin ωct cos ωct


(2.9-13)
b(t ) = 0.5 Ac m(t ) + 0.5 Ac m(t )cos 2ωct m 0.5 Ac mˆ (t )sin 2ωct

El primer término del lado derecho de la ecuación anterior es proporcional a la señal

que desea transmitir. El segundo y tercer término tienen un espectro centrado en 2ωc y

pueden ser removidos haciendo pasar la señal b(t ) a través un filtro pasobajo con una

frecuencia de corte W. El efecto en el dominio de la frecuencia, al multiplicar por cos ωct

en el dominio del tiempo, es mover el espectro S (ω ) hacia la derecha y hacia la izquierda

63
por ωc . De esta manera se trasladan las bandas laterales ± ωc alrededor de la frecuencia de

m(t ) , con ello se forma M (ω ) con el término deseado y también traslada las bandas

laterales ± 2ωc , las cuales son los términos removidos por el filtro pasobajo. Este

demodulador posee el mismo diagrama de bloques de la figura 2.21, excepto que en lugar

de la señal a transmitir m(t ) se pone la señal recibida s (t ) y el bloque H (ω ) por un filtro

pasobajo. En la práctica, a la entrada de este sistema se coloca un filtro pasabanda para

eliminar ruido que se adhiere a la señal modulada.

Otra forma para demodular señales SSB está basado en la utilización de la

transformada de Hilbert. El primer paso es tomar la transformada de Hilbert de la señal

recibida s (t ) . Usando la ecuación (2.9-8) y (2.9-11), se obtiene

s (t )e jω c t = 0.5 Ac [ m(t ) ± jmˆ (t )]e jω c t


s+ (t ) = s (t ) + jsˆ(t ) = ~ (2.9-14)

en donde el signo positivo es para el caso de la banda lateral superior y el negativo

es para el caso de la banda lateral inferior. Ahora al multiplicar la expresión por e − jω c t se

genera la envolvente compleja

sˆ(t ) = s+ (t )e − jω c t = 0.5 Ac [ m(t ) ± jmˆ (t )] (2.9-15)

En el dominio del tiempo esto significa que la transformada de (2.9-14) se traslada a

una frecuencia más baja que la frecuencia de m(t ) . Por último, al tomar la parte real de la

señal compleja se tiene que

64
{ }
0.5 Ac m(t ) = ℜe s+ (t )e − jω c t = ℜe{[s(t ) + jsˆ(t )][cos ωct − jsenωct ]}
(2.9-16)
0.5 Ac m(t ) = s(t )cos ωct + sˆ(t )senωct

la cual es proporcional a la señal transmitida. Este demodulador usa la transformada

de Hilbert pero no necesita un etapa de filtrado que elimine términos de la frecuencia

portadora. El diagrama de bloques para este demodulador es el mismo que se muestra en la

figura 2.22 cuando se cambia m(t ) por s (t ) , las amplitudes del seno y el coseno igual a 1, y

el signo positivo se usa en el sumador de la salida.

Estos dos tipos de demoduladores suponen que el receptor tiene perfecto

conocimiento de la frecuencia y fase de la portadora. Desafortunadamente, esta

información no se puede obtener como en el caso del lazo de Costas porque la señal SSB

contiene una componente en cuadratura no deseada mˆ (t )senωct . Esta componente

corresponde a una distorsión de fase. Un error de fase en el oscilador local da lugar a una

distorsión de fase donde cada componente frecuencial de la señal m(t ) sufre un desfase

constante a la salida del demodulador. Este desfase no suele ser un problema en el caso de

señales de voz debido que el oído suele ser relativamente insensible a la distorsión de fase.

En el caso de señales musicales o señales de video, la distorsión de fase es un error no

tolerable.

65
2.9.3 Desplazamiento en frecuencia

En sistemas de comunicaciones en la mayoría de las veces para no decir todas, el

espectro de una señal pasabanda es desplazado de una frecuencia central a otra. Una razón

para esto colocar el espectro de la señal en cierto canal de transmisión. Otra razón es para

corregir las distorsiones en frecuencia causadas por los osciladores al estar mal calibrados.

Es un hecho que la operación básica que se realiza en la modulación SSB es una forma de

traslación en frecuencia.

La idea de traslación en frecuencia descrita para SSB puede generalizarse de la

siguiente forma.

Sea s (t ) una señal pasabanda cuyo espectro está centrado en una portadora de

frecuencia ω0 . El requerimiento es trasladar o desplazar en frecuencia el espectro hacia

arriba de forma que la frecuencia de la portadora es cambiada de ω0 a otra superior

ω1 = ω0 + ∆ω . Primero tenemos que

s+ (t ) = s (t ) + jsˆ(t ) (2.9-17)

la transformada de Fourier es

S + (ω ) = 2S (ω ) u (ω ) (2.9-18)

El siguiente paso es multiplicar (2.9-17) por e j∆ω t para obtener

r+ (t ) = s+ (t )e j∆ω t = [s (t ) + jsˆ(t )][cos ∆ω t + jsen∆ω t ] (2.9-19)

y su transformada es

66
R+ (ω ) = S + (ω − ∆ω ) (2.9-20)

Al hacer lo anterior se desplaza el espectro original hacia la derecha por ∆ω y se

mueve desde ω0 hasta la frecuencia ω1 . Al tomar la parte real de r+ (t ) se obtiene la señal

transmitida

r (t ) = s(t )cos ∆ωt − sˆ(t )sen∆ωt (2.9-21)

La parte real de r+ (t ) también puede ser expresada como

r (t ) = [r+ (t ) + r+ (t )] 2 (2.9-22)

Entonces su transformada de Fourier es

[ ]
R(ω ) = R+ (ω ) + R+ (ω ) 2
(2.9-23)
R(ω ) = S (ω − ∆ω )u (ω − ∆ω ) + S (− ω − ∆ω )u (− ω − ∆ω )

La figura 2.22 también es el diagrama de bloques para el desplazamiento en

frecuencia: se cambia m(t ) por s (t ) , la frecuencia ωc se reemplaza por ∆ω , 0.5 Ac por 1, y

el signo negativo se usa en el sumador del que se obtiene la salida. Esto porque el

desplazamiento en frecuencia es funcionalmente lo mismo que un modulador de banda

lateral superior nada más que con la apropiada frecuencia portadora.

67
2.10 Nota teórica laboratorio de modulación FM

Modulación en Frecuencia (FM, acrónimo en inglés para Frequency Modulation)

fue inventada y comercializada después de AM. Fue utilizada en un principio por la

radiodifusión para crear canales radiofónicos. Su principal ventaja radica en que al sistema

FM apenas le afectan las interferencias y descargas estáticas. El objetivo es estudiar la

teoría básica de modulación y demodulación FM.

2.10.1 Descripción de la modulación FM1

En una señal se pueden variar tres propiedades: la amplitud, la frecuencia y la fase.

El proceso de modulación consiste en variar algunos de estos parámetros en la señal

portadora, de acuerdo a la señal que se desea modular. La modulación en frecuencia

consiste en variar la frecuencia de la señal portadora. La modulación FM es inmune a las

no linealidades. Las no linealidades en este caso generan ondas moduladas con portadoras

múltiplos de la original. Esta característica hace a FM útil en aquellos sistemas de

transmisión de alta potencia ya que el uso de amplificadores permite altos rendimientos.

Una señal FM es generada utilizando la señal de banda base para cambiar la

frecuencia instantánea de la señal portadora pero sin cambiar su amplitud. La frecuencia

instantánea de una señal sinusoidal cosθ (t ) está definida por

1
Tretter, S. A. “Communication System Design Using DSP Algorithms”. Primera Edición, Kluwer Academic
/ Plenum Publishers, New York, Estados Unidos, 2003.

68
d
ω (t ) = θ (t ) (2.10-1)
dt

Esta definición se justifica al observar que cuando θ (t ) = ωct , su derivada es ωc la

cual es la frecuencia de cos ωct . La frecuencia instantánea de una señal FM con frecuencia

portadora ωc está relacionada con la señal de banda base m(t ) por la ecuación

ω (t ) = ωc + kω m(t ) (2.10-2)

donde kω es una constante positiva conocida como sensibilidad frecuencial. Un

oscilador al cual se le puede controlar su frecuencia por su entrada m(t ) , se le conoce como

oscilador controlado por voltaje. Suponiendo que el valor de la fase de una señal FM es 0

en t = 0 ,

θ (t ) = ∫ ω (τ ) dτ = ωct + θ m (t )
t
(2.10-3)
0

donde

θ m (t ) = kω ∫ m(τ ) dτ
t
(2.10-4)
0

es la desviación de fase de la señal portadora causada por m(t ) . Por último la señal

FM generada a partir de m(t ) es

s (t ) = Ac cos[ωct + θ m (t )] (2.10-5)

Un aproximación en tiempo discreto para una señal FM se puede obtener

reemplazando la integral por una sumatoria en (2.10-3), de esta manera tenemos

69
n −1
θ (nT ) = ∑ ω (kT )T = ωc nT + θ m (nT ) (2.10-6)
k =0

donde

n −1
θ m (nT ) = kωT ∑ m(kT ) (2.10-7)
k =0

La fase de la portadora se puede calcular a partir de la siguiente ecuación recursiva

θ (nT ) = θ ((n − 1)T ) + ωcT + kωTm((n − 1)T ) (2.10-8)

La señal muestreada FM resultante sería

s (nT ) = Ac cosθ (nT ) (2.10-9)

2.10.1.1 Modulación FM de un tono simple

Una expresión sencilla para la transformada de Fourier de una señal FM en términos

de la transformada de señal de banda base parecida a la de AM, no existe. Sin embargo, en

el caso especial cuando la señal de banda base es m(t ) = Am cos ωmt , se pueden obtener

resultados muy interesantes. A este caso especial se le conoce como modulación FM de un

tono simple. La señal FM que se obtiene para m(t ) es

⎛ k A ⎞
s (t ) = Ac cos⎜⎜ ωc + ω m sin ωmt ⎟⎟ (2.10-10)
⎝ ωm ⎠

70
De la expresión anterior se define un parámetro conocido como índice de

modulación de frecuencia y está dado por

kω Am máxima desviación de frecuencia


β= = (2.10-11)
ωm frecuencia de modulación

A continuación se muestra en la siguiente figura el efecto de modulación FM

Figura 2.23 Modulación FM

2.10.1.2 Ancho de banda de una señal FM

Dado que la portadora en FM es la suma de todas las componentes espectrales de la

señal FM, dicha suma da como resultado una señal de amplitud constante. En otras

palabras, la portadora en FM puede considerarse como la señal compleja total. Debido a

71
estas razones la cantidad de bandas laterales es infinita, por tanto es imposible obtener una

expresión para el ancho de banda de una señal FM. El ancho de banda depende de la forma

de la señal de banda base y la máxima desviación en frecuencia. Esta relación de

desviación está dada por la ecuación (2.10-11). El ancho de banda de la señal modulada,

bajo estas condiciones está dado por:

BT = 2(∆f + f m ) Hz (2.10-12)

En la ecuación anterior, ∆f es la máxima desviación en frecuencia y f m es la

máxima frecuencia a la cual la señal de banda base tiene una componente. La expresión

anterior se conoce como regla de Carson. Esta regla proporciona el ancho de banda de la

señal modulada en frecuencia con razonable exactitud cuando el índice de modulación es

mucho mayor a 1, pero falla cuando es cercano o menor a 1.

2.10.2 Demodulación FM: discriminador en frecuencia

Los demoduladores de FM físicamente son circuitos dependientes de la frecuencia

que producen un voltaje de salida que es directamente proporcional a la frecuencia

instantánea en su entrada ( Vsalida = K ∆f , en donde K está en voltios por Hertz y es la

función de transferencia para el demodulador, ∆f es la diferencia, entre la frecuencia de

entrada y la frecuencia central del demodulador). Se usan varios circuitos para demodular

las señales de FM. Los más comunes son el detector de pendiente, discriminador de

Foster-Seeley, detector de relación, demodulador de PLL y detector en cuadratura. El

72
detector de pendiente, discriminador de Foster-Seeley y el detector de relación son todos

formas de discriminadores de frecuencia de circuito sintonizado. Los discriminadores de

frecuencia de circuito sintonizado se convierten de FM a AM y después demodulan la

envolvente de AM con detectores de picos convencionales. La figura 2.24 muestra el

diagrama de un discriminador muy sencillo.

Figura 2.24 Diagrama de bloques elemental de un discriminador de frecuencia

2.10.2.1 Discriminador FM utilizando un detector de envolvente

Este tipo de discriminador es el más sencillo. La figura 2.24 muestra el diagrama de

bloques, en el cual se puede notar una primera etapa donde se debe implementar un filtro

diferenciador ideal en lugar del filtro pasabanda y la segunda etapa es un detector de

envolvente, bajo la suposición de que la entrada al diferenciador es una señal FM de

amplitud constante. Ahora suponemos lo siguiente, cuando θ m (t ) es suficientemente

pequeño y la banda limitada, entonces cosθ m (t ) y sin θ m (t ) son señales de banda limitada

con frecuencias de corte menores ωc , se puede demostrar que

s+ (t ) = s (t ) + jsˆ(t ) = Ac e j [ω c t +θ m (t )] (2.10-13)

Al calcular el ángulo, de la expresión anterior se obtiene

73
ϕ (t ) = arctan[sˆ(t ) s(t )] = ωct + θ m (t ) (2.10-14)

Al derivar la expresión anterior se obtiene

d d
s(t ) sˆ(t ) − sˆ(t ) s (t )
d
ϕ (t ) = dt dt = ωc + kω m(t ) (2.10-15)
dt s (t ) + sˆ (t )
2 2

Del resultado anterior se puede notar que se trata de la frecuencia instantánea.

2.10.2.2 Discriminador FM utilizando la envolvente compleja

La envolvente compleja de una señal FM es dada por

s (t ) = s+ (t )e − jω c t = sI (t ) + jsQ (t ) = Ac e jθ m (t )
~ (2.10-16)

Al calcular el ángulo de la expresión anterior se obtiene

ϕ~(t ) = arctan[sQ (t ) sI (t )] = θ m (t ) (2.10-17)

Al derivar la expresión anterior se obtiene

d d
sI (t ) sQ (t ) − sQ (t ) sI (t )
d ~
ϕ (t ) = dt dt = kω m(t ) (2.10-18)
dt sI (t ) + sQ (t )
2 2

El resultado anterior es proporcional a la señal banda base.

La siguiente figura muestra como implementar este discriminador.

74
Figura 2.25 Discriminador en tiempo discreto usando la envolvente compleja1

2.10.3 Demodulación FM usando un PLL

Desde el desarrollo de los circuitos integrados lineales LSI, la demodulación FM

puede lograrse muy fácilmente con un PLL. Aunque la operación de un PLL es bastante

complicada, la operación de un demodulador PLL de FM, es probablemente, la más

sencilla y fácil de entender. La figura 2.26 muestra el diagrama de bloques de un

demodulador FM. Las líneas sólidas y las líneas punteadas representan la parte real y la

parte imaginaria de una señal.

1
Tretter, S. A. “Communication System Design Using DSP Algorithms”. Primera Edición, Kluwer Academic
/ Plenum Publishers, New York, Estados Unidos, 2003.

75
Primero se toma la señal FM y se le aplica la transformada de Hilbert para obtener

la envolvente compleja que contiene la información transmitida, luego se pasa a través de

un detector de fase el cual consigue calcular la diferencia de fase entre la señal FM y la

salida del VCO. Luego esta señal se pasa por un filtro que permite obtener la frecuencia de

la señal portadora, a esto se le conoce como enganche de frecuencia.

Figura 2.26 Demodulador FM con PLL en tiempo discreto1

Un demodulador de frecuencia de PLL no requiere de circuitos sintonizados y

automáticamente compensa los cambios en la frecuencia de la portadora debido a la

estabilidad en el oscilador de transmisión.

1
Tretter, S. A. “Communication System Design Using DSP Algorithms”. Primera Edición, Kluwer Academic
/ Plenum Publishers, New York, Estados Unidos, 2003.

76
Después que el enganche de frecuencia ha ocurrido, el VCO encontraría los

cambios en la frecuencia en la señal de entrada, manteniendo un error de fase en la entrada

del comparador de fase. Por tanto, si la entrada es una señal FM y la frecuencia natural

VCO es igual a la frecuencia central de la señal de entrada, el voltaje de corrección se

produce a la salida del comparador de fase y alimenta de nuevo a la entrada de VCO,

siendo proporcional a la desviación de frecuencia, por tanto es la señal demodulada.

Este sistema es no lineal debido a las características del detector de fase. Pero si se

ignoran las discontinuidades de la función arcotangente la cual se encarga de obtener la

diferencia en fase, este sistema se puede representar como un sistema lineal tal y como se

muestra en la siguiente figura.

Figura 2.27 Modelo linearizado del PLL

77
2.11 Nota teórica laboratorio de modulación PAM1

En la transmisión digital de datos existen varios métodos para lograr transferir datos

digitales por el medio en que se desea, uno de ellos es la modulación por amplitud de

pulsos (PAM, acrónimo en inglés para Pulse Amplitud Modulation). El objetivo es dar a

conocer este tipo de modulación de gran importancia para el procesamiento digital de

señales.

2.11.1 Descripción de la modulación PAM

En la modulación PAM, la información es transmitida en símbolos de valores

discretos, uniformemente espaciados por intervalos de tiempo. La señal portadora es un

tren periódico de pulsos rectangulares separados a la misma distancia uno de otro. La

siguiente figura muestra una representación de este tipo de modulación

Figura 2.28 Modulación PAM

1
Tretter, S. A. “Communication System Design Using DSP Algorithms”. Primera Edición, Kluwer Academic
/ Plenum Publishers, New York, Estados Unidos, 2003.

78
Figura 2.29 Diagrama de bloques de un sistema de comunicación PAM

El diagrama de bloques de un sistema PAM se muestra en la figura 2.29. El

transmisor de entrada d i es una secuencia de datos binarios con una velocidad de

transmisión de Rd bits/segundo . Estos bits de entrada son puestos dentro de palabras de

tamaño J-bit por medio de un convertidor de serie a paralelo y se les asigna un valor de la

79
secuencia de símbolos an , los cuales son seleccionados de un alfabeto de M = 2 J niveles

de voltaje. Estos símbolos son generados por una frecuencia f s = Rd J símbolos/segundo

y el intervalo entre un símbolo y otro está dado por T = 1 f s .

Los niveles están espaciados por 2d con M posibles valores

M M
l i = d (2i − 1) para i = − + 1, ...., 0, ...., (2.11-1)
2 2

De lo anterior, se puede notar que el nivel mínimo es − (M − 1)d y el nivel máximo

es (M − 1)d .

El tren de pulsos está representado por un tren de impulsos de Dirac


s* (t ) = ∑ a δ (t − kT )
k (2.11-2)
k = −∞

El bloque Modulador de Impulso genera este tren de impulsos. Luego este se pasa

por un bloque de filtrado con respuesta al impulso gT (t ) el cual limita la banda de la señal

al ancho de banda del canal. El resultado de este filtrado es


s (t ) = ∑ a g (t − kT )
k T (2.11-3)
k = −∞

El canal se modela como un filtro lineal e invariante en el tiempo con una respuesta

en frecuencia C (ω ) , seguido de la suma de la componente de ruido introducida por el

canal. En el receptor, la salida del canal r(t) primero se pasa por un filtro que se encarga de

eliminar el ruido que no pertenece a la señal.

80
La combinación del filtro transmisor, el canal y el filtro receptor, se le conoce como

filtro conformador, y da como resultado la siguiente respuesta en frecuencia

G (ω ) = GT (ω )C (ω )GR (ω ) (2.11-4)

y su respuesta al impulso es

g (t ) = gT (t ) ∗ c(t ) ∗ g R (t ) = F −1{G (ω )} (2.11-5)

Luego a la salida del filtro receptor se obtiene


x(t ) = ∑ a g (t − kT ) + υ (t ) ∗ g (t )
k T R (2.11-6)
k = −∞

Ahora se supone que el ruido es cero y la respuesta al impulso combinada es cero en

los instantes nT excepto para n = 0 donde esta es 1, entonces tenemos

⎧1 para n = 0
g (nT ) = δ n , 0 = ⎨ (2.11-7)
⎩0 cualquier otro valor

Una respuesta al impulso con esta propiedad se dice que no tiene interferencia entre

símbolos (ISI, acrónimo en inglés para InterSymbol Interference). Con estas suposiciones,

se puede notar a partir de (2.11-6) que las muestras tomadas cada nT tiempo de la salida

del filtro receptor se reduce a x(nT ) = an , esta expresión es exactamente la secuencia de

símbolos transmitida. Es usual que cuando se diseñan los filtros de transmisión y recepción,

estos combinen sus efectos de manera que se forme un único filtro sin interferencia entre

símbolos bajo la suposición de que la respuesta en frecuencia del canal sea constante en

todo el ancho de banda de la señal, así no se introduce distorsión.

81
En algunas circunstancias, la respuesta en frecuencia del canal no se conoce con

exactitud y puede que sea lento. El ecualizador adaptivo es un filtro que automáticamente

compensa las características no lineales del canal. Además este se encarga de corregir

ciertas muestras, dándole el valor ideal que le corresponde.

La salida del ecualizador es cuantificada a la tasa de velocidad de muestreo y se le

otorga a cada muestra el valor que le corresponde. Luego la salida del cuantificador se

convierte en una palabra binaria de J-bit y transformada de nuevo en una salida de

secuencia serial.

2.11.2 Criterio de Nyquist para no tener ISI

A partir de la ecuación (2.11-7) se establece el criterio para no tener ISI en términos

de la respuesta al impulso g (nT ) del filtro conformador de la señal de banda base y está

dada por

1 ∞
g (nT ) = ∫ G (ω )e jωnT dω (2.11-8)
2π −∞

Sea ωs = 2πf s = 2π T . La integral de (2.11-8) puede ser calculada si se fracciona

el eje ω en una serie de intervalos muy pequeños.

⎛ ωs ω ⎞
⎜− − kωs , s − kωs ⎟ para k = −∞, ....., ∞
⎝ 2 2 ⎠

82
Y tomando la sumatoria de estos intervalos, da como resultado la siguiente

expresión

ωs ωs
− kω s
∞ 2 ∞ 2
1 1 1 1
g (nT ) = ∑ ∫ G (ω )e jωnT dω = ∑ ∫ω G (ω − kωs )e j (ω − kω s )nT dω (2.11-9)
ω
k = −∞ s ω s
T k = −∞ ω s s
T
− − kω s −
2 2

Se puede notar que e − jknω s T = e − kn 2π = 1 y al tomar la suma dentro de la integral nos

da

ωs
2
1
g (nT ) = ∫ω G (ω )e
* jωnT
dω (2.11-10)
ωs s

2

donde

1 ∞
G * (ω ) = ∑ G(ω − kωs ) (2.11-11)
T k = −∞

La función G*(w) se le conoce en la teoría del procesamiento digital de señales

como solapamiento o envolvente del espectro. El criterio (2.11-7) para no tener ISI se

satisface si y solo si G*(w)=1.

2.11.3 Diagramas de ojo1

Una herramienta práctica para el estudio de la calidad de un sistema PAM es el

Diagrama de Ojo, que permite observar el efecto de distorsión ISI y el ruido. Un diagrama

1
Universidad de Valladolid. Marcos Martín Fernández. http://www.lpi.tel.uva.es/lpi/dld/tts/tema6.pdf

83
de ojo se forma al aplicar la señal recibida y filtrada antes del muestreador a las placas de

deflexión vertical de un osciloscopio y una señal con forma de dientes de sierra a la tasa de

señalización en sincronismo con la señal recibida a las placas de deflexión horizontal. De

esta manera todos los símbolos se superponen en la pantalla del osciloscopio en un único

período de símbolo, la imagen que se forma por su similitud con el ojo humano se le

denomina diagrama de ojo.

La figura 2.30 muestra el ejemplo de una señal binaria recibida (los primeros 8 bits)

y filtrada para un canal que introduce ruido y distorsión. En la figura 2.31 se puede ver un

diagrama de ojo (para 160 bits). El analizar este diagrama va a permitir determinar ciertas

características de la señal como el mejor instante de muestreo y la sensibilidad frente a

errores de temporización.

Figura 2.30 Señal binaria antes del muestreador

84
Figura 2.31 Diagrama de ojos para la señal de la figura 2.30

Un diagrama de ojos va a proporcionar mucha información práctica que caracteriza

a un sistema PAM. Los parámetros asociados más interesantes de un diagrama de ojos se

mencionan a continuación:

El ancho de la apertura del ojo indica el intervalo de tiempo durante el que se puede

muestrear sin error. Por tanto el mejor instante de muestreo corresponde al momento en que

la apertura del ojo es mayor.

La pendiente de la zona interior del ojo determina la sensibilidad frente a errores de

temporización.

85
El margen del ruido para un símbolo en el instante de muestreo esta definido por la

altura del ojo.

Si el efecto conjunto del ruido y la ISI es muy grande, la traza superior e inferior del

ojo se cruzan, dando como resultado que el ojo se cierre. Cuando esto ocurre es imposible

evitar errores, por lo que se dice que el sistema no es inmune frente a estos fenómenos de

distorsión.

2.11.4 Recuperación de la frecuencia del tren de pulsos

En típicos sistemas PAM, el receptor es razonablemente bueno, pero no perfecto, al

reconocer la frecuencia del transmisor. Por esta razón debe establecer su propia frecuencia

y estar en fase con la señal del receptor para mantener la frecuencia de muestreo. A

continuación se presenta un método para recuperar la frecuencia de muestreo de la señal

transmitida, particularmente para sistemas de banda limitada.

El diagrama de bloques del recuperador de frecuencia se muestra en la figura 2.32.

La salida x(t ) del filtro receptor primero se pasa a través de un prefiltro con una respuesta

en frecuencia B (ω ) . El prefiltro usualmente es un filtro pasabanda centrado en f s 2 , a la

mitad del valor de la frecuencia del tren de pulsos. La combinación del filtro conformador

y el prefiltro, da como resultado la siguiente respuesta en frecuencia y respuesta al impulso

G1 (ω ) = G (ω )B (ω ) y g1 (t ) = g (t ) ∗ b(t ) (2.11-12)

86
De esta manera la salida del prefiltro es


q(t ) = ∑ a g (t − kT )
k 1 (2.11-13)
k = −∞

Luego la salida del prefiltro se pasa a través de un potenciador cuya salida es

∞ ∞
p (t ) = q 2 (t ) = ∑ ∑ a a g (t − kT )g (t − mT )
k m 1 1 (2.11-14)
k = −∞ m = −∞

La salida del potenciador se pasa a través de un filtro pasabanda de banda estrecha

H (ω ) , para el que su frecuencia central es f s . La salida z (t ) tiene la forma de una función

sinusoidal con la frecuencia original con una pequeña variación en amplitud y fase. Luego

esta señal se pasa a través de un PLL para obtener una señal estable con frecuencia f s .

Figura 2.32 Diagrama de bloques del sistema de recuperación de frecuencia

87
2.12 Nota teórica laboratorio de modulación QAM1

La Modulación de Amplitud en Cuadratura (QAM, acrónimo en inglés para

Quadrature Amplitude Modulation) es una modulación digital en la que el mensaje está

contenido tanto en la amplitud como en la fase de la señal transmitida. La importancia de

este sistema de modulación se debe a la gran cantidad de aplicaciones asociadas a ella. Es

empleada en multitud de sistemas de transmisión de televisión, microondas y satélite.

También es empleada por módems para velocidades superiores a los 2400 bps (por ejemplo

V.22 bis y V.32). Es la base de modulación TCM (acrónimo en inglés para trellis coded

modulation), que consigue velocidades de transmisión muy elevadas combinando la

modulación con la codificación de canal.

2.12.1 Transmisor QAM básico

El diagrama de bloques de un transmisor QAM básico se muestra en la figura 2.33.

Los datos d i serie de entrada, generados a velocidad Ri bps se agrupan mediante un

convertidor serie a paralelo, formando palabras de J bits que pasarán al módulo de mapeo

de estas palabras. Este módulo se encarga de seleccionar un símbolo de entre los M = 2 J

posibles símbolos, ubicados sobre un espacio bidimensional. A la salida, los símbolos se

producen por tanto a una velocidad de f s = Rd J símbolos por segundo o baudios.

1
Tretter, S. A. “Communication System Design Using DSP Algorithms”. Primera Edición, Kluwer Academic
/ Plenum Publishers, New York, Estados Unidos, 2003.

88
Figura 2.33 Diagrama de bloques de un transmisor QAM básico

Los símbolos a transmitir son números complejos que representaremos como

ck = ak + jbk . Así, el alfabeto lo forman el conjunto de números complejos que podremos

transmitir. Este alfabeto se puede representar en el plano complejo, formando la

constelación de la modulación. En la siguiente gráfica se presentan diferentes

constelaciones posibles

89
Figura 2.34 Constelaciones QAM

A continuación, los símbolos se introducen en los moduladores de impulsos, uno

para cada componente, obteniendo las señales:


a* (t ) = ∑ a δ (t − kT )
k (2.12-1)
k = −∞


b* (t ) = ∑ b δ (t − kT )
k (2.12-2)
k = −∞

Estas dos señales se pasan a través de los filtros de transmisión


a(t ) = ∑ a g (t − kT )
k T (2.12-3)
k = −∞

90

b(t ) = ∑ b g (t − kT )
k T (2.12-4)
k = −∞

La función gT (t ) corresponde al filtro de transmisión y es de tipo pasobajo. En una

implementación discreta, los filtros actúan como filtros interpoladores, produciendo L

muestras por cada símbolo de entrada, de forma que la frecuencia de trabajo de los filtros

será de Lfs.

La señal QAM se obtiene modulando en DSBSC-AM estas señales

s (t ) = a(t )cos ωct − b(t )senωct (2.12-5)

Así, a (t ) es la componente en fase de la señal QAM y b(t ) la componente en

cuadratura. El equivalente pasobajo de la señal QAM, tomando como frecuencia de

referencia fc será

∞ ∞
s (t ) = a(t ) + jb(t ) =
~
∑ ak gT (t − kT ) + j ∑ bk gT (t − kT )
k = −∞ k = −∞
∞ ∞
(2.12-6)
s (t ) =
~
∑ (a k + jbk )gT (t − kT ) = ∑ c g (t − kT )
k T
k = −∞ k = −∞

La señal analítica es

⎡ ∞ ⎤
s+ (t ) = ⎢ ∑ ck gT (t − kT )⎥ e jω c t (2.12-7)
⎣k = −∞ ⎦

En donde la señal QAM transmitida se puede expresar como

s (t ) = ℜe{s+ (t )} (2.12-8)

Por tanto, el modulador QAM puede ser representado de forma esquemática, por el

siguiente diagrama de bloques mostrado en la figura 2.35.

91
Figura 2.35 Representación de un modulador QAM en términos de señales complejas

Se puede observar que, en el esquema de modulación propuesto se obtiene primero

la señal pasobajo que se modula más tarde en DSBSC-AM.

2.12.2 Modulador QAM utilizando filtros conformadores pasabandas

Otra alternativa para la implementación del transmisor QAM puede conseguirse

modificando la ecuación (2.12-7) de la siguiente manera

⎡ ∞ ⎤ jω c t
( )

s+ (t ) = ⎢ ∑ ck gT (t − kT )⎥ e = ∑ ck e jωc kT gT (t − kT )e jω c (t − kT ) (2.12-9)
⎣k = −∞ ⎦ k = −∞

donde gT (t ) es la respuesta al impulso del filtro conformador. Ahora sea

h(t ) = gT (t )e jω c t = hI (t ) + jhQ (t ) (2.12-10)

donde

hI (t ) = gT (t ) cos ωc t y hQ (t ) = gT (t )senωc t (2.12-11)

Este filtro es un filtro pasabanda con respuesta en frecuencia H (ω ) = GT (ω − ωc ) .

También, sea

ck′ = ck e jω c kT = ak′ + jbk′ (2.12-12)

92
donde

{ }
ak′ = ℜe ck e jω c kT = ak cos ωc kT − bk senωc kT (2.12-13)

{ }
bk′ = ℑm ck e jω c kT = ak senωc kT + bk cos ωc kT (2.12-14)

Sustituyendo estas definiciones en la ecuación (2.12-9), da como resultado


s+ (t ) = ∑ c′ h(t − kT )
k (2.12-15)
k = −∞

Luego


s (t ) = ℜe{s+ (t )} = ∑ a′ h (t − kT ) − b′ h (t − kT )
k I k Q (2.12-16)
k = −∞

Un diagrama de bloques para el modulador en términos de las señales complejas se

muestra en la figura 2.36. Y el diagrama de bloques que representa a la ecuación (2.12-16),

se muestra en la figura 2.37.

Figura 2.36 Modulador QAM utilizando un filtro conformador pasabanda

93
Figura 2.37 Diagrama de bloques expandido del nuevo modulador QAM

En este último esquema, tanto los símbolos como los filtros son pasabanda, a

diferencia del esquema inicial en el que las señales se conformaban en banda base, y la

traslación espectral se produce en la última etapa.

Los filtros conformadores de pulsos hI (t ) y hQ (t ) son también interpoladores igual

que en el esquema anterior. Estos producen L muestras por cada símbolo. Si comparamos

este esquema de modulador QAM con el esquema inicial, éste hace L multiplicaciones

complejas menos por período de símbolo que el anterior, ya que el modulador de producto,

trabaja con la señal a ritmo de símbolo, mientras que en el caso anterior, debía de realizar la

multiplicación a razón de L por cada símbolo.

94
CAPÍTULO 3: Laboratorios

En este capítulo se describen las prácticas de cada uno de los temas desarrollados en

el capítulo anterior. Cada práctica consta de dos partes:

• Simulación, utilizando MATLAB y SIMULINK.

• Cuestionario de preguntas específicas.

La parte de simulación es necesaria para repasar los conocimientos adquiridos

durante el curso de procesamiento digital de señales. Asimismo, el estudiante será capaz de

aplicar estos conocimientos en la solución de los ejercicios propuestos.

Después el estudiante deberá analizar cada uno de los resultados obtenidos y

obtener sus propias conclusiones.

Por último se presenta un cuestionario para reforzar los conceptos que se presentan

en el desarrollo del laboratorio.

95
3.1 Laboratorio de filtros digitales

Los filtros ideales definidos como

⎧constante para ω < ωo (banda de paso)


H (ω ) = ⎨
⎩0 para ω > ωo (banda de rechazo)

no son físicamente realizables ya que no son causales, sin embargo es posible diseñar

filtros causales que pueden aproximarse a los ideales con tanta precisión como sea

necesaria.

Estos filtros causales presentarán rizado tanto en la banda de paso como en la banda

de rechazo, por lo general .Por otro lado, la transición de frecuencia entre ambas bandas no

se realizará de forma abrupta. La figura muestra las características indicadas

Figura 3.1 Respuesta en frecuencia de un filtro pasobajo

96
En MATLAB existen varias funciones que ayudan al diseño de un filtro indicando

sus características. Para el diseño de filtros del tipo IIR o FIR se utilizan frecuentemente las

funciones que se muestran a continuación:

Tabla 3.1 Funciones más comunes para el diseño de filtros digitales en MATLAB

Filtro Digital Tipo Función en MATLAB

[b,a] = besself(n,Wn,options)
Bessel (solo análogo) [z,p,k] = besself(n,Wn,options)
[A,B,C,D] = besself(n,Wn,options)
[b,a] = butter(n,Wn,options)
Butterworth [z,p,k] = butter(n,Wn,options)
[A,B,C,D] = butter(n,Wn,options)
[b,a] = cheby1(n,Rp,Wn,options)
IIR Chebyshev Tipo I [z,p,k] = cheby1(n,Rp,Wn,options)
[A,B,C,D] = cheby1(n,Rp,Wn,options)
[b,a] = cheby2(n,Rs,Wn,options)
Chebyshev Tipo II [z,p,k] = cheby2(n,Rs,Wn,options)
[A,B,C,D] = cheby2(n,Rs,Wn,options)
[b,a] = ellip(n,Rp,Rs,Wn,options)
Elíptico [z,p,k] = ellip(n,Rp,Rs,Wn,options)
[A,B,C,D] = ellip(n,Rp,Rs,Wn,options)
b = fir1(n,Wn,'ftype',window)
FIR Ventana
b = fir2(n,f,m,npt,window)

Para conocer bien el uso de estas funciones se debe consultar la herramienta de

ayuda de MATLAB.

97
3.1.1 Filtros digitales FIR

Resuelva los siguientes ejercicios:

1. Diseñe un filtro pasabanda de respuesta finita al impulso (FIR) de orden 8,

suponiendo una frecuencia de muestreo de 8 kHz. Las frecuencias de paso están

situadas en 1200 y 2000 Hz. Utilice la función “fir1”.

2. Obtenga la respuesta en frecuencia del filtro anterior pero para un orden de 16,

32, 64 y compare con el resultado anterior. Grafique las respuestas en frecuencia

en una misma gráfica y comente sus resultados.

3. Considere una señal de entrada formada por la suma de tres señales sinusoidales

de frecuencia 720, 1440, 3000 Hz y amplitud A1 = 7 , A2 = 3 y A3 = 15

respectivamente. Grafique la salida del filtro y comente sus resultados.

4. Repita los puntos (1), (2) y (3) utilizando una función ventana de Kaiser.

5. Repita los puntos (1), (2) y (3) utilizando una función ventana de Barlett.

3.1.2 Filtros digitales IIR

Resuelva cada paso del siguiente procedimiento:

1. Diseñe un filtro digital IIR basado en el prototipo de un filtro elíptico

pasobajo con frecuencia de corte en 300 Hz, una atenuación máxima en la

banda de paso de 0.5 dB y una atenuación mínima en la banda de rechazo

de 80 dB, suponiendo que la señal de entrada será muestreada a una

98
frecuencia de 8000Hz. En MATLAB utilice la función “ellip” para

implementar el filtro.

2. Grafique la respuesta en frecuencia del filtro anterior utilizando la función

“freqz” (ver ayuda de MATLAB).

3. Considere que la señal de entrada está formada por la suma de dos señales

sinusoidales de frecuencia 180 y 720 Hz respectivamente. Usando la

función “filter”, grafique la salida del filtro y determine que sucede.

4. Estudiar la dependencia del filtro de los parámetros de orden, atenuación

mínima y máxima, pero manteniendo la frecuencia de corte y

modificando alguno de los parámetros anteriores. Utilice al menos 3

valores diferentes para cada uno y grafique los resultados.

5. Diseñe un filtro digital pasabanda Chebyshev Tipo I de orden 6 con

frecuencia de paso de 300 y 500 Hz, suponiendo que la señal de entrada

será muestreada a una frecuencia de 8000 Hz. Grafique la respuesta en

frecuencia del filtro.

6. Considere una señal de entrada formada por la suma de tres señales

sinusoidales de frecuencia 120, 400, 680 Hz respectivamente. Grafique la

salida del filtro y explique que sucede.

7. Diseñe un filtro digital rechaza banda de orden 6 con frecuencias de

rechazo entre 300 y 500 Hz, suponiendo que la señal de entrada será

muestreada a una frecuencia de 8000 Hz. Grafique la respuesta en

frecuencia del filtro.

99
8. Repita el punto 6.

9. Diseñe un filtro pasabanda de respuesta infinita al impulso (IIR), basado

en el prototipo de un filtro elíptico analógico pasobajo. Use una

frecuencia de muestreo de 8 kHz. La banda lateral inferior del filtro debe

estar entre 0 hasta 400 Hz, la banda central del filtro pasabanda debe estar

entre 1000 hasta 2500 Hz y la banda lateral superior del filtro debe ser de

3500 hasta 4000 Hz. La atenuación máxima en la banda de paso del filtro

no debe ser mayor que 0.3 dB y la atenuación mínima en la banda de

rechazo de al menos 40 dB. Utilice las funciones de MATLAB para la

conversión de filtros.

3.1.3 Filtrado en SIMULINK

1. Considere la señal del punto (3) de la sección 3.1.1. Se desea filtrar esa señal y

se quiere dejar pasar solo la señal con frecuencia de 1440 Hz. Utilice el bloque

llamado “Sine Wave” de la librería “Sources” en SIMULINK para generar cada

una de las señales que componen la señal principal, luego utilice un bloque de

punto de suma “Sum” y una de estas señales para formar una señal con tres

componentes en frecuencia. Luego utilice el bloque “Zero-Order Hold” para

muestrear la señal debe configurarlo para una frecuencia de muestreo de 8 KHz.

2. Ahora utilice el bloque “Digital Filter Design” de la librería “Filtering / Filter

Designs” y con este bloque genere con la ayuda de la herramienta “FDATool”

100
un filtro FIR de orden 64 de ventana Hamming con una banda de paso entre

1200 Hz y 2000 Hz. Luego coloque en la entrada de este filtro la señal

muestreada y coloque un “Scope” para poder ver la salida del filtro y compruebe

que se han suprimido las componentes de 720 Hz y 3000 Hz.

3. Nuevamente utilizando el bloque de filtros digitales genere el filtro del punto (5)

de la sección 3.1.2. Implemente la señal del punto (6) de la sección 3.1.2. Utilice

el filtro que hizo y pase la señal a través de este y explique que sucede.

4. Repita el punto anterior pero para el filtro del punto (7) de la sección 3.1.2.

3.1.3 Cuestionario

1. ¿Cómo se define un filtro IIR? ¿Cómo se define un filtro FIR? Mencione tres

diferencias entre estos dos tipos de filtros.

2. ¿Qué es la transformación bilineal y para qué se utiliza?

3. Investigue si existen otros métodos de transformación para pasar de un filtro

analógico a uno digital.

101
3.2 Laboratorio de FFT

El algoritmo de la FFT es una manera eficiente de calcular la DFT. Una primera

aproximación al cálculo de la DFT requeriría la suma compleja de N multiplicaciones

complejas para cada una de las salidas. En total, N 2 multiplicaciones complejas y N 2

sumas complejas para realizar una DFT de N puntos.

Lo que consigue el algoritmo FFT es simplificar enormemente el cálculo de la DFT

introduciendo “atajos” matemáticos para reducir drásticamente el número de operaciones.

En MATLAB se tienen las siguientes funciones para estimar la FFT de una secuencia de

entrada.

Tabla 3.2 Funciones utilizadas en MATLAB para el cálculo de la FFT.

Función en MATLAB Descripción

Obtiene la FFT del vector x. “X” es un vector de números

complejos ordenados desde k = 0, 1,…, N-1. Se recomienda que

Y = fft(x) la longitud del vector x sea una potencia de 2. Lo que no se

Y = fft(x,N) recomienda es que la longitud de x sea un número primo. Otra

opción de la FFT es especificar el número de puntos con el que

se quiere hacer la FFT.

X= ifft(Y,N) Obtiene la FFT inversa del vector x. También se puede

X= ifft(Y,N) especificar el número de puntos N con el que se quiere hacer la

102
IFFT.

Reordena el vector Y en orden creciente de frecuencia. Si “Y”

Y = fftshift(Y) es el vector resultante de hacer una FFT, utilizando esta función

reordenamos los puntos en función de la frecuencia.

3.2.1 Cálculo de la FFT

Para probar y extender los conocimientos en la FFT, lleve a cabo las siguientes

tareas

1. Sea la secuencia x[n] = cos(0.25πn ) + cos(0.5πn ) + cos(0.52πn ) . Calcular

la DFT utilizando la función de MATLAB fft(x, N). Sea L la longitud de

la secuencia x[n] de 256 muestras. Probar con diferentes valores de

número de muestras N, tales como 16, 32, 64, 128, 256, 512, 1024.

Indique a partir de que valor de N son distinguibles las tres frecuencias

de la señal de entrada.

2. Describir lo que sucede en el espectro de frecuencia, si una secuencia de

entrada de L = 100 muestras de x[n] se rellena con ceros hasta N = 200.

Comente sus resultados.

3. Calcule la inversa de la FFT obtenida a partir de la señal rellenada con

ceros, utilizando la función de MATLAB ifft(X) para recuperar la señal

en el dominio del tiempo.

103
4. Usando la FFT, se desea estudiar las componentes en frecuencia de una

señal conformada por la suma de las siguientes señales

x1 (t ) = 0.0472 cos(2π (200)t + 1.5077 )


x2 (t ) = 0.1362 cos(2π (400)t + 1.8769)
x3 (t ) = 0.4884 cos(2π (500)t − 0.1852)
x4 (t ) = 0.2942 cos(2π (1600)t − 1.4488)
x5 (t ) = 0.1223 cos(2π (1700)t )

De esta manera para la señal mencionada se debe determinar

• ¿Cuál es su frecuencia fundamental?

• ¿Qué frecuencia de muestreo debe usarse?

• Valor adecuado de N para obtener suficiente precisión de frecuencias.

• Grafique la magnitud y la fase de la señal en el dominio de la frecuencia.

5. Calcule la inversa de la FFT obtenida a partir de la señal del punto (4)

utilizando la función de MATLAB ifft(X) para recuperar la señal en el

dominio del tiempo.

3.2.2 Analizador de espectro de frecuencia en SIMULINK

Un analizador de espectro es un sistema que permite obtener las frecuencias que

están presentes en una señal discreta. SIMULINK tiene un bloque para analizar el espectro

de una señal, este bloque se llama “Spectrum Scope”. Este bloque recibe a su entrada una

señal discreta y devuelve como resultado una gráfica donde se muestra el espectro en

frecuencia de la señal de entrada.

104
1. Genere una señal de entrada compuesta de las siguientes señales

x1[n] = 12sen(2π (1500 )n )


x2 [n] = 1.25 cos(2π (1200)n) + 3.75 cos(2π (175)n) + 2.15 cos(2π (2325)n)

Y obtenga el espectro en frecuencia de esta señal utilizando el bloque

mencionado anteriormente.

2. Implemente un filtro FIR pasobajo utilizando una ventana Hamming, con

una frecuencia de corte de 1000 Hz de orden 36.

3. Implemente un filtro FIR pasabanda utilizando una ventana Kaiser, con

una banda de paso entre 1200 y 2000 Hz de orden 36.

4. Implemente un filtro FIR pasoalto utilizando una ventana Hamming, con

una frecuencia de corte de 2000 Hz de orden 36.

5. Para cada uno de los filtros coloque a la entrada la señal compuesta y

obtenga el espectro en frecuencia para la salida de cada filtro.

3.2.3 Cuestionario

1. ¿Explique en que consiste los dos algoritmos básicos para la FFT,

diezmado en el tiempo y diezmado en frecuencia?

2. Investigue en que consisten los fenómenos en frecuencia conocidos como

“aliasing” y “leakage”.

105
3.3 Laboratorio de modulación AM

Entre los primeros moduladores empleados se encuentra la modulación de amplitud.

La necesidad más importante para modular señales es el desplazamiento de los

componentes en frecuencia de una señal para poder transmitirla por un canal de

comunicación donde se transmiten otras señales. La siguiente figura presenta el principio

básico de la modulación AM

Figura 3.3 Diagrama del principio básico de modulación AM

MATLAB tiene varias funciones para modular y demodular, estas funciones se

muestran en la siguiente tabla.

Tabla 3.3 Funciones de MATLAB para modulación y demodulación AM

Función en MATLAB Descripción

Esta función modula una señal de entrada x


y = modulate(x,fc,fs,'method')
con una frecuencia portadora fc y una
[y,t] = modulate(x,fc,fs)
frecuencia de muestreo f s , “am” se usa en

106
lugar de 'method'. También se puede obtener el

vector de tiempo interno que utiliza la función

“modulate” para hacer los cálculos.

La función “demod” demodula la señal

modulada obtenida por la función “modulate”

para obtener la señal original. Demodula la


x = demod(y,fc,fs,'method')
señal con una frecuencia portadora f c y una

frecuencia de muestreo f s , “am” se usa en

lugar de 'method'.

3.3.1 Modulación AM

1. Utilice las funciones mostradas en la tabla 3.3 para la modulación y

demodulación de una señal coseno, conocida para este tipo de

modulación como tono de prueba. Las funciones de la tabla 3.3 utilizan

un índice de modulación de m = 1 . La frecuencia de la portadora es 10

veces la frecuencia de la señal a modular con una amplitud igual a 1, en

este caso la señal a modular está dada por

tono = 5 cos(2π (10 )t )

2. Obtenga las gráficas de la señal a modular, la señal modulada, la señal

demodulada, así como el espectro en magnitud y el espectro de fase en

frecuencia de las tres señales.

107
3. Ahora desarrolle un código en MATLAB para implementar la función

“modulate”. Varíe la amplitud de la señal a modular y la señal portadora,

de tal modo que se obtenga un índice de modulación m < 1 , otro índice

m = 1 y por último m > 1 .

4. Compare la señal inicial obtenida con la señal modulada para los tres

casos. Comente y explique que ocurre en cada uno.

5. En la mayoría de los casos, cuando se modula una señal el canal de

transmisión introduce a la señal modulada otra señal pequeña pero que sin

duda distorsiona la señal original, esta señal se le conoce popularmente

como ruido en el canal. Repita los puntos del (1) al (2) pero esta vez

introduciendo ruido al canal de transmisión. Utilice la herramienta de

ayuda de MATLAB para generar una señal de valores aleatorios de cierta

amplitud la cual será su ruido. Comente y compare sus resultados con los

obtenidos en el punto (2).

3.3.2 Detector de envolvente (Ley Cuadrática)

1. Implemente el detector de envolvente de Ley Cuadrática que se muestra

en la figura 3.4. Utilice una frecuencia de muestreo de 8 KHz, una

frecuencia de 2 KHz para la señal portadora y una frecuencia de 200 Hz

para la señal a modular m(t ) . Utilice un filtro FIR pasobajo con una

función ventana Hamming para H (ω ) con un orden suficiente para

108
suprimir las componentes no deseadas alrededor de 2 f c con una

atenuación de al menos 40 dB. Suponga que m(t ) no tiene componentes

espectrales menores a los 50 Hz y elimine el nivel DC a la salida del

bloque de raíz cuadrada utilizando un filtro pasoalto con la siguiente

función de transferencia.

1 + c ⎛ 1 − z −1 ⎞
G(z ) = ⎜ ⎟
2 ⎜⎝ 1 − cz −1 ⎟⎠

donde c es una constante ligeramente menor a 1. Grafique la respuesta de

magnitud en frecuencia y fase de este filtro para diferentes valores de c

para seleccionar un valor para que el filtro funcione de forma apropiada.

2. Grafique la señal modulada y la salida del detector de envolvente.

Obtenga el espectro de magnitud y el espectro de fase en frecuencia de

ambas señales. Comente sus resultados.

3. En SIMULINK implemente el detector de la figura 3.4 y explique en

forma detallada su funcionamiento. Para ello utilice el bloque “Math

Function” para simular el bloque que eleva al cuadrado la señal de

entrada y el bloque que obtiene la raíz cuadrada de la señal a la salida del

filtro pasobajo. El filtro pasobajo genérelo con el bloque “Digital Filter

Design”. Para el filtro pasoalto utilice el bloque “Discrete Filter”. Luego

obtenga el espectro de la señal a modular y la salida del filtro paso alto.

Mantenga los parámetros del punto (1). Comente sus resultados

109
Figura 3.4 Detector de envolvente de Ley Cuadrática

3.3.3 Cuestionario

1. Investigar en que consiste el índice de modulación y cuáles son sus

efectos.

2. ¿Qué efecto produce el ruido del canal de comunicación en la modulación

de amplitud?

3. Mencione y explique cuáles son algunas de las ventajas y desventajas que

tiene la modulación AM.

110
3.4 Laboratorio de modulación DSBSC-AM

La modulación AM completa incluye la transmisión de las componentes en

frecuencia tanto de la portadora como de la señal a modular. Este tipo de modulación

desperdicia más del 80% de la potencia al transmitir la portadora con toda su potencia

además de dos bandas laterales, aunque una de las cuales resulta innecesaria para la

recuperación de la información completa en banda base.

Puesto que es indispensable que en el receptor se reinserte la portadora exactamente

a la misma frecuencia y fase de la portadora utilizada para modular la señal en el

transmisor, en el receptor sólo sería necesaria una muestra o piloto de esa portadora. En

estas condiciones, no es necesario transmitir la portadora con toda su potencia y basta,

como se mencionó con transmitir sólo una muestra de ella. Este razonamiento da lugar a la

posibilidad de transmitir sólo las dos bandas laterales con, o sin un piloto de la portadora.

La siguiente figura muestra el principio básico de la demodulación para modulación

por doble banda lateral sin portadora donde H (ωm ) es un filtro FIR pasobajo con una

frecuencia de corte dos veces la frecuencia de la señal original.

Figura 3.5 Diagrama del principio básico de demodulación AM

111
En MATLAB para modular y demodular con doble banda lateral con portadora

suprimida, se utiliza las funciones “modulate” y “demod”, cambiando la palabra “method”

por la opción “amdsb-sc”.

3.4.1 Modulación DSBSC-AM

1. Utilizando MATLAB y basado en la figura 3.5 demodule una señal

utilizando modulación DSBSC que ha sido modulada por una señal

portadora con una frecuencia de 200 Hz. La señal a modular es la

siguiente

m(t ) = 10e −0.5t sin (2π (20)t )

2. Grafique la señal a modular, la señal modulada y la demodulada.

Grafique la salida del filtro.

3. Obtenga el espectro de magnitud en frecuencia de la señal antes de pasar

por el filtro y después de pasar por este.

4. Compare la señal inicial con la obtenida luego de la modulación y

demodulación de la misma y comente sus resultados.

5. Ahora utilizando las funciones “modulate” y “demod” de MATLAB

module y demodule la señal del punto (1).

6. Grafique la señal modulada y la demodulada y compare con la señal

original. Obtenga además el espectro de magnitud en frecuencia de ambas

señales.

112
7. Compare los resultados del punto (6) con los obtenidos en el punto (2).

3.4.2 Modulación y demodulación AM utilizando SIMULINK

1. Con ayuda de la herramienta SIMULINK de MATLAB, implemente el

modelo de simulación DSBSC-AM de la sección 3.4.1 y el modelo básico

de demodulación de la figura 3.5. Para generar la señal a modular de la

sección 3.4.1, utilice los bloques “Sine Wave”, “Clock” y “Fcn”. El tercer

bloque es para generar una señal basado en una función y el segundo es la

variable para generar la señal deseada. Utilice el bloque “Digital Filter

Design” para generar el filtro pasobajo.

2. Muestre la señal a modular, la señal modulada y la señal demodulada.

3. Obtenga el espectro en frecuencia de estas señales utilizando el bloque

“Spectrum Scope”.

3.4.3 Cuestionario

1. ¿Cuáles son las ventajas de utilizar este tipo de modulación de doble

banda lateral con portadora suprimida (DSBSC-AM)?

2. ¿Por qué se utiliza un PLL para implementar un demodulador coherente

cuando se usa este tipo de modulación DSBSC-AM?

113
3.5 Laboratorio de modulación SSB

Los tipos de modulación AM y DSBSC-AM no utilizan eficientemente el espectro

de frecuencia. Al analizar el espectro se encuentra que aún hay redundancia ya que las dos

bandas alrededor de la frecuencia de corte son simétricas. El objetivo de la modulación

SSB es utilizar eficientemente el espectro, transmitiendo una señal utilizando una de las

dos bandas alrededor de la frecuencia de corte, ya sea la banda inferior o la banda superior,

pues ambas son simétricas. Por tanto, utiliza tan solo la mitad del ancho de banda con

respecto a AM y DSBSC-AM. La figura siguiente muestra un tipo de modulador SSB, que

utiliza una señal modulada con DSBSC-AM y una etapa de filtrado.

Figura 3.6 Modulador SSB

3.5.1 Modulación SSB-AM

1. En MATLAB, con base en el modulador de la figura 3.6, implemente este

tipo de modulación SSB, tanto para la banda superior como la inferior.

Utilice una señal portadora con frecuencia de 2 KHz y de amplitud

Ap = 1 . Utilice un filtro con un ancho en la pendiente de rechazo menor a

2 veces la frecuencia de la señal a modular. Para seleccionar la banda

114
lateral superior se utiliza un filtro paso alto con una frecuencia de corte

mayor a la frecuencia de la portadora

⎧1 para ω > ωc
H sup (ω ) = ⎨
⎩0 cualquier otro

Para seleccionar la banda inferior se utiliza un filtro pasobajo con una

frecuencia de corte menor a la frecuencia de la portadora

⎧1 para ω < ωc
H inf (ω ) = ⎨
⎩0 cualquier otro

2. Pruebe su procedimiento para la siguiente señal de entrada

m(t ) = Am cos(2π 600t ) con Am = 0.5 .

3. Grafique las señales generadas por el modulador y la señal de entrada.

También grafique la respuesta en frecuencia y fase de los filtros

utilizados.

4. Obtenga el espectro de magnitud en frecuencia para las señales generadas

por el modulador y la señal de entrada. Comente sus resultados.

3.5.2 Demodulación SSB-AM

1. Debe implementar un demodulador SSB. Este demodulador posee el

mismo diagrama de bloques de la figura 3.6, excepto que en lugar de la

señal a transmitir m(t ) se pone la señal recibida s (t ) y el bloque H (ω ) se

115
reemplaza por un filtro pasobajo con una frecuencia de corte de tal

manera que deje pasar la señal original.

2. Una vez que tenga listo el procedimiento para demodular, pruebe con la

señal modulada que obtuvo en el punto (2) de la sección 3.5.1.

3. Grafique y compare la salida del demodulador con la señal original, para

así poder comprobar si el procedimiento es efectivo. Grafique la respuesta

en frecuencia del filtro paso bajo.

4. Obtenga el espectro de magnitud en frecuencia para las señales

demoduladas y comente sus resultados.

3.5.3 Modulación y demodulación SSB–AM en SIMULINK

1. En SIMULINK implemente este modulador SSB y repita el ejercicio.

Utilice los bloques “Sine Wave” para generar la señal a modular del punto

(6) y la señal portadora del punto (1) de la sección 3.5.1. Multiplique

estas señales, luego utilice el bloque “Digital Filter Design” para simular

los filtros selectores de las bandas laterales y así generar la señal SSB-

AM.

2. Obtenga el espectro en frecuencia con el bloque “Spectrum Scope” para la

señal a modular y la señal SSB-AM de banda lateral inferior y superior.

116
3. Luego implemente el procedimiento para demodular la señal SSB-AM

para recuperar la señal original, tal y como se indicó en el punto (1) de la

sección 3.5.2.

4. Obtenga el espectro de frecuencia de estas señales y compare con el

espectro de la señal original.

3.5.4 Cuestionario

1. ¿Cuáles son las ventajas y desventajas de utilizar la modulación SSB?

2. Mencione y explique al menos dos métodos diferentes al del laboratorio

que existen para modular una señal SSB.

3. Investigar cuáles otros métodos para demodular señales SSB existen.

Explique detalladamente cada uno.

117
3.6 Laboratorio de modulación FM

La modulación en frecuencia consiste en hacer variar la frecuencia de la portadora

en función de la señal moduladora. Estas variaciones han de ser proporcionales a la

amplitud de la señal a transmitir. Un modulador de FM debe tener las siguientes

características:

• La frecuencia de la señal de salida no será siempre la de la portadora.

• Si la señal a modular tiene un valor de cero en su amplitud, en la salida

tendremos una señal de frecuencia igual a la portadora.

• Si la señal a modular tiene un valor positivo en su amplitud, en la salida se

tendrá una señal de frecuencia proporcional superior a la de la portadora.

• Si la señal a modular tiene un valor negativo en su amplitud, en la salida se

tendrá una señal de frecuencia proporcional inferior a la de la portadora.

• La frecuencia de la señal a modular no afecta a la variación de frecuencia de

la señal modulada, únicamente influye en la velocidad a la que se produce la

variación.

3.6.1 Modulación FM

1. Implemente la modulación de frecuencia de un tono simple en MATLAB.

Utilice un índice de modulación β = 5 . La frecuencia de la señal a

modular es de 100 Hz y la frecuencia de la señal portadora es de 1 KHz.

118
Utilice una frecuencia de muestreo de 80 KHz. La señal a modular es

m(t ) = Am cos ωmt . La señal modulada es la siguiente

⎛ k A ⎞
s (t ) = Ac cos⎜⎜ ωc + ω m sin ωmt ⎟⎟
⎝ ωm ⎠

Calcule una valor adecuado de kω y Am para que el valor de beta sea 5.

2. Grafique la señal a modular y la señal modulada (señal FM generada).

Comente sus resultados.

3. Determine el espectro de frecuencia en magnitud y fase de la señal

modulada. Compruebe que la señal FM posee muchas componentes en

frecuencia y que la magnitud de componente de la señal portadora tiende

a cero.

4. Utilizando la función “modulate” de MATLAB y cambiando la palabra

“method” por “fm” module la señal m(t ) = Am cos ωmt con una frecuencia

de 100 Hz y la portadora con una frecuencia de 1 KHz. Cuando se utiliza

la opción “fm” se debe agregar una constante llamada “opt” esta

representa el índice de modulación, pruebe con 0.04.

5. Grafique la señal a modular y la señal modulada con “modulate”.

6. Utilizando “modulate” varíe el valor de la constante “opt”. Puede utilizar

tres valores diferentes entre 0 y 1.

7. Grafique estas tres señales FM generadas y observe lo que sucede cuando

el índice de modulación es modificado.

119
8. Ahora utilizando “demod” demodule las señales obtenidas en los puntos

(6) y (7). Utilice “fm” en lugar de la palabra “method”.

9. Grafique las señales demoduladas para cada índice de modulación

probado y compare con la señal original la cual es la señal a modular.

Comente sus resultados.

10. Obtenga el espectro en frecuencia de magnitud y fase para cada una las

señales obtenidas en el punto (8).

3.6.2 Modulación y demodulación FM utilizando SIMULINK

1. Como introducción a la modulación y demodulación FM, SIMULINK

tiene dos bloques específicos para simular una señal FM y otro para

recuperar la señal original a partir una señal FM. Estos bloques se llaman

“FM Modulator Paseband” y “FM Demodulator Passband”. Utilice estos

bloques para modular la señal del punto (1) de la sección 3.6.1. La

herramienta de ayuda de MATLAB tiene la información necesaria para

utilizar correctamente estos bloques.

2. Utilice nuevamente el bloque “Sine Wave” para generar la señal a

modular. La señal que se obtiene después del bloque demodulador pásela

a través de un filtro IIR pasobajo Chebyshev Tipo I con una frecuencia de

corte que permita el paso de la frecuencia central de la señal original y

justifique el porque de su escogencia.

120
3. Obtenga la grafica de la señal a modular, la señal FM y la señal

demodulada. También represente el espectro de frecuencia para cada una

de estas señales utilizando el bloque “Spectrum Scope”.

3.6.3 Cuestionario

1. ¿Por qué la magnitud de la componente en frecuencia de la portadora

tiende a cero?

2. Investigue, ¿qué es el índice de modulación en frecuencia y cuál es su

efecto cuando se usa modulación FM? ¿Cómo debe ser este para que la

señal se pueda reconstruir bien?

3. ¿Cuáles son las ventajas y desventajas de utilizar la modulación FM?

121
3.7 Laboratorio de modulación PAM

En la modulación PAM, la información es transmitida en símbolos de valores

discretos, uniformemente espaciados por intervalos de tiempo. La señal portadora es un

tren periódico de pulsos rectangulares separados a la misma distancia uno de otro. La

amplitud de los pulsos es proporcional al valor instantáneo de las muestras de una señal

continua. Una señal PAM se puede representar por la siguiente ecuación


s (t ) = ∑ [1 + k m(nT )]g (t − nT )
n = −∞
a s s

Donde s (t ) > 0 para todo valor de n, m(nTs ) es la muestra de la señal a modular

m(t ) , ka es la sensibilidad en amplitud y g (t ) es la forma del pulso o cuantificador. La tasa

de muestreo debe ser mayor que dos veces la frecuencia máxima de la señal moduladora

m(t ) de acuerdo con el teorema de muestreo.

MATLAB tiene una función para simular este tipo de modulación, esta función es

“pammod” y tiene otra función que demodula una señal PAM, “pamdemod” las cuales se

muestran en la siguiente tabla.

122
Tabla 3.4 Funciones de MATLAB para modulación y demodulación PAM

Función en MATLAB Descripción

La salida de esta función es la envolvente

compleja de una señal “x” al ser modulada

utilizando modulación PAM.

y = pammod(x,M) “M” es la cantidad de niveles de cuantificación

y = pammod(x,M,ini_phase) de la señal, la cual debe estar dada en valores

enteros positivos.

La segunda opción “ini_phase” especifica en

radianes la fase inicial de la señal modulada.

Esta función demodula la envolvente compleja

de una señal PAM. Los niveles de


z = pamdemod(y,M)
cuantificación es la variable “M”.
z = pamdemod(y,M,ini_phase)
La segunda opción “ini_phase” especifica en

radianes la fase inicial de la señal PAM.

3.7.1 Modulación y demodulación PAM en MATLAB

1. Para conocer el efecto de la modulación de amplitud de pulso module la

siguiente señal y = 10 cos(4πt ) , utilice una frecuencia de muestreo de

1000 Hz y obtenga mil muestras. En MATLAB con la ayuda de la

función “square”, cree un tren de pulsos con ciclo de trabajo de un 25% y

123
una frecuencia de 30 Hz, esto para apreciar este fenómeno. Añada un

nivel DC a la señal original y multiplique esta por el tren de pulsos.

2. Grafique la señal a modular, el tren de pulsos y la señal modulada.

También obtenga y grafique el espectro en magnitud y fase de la señal a

modular y la señal modulada.

3. Para poder utilizar las funciones de la tabla 3.4 se necesita que la señal

esté antes cuantificada en niveles de valores enteros positivos. Para no

tener problemas con estas funciones utilizaremos la función “quantiz” que

nos permite cuantificar una señal a los niveles o símbolos que queramos

en este caso enteros positivos. Para ello emplee el siguiente código y

explique detalladamente lo que sucede.

partition = [0,1,3];
codebook = [-1,0.5,2,3];
samp = [-2.4,-1,-0.2,0,0.2,1,1.2,1.9,2,2.9,3,3.5,5];
[index,quantized] = quantiz(samp,partition,codebook);
index
quantized

4. Utilice el método anterior para cuantificar esta señal m(t ) = Am sin (2πf mt )

con una frecuencia central f m = 100 Hz y Am = 15 . Debe utilizar una

frecuencia de muestreo de f muestreo = 4 KHz y obtenga 200 muestras.

Recuerde que “M” debe ser una potencia de 2 suficiente para generar los

niveles de cuantificación de la señal cuantificada, pero antes de

124
cuantificar debe añadir un nivel DC a la señal muestreada suficiente para

que no haya niveles de valores negativos.

5. Module por medio de modulación PAM utilizando la función “pammod”

la señal cuantificada en el punto (4).

6. Grafique la señal a modular, la señal cuantificada y la señal modulada.

Grafique la señal cuantificada utilizando tanto la función “plot” como la

función “stem”.

7. Demodule la señal PAM generada en el punto (5) utilizando la función

“pamdemod”. Grafique la señal demodulada y compare con la señal

original. Comente sus resultados

8. Obtenga el espectro de frecuencia en magnitud y fase de la señal

modulada y la señal demodulada.

9. Obtenga el diagrama de ojo de la señal demodulada utilizando la función

“eyediagram” y comente sus resultados.

3.7.2 Modulación y demodulación PAM en SIMULINK

1. Para modulación y demodulación PAM existen los siguientes bloques en

SIMULINK “M-PAM Modulator Baseband” y “M-PAM Demodulator

Baseband”. Estos se pueden configurar para recibir enteros positivos o

una trama de bits. Para simular un pequeño sistema PAM entonces se

necesita generar primero de forma aleatoria cierta cantidad de 32

125
elementos utilizando el bloque “Random Integer Generator”. Utilice una

frecuencia de muestreo de 1000 Hz. Luego convierta esta señal a bits con

el siguiente bloque “Integer to Bit Converter”. Después module y

demodule esta señal utilizando los bloques para simulación PAM que se

encuentran en la librería “Digital Baseband Modulation”.

2. Utilice la herramienta de ayuda de MATLAB para utilizar correctamente

estos bloques.

3. Obtenga la señal a modular, la señal modulada y la señal demodulada.

Compare la señal reconstruida con la señal original.

4. Obtenga un diagrama de ojo de la señal demodulada con el bloque

“Discrete Time Eye Diagram Scope” para 8 muestras por símbolo.

5. Se recomienda utilizar un tiempo de simulación de 30 segundos para

apreciar con claridad lo que esta sucediendo. Comente sus resultados.

3.7.3 Cuestionario

1. ¿Qué es el fenómeno de Interferencia entre símbolos (ISI)?

2. ¿Qué es un diagrama de ojo? ¿Cuál es su importancia en el análisis de

sistemas de comunicaciones digitales?

3. ¿Cuáles son las ventajas y desventajas de la modulación PAM?

126
3.8 Laboratorio de modulación QAM

La modulación de amplitud en cuadratura o QAM es una modulación digital en la

que el mensaje está contenido tanto en la amplitud como la fase de la señal transmitida. Se

basa en la transmisión de dos mensajes independientes por un único camino. Esto se

consigue modulando una misma portadora, desfasada 90º entre uno y otro mensaje. Esto

supone la formación de dos canales ortogonales en el mismo ancho de banda, con lo cual se

mejora la eficiencia de ancho de banda.

La modulación QAM es un esquema un tanto riguroso. Un pequeño error en la fase

o la frecuencia de la portadora en el demodulador no solo resulta en pérdida o distorsión de

las señales sino interferencia entre ambos canales.

La modulación QAM es utilizada en las transmisiones de televisión en color para

multiplexar las señales de crominancia, que portan la información acerca del color. En este

caso, la sincronización se logra por la inserción periódica de una muestra de la señal

portadora.

MATLAB tiene una función para simular este tipo de modulación, esta función es

“qammod” y tiene otra función que sirve para demodular una señal QAM “qamdemod”,

estas funciones se muestran en la siguiente tabla.

127
Tabla 3.5 Funciones de MATLAB para la modulación y demodulación QAM

Función en MATLAB Descripción

La salida de esta función es la envolvente

compleja de una señal “x” al ser modulada

utilizando modulación QAM.

“M” es la cantidad de niveles de cuantificación

y = qammod(x,M) de la señal, la cual debe estar dada en valores

y = qammod(x,M,ini_phase) enteros positivos en potencia de 2.

La señal obtenida es una constelación de forma

rectangular o en cruz.

La segunda opción “ini_phase” especifica en

radianes la fase inicial de la señal modulada

Esta función demodula la envolvente compleja

de una señal QAM.

“M” es la cantidad de niveles de cuantificación


z = qamdemod(y,M)
de la señal, la cual debe estar dada en valores
z = qamdemod(y,M,ini_phase)
enteros positivos en potencia de 2.

La segunda opción “ini_phase” especifica en

radianes la fase inicial de la señal modulada

128
3.8.1 Modulación y demodulación QAM

1. Se desea modular una señal formada por las siguientes señales

m1 (t ) = Am sen(2πf1t )
m2 (t ) = Am sen(2πf 2t )

Donde Am = 7 , f1 = 180 Hz y f 2 = 25 Hz. Utilice una frecuencia de

muestreo de f muestreo = 4 KHz y obtenga 200 muestras. Cuantifique la

señal muestreada a niveles enteros positivos.

2. Grafique la señal a modular y la señal cuantificada (utilice tanto “plot”

como “stem”).

3. Module la señal cuantificada en el punto (1) utilizando la función

“qammod” y grafique la señal modulada en cuadratura y fase.

4. Suponga que a la señal se le añade ruido en el canal de transmisión. El

canal contiene ruido gausiano o AWGN. Este ruido se genera con el

siguiente código, utilícelo y explique.

k=log2(M);
EbNo = 10; %dB
snr = EbNo + 10*log10(k) - 10*log10(1);
ynoisy = awgn(ytx,snr,'measured');

5. Utilice la función “scatterplot” para mostrar la constelación de la señal

QAM antes y después de que se le añada el ruido gausiano. Comente sus

resultados.

129
6. Luego demodule la señal con y sin ruido utilizando la función

“qamdemod”. Grafique ambas señales demoduladas y compare con la

señal original. Comente sus resultados.

7. Por último obtenga el espectro de frecuencia en magnitud y fase de la

señal a modular, la señal modulada y demodulada, ambas con y sin ruido.

Comente sus resultados.

3.8.2 Modulación y demodulación QAM con SIMULINK

1. Para modulación y demodulación QAM existen los siguientes bloques en

SIMULINK “Rectangular QAM Modulator Baseband” y “Rectangular

QAM Demodulator Baseband”. Estos se pueden configurar para recibir

enteros positivos o una trama de bits. Para simular un pequeño sistema

QAM entonces se necesita generar primero de forma aleatoria cierta

cantidad de 32 elementos utilizando el bloque “Random Integer

Generator”. Utilice una frecuencia de muestreo de 1000 Hz. Después

module y demodule esta señal utilizando los bloques para simulación

QAM que se encuentran en la librería “Digital Baseband Modulation”.

2. Para simular un canal de transmisión con ruido utilice el bloque llamado

“AWGN Channel”. Modifique sus propiedades y utilice en la “Mode” la

opción “Signal to noise ratio (SNR)”. Utilice este bloque con un SNR de

130
10 dB. A la entrada de este bloque debe ir la señal QAM generada y la

salida debe ir a la entrada del demodulador.

3. Utilice la herramienta de ayuda de MATLAB para utilizar correctamente

estos bloques.

4. Obtenga la señal a modular, la señal modulada con y sin ruido y la señal

demodulada. Compare la señal reconstruida con la señal original.

5. Obtenga un diagrama de constelación de la señal demodulada con el

bloque “Discrete Time Scatter Plot Scope” para 32 muestras por símbolo.

6. Se recomienda utilizar un tiempo de simulación de al menos 100

segundos para apreciar con claridad lo que esta sucediendo. Comente sus

resultados.

3.8.2 Cuestionario

1. ¿Cuáles son las ventajas y desventajas de la modulación QAM?

2. ¿En qué consiste un canal de transmisión que añade ruido blanco

gausiano (AWGN acrónimo en inglés para Additive White Gaussian

Noise)? ¿Qué es el SNR y el BER?

3. ¿Cuál es la importancia de evaluar un sistema de comunicación digital

con un canal de este tipo?

4. Investigue en qué consiste el estándar de transmisión V22bis para

sistemas de comunicación digital.

131
CAPÍTULO 4: Conclusiones y recomendaciones

4.1 Conclusiones

MATLAB Y SIMULINK son dos herramientas muy poderosas con las cuales se

hace posible la simulación de sistemas de comunicación tanto analógicos como digitales.

Se demostró que con estas dos herramientas se puede obtener una aproximación excelente

para el estudio de los conceptos básicos en el comportamiento de los sistemas de

comunicación.

Al desarrollar prácticas de simulación en sistemas de comunicaciones tanto

analógicos como digitales, se logra dar un enfoque práctico a los conceptos planteados en

el curso de Procesamiento Digital de Señales, mediante la simulación de señales en el

dominio del tiempo, así como en el dominio de la frecuencia al evaluar conceptos como

muestreo, cuantificación, filtrado, densidad espectral, modulación analógica y digital, por

mencionar algunos de los más comunes.

Se consigue aprender los conceptos de como implementar las técnicas de filtrado

para señales de tiempo discreto usualmente utilizadas en el curso de procesamiento digital

de señales por medio del laboratorio de filtros digitales.

El laboratorio de FFT permite conocer y utilizar una técnica importante en el

análisis espectral de señales discretas. Este laboratorio ayudó a implementar un analizador

de espectro utilizando la Transformada Rápida de Fourier (FFT), el cual fue de gran ayuda

para los laboratorios siguientes.

132
Se examinó un método muy común para transmitir información conocido como

modulación AM. Se analizó el espectro de frecuencia una señal AM con y sin ruido, esto

en laboratorio de modulación AM.

Con el laboratorio de modulación DSBSC-AM se consigue introducir al estudiante

a una técnica de modulación AM que permite transmitir la señal modulada en amplitud

sólo con la potencia requerida para la señal de información.

El laboratorio de modulación SSB-AM permite conocer otra técnica de modulación

AM la cual utiliza la mitad del ancho de banda al utilizar eficientemente el espectro en

frecuencia. También se pudo demostrar que se puede recuperar la señal original a pesar de

que solo se transmita la mitad de esta.

Se pudo estudiar la teoría básica de modulación y demodulación FM por medio de

las ecuaciones que MATLAB presenta para este tipo de modulación. Analizar el espectro

de frecuencia de una señal FM por medio del laboratorio de modulación FM.

El laboratorio de modulación PAM da a conocer el principio básico de la

modulación por amplitud de pulsos la cual es de gran importancia en el procesamiento

digital de señales. Se introduce el concepto de una herramienta llamada diagrama de ojo

que permite analizar la calidad de una señal PAM.

El último laboratorio de modulación QAM da a conocer otro método de modulación

digital que permite transmitir parte de la señal tanto en amplitud como en fase. Se introduce

el concepto de los diagramas de constelación que permite analizar una señal QAM con y

sin ruido.

133
Con la preparación de las prácticas de simulación se fortalecen los conceptos que

existen alrededor de los sistemas de comunicación, los cuales son de gran importancia hoy

en día, donde los medios y técnicas de comunicación son necesarias para casi todas las

tareas cotidianas de muchas personas alrededor del mundo.

Estas prácticas de simulación permitirán al estudiante no sólo familiarizarse con la

teoría durante sus estudios, sino que le permitirá tener una idea más clara del

comportamiento y las técnicas utilizadas en los sistemas de comunicación.

4.2 Recomendaciones

Las prácticas planteadas deben estar acompañadas de una base teórica. Esto debido

a que las técnicas de comunicación utilizadas en los sistemas de comunicación se mejoran

día a día.

El estudiante debe sacar el tiempo para investigar como se deben utilizar las

funciones que MATLAB ofrece para el procesamiento de señales. Este tiempo debe ser

contemplado por el profesor dentro del lapso de entrega de su informe de resultados para

cada práctica.

MATLAB 7.0.1 es la versión en la que se basa la realización de los ejercicios de

simulación por lo que algunas de las funciones y bloques de SIMULINK mencionados para

la simulación de modulaciones es posible que no aparezcan en versiones anteriores a esta.

134
BIBLIOGRAFÍA

A continuación se presenta las referencias bibliográficas consultadas para la

elaboración de este proyecto.

Libros:

1. Antoniou, A. “Digital Signal Processing: Signals, Systems and Filters”, Primera

edición, McGraw-Hill, New York, Estados Unidos, 2006.

2. Tretter, S. A. “Communication System Design Using DSP Algorithms”, Primera

edición, Kluwer Academic / Plenum Publishers, New York, Estados Unidos, 2003.

3. Jackson, L. B. “Digital filters and Signal Processing”, Tercera edición, Boston:

Kluwer Academic Publishers, Estados Unidos, 1996.

4. Stanley, W. D. “Digital Signal Processing”, Segunda edición, Reston Publishing

Company, Inc., Estados Unidos, 1984.

5. Alkin, O. “Digital Signal Processing: A Laboratory Approach Using PC-DSP”,

Primera edición, Prentice Hall, Estados Unidos, 1994.

6. Proakis, J. G. “Tratamiento digital de señales”, Tercera edición, Prentice Hall,

Madrid, España, 1998.

7. Bildstein, P. “Filtros Activos”, Primera edición, Marcombo Boixareu Editores,

España, 1977.

8. Johnson, D. E. “Rapid Practical Designs of Active Filters”, Primera edición, John

Wiley & Sons, Inc., Estados Unidos, 1975.

135
Páginas web:

9. Universidad de Valladolid. Marcos Martínez Fernández, MMF. “Modulación

analógica y digital de Pulsos”, http://www.lpi.tel.uva.es/lpi/dld/tts/tema5.pdf

10. Universidad de Valladolid. Marcos Martínez Fernández, MMF. “Transmisión

digital en banda base”, http://www.lpi.tel.uva.es/lpi/dld/tts/tema6.pdf

11. Universidad de Valladolid. Marcos Martínez Fernández, MMF. “Transmisión

digital paso banda”, http://www.lpi.tel.uva.es/lpi/dld/tts/tema7.pdf

136
APÉNDICES

APÉNDICE A: Código fuente de los ejercicios de simulación en

MATLAB

A.1 Código fuente laboratorio de filtros digitales

%************************************************************************
%LABORATORIO DE FILTROS DIGITALES
%************************************************************************

%************************************************************************
%REALIZADO POR: José Gabriel Fernández Carazo
% A21941
% Escuela de Ingeniería Eléctrica
% Facultad de Ingeniería
% Universidad de Costa Rica
%************************************************************************
%Ultima modificación: Julio del 2007.
%************************************************************************

%************************************************************************
%Se limpia el workspace de MATLAB y las variables en uso.
clc;
clear;
%************************************************************************

%************************************************************************
%FILTROS DIGITALES IIR
%************************************************************************
%Punto (1)
%************************************************************************
fm=8000; %Frecuencia de muestreo

%Parámetros del filtro


N=[8 16 32 64]; %Orden del filtro
Wn=[1200 2000]/(fm/2); %Frecuencias de corte

L=length(N);
M=zeros(N(L)+1,L); %Matriz de ceros para guardar los
%coeficientes del filtro para cada orden

137
for i=1:L
ventana=window(@hamming,N(i)+1); %Cálculo de la función ventana
%Hamming
B=fir1(N(i),Wn,'bandpass',ventana); %Cálculo de los coeficientes del
%filtro
for j=1:length(B)
M(j,i)=B(j);
end
end
%************************************************************************

%************************************************************************
%Punto (2)
%************************************************************************
%Cálculo de la respuesta en frecuencia
Npuntos=256; %Puntos a calcular de la respuesta en frecuencia
H=zeros(Npuntos,L); %Matriz de ceros para guardar la respuesta en
%frecuencia del filtro segun el orden
for k=1:L
[H1,W]=freqz(M(:,k),1,Npuntos);
H(:,k)=H1;
end

%Visualización de la respuesta en frecuencia


figure(1)
subplot(2,1,1);
plot(W/pi,20*log10(abs(H)));
title('Respuesta en magnitud del filtro Hamming');
xlabel('\omega en unidades de \pi');
ylabel('Magnitud (dB)');
legend('N=8','N=16','N=32','N=64');
grid on;

subplot(2,1,2);
plot(W/pi,unwrap(angle(H)));
title('Respuesta de fase del filtro');
xlabel('\omega en unidades de \pi');
ylabel('Fase (rads)');
legend('N=8','N=16','N=32','N=64');
grid on;
%************************************************************************

%************************************************************************
%Punto (3)
%************************************************************************
L_medio=200; %Mitad de la cantidad de muestras a recolectar
fm=8000; %Frecuencia de muestreo
treq=2*L_medio/fm; %Tiempo requerido para recolectar las muestras
t=0:1/(fm-1):treq; %Vector de muestras a recolectar

138
%Señal de entrada
xin1=7*sin(2*pi*720*t);
xin2=3*sin(2*pi*1440*t);
xin3=15*sin(2*pi*3000*t);
x_in=xin1+xin2+xin3;

%Gráficas de las señales que conforman la señal de entrada


figure(2)
subplot(3,1,1);
plot(t,xin1);
title('Señal con frecuencia de 720 Hz');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
grid on;

subplot(3,1,2);
plot(t,xin2);
title('Señal con frecuencia de 1840 Hz');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
grid on;

subplot(3,1,3);
plot(t,xin3);
title('Señal con frecuencia de 3000 Hz');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
grid on;

figure(3)
plot(t,x_in);
title('Señal de entrada');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');

%Filtrando
fil=zeros(length(x_in),L); %Se crea una matriz para guardar las
%salidas de cada filtro

for i=1:L
h1=filter(M(:,i),1,x_in);
fil(:,i)=h1;
end

%Se grafican las salidas de los filtros


figure(4)
subplot(4,1,1);
plot(t,fil(:,1));
txtp1=strcat('Salida del filtro Hamming de orden N=',num2str(N(1)));
title(txtp1);
xlabel('Tiempo (segundos)');

139
ylabel('Amplitud');
grid on;

subplot(4,1,2);
plot(t,fil(:,2));
txtp2=strcat('Salida del filtro Hamming de orden N=',num2str(N(2)));
title(txtp2);
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
grid on;

subplot(4,1,3);
plot(t,fil(:,3));
txtp3=strcat('Salida del filtro Hamming de orden N=',num2str(N(3)));
title(txtp3);
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
grid on;

subplot(4,1,4);
plot(t,fil(:,4));
txtp4=strcat('Salida del filtro Hamming de orden N=',num2str(N(4)));
title(txtp4);
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
grid on;
%************************************************************************

%************************************************************************
%Punto (4)
%************************************************************************
M=zeros(N(L)+1,L); %Matriz de ceros para guardar los
%coeficientes del filtro para cada orden
for i=1:L
ventana=window(@kaiser,N(i)+1); %Cálculo de la función ventana
%Hamming
B=fir1(N(i),Wn,'bandpass',ventana); %Cálculo de los coeficientes
%del filtro
for j=1:length(B)
M(j,i)=B(j);
end
end

%Cálculo de la respuesta en frecuencia


H=zeros(Npuntos,L); %Matriz de ceros para guardar la respuesta en
%frecuencia del filtro segun el orden
for k=1:L
[H1,W]=freqz(M(:,k),1,Npuntos);
H(:,k)=H1;
end

140
% Visualización de la respuesta en frecuencia
figure(5)
subplot(2,1,1);
plot(W/pi,20*log10(abs(H)));
title('Respuesta en magnitud del filtro Kaiser');
xlabel('\omega en unidades de \pi');
ylabel('Magnitud (dB)');
legend('N=8','N=16','N=32','N=64');
grid on;

subplot(2,1,2);
plot(W/pi,unwrap(angle(H)));
title('Respuesta de fase del filtro');
xlabel('\omega en unidades de \pi');
ylabel('Fase (rads)');
legend('N=8','N=16','N=32','N=64');
grid on;

%Filtrando
fil=zeros(length(x_in),L);
for i=1:L
h1=filter(M(:,i),1,x_in);
fil(:,i)=h1;
end

%Se grafican las salidas de los filtros


figure(6)
subplot(4,1,1);
plot(t,fil(:,1));
txtp1=strcat('Salida del filtro Kaiser de orden N=',num2str(N(1)));
title(txtp1);
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
grid on;

subplot(4,1,2);
plot(t,fil(:,2));
txtp2=strcat('Salida del filtro Kaiser de orden N=',num2str(N(2)));
title(txtp2);
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
grid on;

subplot(4,1,3);
plot(t,fil(:,3));
txtp3=strcat('Salida del filtro Kaiser de orden N=',num2str(N(3)));
title(txtp3);
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
grid on;

141
subplot(4,1,4);
plot(t,fil(:,4));
txtp4=strcat('Salida del filtro Kaiser de orden N=',num2str(N(4)));
title(txtp4);
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
grid on;
%************************************************************************

%************************************************************************
%Punto (5)
%************************************************************************
M=zeros(N(L)+1,L); %Matriz de ceros para guardar los
%coeficientes del filtro para cada orden
for i=1:L
ventana=window(@barthannwin,N(i)+1); %Cálculo de la función ventana
%Hamming
B=fir1(N(i),Wn,'bandpass',ventana); %Cálculo de los coeficientes
%del filtro
for j=1:length(B)
M(j,i)=B(j);
end
end

%Cálculo de la respuesta en frecuencia


H=zeros(Npuntos,L); %Matriz de ceros para guardar la respuesta en
%frecuencia del filtro segun el orden
for k=1:L
[H1,W]=freqz(M(:,k),1,Npuntos);
H(:,k)=H1;
end

% Visualización de la respuesta en frecuencia


figure(7)
subplot(2,1,1);
plot(W/pi,20*log10(abs(H)));
title('Respuesta en magnitud del filtro Bartlett');
xlabel('\omega en unidades de \pi');
ylabel('Magnitud (dB)');
legend('N=8','N=16','N=32','N=64');
grid on;

subplot(2,1,2);
plot(W/pi,unwrap(angle(H)));
title('Respuesta de fase del filtro');
xlabel('\omega en unidades de \pi');
ylabel('Fase (rads)');
legend('N=8','N=16','N=32','N=64');
grid on;

142
%Filtrando
fil=zeros(length(x_in),L);
for i=1:L
h1=filter(M(:,i),1,x_in);
fil(:,i)=h1;
end

%Se grafican las salidas de los filtros


figure(8)
subplot(4,1,1);
plot(t,fil(:,1));
txtp1=strcat('Salida del filtro Bartlett de orden N=',num2str(N(1)));
title(txtp1);
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
grid on;

subplot(4,1,2);
plot(t,fil(:,2));
txtp2=strcat('Salida del filtro Bartlett de orden N=',num2str(N(2)));
title(txtp2);
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
grid on;

subplot(4,1,3);
plot(t,fil(:,3));
txtp3=strcat('Salida del filtro Bartlett de orden N=',num2str(N(3)));
title(txtp3);
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
grid on;

subplot(4,1,4);
plot(t,fil(:,4));
txtp4=strcat('Salida del filtro Bartlett de orden N=',num2str(N(4)));
title(txtp4);
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
grid on;
%************************************************************************

%************************************************************************
%FILTROS DIGITALES IIR
%************************************************************************
%Punto (1)
%************************************************************************
fm=8000; %Frecuencia de muestreo

%Parámetros del filtro


N2=8; %Orden del filtro

143
[b,a]=ellip(N2,0.5,80,300/(fm/2),'low'); %Cálculo de los coeficientes de
%un filtro IIR tipo elíptico
%************************************************************************

%************************************************************************
%Punto (2)
%************************************************************************
[H,f]=freqz(b,a,2048,fm); %Respuesta en frecuencia

%Se grafican los resultados


figure(9)
subplot(2,1,1);
plot(f,20*log10(abs(H)));
axis([0 2500 -200 0]);
title('Respuesta en magnitud del filtro');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud (dB)');
txtp5=strcat('N=',num2str(N2));
legend(txtp5);
grid on;

subplot(2,1,2);
plot(f,unwrap(angle(H))*180/pi);
axis([0 2500 -600 200]);
xlabel('Frecuencia (Hz)');
ylabel('Fase (º)');
txtp6=strcat('N=',num2str(N2));
legend(txtp6);
grid on;
%************************************************************************

%************************************************************************
%Punto (3)
%************************************************************************
L_medio=200; %Mitad de la cantidad de muestras a recolectar
treq=2*L_medio/fm; %Tiempo requerido para recolectar las muestras
t=0:1/(fm-1):treq; %Vector de muestras a recolectar

%Señal de entrada
xin1=sin(2*pi*180*t);
xin2=sin(2*pi*720*t);
x_in=xin1+xin2;

figure(10)
subplot(3,1,1);
plot(t,xin1);
title('Señal con frecuencia de 180 Hz');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
grid on;

144
subplot(3,1,2);
plot(t,xin2);
title('Señal con frecuencia de 720 Hz');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
grid on;

subplot(3,1,3);
plot(t,x_in);
title('Señal de entrada');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
grid on;

%Filtrando
h=filter(b,a,x_in);

figure(11)
plot(t,h,t,x_in,':');
title('Salida del filtro');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
legend('Salida del filtro','Señal de entrada');
grid on;

%************************************************************************

%************************************************************************
%Punto (4)
%************************************************************************
%Parámetros del filtro
Ns=[8 12 16]; %Variación del orden
Amax=[20 60 120];
Amin=[0.1 0.3 0.9];
L=length(Ns);
B=zeros(Ns(L)+1,L);
A=zeros(Ns(L)+1,L);

%Cálculo de los coeficientes de un filtro IIR tipo elíptico


for i=1:L
[b,a]=ellip(Ns(i),0.3,60,300/(fm/2),'low');
for j=1:length(b)
B(j,i)=b(j);
end
for j=1:length(a)
A(j,i)=a(j);
end
end

%Respuesta en frecuencia
Hf=zeros(2048,L);

145
F=zeros(2048,L);
for k=1:L
[H,f]=freqz(B(:,k),A(:,k),2048,fm);
Hf(:,k)=H;
F(:,k)=f;
end

%Se grafica la respuesta en frecuencia de cada uno de los filtros


figure(12);
subplot(2,1,1);
plot(F,20*log10(abs(Hf)+eps));
title('Respuesta de magnitud del filtro Amin=0.3 dB, Amax=60 dB');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud (dB)');
legend('N=8','N=12','N=16');
grid on;

subplot(2,1,2);
plot(F,unwrap(angle(Hf))*180/pi);
title('Respuesta de fase del filtro Amin=0.3 dB, Amax=60 dB');
xlabel('Frecuencia (Hz)');
ylabel('Fase (º)');
legend('N=8','N=12','N=16');
grid on;

%Cálculo de los coeficientes de un filtro IIR tipo elíptico


B=zeros(Ns(L)+1,L);
A=zeros(Ns(L)+1,L);
for i=1:L
[b,a]=ellip(Ns(1),Amin(i),60,300/(fm/2),'low');
for j=1:length(b)
B(j,i)=b(j);
end
for j=1:length(a)
A(j,i)=a(j);
end
end

%Respuesta en frecuencia
Hf=zeros(2048,L);
F=zeros(2048,L);
for k=1:L
[H,f]=freqz(B(:,k),A(:,k),2048,fm);
Hf(:,k)=H;
F(:,k)=f;
end

%Se grafica la respuesta en frecuencia de cada uno de los filtros


figure(13);
subplot(2,1,1);
plot(F,20*log10(abs(Hf)+eps));

146
title('Respuesta de magnitud del filtro N=8, Amax=60 dB');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud (dB)');
legend('Amin=0.1','Amin=0.3','Amin=0.9');
grid on;

subplot(2,1,2);
plot(F,unwrap(angle(Hf))*180/pi);
title('Respuesta de fase del filtro N=8, Amax=60 dB');
xlabel('Frecuencia (Hz)');
ylabel('Fase (º)');
legend('N=8','N=12','N=16');
grid on;

%Cálculo de los coeficientes de un filtro IIR tipo elíptico


B=zeros(Ns(L)+1,L);
A=zeros(Ns(L)+1,L);
for i=1:L
[b,a]=ellip(Ns(1),0.3,Amax(i),300/(fm/2),'low');
for j=1:length(b)
B(j,i)=b(j); %Se guardan uno a uno los coeficientes
end
for j=1:length(a)
A(j,i)=a(j); %Se guardan uno a uno los coeficientes
end
end

%Respuesta en frecuencia
Hf=zeros(2048,L);
F=zeros(2048,L);
for k=1:L
[H,f]=freqz(B(:,k),A(:,k),2048,fm);
Hf(:,k)=H;
F(:,k)=f;
end

%Se grafica la respuesta en frecuencia de cada uno de los filtros


figure(14);
subplot(2,1,1);
plot(F,20*log10(abs(Hf)+eps));
title('Respuesta de magnitud del filtro N=8, Amin=0.3 dB');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud (dB)');
legend('Amax=20','Amax=60','Amax=120');
grid on;

subplot(2,1,2);
plot(F,unwrap(angle(Hf))*180/pi);
title('Respuesta de fase del filtro N=8, Amax=0.3 dB');
xlabel('Frecuencia (Hz)');

147
ylabel('Fase (º)');
legend('Amax=20','Amax=60','Amax=120');
grid on;

%************************************************************************

%************************************************************************
%Punto (5)
%************************************************************************
fm=8000; %Frecuencia de muestreo

%Parámetros del filtro


N=6; %Orden del filtro
wn=[300 500];

%Cálculo de los coeficientes de un filtro IIR tipo eliptico


[b1,a1]=cheby1(N,0.5,wn/(fm/2));

%Respuesta en frecuencia
[H,f]=freqz(b1,a1,2048,fm);

%Se grafican los resultados


figure(15);
subplot(2,1,1);
plot(f,20*log10(abs(H)));
title('Respuesta de magnitud del filtro IIR pasabanda, Chebyshev Tipo
I');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud (dB)');
grid on;

subplot(2,1,2);
plot(f,unwrap(angle(H))*180/pi);
title('Respuesta de fase del filtro IIR pasabanda, Chebyshev Tipo I');
xlabel('Frecuencia (Hz)');
ylabel('Fase (º)');
grid on;
%************************************************************************

%************************************************************************
%Punto (6)
%************************************************************************
L_medio=200; %Mitad de la cantidad de muestras a recolectar
treq=2*L_medio/fm; %Tiempo requerido para recolectar las muestras
t=0:1/(fm-1):treq; %Vector de muestras a recolectar

%Señal de entrada
xin1=sin(2*pi*120*t);
xin2=sin(2*pi*400*t);
xin3=sin(2*pi*680*t);

148
x_in=xin1+xin2+xin3;

%Filtrando
h=filter(b1,a1,x_in);

%Se grafica la salida del filtro


figure(16)
plot(t,h,t,x_in,':')
title('Salida del filtro');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
legend('Salida del filtro','Señal de entrada');
grid on;
%************************************************************************

%************************************************************************
%Punto (7)
%************************************************************************
fm=8000; %Frecuencia de muestreo

%Parámetros del filtro


N=6; %Orden del filtro
wn=[300 500];
[b2,a2]=cheby1(N,0.5,wn/(fm/2),'stop'); %Cálculo de los coeficientes de
%un filtro IIR tipo elíptico

[H,f]=freqz(b2,a2,2048,fm); %Respuesta en frecuencia

%Se grafican los resultados


figure(18);
subplot(2,1,1);
plot(f,20*log10(abs(H)));
title('Respuesta de magnitud del filtro IIR rechazabanda, Chebyshev Tipo
I');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud (dB)');
grid on;

subplot(2,1,2);
plot(f,unwrap(angle(H))*180/pi);
title('Respuesta de fase del filtro IIR rechazabanda, Chebyshev Tipo I');
xlabel('Frecuencia (Hz)');
ylabel('Fase (º)');
grid on;
%************************************************************************

149
%************************************************************************
%Punto (8)
%************************************************************************
%Filtrando
h=filter(b2,a2,x_in);

figure(19)
plot(t,h,t,x_in,':')
title('Salida del filtro');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
legend('Salida del filtro','Señal de entrada');
grid on;
%************************************************************************

%************************************************************************
%Punto (9)
%************************************************************************
%Frecuencia de muestreo
fm=8000;
%Frecuencias de la banda de paso del filtro pasabanda
wn=[1310 2120]/(fm/2);

%Parámetros del filtro


W=[2500 2600]/(fm/2);
Wp=W(1); Ws=W(2);
R=[0.3 40];
Rp=R(1); Rs=R(2);

%Cálculo del orden del filtro


[n,Wn] = ellipord(Wp,Ws,Rp,Rs,'s');

%Cálculo de los coeficientes de un filtro analógico tipo elíptico o cauer


[numa,dena]=ellip(n,Rp,Rs,Wn*(fm/2)*2*pi,'low','s');

%Respuesta en frecuencia del filtro analógico


[H1,f1]=freqs(numa,dena,fm);

%Utilizando la transformación bilineal se pasa de un filtro analógico a


*un filtro digital
[numd,dend] = bilinear(numa,dena,fm,1000);

%Ahora se hace una transformación espectral pasando de un filtro pasobajo


*a un filtro pasabanda
[b2,a2]=iirlp2bp(numd,dend,0.3,wn);

%Respuesta en frecuencia del filtro IIR basado en un filtro analógico


%pasobajo elíptico.
[H2,f2]=freqz(b2,a2,2048,fm);

150
%Se grafican los resultados
figure(20)
subplot(3,1,1);
plot(f1/(2*pi),20*log10(abs(H1)));
title('Respuesta de magnitud del filtro pasobajo, Elíptico');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud (dB)');
grid on;

subplot(3,1,2);
plot(f2,20*log10(abs(H2)));
title('Respuesta de magnitud del filtro pasabanda IIR');
xlabel('Frecuencia normalizada (\omega en unidades de \pi)');
ylabel('Magnitud (dB)');
grid on;

subplot(3,1,3);
plot(f2/(fm/2),unwrap(angle(H2))*180/pi);
title('Respuesta de fase del filtro pasabanda IIR');
xlabel('Frecuencia normalizada (\omega en unidades de \pi)');
ylabel('Fase (º)');
grid on;
%************************************************************************

151
A.2 Código fuente laboratorio de FFT

%************************************************************************
%LABORATORIO DE FFT
%************************************************************************

%************************************************************************
%REALIZADO POR: José Gabriel Fernández Carazo
% A21941
% Escuela de Ingeniería Eléctrica
% Facultad de Ingeniería
% Universidad de Costa Rica
%************************************************************************
%Ultima modificación: Julio del 2007.
%************************************************************************

%************************************************************************
%Se limpia el workspace de MATLAB y las variables en uso.
clc;
clear;
%************************************************************************

%************************************************************************
%CALCULO DE LA FFT
%************************************************************************
%Punto (1)
%************************************************************************
L_medio=128; %Mitad de la cantidad de muestras a recolectar
Nfft=[16 32 64 128 256 512 1024];%Cantidad de puntos para calcular la FFT
fmax=1/2; %Frecuencia máxima presente en la señal
fn=2*fmax; %Frecuencia de muestreo según Nyquist
treq=2*L_medio/fn; %Tiempo requerido para recolectar las muestras
fs=((2*L_medio-1)/treq); %División de tiempo para recolectar las muestras
n=0:1/fs:treq; %Vector de muestras a recolectar

%Se define la secuencia de entrada


xin=cos(2*pi*1/8*n)+cos(2*pi*1/4*n)+cos(2*pi*13/50*n);

L=length(Nfft);

for i=1:L
%Cálculo de la DFT utilzando la FFT
Y=fft(xin,Nfft(i)); %FFT de Nfft puntos para la secuencia xin
Y1=fftshift(Y); %Reordenamiento de los valores de la FFT
norm=max(abs(Y1)); %Para normalizar el espectro en magnitud

152
%Vector de frecuencias
M=Nfft(i)/2;
faux(M+1:Nfft(i))=0:M-1; %Vector de frecuencias desordenado
faux(1:M)=-M:-1; %Vector de frecuencias ordenado
f=fn*faux/(Nfft(i)); %Vector de frecuencias normalizado

%Graficas de las espectros en frecuencias de las señales obtenidas


figure;
subplot(3,1,1);
plot(n,xin); axis([0 treq -3 3]);
title('Señal de entrada original');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
txtp=strcat('f muestreo = ',num2str(fn),' Hz');
legend(txtp);
grid on;

subplot(3,1,2);
plot(f,abs(Y1));
title('Espectro continuo en magnitud de la señal de entrada');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud |FFT|');
txtp=strcat('NFFT = ',num2str(Nfft(i)),' puntos');
legend(txtp);
grid on;

subplot(3,1,3);
stem(f,abs(Y1)/norm,'r');
title('Espectro discreto en magnitud de la señal de entrada');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txtp=strcat('NFFT = ',num2str(Nfft(i)),' puntos');
legend(txtp);
grid on;
end
%************************************************************************

%************************************************************************
%Punto (2)
%************************************************************************
Nfft2=128; %Cantidad de puntos para calcular la FFT
L2_medio=50; %Cantidad de muestras de la secuencia de entrada
t=0:L2_medio-1; %Vector de muestras a recolectar
t2=0:L2_medio*4-1;
t2n=0:Nfft2-1;
fmax2=1/2; %Frecuencia máxima presente en la señal
fn2=2*fmax2; %Frecuencia de muestreo según Nyquist
treq2=2*L2_medio/fn2; %Tiempo requerido para recolectar las muestras
fs2=((2*L2_medio-1)/treq2);%División de tiempo para recolectar muestras
t=0:1/fs2:treq2; %Vector de muestras a recolectar

153
%Se define la secuencia de entrada
x2=cos(2*pi*1/8*t)+cos(2*pi*1/4*t)+cos(2*pi*13/50*t);
ceros=zeros(100,1); %Se define el vector de ceros de relleno
ceros=ceros'; %Se traspone para unirlo al vector muestras
xnew=cat(2,x2,ceros); %Vector de entrada relleno con ceros hasta 128

%Cálculo de la DFT utilzando la FFT


Y2=fft(xnew,Nfft2); %FFT de Nfft puntos para la secuencia xnew
Y3=fftshift(Y2); %Reordenamiento de los valores de la FFT
norm2=max(abs(Y3)); %Para normalizar el espectro en magnitud

%Vector de frecuencias
M1=Nfft2/2;
faux1(M1+1:Nfft2)=0:M1-1; %Vector de frecuencias desordenado
faux1(1:M1)=-M1:-1; %Vector de frecuencias ordenado
f1=fn*faux1/(Nfft2); %Vector de frecuencias normalizado

%Graficas de las espectros en frecuencias de las señales obtenidas


figure(8);
subplot(3,1,1);
plot(t2,xnew); axis([0 L2_medio*4 -3 3]);
title('Señal de entrada rellenada con ceros');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
txtp2=strcat('f muestreo = ',num2str(fn2),' Hz');
legend(txtp2);
grid on;

subplot(3,1,2);
plot(f1,abs(Y3));
title('Espectro continuo en magnitud de la señal de entrada');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud |FFT|');
grid on;

subplot(3,1,3);
stem(f1,abs(Y3)/norm2,'r');
title('Espectro discreto en magnitud de la señal de entrada');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
grid on;
%************************************************************************

%************************************************************************
%Punto (3)
%************************************************************************
%Recuperando la señal original a partir de la FFT inversa
x_recup=ifftshift(Y3); %Se cancela el efecto de ordenar los
%componentes en frecuencia
x_recup=ifft(x_recup); %Se aplica la FFT inversa en la señal

154
%Se grafican los resultados y se comprueba que se recupero la señal
figure(9);
subplot(2,1,1);
plot(t2,xnew,'-b'); axis([0 L2_medio*4 -3 3]);
title('Señal de entrada recuperada');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
grid on;

subplot(2,1,2);
plot(t2n,x_recup,'-r'); axis([0 L2_medio*4 -3 3]);
title('Señal de entrada recuperada');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
grid on;
%************************************************************************

%************************************************************************
%Punto (4)
%************************************************************************
L3_medio=1000; %Mitad de la cantidad de muestras a recolectar
Nfft3=256; %Cantidad de puntos para calcular la FFT
fmax3=2000; %Frecuencia máxima presente en la señal
fn3=2*fmax3; %Frecuencia de muestreo según Nyquist
treq3=2*L3_medio/fn3; %Tiempo requerido para recolectar las muestras
fs3=((2*L3_medio-1)/treq3);%División de tiempo para recolectar muestras
t3=0:1/fs3:treq3; %Vector de muestras a recolectar

%Se definen las señales


x1=0.04742*cos(2*pi*200*t3+1.5077);
x2=0.1362*cos(2*pi*400*t3+1.8769);
x3=0.4884*cos(2*pi*500*t3-0.1852);
x4=0.4884*cos(2*pi*1600*t3-1.4488);
x5=0.1223*cos(2*pi*1700*t3);

%Se define la señal compuesta por las señales anteriores


xtotal=x1+x2+x3+x4+x5;

%Cálculo de la DFT utilzando la FFT


Y4=fft(xtotal,Nfft3); %FFT de Nfft puntos para la secuencia xtotal
Y5=fftshift(Y4); %Reordenamiento de los valores de la FFT
norm=max(abs(Y5)); %Para normalizar el espectro en magnitud
Yf=unwrap(angle(Y5)); %Cálculo de las componentes de fase

%Vector de frecuencias
M3=Nfft3/2;
faux3(M3+1:Nfft3)=0:M3-1; %Vector de frecuencias desordenado
faux3(1:M3)=-M3:-1; %Vector de frecuencias ordenado
f3=fn3*faux3/(Nfft3); %Vector de frecuencias normalizado

155
%Graficas de las espectros en frecuencias de las señales obtenidas
figure(10);
subplot(3,1,1);
plot(t3,xtotal); axis([0 treq3 -3 3]);
title('Señal de entrada original');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
txtp3=strcat('f muestreo = ',num2str(fn3),' Hz');
legend(txtp3);
grid on;

subplot(3,1,2);
plot(f3,abs(Y5));
title('Espectro continuo en magnitud de la señal de entrada');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud |FFT|');
grid on;

subplot(3,1,3);
plot(f3,Yf,'b');
title('Espectro continuo de fase de la señal de entrada');
xlabel('Frecuencia (Hz)');
ylabel('Fase (rad)');
grid on;

figure(11);
subplot(2,1,1);
stem(f3,abs(Y5)/norm,'r');
title('Espectro discreto en magnitud de la señal de entrada');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
grid on;

subplot(2,1,2);
stem(f3,Yf,'m');
title('Espectro discreto de fase de la señal de entrada');
xlabel('Frecuencia (Hz)');
ylabel('Fase (rad)');
grid on;
%************************************************************************

156
A.3 Código fuente laboratorio de modulación AM

%************************************************************************
%LABORATORIO DE MODULACION AM
%************************************************************************

%************************************************************************
%REALIZADO POR: José Gabriel Fernández Carazo
% A21941
% Escuela de Ingeniería Eléctrica
% Facultad de Ingeniería
% Universidad de Costa Rica
%************************************************************************
%Ultima modificación: Julio del 2007.
%************************************************************************

%************************************************************************
%Se limpia el workspace de MATLAB y las variables en uso.
clc;
clear;
%************************************************************************

%************************************************************************
%MODULACION AM
%************************************************************************
%Punto (1)
%************************************************************************
%Modulación en amplitud de un tono de prueba
L_medio=1000; %Mitad de la cantidad de muestras a recolectar
fm=1000; %Frecuencia de muestreo
treq=2*L_medio/fm; %Tiempo requerido para recolectar las muestras
t=0:1/(fm-1):treq; %Vector de muestras a recolectar

%Señal mensaje (tono):


fs=fm; %Frecuencia de muestreo
ftono=10; %Frecuencia de la señal a modular
wtono=2*pi*ftono; %Frecuencia en rads/s
mtono=1.6*cos(wtono*t); %Señal a modular

%Señal modulada (AM)


fc=100; %Frecuencia de la señal portadora
s=modulate(mtono,fc,fs,'am'); %Señal modulada

%Demodulación (AM)
mreconst = demod(s,fc,fs,'am');
%************************************************************************

157
%************************************************************************
%Punto (2)
%************************************************************************
%Gráfica de la señal tono de prueba
figure(1)
subplot(3,1,1);
plot(t,mtono);
title('Señal tono de prueba');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
txt=strcat('f muestreo =',num2str(fs),' Hz');
legend(txt);
grid on;

%Gráfica de la señal modulada


subplot(3,1,2)
plot(t,s);
title('Señal modulada');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
txt=strcat('f muestreo =',num2str(fs),' Hz');
legend(txt);
axis([0 treq/4 -2 2]);
grid on;

%Gráfica de la señal demodulada


subplot(3,1,3);
plot(t,mreconst);
title('Señal reconstruida');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
axis([0 treq -3 3]);
txt=strcat('f muestreo =',num2str(fs),' Hz');
legend(txt);
grid on;

%Cálculo de la DFT utilzando la FFT


Nfft=1024;
Y=fft(s,Nfft); %FFT de Nfft puntos para la señal s
Y2=fftshift(Y); %Reordenamiento de los valores de la FFT
norm=max(abs(Y2)); %Para normalizar el espectro en magnitud
Yf=unwrap(angle(Y2)); %Cálculo de las componentes de fase de la señal

%Vector de frecuencias
M=Nfft/2;
faux(M+1:Nfft)=0:M-1; %Vector de frecuencias desordenado
faux(1:M)=-M:-1; %Vector de frecuencias ordenado
f=fm*faux/(Nfft); %Vector de frecuencias normalizado

%Se grafican los resultados obtenidos


figure(2)

158
subplot(2,1,1);
plot(f,abs(Y2)/norm);
title('Espectro continuo en magnitud de la señal modulada');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
grid on;

subplot(2,1,2);
plot(f,Yf,'b');
title('Espectro continuo de fase de la señal modulada');
xlabel('Frecuencia (Hz)');
ylabel('Fase (rads)');
grid on;

%Cálculo de la DFT utilzando la FFT de la señal tono de prueba


Ytono=fft(mtono,Nfft); %FFT de Nfft puntos para la señal mtono
Y2tono=fftshift(Ytono); %Reordenamiento de los valores de la FFT
norm1=max(abs(Y2tono)); %Para normalizar el espectro en magnitud
Yftono=unwrap(angle(Y2tono)); %Cálculo de las componentes de fase

%Cálculo de la DFT utilzando la FFT de la señal reconstruida


Yreconst=fft(mreconst,Nfft); %FFT de Nfft puntos para la señal mtono
Y2reconst=fftshift(Yreconst); %Reordenamiento de los valores de la FFT
norm2=max(abs(Y2reconst)); %Para normalizar el espectro en magnitud
Yfreconst=unwrap(angle(Y2reconst)); %Cálculo de las componentes de fase

%Se grafican los resultados


figure(3)
subplot(2,1,1);
plot(f,abs(Y2tono)/norm1,f,abs(Y2reconst)/norm2);
title('Espectro continuo en magnitud');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
legend('Señal tono de prueba','Señal reconstruida');
grid on;

subplot(2,1,2);
plot(f,Yftono,f,Yfreconst);
title('Espectro continuo de fase');
xlabel('Frecuencia (Hz)');
ylabel('Fase (rads)');
legend('Señal tono de prueba','Señal reconstruida');
grid on;
%************************************************************************

%************************************************************************
%Punto (3) y (4)
%************************************************************************
L_medio=2000; %Mitad de la cantidad de muestras a recolectar
fm=1000; %Frecuencia de muestreo
treq=2*L_medio/fm; %Tiempo requerido para recolectar las muestras

159
t=0:1/(fm-1):treq; %Vector de muestras a recolectar

Ap=5; %Amplitud de la portadora


indmod=[0.45 1 2.6]; %Indice de modulación
ka=0.5; %Indice de sensibilidad

%Modulación para cada uno de los diferentes índices de modulación


L=length(indmod);
for i=1:L
Am1=indmod(i)/ka;
fym=5;
fyc=10*fym;

%Señal a modular
ym=Am1*cos(2*pi*fym*t);

%Señal portadora
yc=Ap*cos(2*pi*fyc*t);

%señal modulada
ys=(1+ka*ym).*yc;
ysmax=max(abs(ys));

%Se grafican los resultados


figure(4);
if i==1
subplot(3,1,1);
plot(t,real(ys));
title('Señal AM con índice de modulación m<1');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
axis([0 treq/4 -(ysmax+1) ysmax+1]);
grid on;
end
if i==2
subplot(3,1,2);
plot(t,real(ys));
title('Señal AM con índice de modulación m=1');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
axis([0 treq/4 -(ysmax+1) ysmax+1]);
grid on;
end
if i==3
subplot(3,1,3);
plot(t,real(ys));
title('Señal AM con índice de modulación m>1');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
axis([0 treq/4 -(ysmax+1) ysmax+1]);
grid on;

160
end

figure(5);
if i==1
subplot(4,1,1);
plot(t,yc);
title('Señal portadora');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
axis([0 treq/4 -Ap Ap]);
txtp=strcat('fc=',num2str(fyc));
legend(txtp);
grid on;

subplot(4,1,2);
plot(t,ym);
title('Señal a modular para obtener un índice de modulación
m<1');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
txtp=strcat('Amplitud media=',num2str(Am1));
legend(txtp);
grid on;
end
if i==2
subplot(4,1,3);
plot(t,ym);
title('Señal a modular para obtener un índice de modulación
m=1');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
txtp=strcat('Amplitud media=',num2str(Am1));
legend(txtp);
grid on;
end
if i==3
subplot(4,1,4);
plot(t,ym);
title('Señal a modular para obtener un índice de modulación
m>1');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
txtp=strcat('Amplitud media=',num2str(Am1));
legend(txtp);
grid on;
end

end
%************************************************************************

161
%************************************************************************
%Punto (5)
%************************************************************************
%Modulación de una señal con ruido utilzando las funciones "modulate" y
%"demod"

L_medio=1000; %Mitad de la cantidad de muestras a recolectar


fm=1000; %Frecuencia de muestreo
treq=2*L_medio/fm; %Tiempo requerido para recolectar las muestras
t=0:1/(fm-1):treq; %Vector de muestras a recolectar

%Señal modulada (AM)


fc=100; %Frecuencia de la señal portadora
s=modulate(mtono,fc,fs,'am'); %Señal modulada

% Portadora
fc=50;

% Señal mensaje
fs=fm;
m=15*sin(10*pi*t)+10*sin(20*pi*t);

% Señal modulada
g=modulate(m,fc,fs,'am');

% Ruido
g_ruido=g+8*randn(1,length(g));

% Señal reconstruida
m_reconst=demod(g,fc,fs,'am');

figure(6);
subplot(3,1,1);
plot(t,m);
title('Señal a modular');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
txtp=strcat('fmuestreo=',num2str(fm));
legend(txtp);
grid on;

subplot(3,1,2);
plot(t,g_ruido);
title('Señal modulada con ruido adherido en el canal de transmisión');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
txtp=strcat('fmuestreo=',num2str(fm));
legend(txtp);
grid on;

162
subplot(3,1,3);
plot(t,m_reconst,t,m);
title('Señal reconstruida o demodulada');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
legend('Señal demodulada o reconstruida','Señal original');
grid on;
%************************************************************************

%************************************************************************
%DETECTOR DE ENVOLVENTE (LEY CUADRATICA)
%************************************************************************
%Punto (1)
%************************************************************************
L_medio=2000; %Mitad de la cantidad de muestras a recolectar
fm=8000; %Frecuencia de muestreo
treq=2*L_medio/fm; %Tiempo requerido para recolectar las muestras
t=0:1/(fm-1):treq; %Vector de muestras a recolectar

Ap=5; %Amplitud de la portadora


indmod=1; %Indice de modulación
ka=0.5; %Indice de sensibilidad

Am1=indmod/ka; %Amplitud de la señal a modular


fym=200; %Frecuencia de la señal a modular
fyc=10*fym; %Frecuencia de la portadora 10 veces la
%Frecuencia de la señal a modular

%Señal a modular
ym=Am1*cos(2*pi*fym*t);

%Señal portadora
yc=Ap*cos(2*pi*fyc*t);

%señal modulada
ys=(1+ka*ym).*yc;
ysmax=max(abs(ys));

%Se eleva al cuadrado


ys2=ys.^2;

%Se pasa por un filtro pasobajo


b1=fir1(128,fym/(fm/2),'low');
h=filter(b1,1,ys2);

%Se le saca la raíz cuadrada


y=sqrt(h);
[H f]=freqz(b1,1,2048,fm);

163
%Se pasa por un filtro pasoalto para eliminar la componente DC
c=[0.2 0.5 0.7 0.89 0.98];
L2=length(c);
Hm=zeros(2048,L2);
fil=zeros(length(y),L2);

for i=1:L2;
b3=[1+c(i) -(1+c(i))];
a3=[2 -2*c(i)];
h3=filter(b3,a3,y);
fil(:,i)=h3;
[H3 f3]=freqz(b3,a3,2048,fm);
Hm(:,i)=H3;
end

%se grafican los resultados


figure(7)
subplot(3,1,1);
[AX,H1,H2]=plotyy(f,20*log10(abs(H)+eps),f,unwrap(angle(H)),'plot');
set(get(AX(1),'Ylabel'),'String','Magnitud (dB)')
set(get(AX(2),'Ylabel'),'String','Fase (rads)')
set(AX(1),'YGrid','on');
set(AX(2),'YGrid','on');
title('Respuesta en magnitud y fase de un filtro FIR pasobajo N=64');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud (dB)');
grid on;

subplot(3,1,2);
plot(f3,20*log10(abs(Hm)+eps));
title('Respuesta en magnitud de un filtro digital pasoalto');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud (dB)');
legend('c=0.2','c=0.5','c=0.7','c=0.89','c=0.98');
ylim([-350 50]);
xlim([0 350])
grid on;

subplot(3,1,3);
plot(f3,unwrap(angle(Hm)));
title('Respuesta de fase de un filtro digital pasoalto');
xlabel('Frecuencia (Hz)');
ylabel('Fase(rads)');
legend('c=0.2','c=0.5','c=0.7','c=0.89','c=0.98');
grid on;

c=0.92;
b3=[1+c -(1+c)];
a3=[2 -2*c];
h3=filter(b3,a3,y);

164
figure(8)
subplot(2,1,1);
plot(t,ys);
title('Señal modulada');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
axis([0 treq/4 -(ysmax+1) ysmax+1]);
grid on;

subplot(2,1,2);
plot(t,real(h3));
title('Salida del filtro pasoalto (señal demodulada utilizando un
detector de envolvente de Ley Cuadrática');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
axis([0 treq/4 -max(abs(h3)) max(abs(h3))]);
grid on;

%Cálculo de la DFT utilzando la FFT


Nfft=2048;
Y=fft(ym,Nfft); %FFT de Nfft puntos para la señal de entrada
Y2=fftshift(Y); %Reordenamiento de los valores de la FFT
norm2=max(abs(Y2)); %Para normalizar el espectro en magnitud

%Vector de frecuencias
M1=Nfft/2;
faux1(M1+1:Nfft)=0:M1-1; %Vector de frecuencias desordenado
faux1(1:M1)=-M1:-1; %Vector de frecuencias ordenado
f1=fm*faux1/(Nfft); %Vector de frecuencias normalizado

Y3=fft(h3,Nfft); %FFT de Nfft puntos para la salida del filtro pasoalto


Y4=fftshift(Y3); %Reordenamiento de los valores de la FFT
norm4=max(abs(Y4)); %Para normalizar el espectro en magnitud

%Vector de frecuencias
M1=Nfft/2;
faux1(M1+1:Nfft)=0:M1-1; %Vector de frecuencias desordenado
faux1(1:M1)=-M1:-1; %Vector de frecuencias ordenado
f2=fm*faux1/(Nfft); %Vector de frecuencias normalizado

figure(9)
subplot(2,1,1);
plot(f1,abs(Y2)/norm2);
title('Espectro continuo en magnitud de la señal de entrada');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;

165
subplot(2,1,2);
plot(f2,abs(Y4)/norm4);
title('Espectro continuo en magnitud de la salida del filtro pasoalto');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;
%************************************************************************

166
A.4 Código fuente laboratorio de modulación DSBSC-AM

%************************************************************************
%LABORATORIO DE MODULACION DSBSC-AM
%************************************************************************

%************************************************************************
%REALIZADO POR: José Gabriel Fernández Carazo
% A21941
% Escuela de Ingeniería Eléctrica
% Facultad de Ingeniería
% Universidad de Costa Rica
%************************************************************************
%Ultima modificación: Julio del 2007.
%************************************************************************

%************************************************************************
%Se limpia el workspace de MATLAB y las variables en uso.
clc;
clear;
%************************************************************************

%************************************************************************
%MODULACION DSBSC-AM
%************************************************************************
%Punto (1)
%************************************************************************
%Modulación en amplitud de doble banda lateral con portadora suprimida
L_medio=10000; %Mitad de la cantidad de muestras a recolectar
fm=8000; %Frecuencia de muestreo
treq=2*L_medio/fm; %Tiempo requerido para recolectar las muestras
t=0:1/(fm-1):treq; %Vector de muestras a recolectar

%Señal a demodular
fmt=20;
mt=10*sin(2*pi*fmt*t).*exp(-0.5*t);
%mt=1+0.4*cos(2*pi*fmt*t);
fc=200;
yc=cos(2*pi*fc*t);

%Señal DSBSC-AM
s1=mt.*yc;

%Se inicia la etapa de demodulación


s2=s1.*(2*yc);

167
%Se pasa por un filtro pasobajo para obtener la señal demodulada
b1=fir1(70,2*fmt/(fm/2),'low');
h=filter(b1,1,s2);

%Se calcula la respuesta en frecuencia del filtro


[H f]=freqz(b1,1,2048,fm);
%************************************************************************

%************************************************************************
%Punto (2)
%************************************************************************
%Se grafican los resultados
figure(1)
subplot(3,1,1)
plot(t,mt);
title('Señal a modular');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
ylim([-15 15]);
grid on;

subplot(3,1,2)
plot(t,s1);
title('Señal modulada (Señal DSBSC-AM)');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
xlim([0 treq/4]);
grid on;

subplot(3,1,3)
plot(t,h);
title('Señal demodulada');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
ylim([-15 15]);
grid on;

figure(2)
subplot(2,1,1)
plot(f,20*log10(abs(H)+eps));
title('Respuesta en magnitud de un filtro FIR pasobajo N=70');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud (dB)');
grid on;

subplot(2,1,2)
plot(f,unwrap(angle(H)));
title('Respuesta de fase de un filtro FIR pasobajo N=70');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud (dB)');
grid on;

168
%************************************************************************

%************************************************************************
%Punto (3)
%************************************************************************
%Cálculo de la DFT utilzando la FFT
Nfft=2048;
Y=fft(s2,Nfft); %FFT de Nfft puntos para la entrada del filtro
Y2=fftshift(Y); %Reordenamiento de los valores de la FFT
norm2=max(abs(Y2)); %Para normalizar el espectro en magnitud

%Vector de frecuencias
M1=Nfft/2;
faux1(M1+1:Nfft)=0:M1-1; %Vector de frecuencias desordenado
faux1(1:M1)=-M1:-1; %Vector de frecuencias ordenado
f1=fm*faux1/(Nfft); %Vector de frecuencias normalizado

Y3=fft(h,Nfft); %FFT de Nfft puntos para la salida del filtro pasobajo


Y4=fftshift(Y3); %Reordenamiento de los valores de la FFT
norm2=max(abs(Y4)); %Para normalizar el espectro en magnitud

%Vector de frecuencias
M1=Nfft/2;
faux1(M1+1:Nfft)=0:M1-1; %Vector de frecuencias desordenado
faux1(1:M1)=-M1:-1; %Vector de frecuencias ordenado
f2=fm*faux1/(Nfft); %Vector de frecuencias normalizado

figure(3)
subplot(2,1,1);
plot(f1,abs(Y2)/max(abs(Y2)));
title('Espectro continuo en magnitud de la señal de entrada al filtro');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
xlim([-1000 1000]);
grid on;

subplot(2,1,2);
plot(f2,abs(Y4)/max(abs(Y4)));
title('Espectro continuo en magnitud de la señal de salida del filtro');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
xlim([-1000 1000]);
grid on;
%************************************************************************

169
%************************************************************************
%Punto (5)
%************************************************************************
%Señal modulada (AM)
s3=modulate(mt,fc,fm,'amdsb-sc'); %Señal modulada

%Demodulación (AM)
mreconst = 2*demod(s3,fc,fm,'amdsb-sc');
%************************************************************************

%************************************************************************
%Punto (6)
%************************************************************************
figure(4)
subplot(2,1,1);
plot(t,s3);
title('Señal modulada utilizando la función "modulate"');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
grid on;

subplot(2,1,2);
plot(t,mreconst);
title('Señal demodulada utilizando la función "demod"');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
grid on;

%Cálculo de la DFT utilzando la FFT


Nfft=2048;
Y=fft(s3,Nfft); %FFT de Nfft puntos para la señal modulada
Y2=fftshift(Y); %Reordenamiento de los valores de la FFT
norm2=max(abs(Y2)); %Para normalizar el espectro en magnitud

%Vector de frecuencias
M1=Nfft/2;
faux1(M1+1:Nfft)=0:M1-1; %Vector de frecuencias desordenado
faux1(1:M1)=-M1:-1; %Vector de frecuencias ordenado
f1=fm*faux1/(Nfft); %Vector de frecuencias normalizado

Y3=fft(mreconst,Nfft); %FFT de Nfft puntos para la señal reconstruida


Y4=fftshift(Y3); %Reordenamiento de los valores de la FFT
norm2=max(abs(Y4)); %Para normalizar el espectro en magnitud

%Vector de frecuencias
M1=Nfft/2;
faux1(M1+1:Nfft)=0:M1-1; %Vector de frecuencias desordenado
faux1(1:M1)=-M1:-1; %Vector de frecuencias ordenado
f2=fm*faux1/(Nfft); %Vector de frecuencias normalizado

170
figure(5)
subplot(2,1,1);
plot(f1,abs(Y2)/max(abs(Y2)));
title('Espectro continuo en magnitud de la señal modulada con
"modulate"');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
xlim([-1000 1000]);
grid on;

subplot(2,1,2);
plot(f2,abs(Y4)/max(abs(Y4)));
title('Espectro continuo en magnitud de la señal demodulada con
"demod"');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
xlim([-1000 1000]);
grid on;
%************************************************************************

171
A.5 Código fuente laboratorio de modulación SSB-AM

%************************************************************************
%LABORATORIO DE MODULACION SSB-AM
%************************************************************************

%************************************************************************
%REALIZADO POR: José Gabriel Fernández Carazo
% A21941
% Escuela de Ingeniería Eléctrica
% Facultad de Ingeniería
% Universidad de Costa Rica
%************************************************************************
%Ultima modificación: Julio del 2007.
%************************************************************************

%************************************************************************
%Se limpia el workspace de MATLAB y las variables en uso.
clc;
clear;
%************************************************************************

%************************************************************************
%MODULACION SSB-AM
%************************************************************************
%Punto (1) y (2)
%************************************************************************
%Modulación en amplitud de banda lateral con portadora suprimida
Nfft=1024; %Cantidad de puntos a calcular para la FFT
L_medio=500; %Mitad de la cantidad de muestras a recolectar
fm=8000; %Frecuencia de muestreo
treq=2*L_medio/fm; %Tiempo requerido para recolectar muestras
fs=((2*L_medio-1)/treq); %División de tiempo para recolectar muestras
t=0:1/fs:treq; %Vector de muestras a recolectar

%Vector de frecuencias para los espectros en frecuencia


M=Nfft/2;
faux(M+1:Nfft)=0:M-1; %Vector de frecuencias desordenado
faux(1:M)=-M:-1; %Vector de frecuencias ordenado
f=fm*faux/(Nfft); %Vector de frecuencias normalizado

%Parámetros de las señales a utilizar


fc=2000; %Frecuencia de la portadora
Ap=2; %Amplitud de la portadora
Am=0.5; %Amplitud de la señal a modular
fmt=600; %Frecuencia de la señal a modular

172
%Señal a modular
mt=Am*cos(2*pi*fmt*t);

%Señal portadora
yc=Ap*sin(2*pi*fc*t);

%Se crea una señal DSBSC-AM


at=mt.*yc;

%MODULACION SSB UTILIZANDO LA BANDA LATERAL INFERIOR


%Se pasa por un filtro pasobajo con frecuencia de corte igual a la
%portadora para dejar pasar solo las señales con frecuencias menores a la
%frecuencia de la portadora
w=fc; %Frecuencia de corte del filtro paso bajo
N1=64; %Orden del filtro
b1=fir1(N1,w/(fm/2),'low'); %Diseño del filtro
h1=filter(b1,1,at); %Se filtra la señal

%Se calcula la respuesta en frecuencia del filtro


[H1 f1]=freqz(b1,1,2048,fm);

%MODULACION SSB UTILIZANDO LA BANDA LATERAL SUPERIOR


%Se pasa por un filtro pasoalto con frecuencia de corte igual a la
%portadora para dejar pasar solo las señales con frecuencias mayores a la
%frecuencia de la portadora
w=fc; %Frecuencia de corte del filtro paso bajo
N2=64;
b2=fir1(N2,w/(fm/2),'high'); %Diseño del filtro
h2=filter(b2,1,at); %Se filtra la señal

%Se calcula la respuesta en frecuencia del filtro


[H2 f2]=freqz(b2,1,2048,fm);
%************************************************************************

%************************************************************************
%Punto (3)
%************************************************************************
%Se grafican las señales producidas por el generador
figure(1)
subplot(3,1,1);
plot(t,mt);
axis([0 treq -1 1]);
txt=strcat('Señal a modular con una frecuencia de ',num2str(fmt),' Hz');
title(txt);
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
txt=strcat('fmuestreo=',num2str(fs),' Hz');
legend(txt);
grid on;

173
subplot(3,1,2);
plot(t,yc);
xlim([0 treq/2]);
txt=strcat('Señal portadora con una frecuencia de ',num2str(fc),' Hz');
title(txt);
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
txt=strcat('fmuestreo=',num2str(fs),' Hz');
legend(txt);
grid on;

subplot(3,1,3);
plot(t,at);
axis([0 treq/2 -1 1]);
title('Señal DSBSC-AM generada');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
txt=strcat('fmuestreo=',num2str(fs),' Hz');
legend(txt);
grid on;

%Respuesta en frecuencia de los filtros pasobajo y paso alto


figure(2)
subplot(2,1,1)
plot(f1,20*log10(abs(H1)+eps),'-m');
txt=strcat('Respuesta en magnitud de un filtro FIR pasobajo N=
',num2str(N1));
title(txt);
xlabel('Frecuencia (Hz)');
ylabel('Magnitud (dB)');
txt=strcat('Frecuencia de corte ',num2str(w),' Hz');
legend(txt);
grid on;

subplot(2,1,2)
plot(f1,unwrap(angle(H1)),'-m');
txt=strcat('Respuesta de fase de un filtro FIR pasobajo N=
',num2str(N1));
title(txt);
xlabel('Frecuencia (Hz)');
ylabel('Magnitud (dB)');
txt=strcat('Frecuencia de corte ',num2str(w),' Hz');
legend(txt);
grid on;

figure(3)
subplot(2,1,1)
plot(f2,20*log10(abs(H2)+eps),'-r');
txt=strcat('Respuesta en magnitud de un filtro FIR pasoalto N=
',num2str(N2));
title(txt);

174
xlabel('Frecuencia (Hz)');
ylabel('Magnitud (dB)');
txt=strcat('Frecuencia de corte ',num2str(w),' Hz');
legend(txt);
grid on;

subplot(2,1,2)
plot(f2,unwrap(angle(H2)),'-r');
txt=strcat('Respuesta de fase de un filtro FIR pasoalto N=
',num2str(N2));
title(txt);
xlabel('Frecuencia (Hz)');
ylabel('Magnitud (dB)');
txt=strcat('Frecuencia de corte ',num2str(w),' Hz');
legend(txt);
grid on;

%Señales después de pasar por los filtros pasobajo y pasoalto


figure(4)
subplot(3,1,1);
plot(t,at);
xlim([0 treq/2]);
title('Señal DSBSC-AM generada');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
txt=strcat('fmuestreo=',num2str(fs),' Hz');
legend(txt);
grid on;

subplot(3,1,2);
plot(t,h1,'-m');
xlim([0 treq/2]);
title('Salida del filtro pasobajo selector de la banda lateral
inferior');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
legend('SSB banda lateral inferior');
grid on;

subplot(3,1,3);
plot(t,h2,'-r');
xlim([0 treq/2]);
title('Salida del filtro pasobajo selector de la banda lateral
superior');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
legend('SSB banda lateral superior');
grid on;
%************************************************************************

175
%************************************************************************
%Punto (4)
%************************************************************************
%CALCULO DE LOS ESPECTROS
%Cálculo de la DFT utilzando la FFT para la señal DSBSC-AM
Y1=fft(at,Nfft); %FFT de Nfft puntos
Y1=fftshift(Y1); %Reordenamiento de los valores de la FFT
norm1=max(abs(Y1)); %Para normalizar el espectro en magnitud
Yf1=unwrap(angle(Y1)); %Cálculo de las componentes de fase

%Cálculo de la DFT utilzando la FFT para la salida del filtro pasobajo


%selector de la banda lateral inferior
Y2=fft(h1,Nfft); %FFT de Nfft puntos
Y2=fftshift(Y2); %Reordenamiento de los valores de la FFT
norm2=max(abs(Y2)); %Para normalizar el espectro en magnitud
Yf2=unwrap(angle(Y2)); %Cálculo de las componentes de fase

%Cálculo de la DFT utilzando la FFT para la salida del filtro pasoalto


Y3=fft(h2,Nfft); %FFT de Nfft puntos
Y3=fftshift(Y3); %Reordenamiento de los valores de la FFT
norm3=max(abs(Y3)); %Para normalizar el espectro en magnitud
Yf3=unwrap(angle(Y3)); %Cálculo de las componentes de fase

%Espectros de frecuencia de las señales


figure(5)
subplot(3,1,1);
plot(f,abs(Y1)/norm1)
title('Espectro continuo en magnitud de la señal de entrada');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;

subplot(3,1,2);
plot(f,abs(Y2)/norm2,'-m');
title('Espectro continuo en magnitud de la señal SSB de banda lateral
inferior');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;

subplot(3,1,3);
plot(f,abs(Y3)/norm3,'-r');
title('Espectro continuo en magnitud de la señal SSB de banda lateral
superior');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');

176
legend(txt);
grid on;

figure(6)
subplot(3,1,1);
plot(f,Yf1);
title('Espectro continuo de fase de la señal de entrada');
xlabel('Frecuencia (Hz)');
ylabel('Fase (rads)');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;

subplot(3,1,2);
plot(f,Yf2,'-m');
title('Espectro continuo de fase de la señal SSB de banda lateral
inferior');
xlabel('Frecuencia (Hz)');
ylabel('Fase (rads)');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;

subplot(3,1,3);
plot(f,Yf3,'-r');
title('Espectro continuo de fase de la señal SSB de banda lateral
superior');
xlabel('Frecuencia (Hz)');
ylabel('Fase (rads)');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;
%************************************************************************

%************************************************************************
%DEMODULACION SSB-AM
%************************************************************************
%Punto (1) y (2)
%************************************************************************
%Se implementa el modulador de la figura 3.7 del laboratorio

%DEMODULACION SSB DE BANDA LATERAL INFERIOR


mssbinf=h1;

%Se modula la señal por la portadora nuevamente


a2t=mssbinf.*yc;

%Luego esta señal se pasa por un filtro pasobajo con una frecuencia de
%corte de tal manera que deje pasar la señal original
N3=64;
b3=fir1(N3,fmt/(fm/2),'low');

177
h3=filter(b3,1,a2t);

%Se calcula la respuesta en frecuencia del filtro


[H3 f3]=freqz(b3,1,2048,fm);

%DEMODULACION SSB DE BANDA LATERAL SUPERIOR


mssbsup=h2;

%Se modula la señal por la portadora nuevamente


a3t=mssbsup.*yc;

%Luego esta señal se pasa por un filtro pasobajo con una frecuencia de
%corte de tal manera que deje pasar la señal original
h4=filter(b3,1,a3t);
%************************************************************************

%************************************************************************
%Punto (3)
%************************************************************************
figure(7)
subplot(3,1,1);
plot(t,mt);
axis([0 treq/2 -1 1]);
txt=strcat('Señal a modular con una frecuencia de ',num2str(fmt),' Hz');
title(txt);
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
txt=strcat('fmuestreo=',num2str(fs),' Hz');
legend(txt);
grid on;

subplot(3,1,2);
plot(t,h3);
xlim([0 treq/2]);
title('Señal reconstruida a partir de una señal SSB de banda lateral
inferior');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
legend('Señal reconstruida por SSB inferior');
grid on;

subplot(3,1,3);
plot(t,h4);
xlim([0 treq/2]);
title('Señal reconstruida a partir de una señal SSB de banda lateral
superior');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
legend('Señal reconstruida por SSB superior');
grid on;

178
%Respuesta en frecuencia de los filtros pasobajo y paso alto
figure(8)
subplot(2,1,1)
plot(f3,20*log10(abs(H3)+eps),'-m');
txt=strcat('Respuesta en magnitud de un filtro FIR pasobajo N=
',num2str(N3));
title(txt);
xlabel('Frecuencia (Hz)');
ylabel('Magnitud (dB)');
txt=strcat('Frecuencia de corte ',num2str(fmt),' Hz');
legend(txt);
grid on;

subplot(2,1,2)
plot(f3,unwrap(angle(H3)),'-m');
txt=strcat('Respuesta de fase de un filtro FIR pasobajo N=
',num2str(N3));
title(txt);
xlabel('Frecuencia (Hz)');
ylabel('Magnitud (dB)');
txt=strcat('Frecuencia de corte ',num2str(fmt),' Hz');
legend(txt);
grid on;
%************************************************************************

%************************************************************************
%Punto (4)
%************************************************************************
%CALCULO DE LOS ESPECTROS
%Cálculo de la DFT utilzando la FFT para la señal a modular
Y4=fft(mt,Nfft); %FFT de Nfft puntos para la señal "mt"
Y4=fftshift(Y4); %Reordenamiento de los valores de la FFT
norm4=max(abs(Y4)); %Para normalizar el espectro en magnitud
Yf4=unwrap(angle(Y4)); %Cálculo de las componentes de fase

%Cálculo de la DFT utilzando la FFT para la salida del filtro pasobajo


%selector de la banda lateral inferior
Y5=fft(h3,Nfft); %FFT de Nfft puntos
Y5=fftshift(Y5); %Reordenamiento de los valores de la FFT
norm5=max(abs(Y5)); %Para normalizar el espectro en magnitud
Yf5=unwrap(angle(Y5)); %Cálculo de las componentes de fase

%Cálculo de la DFT utilzando la FFT para la señal DSBSC-AM


Y6=fft(h4,Nfft); %FFT de Nfft puntos
Y6=fftshift(Y6); %Reordenamiento de los valores de la FFT
norm6=max(abs(Y6)); %Para normalizar el espectro en magnitud
Yf6=unwrap(angle(Y6)); %Cálculo de las componentes de fase

179
%Espectros de frecuencia de las señales
figure(9)
subplot(3,1,1)
plot(f,abs(Y4)/norm4)
title('Espectro continuo en magnitud de la señal de entrada');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;

subplot(3,1,2)
plot(f,abs(Y5)/norm5,'-m')
title('Espectro continuo en magnitud de la señal por demodulación SSB de
banda lateral inferior');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;

subplot(3,1,3)
plot(f,abs(Y6)/norm6,'-r')
title('Espectro continuo en magnitud de la señal por demodulación SSB de
banda lateral superior');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;

figure(10)
subplot(3,1,1);
plot(f,Yf4);
title('Espectro continuo de fase de la señal de entrada');
xlabel('Frecuencia (Hz)');
ylabel('Fase (rads)');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;

subplot(3,1,2);
plot(f,Yf5,'-m');
title('Espectro continuo de fase de la señal SSB de banda lateral
inferior');
xlabel('Frecuencia (Hz)');
ylabel('Fase (rads)');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;

180
subplot(3,1,3);
plot(f,Yf6,'-r');
title('Espectro continuo de fase de la señal SSB de banda lateral
superior');
xlabel('Frecuencia (Hz)');
ylabel('Fase (rads)');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;
%************************************************************************

181
A.6 Código fuente laboratorio de modulación FM

%************************************************************************
%LABORATORIO DE MODULACION FM
%************************************************************************

%************************************************************************
%REALIZADO POR: José Gabriel Fernández Carazo
% A21941
% Escuela de Ingeniería Eléctrica
% Facultad de Ingeniería
% Universidad de Costa Rica
%************************************************************************
%Ultima modificación: Julio del 2007.
%************************************************************************

%************************************************************************
%Se limpia el workspace de MATLAB y las variables en uso.
clc;
clear;
%************************************************************************

%************************************************************************
%MODULACION FM
%************************************************************************
%Punto (1)
%************************************************************************
L_medio=1000; %Mitad de la cantidad de muestras a recolectar
Nfft=2048; %Cantidad de puntos para calcular la FFT
fm=80000; %Frecuencia de muesreo según Nyquist
treq=2*L_medio/fm; %Tiempo requerido para recolectar L muestras
fs=((2*L_medio-1)/treq); %División de tiempo para recolectar L muestras
n=0:1/fs:treq; %Vector de muestras a recolectar
t1=0:length(n)-1; %Vector en cantidad de muestras recolectadas

%Vector de frecuencias para los espectros en frecuencia


M=Nfft/2;
faux(M+1:Nfft)=0:M-1; %Vector de frecuencias desordenado
faux(1:M)=-M:-1; %Vector de frecuencias ordenado
f=fm*faux/(Nfft); %Vector de frecuencias normalizado

%Se genera la señal a modular


Am=1; %Amplitud de la señal a modular
wm=2*pi*100; %Frecuencia de la señal a modular
phi=0; %Fase de la señal a modular
mt=Am*cos(wm*n+phi); %Señal a modular

182
%Parametros necesarios para la modulación FM
beta=5; %Indice de modulación
kw=beta*wm/Am; %Desviación de frecuencia
phi=-pi/2; %Se desfasa la señal
mt1=Am*cos(wm*n+phi); %Se utiliza la señal original para generar el
desf=beta*mt1; %Desfase de la portadora

%Se genera la señal FM


Ac=1; %Amplitud de la señal portadora
wc=2*pi*1000; %Frecuencia de la señal portadora
st=Ac*cos(wc*n+desf); %Señal FM
%************************************************************************

%************************************************************************
%Punto (2)
%************************************************************************
%Se grafican la señal a modular y la señal FM
figure(1);
subplot(2,1,1);
plot(t1,mt);
title('Señal de entrada original');
xlabel('Tiempo (Cantidad de muestras)');
ylabel('m(t)');
txtp=strcat('fn = ',num2str(fs),' Hz');
legend(txtp);
grid on;

subplot(2,1,2);
plot(t1,st);
title('Señal FM generada a partir de m(t)');
xlabel('Tiempo (Cantidad de muestras)');
ylabel('s(t)');
txtp=strcat('fn = ',num2str(fs),' Hz');
legend(txtp);
grid on;
%************************************************************************

%************************************************************************
%Punto (3)
%************************************************************************
%CALCULO DE LOS ESPECTROS
%Cálculo de la DFT utilzando la FFT para la señal FM
Y1=fft(st,Nfft); %FFT de Nfft puntos para la señal FM
Y1=fftshift(Y1); %Reordenamiento de los valores de la FFT
norm1=max(abs(Y1)); %Para normalizar el espectro en magnitud
Yf1=unwrap(angle(Y1)); %Cálculo de las componentes de fase de la
señal

figure(2)
%subplot(3,1,1)
plot(f,abs(Y1)/norm1);

183
title('Espectro continuo en magnitud de la señal de entrada');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
xlim([-1*10000 1*10000]);
grid on;
%************************************************************************

%************************************************************************
%Punto (4)
%************************************************************************
%Modulación FM utilizando "modulate"
%Se utiliza la misma señal del punto (1)
%Señal modulada (FM)
indk=0.039;
gfm = modulate(mt,wc/(2*pi),fm,'fm',indk);
%************************************************************************

%************************************************************************
%Punto (5)
%************************************************************************
%Representación gráfica de las señales
figure(3);
subplot(2,1,1);
plot(n,mt);
txt=strcat('Señal a modular m(t) (f=',num2str(wm/(2*pi)),' Hz)');
title(txt);
xlabel('Tiempo (segundos)');
ylabel('m(t)');
txt=strcat('fn = ',num2str(fs),' Hz');
legend(txt);
grid on;

subplot(2,1,2);
plot(n,gfm);
txt1=strcat('Señal FM generada a partir de m(t) (\beta =
',num2str(beta),' fc= ',num2str(wc/(2*pi)),' Hz)');
title(txt1);
xlabel('Tiempo (segundos)');
ylabel('s(t)');
txt2=strcat('fn = ',num2str(fs),' Hz');
legend(txt2);
grid on;
%************************************************************************

%************************************************************************
%Punto (6)
%************************************************************************
%Modulación FM utilizando "modulate" para difrentes índices de modulación
%Se utiliza la misma señal del punto (1)

184
%Señal modulada (FM)
indk=[0.1 0.09 0.5];

gfm1 = modulate(mt,wc/(2*pi),fm,'fm',indk(1));
gfm2 = modulate(mt,wc/(2*pi),fm,'fm',indk(2));
gfm3 = modulate(mt,wc/(2*pi),fm,'fm',indk(3));
%************************************************************************

%************************************************************************
%Punto (7)
%************************************************************************
%Representación gráfica de las señales
figure(4);
subplot(3,1,1);
plot(n,gfm1);
xlim([0 treq/2]);
txt1=strcat('Señal FM generada utilizando "modulate" (con opt=
',num2str(indk(1)),')');
title(txt1);
xlabel('Tiempo (segundos)');
ylabel('m(t)');
txt=strcat('fn = ',num2str(fs),' Hz');
legend(txt);
grid on;

subplot(3,1,2);
plot(n,gfm2);
txt1=strcat('Señal FM generada utilizando "modulate" (con opt=
',num2str(indk(2)),')');
title(txt1);
xlabel('Tiempo (segundos)');
ylabel('s(t)');
txt2=strcat('fn = ',num2str(fs),' Hz');
legend(txt2);
grid on;

subplot(3,1,3);
plot(n,gfm3);
xlim([0 treq/2]);
txt1=strcat('Señal FM generada utilizando "modulate" (con opt=
',num2str(indk(3)),')');
title(txt1);
xlabel('Tiempo (segundos)');
ylabel('s(t)');
txt2=strcat('fn = ',num2str(fs),' Hz');
legend(txt2);
grid on;
%************************************************************************

185
%************************************************************************
%Punto (8)
%************************************************************************
%Demodulación FM utilizando la función "demod"
rmt=27*demod(st,wc/(2*pi),fm,'fm');
rmt1=5*demod(gfm1,wc/(2*pi),fm,'fm');
rmt2=5*demod(gfm2,wc/(2*pi),fm,'fm');
rmt3=5*demod(gfm3,wc/(2*pi),fm,'fm');
%************************************************************************

%************************************************************************
%Punto (9)
%************************************************************************
%Representación gráfica de las señales
figure(5);
subplot(4,1,1);
plot(n,rmt,n,mt);
txt1=strcat('Señal reconstruida utilizando "demod" (con opt=
',num2str(0.039),')');
title(txt1);
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
legend('Señal reconstruida','Señal original');
grid on;

subplot(4,1,2);
plot(n,rmt1,n,mt);
txt1=strcat('Señal reconstruida utilizando "demod" (con opt=
',num2str(indk(1)),')');
title(txt1);
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
legend('Señal reconstruida','Señal original');
grid on;

subplot(4,1,3);
plot(n,rmt2,n,mt);
txt1=strcat('Señal reconstruida utilizando "demod" (con opt=
',num2str(indk(2)),')');
title(txt1);
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
legend('Señal reconstruida','Señal original');
grid on;

186
subplot(4,1,4);
plot(n,rmt3,n,mt);
txt1=strcat('Señal reconstruida utilizando "demod" (con opt=
',num2str(indk(3)),')');
title(txt1);
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
legend('Señal reconstruida','Señal original');
grid on;
%************************************************************************

%************************************************************************
%Punto (10)
%************************************************************************
%CALCULO DE LOS ESPECTROS
%Cálculo de la DFT utilzando la FFT para la señal gfm1
Y2=fft(gfm1,Nfft); %FFT de Nfft puntos para la señal FM
Y2=fftshift(Y2); %Reordenamiento de los valores de la FFT
norm2=max(abs(Y2)); %Para normalizar el espectro en magnitud
Yf2=unwrap(angle(Y2)); %Cálculo de las componentes de fase de la señal

%Cálculo de la DFT utilzando la FFT para la señal gfm2


Y3=fft(gfm2,Nfft); %FFT de Nfft puntos para la señal FM
Y3=fftshift(Y3); %Reordenamiento de los valores de la FFT
norm3=max(abs(Y3)); %Para normalizar el espectro en magnitud
Yf3=unwrap(angle(Y3)); %Cálculo de las componentes de fase de la señal

%Cálculo de la DFT utilzando la FFT para la señal gfm3


Y4=fft(gfm3,Nfft); %FFT de Nfft puntos para la señal FM
Y4=fftshift(Y4); %Reordenamiento de los valores de la FFT
norm4=max(abs(Y4)); %Para normalizar el espectro en magnitud
Yf4=unwrap(angle(Y4)); %Cálculo de las componentes de fase de la señal

%se grafican los espectros en frecuencia para cada señal


figure(6)
subplot(3,1,1)
plot(f,abs(Y2)/norm2);
txt=strcat('Espectro continuo en magnitud de la señal FM (con
opt=',num2str(indk(1)),')');
title(txt);
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
xlim([-1*10000 1*10000]);
grid on;

187
subplot(3,1,2)
plot(f,abs(Y3)/norm3);
txt=strcat('Espectro continuo en magnitud de la señal FM (con
opt=',num2str(indk(2)),')');
title(txt);
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
xlim([-1*10000 1*10000]);
grid on;

subplot(3,1,3)
plot(f,abs(Y4)/norm4);
txt=strcat('Espectro continuo en magnitud de la señal FM (con
opt=',num2str(indk(3)),')');
title(txt);
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
xlim([-1*10000 1*10000]);
grid on;
%************************************************************************

188
A.7 Código fuente laboratorio de modulación PAM

%************************************************************************
%LABORATORIO DE MODULACION PAM
%************************************************************************

%************************************************************************
%REALIZADO POR: José Gabriel Fernández Carazo
% A21941
% Escuela de Ingeniería Eléctrica
% Facultad de Ingeniería
% Universidad de Costa Rica
%************************************************************************
%Ultima modificación: Julio del 2007.
%************************************************************************

%************************************************************************
%Se limpia el workspace de MATLAB y las variables en uso.
clc;
clear;
%************************************************************************

%************************************************************************
%MODULACION Y DEMODULACION PAM
%************************************************************************
%Punto (1)
%************************************************************************
L_medio=500; %Mitad de la cantidad de muestras a recolectar
Nfft=2048; %Cantidad de puntos para calcular la FFT
fm=1000; %Frecuencia de muesreo según Nyquist
treq=2*L_medio/fm; %Tiempo requerido para recolectar L muestras
fs=((2*L_medio-1)/treq); %División de tiempo para recolectar L muestras
n=0:1/fs:treq; %Vector de muestras a recolectar
num_n=0:length(n)-1; %Vector en cantidad de muestras recolectadas

%Vector de frecuencias para los espectros en frecuencia


M=Nfft/2;
faux(M+1:Nfft)=0:M-1; %Vector de frecuencias desordenado
faux(1:M)=-M:-1; %Vector de frecuencias ordenado
f=fm*faux/(Nfft); %Vector de frecuencias normalizado

%Señal a modular
Am=10;
wm=4*pi;
ym=Am*cos(wm*n);

%Luego se añade un nivel DC a la señal anterior


ymdc=ym+max(abs(ym));

189
%Tren de pulsos o cuantificador
pulsos=(square(2*pi*30*n,25)+1)/2;

%Luego se obtiene la señal modulada por amplitud de pulsos


spam=ymdc.*pulsos;
%************************************************************************

%************************************************************************
%Punto (2)
%************************************************************************
%Se grafican los resultados
figure(1)
subplot(3,1,1);
plot(n,ym);
title('Señal a modular');
xlabel('Tiempo (segundos)');
ylabel('m(t)');
txt=strcat('fmuestreo= ',num2str(fm),' Hz');
legend(txt);
grid on;

subplot(3,1,2);
plot(n,pulsos);
title('Tren de pulsos o cuantificador');
xlabel('Tiempo (segundos)');
ylabel('g(t)');
txt=strcat('fmuestreo= ',num2str(fm),' Hz');
legend(txt);
grid on;

subplot(3,1,3)
plot(n,spam);
title('Señal modulada empleando modulación por amplitud de pulsos');
xlabel('Tiempo (segundos)');
ylabel('s(t)');
txt=strcat('fmuestreo= ',num2str(fm),' Hz');
legend(txt);
grid on;

%Cálculo de la DFT utilzando la FFT para la señal a modular


Y1=fft(ym,Nfft); %FFT de Nfft puntos
Y1=fftshift(Y1); %Reordenamiento de los valores de la FFT
norm1=max(abs(Y1)); %Para normalizar el espectro en magnitud
Yf1=unwrap(angle(Y1)); %Cálculo de las componentes de fase de la señal

%Cálculo de la DFT utilzando la FFT para la señal modulada


Y2=fft(spam,Nfft); %FFT de Nfft puntos
Y2=fftshift(Y2); %Reordenamiento de los valores de la FFT
norm2=max(abs(Y2)); %Para normalizar el espectro en magnitud
Yf2=unwrap(angle(Y2)); %Cálculo de las componentes de fase de la señal

190
%Grafica del espectro de frecuencia de la señal a modular
figure(2)
subplot(2,1,1);
plot(f,abs(Y1)/norm1);
title('Espectro continuo en magnitud de la señal a modular');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
xlim([-50 50]);
grid on;

subplot(2,1,2);
plot(f,Yf1);
title('Espectro continuo de fase de la señal a modular');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
xlim([-50 50]);
grid on;

%Grafica del espectro de frecuencia de la señal modulada


figure(3)
subplot(2,1,1);
plot(f,abs(Y2)/norm2);
title('Espectro continuo en magnitud de la señal modulada');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;

subplot(2,1,2);
plot(f,Yf2);
title('Espectro continuo de fase de la señal a modulada');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;
%************************************************************************

%************************************************************************
%Punto (3)
%************************************************************************
%Ejemplo simple de cuantificación
partition = [0,1,3]; %Criterio de evaluación de muestras
codebook = [-1,0.5,2,3]; %Niveles de cuantifficación o símbolos
samp = [-2.4,-1,-0.2,0,0.2,1,1.2,1.9,2,2.9,3,3.5,5]; %Muestras

191
[index,quantized] = quantiz(samp,partition,codebook); %Cuantificador
index %Muestra el nivel otorgado
quantized %Muestras cuantificadas
%************************************************************************

%************************************************************************
%Punto (4)
%************************************************************************
L_medio=200; %Mitad de la cantidad de muestras a recolectar
Nfft=2048; %Cantidad de puntos para calcular la FFT
fm=4000; %Frecuencia de muesreo según Nyquist
treq=2*L_medio/fm; %Tiempo requerido para recolectar L muestras
fs=((2*L_medio-1)/treq); %División de tiempo para recolectar L muestras
n1=0:1/fs:treq; %Vector de muestras a recolectar

%Muestreo de la señal a modular


Am=15;
wm=2*pi*100;
ym1=Am*sin(wm*n1);

%Se añade un nivel DC suficiente para no tener valores negativos


ym1dc=ym1+max(abs(ym1));

%CUANTIFICACION
%Se define la partición
a=round(max(ym1dc));
particion = [0:1:a-1]; %La longitud de la partición debe ser una
%unidad menor que le codebook
simbolos = [0:1:a]; %Niveles de cuantioficación o símbolos

%Cuantificación
[intervalos,sencuant] = quantiz(ym1dc,particion,simbolos);
%************************************************************************

%************************************************************************
%Punto (5)
%************************************************************************
%Modualción PAM utilizando pammod
b=[4 8 16 32 64 128 256 512]; %Niveles en potencia de 2
L=length(b);

%Búsqueda del M apropiado dependiendo de la amplitud de la señal una vez


%cuantificada
M=0; %Inicialización de M
i=1;
while M==0
if b(i)>a
M=b(i)
end
i=i+1;
end

192
%Modulación PAM
spam1=pammod(sencuant,M);
%************************************************************************

%************************************************************************
%Punto (6)
%************************************************************************
%se grafican los resultados
figure(4)
subplot(3,1,1);
plot(n1,ym1);
title('Señal a modular');
xlabel('Tiempo (segundos)');
ylabel('m(t)');
txt=strcat('fmuestreo= ',num2str(fm),' Hz');
legend(txt);
xlim([0 treq/3])
grid on;

subplot(3,1,2);
plot(n1,sencuant,'-xb');
hold on;
stem(n1,sencuant,'.c');
hold off;
title('Señal muestreada y cuantificada');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
txt=strcat('fmuestreo= ',num2str(fm),' Hz');
legend(txt);
xlim([0 treq/3]);
grid on;

subplot(3,1,3);
plot(n1,real(spam1),'m');
txt=strcat('Señal modulada mediante la función "pammod". M=',num2str(M),'
símbolos.');
title(txt);
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
txt=strcat('fmuestreo= ',num2str(fm),' Hz');
legend(txt);
xlim([0 treq/3]);
grid on;
%************************************************************************

%************************************************************************
%Punto (7)
%************************************************************************
%Demodulación utilizando pamdemod
z=pamdemod(spam1,M);

193
%Se recupera la señal original eliminando el nivel DC
z1=z-max(abs(ym1));

%se grafican los resultados


figure(5)
subplot(2,1,1)
plot(n1,ym1)
title('Señal original');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
txt=strcat('fmuestreo= ',num2str(fm),' Hz');
legend(txt);
xlim([0 treq/3]);
grid on;

subplot(2,1,2)
plot(n1,z1,n1,ym1,':r')
title('Señal demodulada');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
legend('Señal reconstruida','Señal original');
xlim([0 treq/3]);
grid on;
%************************************************************************

%************************************************************************
%Punto (8)
%************************************************************************
%Cálculo de la DFT utilzando la FFT para la señal modulada
Y3=fft(spam1,Nfft); %FFT de Nfft puntos
Y3=fftshift(Y3); %Reordenamiento de los valores de la FFT
norm3=max(abs(Y3)); %Para normalizar el espectro en magnitud
Yf3=unwrap(angle(Y3)); %Cálculo de las componentes de fase de la señal

figure(6)
subplot(2,1,1);
plot(f,abs(Y3)/norm3);
title('Espectro continuo en magnitud de la señal modulada');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;

subplot(2,1,2);
plot(f,Yf3,'m');
title('Espectro continuo de fase de la señal a modulada');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');

194
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;

%Cálculo de la DFT utilzando la FFT para la señal demodulada


Y4=fft(z1,Nfft); %FFT de Nfft puntos
Y4=fftshift(Y4); %Reordenamiento de los valores de la FFT
norm4=max(abs(Y4)); %Para normalizar el espectro en magnitud
Yf4=unwrap(angle(Y4)); %Cálculo de las componentes de fase de la señal

figure(7)
subplot(2,1,1);
plot(f,abs(Y4)/norm3);
title('Espectro continuo en magnitud de la señal demodulada');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;

subplot(2,1,2);
plot(f,Yf4,'m');
title('Espectro continuo de fase de la señal a demodulada');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;
%************************************************************************

%************************************************************************
%Punto (9)
%************************************************************************
%Se obtiene un diagrama de ojo utilizando la función eyediagram
eyediagram(real(spam1),M);
title('Diagrama de Ojo para la señal PAM');
xlabel('Tiempo (s)');
ylabel('Amplitud');
grid on;
%************************************************************************

195
A.8 Código fuente laboratorio de modulación QAM

%************************************************************************
%LABORATORIO DE MODULACION QAM
%************************************************************************

%************************************************************************
%REALIZADO POR: José Gabriel Fernández Carazo
% A21941
% Escuela de Ingeniería Eléctrica
% Facultad de Ingeniería
% Universidad de Costa Rica
%************************************************************************
%Ultima modificación: Junio del 2007.
%************************************************************************

%************************************************************************
%Se limpia el workspace de MATLAB y las variables en uso.
clc;
clear;
%************************************************************************

%************************************************************************
%MODULACION QAM
%************************************************************************
%Punto (1)
%************************************************************************
%Variables iniciales
L_medio=200; %Mitad de la cantidad de muestras a recolectar
Nfft=2048; %Cantidad de puntos para calcular la FFT
fm=4000; %Frecuencia de muesreo según Nyquist
treq=2*L_medio/fm; %Tiempo requerido para recolectar L muestras
fs=((2*L_medio-1)/treq); %División de tiempo para recolectar L muestras
n1=0:1/fs:treq; %Vector de muestras a recolectar

%Muestreo de la señal a modular


Am=7;
wm1=2*pi*180;
wm2=2*pi*25;
ym1=Am*sin(wm1*n1);
ym2=Am*sin(wm2*n1);
ymt=ym1+ym2;

%Se añade un nivel DC suficiente para no tener valores negativos


ymtdc=ymt+max(abs(ymt));

196
%CUANTIFICACION
%Se define la partición
a=round(max(ymtdc));
particion = [0:1:a-1]; %La longitud de la partición debe ser una
%unidad menor que le codebook
simbolos = [0:1:a]; %Niveles de cuantificación o símbolos

%Cuantificación
[intervalos,sencuant] = quantiz(ymtdc,particion,simbolos);
%************************************************************************

%************************************************************************
%Punto (2)
%************************************************************************
%Grafica de la señal a modular
figure(1)
subplot(3,1,1);
plot(n1,ym1,'-r');
title('Señal con frecuencia 180 Hz');
xlabel('Tiempo (segundos)');
ylabel('m(t)');
txt=strcat('fmuestreo= ',num2str(fm),' Hz');
legend(txt);
grid on;

subplot(3,1,2);
plot(n1,ym2,'-g');
title('Señal con frecuencia 25 Hz');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
txt=strcat('fmuestreo= ',num2str(fm),' Hz');
legend(txt);
grid on;

subplot(3,1,3);
plot(n1,ymt);
title('Señal a modular');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
txt=strcat('fmuestreo= ',num2str(fm),' Hz');
legend(txt);
grid on;

%señal cuantificada
figure(2)
subplot(2,1,1);
plot(n1,ymt);
title('Señal a modular');
xlabel('Tiempo (segundos)');
ylabel('m(t)');
txt=strcat('fmuestreo= ',num2str(fm),' Hz');

197
legend(txt);
grid on;

subplot(2,1,2);
plot(n1,sencuant,'-xb');
hold on;
stem(n1,sencuant,'.r');
hold off;
title('Señal muestreada y cuantificada');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
txt=strcat('fmuestreo= ',num2str(fm),' Hz');
legend(txt);
xlim([0 treq/3]);
grid on;
%************************************************************************

%************************************************************************
%Punto (3)
%************************************************************************
%Modulación QAM utilizando qammod
b=[4 8 16 32 64 128 256 512]; %Niveles en potencia de 2
L=length(b);

%Búsqueda del M apropiado dependiendo de la amplitud de la señal una vez


%cuantificada
M=0; %Inicialización de M
i=1;
while M==0
if b(i)>a
M=b(i); %Asignación de un M
end
i=i+1;
end

%Modulación QAM
sqam=qammod(sencuant,M);

%grafica de la señal en cuadratura y fase


figure(3)
subplot(2,1,1);
plot(real(sqam),'-g');
title('Señal QAM en cuadratura');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
grid on;

subplot(2,1,2);
plot(imag(sqam),'-m');
title('Señal QAM en fase');
xlabel('Tiempo (segundos)');

198
ylabel('Amplitud');
grid on;
%************************************************************************

%************************************************************************
%Punto (4)
%************************************************************************
%Señal QAM transmitida
ytx = sqam;

%Simulación de un canal AWGN


%Se envia la señal través de este canal
k=log2(M);
EbNo = 10; %Tasa de energía de la densidad de energía espectral dB
snr = EbNo + 10*log10(k) - 10*log10(1);%Tasa de ruido por muestra
ynoisy = awgn(ytx,snr,'measured'); %Se genera la nueva señal con ruido
%************************************************************************

%************************************************************************
%Punto (5)
%************************************************************************
%La nueva señal es recibida
yrx = ynoisy;

%Se analiza la señal QAM utilizando un diagrama de constelación M valores


h=scatterplot(yrx,1,0,'g.');
hold on;
scatterplot(ytx,1,0,'k*',h);
title('Señal QAM');
ylabel('En Cuadratura');
xlabel('En Fase');
legend('Señal con ruido','Señal sin ruido',4);
grid on;
hold off;
%************************************************************************

%************************************************************************
%Punto (6)
%************************************************************************
%Demodulación QAM utilizando "qamdemod"

%Se demodula la señal sin ruido


z1=qamdemod(ytx,M);
z1=z1-max(abs(ymt));

%Se demodula la señal con ruido


z2=qamdemod(yrx,M);
z2=z2-max(abs(ymt));

199
figure(5)
subplot(2,1,1)
plot(n1,z1,n1,ymt);
title('Señal demodulada a partir de una señal QAM sin ruido');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
legend('Señal reconstruida','Señal original');
grid on;

subplot(2,1,2)
plot(n1,z2,n1,ymt);
title('Señal demodulada a partir de una señal QAM con ruido');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
legend('Señal reconstruida','Señal original');
grid on;
%************************************************************************

%************************************************************************
%Punto (7)
%************************************************************************
%Vector de frecuencias para los espectros en frecuencia
M=Nfft/2;
faux(M+1:Nfft)=0:M-1; %Vector de frecuencias desordenado
faux(1:M)=-M:-1; %Vector de frecuencias ordenado
f=fm*faux/(Nfft); %Vector de frecuencias normalizado

%Cálculo de la DFT utilzando la FFT para la señal a modular


Y1=fft(ymt,Nfft); %FFT de Nfft puntos
Y1=fftshift(Y1); %Reordenamiento de los valores de la FFT
norm1=max(abs(Y1)); %Para normalizar el espectro en magnitud
Yf1=unwrap(angle(Y1)); %Cálculo de las componentes de fase de la señal

%Cálculo de la DFT utilzando la FFT para la señal modulada sin ruido


Y2=fft(ytx,Nfft); %FFT de Nfft puntos
Y2=fftshift(Y2); %Reordenamiento de los valores de la FFT
norm2=max(abs(Y2)); %Para normalizar el espectro en magnitud
Yf2=unwrap(angle(Y2)); %Cálculo de las componentes de fase de la señal

%Cálculo de la DFT utilzando la FFT para la señal modulada con ruido


Y3=fft(yrx,Nfft); %FFT de Nfft puntos
Y3=fftshift(Y3); %Reordenamiento de los valores de la FFT
norm3=max(abs(Y3)); %Para normalizar el espectro en magnitud
Yf3=unwrap(angle(Y3)); %Cálculo de las componentes de fase de la señal

%Cálculo de la DFT utilzando la FFT para la señal demodulada sin ruido


Y4=fft(z1,Nfft); %FFT de Nfft puntos
Y4=fftshift(Y4); %Reordenamiento de los valores de la FFT
norm4=max(abs(Y4)); %Para normalizar el espectro en magnitud
Yf4=unwrap(angle(Y4)); %Cálculo de las componentes de fase de la señal

200
%Cálculo de la DFT utilzando la FFT para la señal demodulada con ruido
Y5=fft(z2,Nfft); %FFT de Nfft puntos
Y5=fftshift(Y5); %Reordenamiento de los valores de la FFT
norm5=max(abs(Y5)); %Para normalizar el espectro en magnitud
Yf5=unwrap(angle(Y5)); %Cálculo de las componentes de fase de la señal

%Grafica del espectro de frecuencia de la señal a modular


figure(6)
subplot(2,1,1);
plot(f,abs(Y1)/norm1);
title('Espectro continuo en magnitud de la señal a modular');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;

subplot(2,1,2);
plot(f,Yf1);
title('Espectro continuo de fase de la señal a modular');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;

%Grafica del espectro de frecuencia de la señal modulada sin ruido


figure(7)
subplot(2,1,1);
plot(f,abs(Y2)/norm2);
title('Espectro continuo en magnitud de la señal QAM sin ruido');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;

subplot(2,1,2);
plot(f,Yf2);
title('Espectro continuo de fase de la señal QAM sin ruido');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;

201
%Grafica del espectro de frecuencia de la señal modulada con ruido
figure(8)
subplot(2,1,1);
plot(f,abs(Y3)/norm3);
title('Espectro continuo en magnitud de la señal QAM con ruido');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;

subplot(2,1,2);
plot(f,Yf3);
title('Espectro continuo de fase de la señal QAM con ruido');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;

%Grafica del espectro de frecuencia de la señal demodulada sin ruido


figure(9)
subplot(2,1,1);
plot(f,abs(Y4)/norm4);
title('Espectro continuo en magnitud de la señal demodulada sin ruido');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;

subplot(2,1,2);
plot(f,Yf4);
title('Espectro continuo de fase de la señal demodulada sin ruido');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;

%Grafica del espectro de frecuencia de la señal demodulada con ruido


figure(10)
subplot(2,1,1);
plot(f,abs(Y5)/norm5);
title('Espectro continuo en magnitud de la señal demodulada con ruido');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;

202
subplot(2,1,2);
plot(f,Yf5);
title('Espectro continuo de fase de la señal demodulada con ruido');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;
%************************************************************************

203
APÉNDICE B: Diagramas de bloques de los ejercicios de simulación en

SIMULINK

B.1 Simulación: laboratorio de filtros digitales

************************************************************************
LABORATORIO DE FILTROS DIGITALES
************************************************************************
REALIZADO POR: José Gabriel Fernández Carazo
A21941
Escuela de Ingeniería Eléctrica
Facultad de Ingeniería
Universidad de Costa Rica
************************************************************************
Ultima modificación: Julio del 2007.
************************************************************************

Onda de 720 Hz
FDATool

Onda de 1440 Hz Zero-Order Salida del filtro


Add Hold Filtro FIR N=64 pasabanda FIR
Hamming

Onda de 3000 Hz

FDATool
Señales Señal completa

Onda de 120 Hz
Salida del filtro
Filtro pasabanda IIR N=6 pasabanda
Chebyshev Tipo I
Onda de 400 Hz Zero-Order
Hold1 FDATool
Add1

Onda de 680 Hz Salida del filtro


Filtro rechaza banda IIR N=6 rechaza banda
Chebyshev Tipo I1
Señales1 Señal completa1

204
B.2 Simulación: laboratorio de FFT

************************************************************************
LABORATORIO FFT
************************************************************************
REALIZADO POR: José Gabriel Fernández Carazo
A21941
Escuela de Ingeniería Eléctrica
Facultad de Ingeniería
Universidad de Costa Rica
************************************************************************
Ultima modificación: Julio del 2007.
************************************************************************

Señal de entrada

B-FFT
Espectro de la señal de entrada

FDATool
Salida del filtro pasoabajo
Onda de 1500 Hz Salida f iltro pasobajo

Filtro Pasobajo FIR


N=36 Hamming B-FFT
Onda de 175 Hz
Espectro de la salida del filtro pasobajo
Zero-Order
Hold
Onda de 1200 Hz FDATool
Salida del filtro pasabanda
Salida f iltro pasabanda

Onda de 2325 Hz
Filtro FIR N=36
Pasabanda Kaiser B-FFT
Espectro de la salida del filtro pasabanda

FDATool
Salida del filtro pasoalto
Salida f iltro pasoalto

Filtro FIR N=36


Pasoalto Hamming B-FFT
Espectro de la salida del filtro pasoalto

205
B.3 Simulación: laboratorio de modulación AM

************************************************************************
LABORATORIO MODULACION AM
************************************************************************
REALIZADO POR: José Gabriel Fernández Carazo
A21941
Escuela de Ingeniería Eléctrica
Facultad de Ingeniería
Universidad de Costa Rica
************************************************************************
Ultima modificación: Julio del 2007.
************************************************************************

Señal a modular1 Seña a modular


B-FFT
Zero-Order
Hold2 Espectro de la señal a modular

Señal a modular

0.5 Product Zero-Order


Modulador Señal modulada
Hold
ka

Nivel DC Señal portadora

Zero-Order
Hold1

Detector de envolvente de Ley Cuadrática

FDATool
Señal reconstruida 1.7-1.7z-1 2
sqrt u
2-1.4z-1
Señal reconstruida Filtro pasoalto para eliminar DC Raíz cuadrada1 Elevador
Filtro FIR pasobajo
N=36 Hamming

B-FFT
Espectro de la salida Raíz cuadrada Salida del filtro
del filtro paso alto pasobajo

206
B.4 Simulación: laboratorio de modulación DSBSC-AM

************************************************************************
LABORATORIO MODULACION DSBSC-AM
************************************************************************
REALIZADO POR: José Gabriel Fernández Carazo
A21941
Escuela de Ingeniería Eléctrica
Facultad de Ingeniería
Universidad de Costa Rica
************************************************************************
Ultima modificación: Julio del 2007.
************************************************************************

Sen de 20Hz Zero-Order Señal a modular


Señal a modular
Hold1

exp(-0.5*(u)) Product

Clock B-FFT
Fcn Zero-Order
Hold2 Espectro señal a modular

Señal modulada

Product1 Señal modulada


Señal portadora Zero-Order
Hold

B-FFT
Espectro portadora
Demodulador
FDATool
Señal demodulada

Product3 Señal demodulada


LO (Oscilador Local) Zero-Order
Filtro FIR pasobajo
Hold3
N=24 Hamming

B-FFT
Espectro de la salida
del filtro pasobajo

207
B.5 Simulación: laboratorio de modulación SSB-AM

************************************************************************
LABORATORIO MODULACION SSB-AM
************************************************************************
REALIZADO POR: José Gabriel Fernández Carazo
A21941
Escuela de Ingeniería Eléctrica
Facultad de Ingeniería
Universidad de Costa Rica
************************************************************************
Ultima modificación: Julio del 2007.
************************************************************************

Señal a modular Señal a modular

Sen de 600Hz Zero-Order


Hold1
B-FFT
Product1 Zero-Order
Espectro de la señal a modular
Hold
Señal portadora

Señal DSBSC-AM
Señal DSBSC-AM

MODULACION SSB-AM
Modulador SSB-AM (Banda lateral inferior) B-FFT
FDATool
Espectro de la señal DSBSC-AM

Señal SSB-AM banda lateral inferior

Señal SSB-AM banda lateral inf erior


Filtro FIR pasobajo B-FFT
N=36 Hamming Espectro de la señal SSB-AM
Modulador SSB-AM (Banda lateral superior) banda lateral inferior
FDATool

Señal SSB-AM banda lateral superior

Señal SSB-AM banda lateral superior


Filtro FIR pasoalto B-FFT
N=36 Hamming Espectro de la señal SSB-AM
banda lateral superior
FDATool

DEMODULACION SSB-AM
Product2 Señal reconstruida con
Filtro FIR pasobajo banda lateral inferior
N=36 Hamming1
Señal portadora1 Zero-Order FDATool
Hold2

Product3 Señal reconstruida con


Filtro FIR pasobajo banda lateral superior
N=36 Hamming2 Comparación

208
B.6 Simulación: laboratorio de modulación FM

************************************************************************
LABORATORIO MODULACION FM
************************************************************************
REALIZADO POR: José Gabriel Fernández Carazo
A21941
Escuela de Ingeniería Eléctrica
Facultad de Ingeniería
Universidad de Costa Rica
************************************************************************
Ultima modificación: Julio del 2007.
************************************************************************

MODULACION DE UN TONO SIMPLE

Señal a modular Señal a modular

Sen de 100Hz Zero-Order


Hold1
B-FFT
Señal a modular Espectro señal a modular
Comparación

Señal FM Señal FM
FM

FM Señal FM
Modulator B-FFT
Passband
Espectro señal FM

FM

FM
Demodulator
Passband

FDATool
Señal demodulada
Señal demodulada

Filtro Chebyshev Tipo I


N=6 pasobajo B-FFT
Espectro señal demodulada

209
B.7 Simulación: laboratorio de modulación PAM

************************************************************************
LABORATORIO MODULACION PAM
************************************************************************
REALIZADO POR: José Gabriel Fernández Carazo
A21941
Escuela de Ingeniería Eléctrica
Facultad de Ingeniería
Universidad de Costa Rica
************************************************************************
Ultima modificación: Julio del 2007.
************************************************************************

MODULACION PAM

Integer to Bit
Random M-PAM
Converter Señal PAM
Integer B-FFT
Random Integer M-PAM Espectro señal PAM
Generator Modulator
Baseband
Señal aleatoria de enteros positivos Se convierten en bits

|u|

Abs Señal PAM


Diagrama de Ojo
Señal PAM

Bit to Integer Señal reconstruida


M-PAM
Converter Señal reconstruida

M-PAM Bit to Integer


Demodulator Converter
B-FFT
Baseband
Espectro señal reconstruida

210
B.8 Simulación: laboratorio de modulación QAM

************************************************************************
LABORATORIO MODULACION QAM
************************************************************************
REALIZADO POR: José Gabriel Fernández Carazo
A21941
Escuela de Ingeniería Eléctrica
Facultad de Ingeniería
Universidad de Costa Rica
************************************************************************
Ultima modificación: Julio del 2007.
************************************************************************

MODULACION QAM
Señal QAM
Random Rectangular
Integer QAM B-FFT
Random Integer Rectangular QAM Espectro señal QAM
Generator Modulator
Baseband Señal QAM
Señal aleatoria de enteros positivos

Re(u)
Cuadratura
Im(u)
Fase
Complex to Señal QAM
Real-Imag

Rectangular
Señal reconstruida
QAM
sin ruido
Señal reconstruida
Constelación señal Rectangular QAM sin ruido en el canal
QAM sin ruido Demodulator
AWGN Baseband1
AWGN
Channel
B-FFT
Espectro señal reconstruida
sin ruido en el canal

Constelación señal
QAM con ruido
Rectangular
Señal reconstruida
QAM
con ruido
Señal reconstruida
Rectangular QAM con ruido en el canal
Demodulator
Baseband

B-FFT
Espectro señal reconstruida
con ruido en el canal

211

También podría gustarte