Vous êtes sur la page 1sur 224

Universidad de Costa Rica

Facultad de Ingeniera
Escuela de Ingeniera Elctrica

IE 0502 Proyecto Elctrico

Diseo e implementacin de un laboratorio virtual en


DSP para comunicaciones usando Matlab y Simulink

Por:
Jos Gabriel Fernndez Carazo

Ciudad Universitaria Rodrigo Facio


Julio del 2007

Diseo e implementacin de un laboratorio virtual en


DSP para Comunicaciones usando Matlab y Simulink
Por:
Jos Gabriel Fernndez Carazo

Sometido a la Escuela de Ingeniera Elctrica


de la Facultad de Ingeniera
de la Universidad de Costa Rica
como requisito parcial para optar por el grado de:
BACHILLER EN INGENIERA ELCTRICA
Aprobado por el Tribunal:

_________________________________
Ing. Jorge Romero Chacn
Profesor Gua

_________________________________
Ing. Vctor Hugo Chacn
Profesor lector

_________________________________
Ing. Luca Acua Avendao
Profesora lectora

ii

DEDICATORIA

Este proyecto se lo dedico primero y sobre todo a


Dios por la vida, por la disposicin y energa que ha hecho
crecer en m y que me ha permitido llegar hasta este nivel.

A mi familia, razn importante para buscar siempre


una superacin intelectual.

A mi madre por el consistente apoyo, paciencia y


motivacin para siempre buscar obtener nuevos logros. Y
porque su sola presencia es una razn para seguir adelante.

iii

RECONOCIMIENTOS

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


bibliogrfico, aportes y gua en la elaboracin 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 educacin moral y profesional,
ya que en estos momentos tiene sentido todo el conocimiento y sabidura que me han
transmitido.

A mis amigos, compaeros 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 compaa incondicional e inters en


mi avance en todo el transcurso del desarrollo de este proyecto y Jennifer Soto por su
apoyo y motivacin para seguir adelante en los momentos difciles.

iv

NDICE GENERAL

NDICE DE FIGURAS.................................................................................. ix
NDICE DE TABLAS.................................................................................... xi
NOMENCLATURA...................................................................................... xii
RESUMEN .................................................................................................... xiii
CAPTULO 1: Introduccin ...........................................................................1
1.1
Objetivos ................................................................................................................ 1
1.1.1
Objetivo general............................................................................................. 1
1.1.2
Objetivos especficos ..................................................................................... 1
1.2
Justificacin del tema............................................................................................. 1
1.3
Problema a resolver................................................................................................ 2
1.4
Metodologa ........................................................................................................... 3

CAPTULO 2: Desarrollo terico...................................................................4


2.1
Introduccin al procesamiento digital de seales .................................................. 4
2.2
Tipos de seales ..................................................................................................... 5
2.3
Representacin frecuencial del dominio................................................................ 8
2.4
Filtros analgicos y digitales ............................................................................... 12
2.4.1
Filtros analgicos ......................................................................................... 12
2.4.2
Filtros digitales............................................................................................. 13
2.5
Nota terica laboratorio de filtros digitales ......................................................... 14
2.5.1
Suma convolucin y respuesta en frecuencia para tiempo discreto............. 14
2.5.2
Filtros de respuesta de duracin finita al impulso (FIR).............................. 16
2.5.2.1 Estructura en forma directa de un filtro FIR................................................ 16
2.5.2.2 Mtodos para el diseo de filtros FIR.......................................................... 18
2.5.3
Filtros de respuesta de duracin infinita al impulso (IIR) ........................... 18
2.5.3.1 Estructura en forma directa de un filtro IIR................................................. 19
2.5.4
Transformacin bilineal ............................................................................... 24
2.6
Nota terica 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 rpida de Fourier............................................................... 34
2.6.4
Uso de la FFT para determinar la densidad espectral de potencia............... 41

2.7
Nota terica laboratorio de modulacin AM ....................................................... 44
2.7.1
Descripcin de la modulacin de amplitud (AM)........................................ 44
2.7.1.1 Espectro de una seal AM ........................................................................... 46
2.7.2
Demodulacin de una seal AM capturando la envolvente......................... 48
2.7.2.1 Demodulacin de seales AM utilizando la ley cuadrtica ......................... 48
2.8
Nota terica laboratorio de modulacin DSBSC-AM ......................................... 50
2.8.1
Descripcin matemtica de una seal DSBSC-AM..................................... 50
2.8.2
El receptor coherente ideal........................................................................... 51
2.8.3
Lazo de Costas: tcnica prctica para demodulacin coherente .................. 54
2.9
Nota terica laboratorio de modulacin SSB....................................................... 60
2.9.1
Moduladores SSB ........................................................................................ 60
2.9.2
Demodulacin coherente de seales SSB .................................................... 63
2.9.3
Desplazamiento en frecuencia ..................................................................... 66
2.10 Nota terica laboratorio de modulacin FM........................................................ 68
2.10.1
Descripcin de la modulacin FM............................................................... 68
2.10.1.1
Modulacin FM de un tono simple.......................................................... 70
2.10.1.2
Ancho de banda de una seal FM ............................................................ 71
2.10.2
Demodulacin 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
Demodulacin FM usando un PLL.............................................................. 75
2.11 Nota terica laboratorio de modulacin PAM ..................................................... 78
2.11.1
Descripcin de la modulacin PAM ............................................................ 78
2.11.2
Criterio de Nyquist para no tener ISI........................................................... 82
2.11.3
Diagramas de ojo ......................................................................................... 83
2.11.4
Recuperacin de la frecuencia del tren de pulsos ........................................ 86
2.12 Nota terica laboratorio de modulacin QAM .................................................... 88
2.12.1
Transmisor QAM bsico.............................................................................. 88
2.12.2
Modulador QAM utilizando filtros conformadores pasabandas.................. 92

CAPTULO 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
Clculo de la FFT....................................................................................... 103
3.2.2
Analizador de espectro de frecuencia en SIMULINK............................... 104
3.2.3
Cuestionario ............................................................................................... 105
3.3
Laboratorio de modulacin AM......................................................................... 106
3.3.1
Modulacin AM......................................................................................... 107
3.3.2
Detector de envolvente (Ley Cuadrtica) .................................................. 108

vi

3.3.3
Cuestionario ............................................................................................... 110
3.4
Laboratorio de modulacin DSBSC-AM........................................................... 111
3.4.1
Modulacin DSBSC-AM........................................................................... 112
3.4.2
Modulacin y demodulacin AM utilizando SIMULINK......................... 113
3.4.3
Cuestionario ............................................................................................... 113
3.5
Laboratorio de modulacin SSB........................................................................ 114
3.5.1
Modulacin SSB-AM ................................................................................ 114
3.5.2
Demodulacin SSB-AM ............................................................................ 115
3.5.3
Modulacin y demodulacin SSBAM en SIMULINK............................ 116
3.5.4
Cuestionario ............................................................................................... 117
3.6
Laboratorio de modulacin FM ......................................................................... 118
3.6.1
Modulacin FM ......................................................................................... 118
3.6.2
Modulacin y demodulacin FM utilizando SIMULINK ......................... 120
3.6.3
Cuestionario ............................................................................................... 121
3.7
Laboratorio de modulacin PAM ...................................................................... 122
3.7.1
Modulacin y demodulacin PAM en MATLAB ..................................... 123
3.7.2
Modulacin y demodulacin PAM en SIMULINK................................... 125
3.7.3
Cuestionario ............................................................................................... 126
3.8
Laboratorio de modulacin QAM...................................................................... 127
3.8.1
Modulacin y demodulacin QAM ........................................................... 129
3.8.2
Modulacin y demodulacin QAM con SIMULINK................................ 130
3.8.2
Cuestionario ............................................................................................... 131

CAPTULO 4: Conclusiones y recomendaciones .....................................132


4.1
4.2

Conclusiones ...................................................................................................... 132


Recomendaciones .............................................................................................. 134

BIBLIOGRAFA ..........................................................................................135
APNDICES.................................................................................................137
APNDICE A: Cdigo fuente de los ejercicios de simulacin en MATLAB .............. 137
A.1
Cdigo fuente laboratorio de filtros digitales ................................................ 137
A.2
Cdigo fuente laboratorio de FFT.................................................................. 152
A.3
Cdigo fuente laboratorio de modulacin AM .............................................. 157
A.4
Cdigo fuente laboratorio de modulacin DSBSC-AM ................................ 167
A.5
Cdigo fuente laboratorio de modulacin SSB-AM...................................... 172
A.6
Cdigo fuente laboratorio de modulacin FM............................................... 182
A.7
Cdigo fuente laboratorio de modulacin PAM............................................ 189
A.8
Cdigo fuente laboratorio de modulacin QAM ........................................... 196
APNDICE B: Diagramas de bloques de los ejercicios de simulacin en SIMULINK204
B.1
Simulacin: laboratorio de filtros digitales.................................................... 204
B.2
Simulacin: laboratorio de FFT ..................................................................... 205
B.3
Simulacin: laboratorio de modulacin AM.................................................. 206

vii

B.4
B.5
B.6
B.7
B.8

Simulacin: laboratorio de modulacin DSBSC-AM.................................... 207


Simulacin: laboratorio de modulacin SSB-AM ......................................... 208
Simulacin: laboratorio de modulacin FM .................................................. 209
Simulacin: laboratorio de modulacin PAM ............................................... 210
Simulacin: laboratorio de modulacin QAM............................................... 211

viii

NDICE DE FIGURAS
Figura 2.1 Tipos de seales: (a) Seal continua en el tiempo sin cuantificar, (b) seal
discreta en el tiempo sin cuantificar................................................................................... 7
Figura 2.2 Tipos de seales: (a) Seal continua en el tiempo cuantificada, (b) seal
discreta en el tiempo cuantificada...................................................................................... 8
Figura 2.3 Representacin en el dominio del tiempo de la seal peridica dada por la
ecuacin (2.3-1). .............................................................................................................. 10
Figura 2.4 Representacin en el dominio de la frecuencia de la seal peridica de la
ecuacin (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 transformacin bilineal. .......................... 27
Figura 2.11 Descripcin del efecto de la transformacin 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 seal AM............................................................................ 47
Figura 2.16 Detector de envolvente (Ley Cuadrtica)..................................................... 49
Figura 2.17 Diagrama de bloques de un Receptor Coherente Ideal ................................ 52
Figura 2.18 Espectro de una seal 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 modulacin SSB ............................................... 61
Figura 2.22 Modulador SSB utilizando la transformada de Hilbert ................................ 63
Figura 2.23 Modulacin 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 Modulacin PAM ......................................................................................... 78
Figura 2.29 Diagrama de bloques de un sistema de comunicacin PAM ....................... 79
Figura 2.30 Seal binaria antes del muestreador ............................................................. 84
Figura 2.31 Diagrama de ojos para la seal de la figura 2.30.......................................... 85
Figura 2.32 Diagrama de bloques del sistema de recuperacin de frecuencia ................ 87

ix

Figura 2.33 Diagrama de bloques de un transmisor QAM bsico................................... 89


Figura 2.34 Constelaciones QAM.................................................................................... 90
Figura 2.35 Representacin de un modulador QAM en trminos de seales 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 bsico de modulacin AM...................................... 106
Figura 3.4 Detector de envolvente de Ley Cuadrtica................................................... 110
Figura 3.5 Diagrama del principio bsico de demodulacin AM.................................. 111
Figura 3.6 Modulador SSB ............................................................................................ 114

NDICE DE TABLAS
Tabla 2.1 Parmetros de una seal obtenidos a partir de la ecuacin 2.3-1 ...................... 9
Tabla 3.1 Funciones ms comunes para el diseo de filtros digitales en MATLAB....... 97
Tabla 3.2 Funciones utilizadas en MATLAB para el clculo de la FFT. ...................... 102
Tabla 3.3 Funciones de MATLAB para modulacin y demodulacin AM .................. 106
Tabla 3.4 Funciones de MATLAB para modulacin y demodulacin PAM ................ 123
Tabla 3.5 Funciones de MATLAB para la modulacin y demodulacin QAM............ 128

xi

NOMENCLATURA
AM

Modulacin de amplitud (Amplitude Modulation)

DFT

Transformada discreta de Fourier (Discrete Fourier Transform)

DSBSC-AM

Modulacin de amplitud de doble banda lateral con portadora


suprimida

(Double

Sideband

Suppressed

Carrier

Amplitude

Modulation)
DSP

Procesamiento digital de seales (Digital Signal Processing)

FFT

Transformada rpida de Fourier (Fast Fourier Transform)

FIR

Respuesta de duracin finita al impulse (Finite duration Impulse


Response)

FM

Modulacin en frecuencia (Frequency Modulation)

IDFT

Transformada Discreta de Fourier Inversa (Inverse Discrete Fourier


Transform)

IIR

Respuesta de duracin infinita al impulse (Infinite duration Impulse


Response)

LSB

Banda lateral inferior (Low Sideband)

LSI

Integracin a gran escala (Large Scale Integration)

MSI

Integracin a media escala (Medium Scale Integration)

PLL

Circuito de lazo por enganche de fase (Phase Locked Loop)

QAM

Modulacin de amplitud en cuadratura (Quadrature Amplitude


Modulation)

SSB-AM

Modulacin de amplitud de banda lateral nica (Single Sideband


Amplitude Modulation)

USB

Banda lateral superior (Upper Sideband)

VLSI

Integracin a muy gran escala (Very Large Scale Integration)

xii

RESUMEN

La Escuela de Ingeniera Elctrica de la Universidad de Costa Rica tiene gran


inters en el Procesamiento Digital de Seales, y por eso se ha decidido desarrollar una
serie de prcticas de simulacin en los apartados que envuelve la ciencia del procesamiento
digital de seales para los sistemas de comunicacin.
Primero se presenta una investigacin terica de las tcnicas de simulacin
utilizadas en los sistemas de comunicacin. Esta investigacin terica permite reforzar y
entender con claridad los conceptos bsicos detrs de la ciencia de las comunicaciones.
Segundo se presentan los enunciados de las prcticas para los temas presentados en
el marco terico. Se inicia con una prctica sencilla de filtros digitales, luego una para
evaluar los conceptos de la transformada discreta de Fourier utilizando la transformada
rpida de Fourier, le siguen las prcticas de modulacin AM completa, DSBSC-AM, SSBAM y FM, despus las prcticas de modulacin digital PAM y QAM.
Por ltimo, se muestra el cdigo fuente generado para la solucin de los ejercicios
de simulacin en MATLAB planteados en cada una de las prcticas de laboratorio, as
como los diagramas de bloques de los ejercicios de simulacin en SIMULINK planteados
para cada una de ellas.

xiii

CAPTULO 1: Introduccin
1.1

Objetivos

1.1.1

Objetivo general
Preparar y generar prcticas para una simulacin previa a la ejecucin de
experimentos que emplearan tarjetas construidas para realizar procesamiento digital
de seales.

1.1.2

Objetivos especficos
Preparacin del manual de prcticas para simulacin.
Diseo de prcticas adicionales en el rea de comunicaciones digitales.
Introduccin de nuevas tcnicas de simulacin en el rea de sistemas de
comunicaciones digitales.

1.2

Justificacin del tema


El gran avance de la ciencia y la ingeniera, en el desarrollo de circuitos integrados,

microprocesadores y computadoras en los ltimos 30 aos, ha generado un gran inters en


el estudio del Procesamiento Digital de Seales (DSP, acrnimo para la frase en ingls
Digital Signal Processing). Este tema de estudio se ha vuelto tan indispensable que ha sido
aplicado a muchas disciplinas tanto en ingeniera como economa y desde la astronoma
hasta la biologa molecular.

Es por eso que este es un tema de estudio de gran inters para la Escuela de
Ingeniera Elctrica de la Universidad de Costa Rica, y por eso se ha decidido desarrollar
una serie de prcticas de simulacin en los apartados que envuelve la ciencia del
procesamiento digital de seales, las cuales se realizarn de forma previa a un laboratorio
en el cual se pondrn en prctica todos los conocimientos adquiridos en el curso de
Procesamiento Digital de Seales que imparte dicha Escuela, con tarjetas de programacin
de microprocesadores diseados para el tratamiento digital de seales.

1.3

Problema a resolver
El problema a resolver, es el de realizar el manual de prcticas para simulacin

utilizando MATLAB y SIMULINK. Este deber abarcar los temas ms importantes en el


rea del procesamiento digital de seales, como por ejemplo el diseo de filtros digitales,
anlisis del espectro de una seal digital aplicando la transformada discreta de Fourier,
modulacin y demodulacin AM, modulacin y demodulacin FM, deteccin de errores
de transmisin; y estos tan solo para mencionar algunos, los dems se deben determinar por
medio de la investigacin terica.

Las prcticas incluirn una nota terica, un procedimiento detallado de los


ejercicios que se deben realizar, y por ltimo tendrn un cuestionario para evaluar todos los
conceptos que en el experimento se incluyan.

1.4

Metodologa
La metodologa propuesta describe la manera en la cual va a transcurrir el proceso

de investigacin hasta alcanzar la meta establecida por medio de los objetivos


anteriormente descritos.

Primeramente se debe elaborar un marco terico, incluyendo una breve introduccin


al DSP, seguido de los temas ms importantes en el procesamiento digital de seales, los
cuales son la nota terica de cada una de las prcticas que se pretenden generar. Esta
investigacin terica se debe realizar con la revisin, obtencin, extraccin y recopilacin
de literatura proveniente de libros, revistas, artculos, bibliotecas e Internet.

El siguiente paso es el desarrollo de los ejercicios incluidos en las prcticas de


simulacin, las cuales se deben plantear y solucionar con la ayuda de MATLAB y
SIMULINK, las cuales son dos herramientas informticas muy poderosas y de gran
importancia para el desarrollo de sistemas de procesamiento digital de seales.

Por ltimo se evala cada una de las prcticas por medio de un anlisis de
resultados y el procedimiento efectuado para cada una de ellas.

CAPTULO 2: Desarrollo terico


2.1

Introduccin al procesamiento digital de seales


El acelerado desarrollo de circuitos integrados, comenzando con la integracin a

media escala (MSI, medium scale integration), luego con la integracin a gran escala (LSI,
large scale integration) y por ltimo, hoy en da, con la integracin a muy gran escala
(VLSI, very large scale integration) de circuitos electrnicos integrados ha estimulado el
desarrollo de ordenadores digitales ms pequeos, rpidos, y baratos y de hardware de
propsito general. Con estos circuitos digitales, se ha hecho posible construir sistemas
digitales altamente sofisticados, capaces de realizar funciones y tareas para un
procesamiento de seal digital que normalmente eran demasiado difciles y/o caras con
circuitera o sistemas de procesamiento de seales analgicas.
A travs del DSP, se han desarrollado hoy en da, sofisticados sistemas de
comunicacin, naci el Internet, se ha podido obtener valiosa informacin acerca del
cosmos a partir de las seales astronmicas, las seales ssmicas pueden ser analizadas para
determinar la magnitud de un terremoto o para predecir la estabilidad de un volcn, las
imgenes o fotografas por computador pueden ser ahora mejoradas, entre muchas otras
cosas ms.

2.2

Tipos de seales1
Las seales se pueden encontrar en la mayora de los campos de la ciencia y la

ingeniera, as como en la astronoma, acstica, biologa, comunicaciones, sismologa,


telemetra, y economa, tan solo como para nombrar algunos. Las seales naturalmente
provienen de los procesos fsicos o son hechas por la humanidad. Las seales astronmicas
pueden ser generadas por explosiones celestes llamadas supernovas o por una estrella
pulsante, mientras las seales ssmicas son manifestaciones de terremotos o de volcanes
que estn en actividad. Las seales en biologa son producidas por el cerebro o el corazn,
por los delfines o las ballenas para comunicarse entre ellas, o por un murcilago para poder
volar en la oscuridad o para encontrar alimento. Por otra parte, las seales hechas por la
humanidad son producidas en procesos tecnolgicos, tales como las que existen en las
computadoras, telefona y sistemas de radar, o el Internet.
Son muchas las razones por las que existe un gran inters en las seales. Los
astrnomos pueden obtener informacin muy importante de las estrellas, tal como su
composicin qumica, pueden determinar el tamao y la densidad de una estrella pulsante
de acuerdo a la frecuencia de radiacin de esta. Los sismlogos pueden determinar la
magnitud y el lugar de origen de un terremoto, al igual que un vulcanlogo puede predecir
cuando un volcn estar en erupcin. Los cardilogos pueden diagnosticar la condicin del
corazn, al mirar los patrones o alteraciones de los tejidos a travs de un
electrocardiograma. Se puede difundir informacin a travs del Internet, ayudar a los

Proakis, J. G. Tratamiento digital de seales. Tercera Edicin, Prentice Hall, Madrid, Espaa, 1998.

aviones a aterrizar en condiciones climticas 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 seal es
una cantidad fsica que vara con el tiempo, el espacio o cualquier otra variable o variables
independientes. Las seales se pueden clasificar como:

Seales continuas en el tiempo (analgicas)

Seales discretas en el tiempo (digitales)

Una seal 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 seal acstica
producida por un delfn. Una seal discreta en el tiempo est definida como una seal con
valores en ciertos instantes del tiempo, los cuales pueden ser cada milisegundo, segundo,
minuto, hora o da, por ejemplo las gotas de lluvia como funcin del tiempo.
Matemticamente, las seales analgicas 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 seal discreta

puede ser representada por una funcin x(nT ) , donde T es el perodo entre los valores
discretos adyacentes de la funcin y n es un integrador del intervalo (n1, n2) donde < n1
y n2 < , tal y como se muestra en la figura 2.1b. Las seales de tiempo discreto a menudo
son generadas a partir de una seal continua por medio de un proceso de muestreo. En

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


seales tambin se pueden clasificar como:

Sin cuantificar

Cuantificada

Una seal sin cuantificar puede tomar cualquier valor en un intervalo, mientras que
una seal cuantificada slo puede tomar valores discretos, usualmente de igual longitud de
separacin. La figura 2.2a y 2.2b muestra respectivamente, a una seal cuantificada
continua en el tiempo y una seal cuantificada discreta en el tiempo.

(a)

(b)

Figura 2.1 Tipos de seales: (a) Seal continua en el tiempo sin cuantificar, (b) seal
discreta en el tiempo sin cuantificar

(a)

(b)

Figura 2.2 Tipos de seales: (a) Seal continua en el tiempo cuantificada, (b) seal
discreta en el tiempo cuantificada

2.3

Representacin frecuencial del dominio1


Las seales la mayora del tiempo son representadas por funciones en el dominio

del tiempo. Pero en algunas situaciones es de gran utilidad representar las seales con
funciones en el dominio de la frecuencia, por ejemplo un seal 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 edicin, McGraw Hill, New
York, Estados Unidos, 2006.

( ) = {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 seal. A las series A( ) y ( ) se les conoce respectivamente como el espectro de
magnitud y el espectro de fase de la seal. Por ejemplo, si A( ) y ( ) en la ecuacin
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 Parmetros de una seal obtenidos a partir de la ecuacin 2.3-1


k

Ak

0.6154

0.0579

0.7919

0.3529

0.9218

-0.8132

0.7382

0.0099

0.1763

0.1389

0.4057

-0.2028

0.9355

0.1987

0.9169

-0.6038

0.4103

-0.2722

Figura 2.3 Representacin en el dominio del tiempo de la seal peridica dada por la
ecuacin (2.3-1).

Figura 2.4 Representacin en el dominio de la frecuencia de la seal peridica de la


ecuacin (2.3-1). (a) Espectro de Magnitud, (b) Espectro de Fase.

10

La utilidad de representar una seal 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 representacin en el dominio del tiempo muestra una seal ruidosa y
peridica. Lo cual implica que sta seal est compuesta por la suma de componentes
peridicos. Por otro lado, la representacin en el dominio de la frecuencia, provee una
descripcin 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 representacin propuesta en la ecuacin 2.3, se conoce como la Serie de Fourier
de una seal x(t ) y se obtiene como consecuencia, que las series de Fourier para una seal
peridica son la nica manera para obtener una representacin espectral de una seal. Los
cientficos, matemticos e ingenieros han ideado una gran variedad de herramientas
matemticas, las cuales pueden ser usadas para representar diferentes tipos de seales de
forma espectral. Otras herramientas matemticas, adems de las Series de Fourier, son la
Transformada de Fourier, la cual se aplica tanto a seales peridicas o no peridicas
continuas en el tiempo; la Transformada Z, la cual se utiliza para seales no peridicas
discretas en el tiempo; y la Transformada Discreta de Fourier, la cual es la ms adecuada
para seales peridicas discretas en el tiempo. Cada una de estas herramientas ser
retomada en los siguientes apartados.

11

2.4

Filtros analgicos y digitales1


El trmino filtro se utiliza comnmente para describir un dispositivo que discrimina,

segn algn atributo de los objetos que se aplican a su entrada, aquello que pasa a su travs.
Por ejemplo, un filtro de aire permite que el aire pase a su travs, evitando que las
partculas de polvo presentes en el aire lo atraviesen.
El filtrado se emplea en el procesamiento digital de seales de diferentes maneras,
por ejemplo, en la eliminacin de ruido indeseable de seales deseadas, en la conformacin
espectral para ecualizacin de canales de comunicaciones, en la deteccin de seales en
radar, sonar y comunicaciones, en los anlisis espectrales de seales, etc.

2.4.1 Filtros analgicos

Los filtros elctricos, desde que fueron inventados, han hecho posible el gran
desarrollo de las telecomunicaciones. Originalmente los filtros analgicos fueron
inventados para ser usados para receptores de radio y sistemas telefnicos para comunicar
personas a larga distancia, convirtindose de esta manera en elementos importantes en
todos los tipos de sistemas de comunicacin. Con el desarrollo de filtros en los ltimos
aos, estos se pueden clasificar segn su funcin, su gama de frecuencias o segn su
tecnologa y de acuerdo, con los elementos que los componen. Algunos tipos de filtros
analgicos son los siguientes:

Antoniou, A. Digital Signal Processing: Signals, Systems and Filters. Primera edicin, 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 seal de tiempo
discreto y produce de salida una seal de tiempo discreto, pero modificada en cierta forma
ya sea en magnitud o en frecuencia. Con el rpido avance en la tecnologa de los circuitos
integrados, el desarrollo de tecnologas digitales hizo que se construyeran sistemas ms
verstiles y de muy bajo costo.
El desarrollo de filtros digitales sigue creciendo da con da, y por ello se tiene los
siguientes ejemplos:

Filtros adaptativos

recursivos

Filtros multidimensionales

Filtros de abanico

Filtros Multitasa

Filtros bidimensionales

Filtros

recursivos

no

Estos filtros digitales hoy en da, pueden ser implementados en lenguajes como
MATLAB o C++.

13

2.5

Nota terica laboratorio de filtros digitales 1


El objetivo es aprender como implementar las tcnicas de filtrado para seales de

tiempo discreto, usualmente utilizadas en el curso de Procesamiento Digital de Seales.

2.5.1 Suma convolucin 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 convolucin de la entrada x[n] con su respuesta al impulso h[n] , por medio
de la siguiente ecuacin:

y[n] =

x[k ] h[n k ] =

k =

h[k ] x[n k ]

(2.5-1)

k =

La transformada z de la convolucin de dos seales es igual a la multiplicacin de


las transformadas de cada una:
Y ( z) =

y[n]z

= X ( z) H ( z)

(2.5-2)

n =

donde
H ( z) =

h[n]z n

X ( z) =

x[n]z

(2.5-3)

n =

n =

Tretter, S. A. Communication System Design Using DSP Algorithms. Primera Edicin, Kluwer Academic
/ Plenum Publishers, New York, Estados Unidos, 2003.

14

De acuerdo con la ecuacin 2.5-1, la salida es


y[n] =

h[k ] Ce

j ( n k )T

= Ce jnT

k =

h[k ] e

jkT

k =

= x[n]H ( z ) z = e jT (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 nmero complejo.
H * ( ) = H ( z ) z = e jT

(2.5-5)

La expresin H * ( ) se le conoce como la respuesta en frecuencia del sistema. La


expresin 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 estn en funcin de con un perodo 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 ecuacin 2.5-4, la salida puede ser expresada como
y[n] = CA( )e j[nT + ( )]

(2.5-7)

Cuando la entrada es una seal sinusoidal real, por ejemplo


x[n] = C cos(nT + ) = e{Ce j e jnT }

(2.5-8)

La salida es de la siguiente manera


y[n] = e{H * ( )Ce j e jnT } = CA( ) cos[nT + ( ) + ]

15

(2.5-9)

En otras palabras, el sistema modifica la magnitud de la seal sinusoidal de entrada


por medio de la amplitud de la respuesta y vara su fase a travs de la fase de la respuesta
en frecuencia, lo que constituye la idea bsica del filtrado digital.

2.5.2 Filtros de respuesta de duracin finita al impulso (FIR)

FIR es un acrnimo en ingls para Finite Impulse Response o Respuesta finita al


impulso. Se trata de un filtro, en el cual si la entrada es una seal impulso, la salida tendr
un nmero finito de trminos no nulos.
Los filtros FIR tienen la gran ventaja de que pueden disearse para ser de fase
lineal, lo cual hace que presenten ciertas propiedades en la simetra de los coeficientes. Este
tipo de filtros tiene especial inters 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 recprocos si el filtro se disea para tener fase lineal. Una de sus
desventajas es de necesitar un orden mayor respecto a los filtros IIR para cumplir las
mismas caractersticas. Esto se traduce en un mayor gasto computacional.

2.5.2.1 Estructura en forma directa de un filtro FIR

La realizacin de la estructura en forma directa se deriva directamente de la


ecuacin 2.5-1, cuando la respuesta al impulso es idnticamente a cero fuera del intervalo
de valores siguientes {0, 1,2,, N-1}, de esta manera la suma convolucin esta dada por:

16

N 1

y[n] = h[k ] x[n k ] =


k =0

x[k ] h[n k ]

(2.5-10)

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
combinacin lineal ponderada). El diagrama de bloques para la realizacin de la estructura
en forma directa para construir filtros FIR se muestra en la figura 2.5. Consiste en una lnea
de retardos representada por la cadena de bloques llamados z-1 y una serie de divisiones que
salen de la lnea 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 Mtodos para el diseo de filtros FIR

Hay tres mtodos bsicos para disear este tipo de filtros:

Mtodo de las ventanas. Las ms 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 (Aproximacin de Chebyshev y algoritmo de


intercambio de Remez).

2.5.3 Filtros de respuesta de duracin infinita al impulso (IIR)

Un filtro con respuesta al impulso, h(n), que tiene duracin 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 funcin de transferencia, y es una funcin racional
de z. Es la razn de dos polinomios de grado finito, tal y como se muestra en la siguiente
funcin racional,
H ( z) =

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

18

(2.5-11)

2.5.3.1 Estructura en forma directa de un filtro IIR

La funcin de transferencia racional dada por la ecuacin 2.5-11, se puede obtener


de diferentes maneras. Una de ellas, es por medio de la estructura en forma directa. La
razn de las transformadas z entre la salida y la entrada del filtro esta dada por
Y ( z)
B( z )
= H ( z) =
X ( z)
A( z )

(2.5-12)

De la expresin anterior obtenemos,


M
N

Y ( z ) A( z ) = X ( z ) B( z ) o Y ( z )1 + ak z k = X ( z ) bk z k
k =0
k =1

(2.5-13)

Despejando para Y(z)


N

k =0

k =1

Y ( z ) = bk X ( z ) z k ak Y ( z ) z k

(2.5-14)

La ecuacin en diferencias es el equivalente en el dominio del tiempo


N

k =0

k =1

y[n] = bk x[n k ] ak y[n k ]

(2.5-15)

La ecuacin anterior muestra cmo 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 funcin de transferencia aparecen en la
ecuacin en diferencias.

19

Y ( z) =

X ( z)
B( z ) = V ( z ) B( z )
A( z )

(2.5-16)

donde
V ( z) = X ( z)

1
A( z )

(2.5-17)

La expresin 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 Seal 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 ecuacin
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 expresin 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: Clculo 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 Transformacin bilineal1

El diseo de filtros digitales a partir de filtros analgicos es un campo maduro y


bien desarrollado, as que en la mayora de las veces es de gran utilidad disear un filtro
digital en el dominio analgico y luego este se convierte al dominio digital.
Un filtro analgico se puede describir por su funcin de transferencia
M

H a (s) =

B( s)
=
A( s )

k =0
N

k =0

(2.5-21)

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)

Proakis, J. G. Tratamiento digital de seales. Tercera Edicin, Prentice Hall, Madrid, Espaa, 1998.
Jackson, L. B. Digital filters and Signal Processing. Tercera Edicin, Boston: Kluwer Academic Publishers,
Estados Unidos, 1996.

24

Tambin, el filtro analgico que tiene la funcin de transferencia racional, H(s)


dada en (2.5-21), se puede describir mediante la ecuacin diferencial lineal con coeficientes
lineales constantes
d k y (t ) M
d k x(t )
k
= k

dt k
dt k
k =0
k =0
N

(2.5-23)

donde x(t) denota la seal de entrada e y(t) denota la salida del filtro.
Cada una de estas tres caracterizaciones equivalentes de un filtro analgico conduce
a mtodos alternativos para convertir el filtro al dominio digital. Recurdese que un sistema
analgico lineal invariante en el tiempo con funcin de transferencia H(s) es estable si
todos sus polos se encuentran en la mitad izquierda del plano s. Consecuentemente, si la
tcnica de conversin es efectiva debera tener las siguientes propiedades deseables:

El eje j en el plano s debera corresponderse a la circunferencia unidad en


el plano z. As, habr una relacin directa entre las dos variables de
frecuencia en los dos dominios.

El semiplano izquierdo del plano s se debera corresponder con el interior de


la circunferencia unidad en el plano z. As, un filtro analgico estable se
convertir en un filtro digital estable.

Uno de estos mtodos es la correspondencia del plano s al plano z, denominada


transformacin bilineal, que soluciona ciertas limitaciones que poseen otros mtodos. La
transformacin bilineal es una correspondencia conformadora que transforma el eje j en

25

la circunferencia unidad del plano z slo una vez, evitando el solapamiento de componentes
de frecuencia. Adems, 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 transformacin 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 transformacin del plano s al plano s est descrita en la figura 2.9 y
esta dada por
s' =

2
sT
tan 1
T
2

(2.5-24)

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

T
2

26

(2.5-25)

O equivalentemente,
T

= 2 tan 1

(2.5-26)

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


Tambin se puede notar que la relacin entre y no es lineal, pero es aproximadamente
lineal para valores pequeos de T , tal y como se muestra en la figura 2.10.

Figura 2.10 Mapeo de a por medio de la transformacin bilineal.

Ahora, la transformacin del plano s al plano z se obtiene invirtiendo (2.5-24), as


s=

2
s'T
tanh

T
2

(2.5-27)

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


obtiene

27

s=

2
ln z
tanh

T
2

(2.5-28)

Recordando que:
tanh x =

e x e x 1 e 2 x
=
y aplicndolo a la ecuacin (2.5-28), se obtiene
e x + e x 1 + e 2 x
2 1 z 1

s =
T 1 + z 1

(2.5-29)

Por tanto, el diseo en tiempo discreto de un filtro se obtiene a partir del diseo en
tiempo continuo a travs de la transformada bilineal.
H ( z ) = H c ( s)

2 1 z 1
S=
T 1+ z 1

(2.5-30)

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
s
2
z=
T
1 s
2
1+

(2.5-31)

La relacin no-lineal que existe entre y dada por la ecuacin (2.5-26) se le


conoce como distorsin 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)

28

2

tan
T
2

(2.5-32)

La relacin es descrita en la siguiente figura

Figura 2.11 Descripcin del efecto de la transformacin bilineal de Hc( j) a H'().

De la figura anterior se puede notar que a partir de esta transformacin Hc(j) se


comprime en frecuencia, pero a pesar de esto, las caractersticas de Hc(j) se mantienen en
H(). Esta propiedad es la caracterstica ms importante de la transformada bilineal.

29

Para disear filtros utilizando la transformacin bilineal se utiliza el siguiente


procedimiento:
Distorsin en Frecuencia: se calculan los valores de c y r correspondientes a los

valores especificados de c y r a partir de


=

2

tan
T
2

(2.5-33)

Diseo en tiempo continuo: a partir de los valores de c, r, 1, 2, y N, se obtiene

las ceros y polos del filtro analgico.

Transformacin de los ceros y polos: utilizando la ecuacin (2.5-36) los ceros m

y polos sk se transforman en zm y pk. Poniendo Hc(j) en trminos de sus polos y ceros de la


siguiente manera

H ( s) = K

Mc

m =1
N

(s m )

( s sk )
k =1

(2.5-34)

Y aplicando la transformada bilineal se produce

H ( z ) = b0 1 + z

1 N M c

30

Mc
m =1
N

(1 zm z 1 )

(1 pk z 1 )
k =1

(2.5-35)

donde
T
m
2
zm =
T
1 m
2

T
sk
2
pk =
T
1 sk
2
1+

1+

(2.5-36)

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 funcin de transferencia del sistema H(z) la cual est dada
por (2.5-35).

31

2.6

Nota terica laboratorio de FFT1


El objetivo es repasar y utilizar algunas tcnicas importantes en el procesamiento

digital de seales. Prcticamente sera construir un analizador del espectro utilizando la


Transformada Rpida de Fourier (FFT, acrnimo en ingls de Fast Fourier Transform).

2.6.1 Muestreo en tiempo discreto utilizando la transformada de Fourier

Suponga que una seal continua en el tiempo, es muestreada con un perodo T o una
frecuencia de muestreo de s = 2 T para obtener una seal discreta en el tiempo
x[n]=x(nT).
Se define en tiempo discreto la Transformada de Fourier de x[n] como la siguiente
expresin,
X ( ) =

x[n] e

jnT

(2.6-1)

n =

La transformada Z de la seal se obtiene sustituyendo por z = e jT . Ntese que


X ( ) tiene un perodo s , puesto que la sumatoria es una serie de Fourier. La seal

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


Fourier, por

Tretter, S. A. Communication System Design Using DSP Algorithms. Primera Edicin, Kluwer Academic
/ Plenum Publishers, New York, Estados Unidos, 2003.

32

ws

x[n] =

X ( ) e

jnT

(2.6-2)

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 segn 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 seal.

2.6.2 La transformada discreta de Fourier y su inversa

Sea x[n] una seal la cual es cero para valores de n que no estn 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, acrnimo en ingls de Discrete Fourier Transform) de x[n], se define como
N 1

X k = X (ks N ) = x[n] e

2
nk
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 seal se pueden obtener utilizando la Transformada
Discreta Inversa de Fourier (IDFT, acrnimo en ingls de Inverse Discrete Fourier
Transform), dada por la siguiente frmula

33

1
x[n] =
N

N 1

X
k =0

2
nk
N

para k = 0, 1,., N-1

(2.6-4)

2.6.3 La transformada rpida de Fourier1

La transformada discreta de Fourier (DFT) juega un papel importante en el anlisis,


el diseo y la realizacin de algoritmos y sistemas de procesamiento digital de seales. Una
de las razones por las que el anlisis en Fourier es de una amplia importancia en el
procesamiento digital de seales es debido a la existencia de un algoritmo eficiente para
calcular la DFT. Este algoritmo se le denomina como la Transformada Rpida de Fourier
(FFT). La FFT elimina informacin redundante que existe en la DFT, ya que esta explota
las propiedades de periodicidad y simetra del factor de fase WN. Estas propiedades son:
k+

WN
W

N
2

k+N
N

= WNk
=W

k
N

Simetra

(2.6-5)

Periodicidad

Existen bsicamente dos tipos de algoritmos FFT:

Diezmado en el tiempo

Diezmado en frecuencia

Proakis, J. G. Tratamiento digital de seales, Tercera edicin, Prentice Hall, Madrid Espaa, 1998.
Tretter, S. A. Communication System Design Using DSP Algorithms, Primera edicin, Kluwer Academic /
Plenum Publishers, New York, Estados Unidos, 2003.

34

Estos algoritmos son de gran utilidad debido a que si se realiza el clculo 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 clculo utilizando estos algoritmos reduce el nmero 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 continuacin. Para simplificar la notacin, sea WN = e j 2 N ,
de esta manera de (2.6-3) obtengo
Xk =

N 1

x[n] e

2
nk
N

n=0

N 1

= x[n]WNnk

(2.6-6)

n=0

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


cuando n es par y otra cuando n es impar.

Xk =

N
1
2

x[2n] W
n=0

2 nk
N

N
1
2

+ x[2n + 1] WN( 2 n +1) k para k = 0, 1, K , N 1

(2.6-7)

n=0

Ahora sea,
a [n] = x[2n]
b [n] = x[2n + 1]

para n = 0, 1, K ,

35

N
1
2

(2.6-8)

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

Xk =

N
1
2

a[n] W

nk
N /2

n=0

N
1
2

+ WNk b[n] WNnk/ 2 para k = 0, 1, K , N 1

(2.6-9)

n=0

y definiendo Ak y Bk de la siguiente manera

Ak =
Bk =

N
1
2

a[n] W

nk
N /2

n=0

N
1
2

para n = 0, 1, K , N 1

(2.6-10)

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 ecuacin anterior se puede separar en

dos nuevas ecuaciones,


X k = Ak + WNk Bk
X

k+

N
2

= Ak WNk Bk

para n = 0, 1, K ,

N
1
2

(2.6-12)

El clculo bsico 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 clculo 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 clculo 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 ecuacin (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

Xk =

Xk =

N
1
2

x[n]WNkn +
n=0

N 1

x[n]W
N
2

n=

N
1
2

x[n]W

kn
N

n=0

kn
N

N
Nk 2 1
2
N
N
n=
2

+W

(2.6-13)

x n +

N kn
WN
2

kN

Dado que WN 2 = ( 1) , la expresin (2.6-13) puede reescribirse como


k

N
Nk 2 1
2
N
N
n=
2

x[n] + ( 1)

Xk = W

x n + WNkn
2

(2.6-14)

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

X 2k =

N
1
2

x[n] + x n +
n=0

N kn
W N
2 2

para k = 0, 1,K,

N
1
2

(2.6-15)

X 2 k +1 =

N
1
2

x[n] x n +
n=0

N kn kn
W N W N
2 2 2

38

para k = 0, 1,K,

N
1
2

(2.6-16)

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


2

N
2

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

g1 [n] = x[n] + x n +
2

g 2 [n] = x[n] x n + WNn


2

(2.6-17)

N
para n = 0, 1, 2,K , 1
2

Entonces

X 2k =

N
1
2

g [n]W
n =0

X 2 k +1 =

N
1
2

kn
N
2

g [n]W
n=0

(2.6-18)
kn
N
2

El clculo de las secuencias g1 [n] y g 2 [n ] segn (2.6-17) y el uso de estas


secuencias para el clculo 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 clculo 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 clculo 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 clculo bsico 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 seales de energa finita que tienen transformada de Fourier y estn


caracterizadas en el dominio espectral por su densidad espectral de energa. Por otro lado,
la clase importante de seales caracterizadas como procesos aleatorios estacionarios no
tienen energa finita y, por lo tanto, no tienen transformada de Fourier. Tales seales estn
caracterizadas por la densidad espectral de potencia, ya que tienen potencia media finita.
Un mtodo para estimar la densidad espectral de frecuencia est basado en usar una
funcin llamada periodograma. Esta funcin de una secuencia de N puntos y[n] esta
definida por
I N ( ) =

1
2
Y ( )
N

(2.6-19)

donde
N 1

Y ( ) = y[n] e jnT

(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 funcin de autocorrelacin
1

R(n ) = N
0

N 1

y[n + k ] y[k ]

para

n N 1

k =0

(2.6-21)

cualquier otro valor

Proakis, J. G. Tratamiento digital de seales, Tercera edicin, Prentice Hall, Madrid Espaa, 1998.
Tretter, S. A. Communication System Design Using DSP Algorithms, Primera edicin, Kluwer Academic /
Plenum Publishers, New York, Estados Unidos, 2003.

41

La variable, n, en la funcin de autocorrelacin se le conoce como el retardo. Para


un retardo cero
R(0 ) =

1
N

N 1

y[k ]

k =0

s / 2

/2

I N ( ) d

(2.6-22)

es la potencia promedio de la secuencia de puntos. Esta relacin justifica el uso de


la autocorrelacin promediada en el tiempo, como la interpretacin del periodograma como
una funcin 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 ms y ms rpidamente.
Una solucin a este problema es promediar los periodogramas de diferentes
segmentos de la secuencia de N puntos. Sea x[n] una secuencia de duracin M = LN y la
ventana L para cada uno de los segmentos.
h[n] x[n + kL]
yk [n] =
0

para n = 0, 1,..., N 1
cualquier otro

(2.6-23)

donde h[n] es la funcin 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 ( )
L k =0

42

(2.6-24)

Cuando los segmentos de puntos son estadsticamente independientes, el promedio


de L segmentos reduce la varianza en un factor de L. Adems los segmentos de datos se
pueden ir solapando a ciertos porcentajes para intentar mejorar las ganancias de la
estimacin.

43

2.7

Nota terica laboratorio de modulacin AM1


El objetivo es examinar un mtodo muy comn de transmitir informacin conocido

como modulacin de amplitud (AM, acrnimo en ingls de Amplitude Modulation), y a su


vez conocer como se utiliza para procesar seales digitales.

2.7.1 Descripcin de la modulacin de amplitud (AM)

Las seales de informacin deben ser transportadas entre un transmisor y un


receptor sobre alguna forma de medio de transmisin. Sin embargo, las seales de
informacin pocas veces encuentran una forma adecuada para la transmisin. La
modulacin se define como el proceso de transformar informacin de su forma original a
una forma ms adecuada para la transmisin. El propsito es transformar una seal m(t) en
otra seal s(t). Este proceso debe ser reversible, de tal manera que se pueda recuperar la
seal m(t) a partir de la seal s(t) en el receptor. La seal m(t) es la seal en banda base que
se va a transmitir. Puede ser representada tanto en forma temporal como en forma de
espectro de frecuencias. La modulacin recurre a una nueva seal 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 transmisin. La seal que ser transmitida s(t), es la seal llamada portadora a la
frecuencia f0.
1

Tretter, S. A. Communication System Design Using DSP Algorithms. Primera Edicin, Kluwer Academic
/ Plenum Publishers, New York, Estados Unidos, 2003.

44

Una seal AM est descrita por


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

(2.7-1)

c (t ) = Ac cos ct

(2.7-2)

donde

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 seal
modulante (seal original). El parmetro k a es una constante positiva llamada ndice de
modulacin del modulador.
La seal
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 seal 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 radiodifusin 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 )]

45

(2.7-5)

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 demodulacin son
completamente independientes de la frecuencia o fase de la onda portadora del transmisor.

2.7.1.1 Espectro de una seal AM

Suponga que la seal de banda base m(t) tiene como transformada de Fourier M ( )
y M ( ) = 0 para W .

Es una seal pasobajo con frecuencia de corte W. La

transformada de Fourier de la seal transmitida s(t), es

S ( ) = Ac ( + c ) + Ac ( c ) +

Ac
A
ka M ( + c ) + c ka M ( c )
2
2

(2.7-6)

En la expresin anterior se identifican seales 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 seal moduladora. Las otras dos seales 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,
acrnimo en ingls 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, acrnimo en ingls para Lower Side Band). La
condicin 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 transmisin de la
seal AM que se representa mediante Br y viene dado por la siguiente ecuacin
Br = 2W

Figura 2.15 Espectro de una seal AM

47

(2.7-7)

2.7.2 Demodulacin de una seal AM capturando la envolvente

Un circuito anlogo, muy simple y conocido como detector de envolvente es usado


comnmente en los radios para demodular seales AM. Este circuito esta implementado
por un diodo, capacitores y resistencias, es un seguidor de picos de la onda AM. Existen
dos mtodos para la deteccin de la envolvente de gran importancia en el procesamiento
digital de seales. El primer mtodo se conoce como ley cuadrtica y el segundo mtodo
utiliza la transformacin de Hilbert para crear algo llamado la envolvente compleja.

2.7.2.1 Demodulacin de seales AM utilizando la ley cuadrtica

El diagrama de bloques de la ley cuadrtica se muestra en la figura 2.16. La entrada


s(t) tiene la forma de una seal AM dada por (2.7-1). Se asume que la seal banda base es
una seal 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 2ct
2

(2.7-8)

El primer trmino del lado derecho de la ecuacin es una seal pasobajo excepto
que la frecuencia de corte se aument en 2W. El segundo trmino tiene un espectro
centrado en 2c . Para frecuencias positivas, este espectro se encuentra dentro del
intervalo (2c 2W , 2c + 2W ) . Para que el detector funcione correctamente, los espectros
de estos dos trminos no deben solaparse. Esto se logra si
2W < 2c 2W

48

or c > 2W

(2.7-9)

De acuerdo a lo anterior, la seal 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 prdidas 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 Cuadrtica)

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 raz cuadrada de la salida del filtro y da como resultado una seal que
es proporcional a m(t) con un nivel DC. En muchos casos, la seal 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 terica laboratorio de modulacin 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 seal en el


transmisor, en el receptor slo sera 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 slo una muestra de ella. Esto hace posible transmitir la seal
modulada en amplitud slo con la potencia requerida para la seal de informacin y
permite reducir de manera importante la potencia del transmisor con la consiguiente
reduccin del costo de operacin. Este razonamiento da lugar a la posibilidad de transmitir
slo 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 ms complejos. A
este tipo de modulacin se le conoce como modulacin de amplitud con portadora
suprimida de doble banda lateral (DSBSC-AM, acrnimo en ingls para double-sideband
suppressed-carrier amplitude modulation).

2.8.1 Descripcin matemtica de una seal DSBSC-AM

Sea m(t) la seal que se desea transmitir. La seal DSBSC-AM obtenida a partir de
m(t) es
1

Tretter, S. A. Communication System Design Using DSP Algorithms. Primera Edicin, Kluwer Academic
/ Plenum Publishers, New York, Estados Unidos, 2003.

50

s (t ) = Ac m(t )cos ct

(2.8-1)

Esta es la misma seal AM excepto que con la componente sinusoidal de la


portadora eliminada. Usualmente la seal m(t) que se transmite posee valores positivos y
negativos que no pueden ser recuperados por medio de un detector de envolvente. Un
mtodo de demodulacin llamado demodulacin coherente es utilizado para este caso de
seales. 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 ecuacin anterior se puede notar que es el mismo espectro de una seal 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 modulacin simplemente traslada la seal
moduladora a las frecuencias c . Se tienen las dos bandas laterales sin portadora. En este
caso el ancho de banda de la seal moduladora es B = 2W y la eficiencia en potencia

= 1 . La parte del espectro para > c se le conoce como banda lateral superior (USB,
acrnimo en ingls de Upper Sideband) y la parte del espectro para < c se le conoce
como la banda lateral inferior (LSB, acrnimo en ingls 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 seal recibida se pasa a travs de un filtro pasabanda centrado a la frecuencia de

51

la portadora de tal manera que pase la seal DSBSC y elimine el ruido. La salida del filtro
pasabanda luego es multiplicado por una rplica de la onda portadora. Esta replica es
generada por un dispositivo llamado oscilador local (LO, acrnimo en ingls para Local
Oscilator). Suponiendo una seal sin ruido, el producto de esa multiplicacin es
s1 (t ) = 2s (t )cos ct = 2 Ac m(t )cos 2 ct = Ac m(t ) + Ac m(t )cos 2ct

(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 ( + 2c ) + 0.5 Ac M ( 2c )

(2.8-4)

y se muestra en la figura 2.18(c). El primer trmino a mano derecha de la ecuacin


(2.8-3) es proporcional a la seal transmitida. El segundo trmino tiene los componentes
del espectro centrados alrededor de 2c y 2c , 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 seal DSBSC-AM

53

2.8.3 Lazo de Costas: tcnica prctica para demodulacin coherente

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


fase de la seal DSBSC-AM, para lograr una demodulacin coherente exacta. Sin embargo,
estos parmetros pueden ser estimados con certeza por el receptor por medio de
dispositivos llamados circuito de lazo por enganche de fase (PLL, acrnimo en ingls de
phase-locked loops), y as poder obtener una demodulacin coherente. Un mtodo para
obtener un sistema receptor adecuado para demodular seales DSBSC-AM se denomina
lazo de costas, el cual es una modificacin de un tipo de PLL. Un esquema de dicho
receptor se puede ver en la figura 2.19. Esta forma est particularmente diseada para
aplicaciones de DSP, por tanto las seales que se muestran son seales discretas con un
perodo de muestreo T.

Figura 2.19 Diagrama de bloques del demodulador de lazo Costas

54

En general, la seal despus 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 calibracin 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 lneas slidas y punteadas paralelas en la figura 2.19 representan seales


complejas, donde las lneas slidas corresponden a la parte real y las lneas punteadas a la
parte imaginaria.
El sistema genera un ngulo estimado (nT ) de la seal 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 seal del oscilador local e j (nT ) .

55

La seal 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 seal 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


pequeo. Cuando el error es exactamente cero, la seal 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 )]
q(nT ) = 0.5 Ac2 m 2 (nT )sin{2[1 2 (nT )]}

(2.8-11)

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 direccin 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 aproximacin 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 seal recibida, por medio de la siguiente ecuacin

((n + 1)T ) = (nT ) + cT + q(nT ) + (nT )

(2.8-13)

donde

(nT ) = q(nT ) + ((n 1)T )

(2.8-14)

luego y son pequeas constantes positivas, normalmente < / 50 . La idea


bsica detrs 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 , ms un pequeo trmino de correccin q (nT )
estrictamente proporcional al error de fase. Tambin se puede notar que cuando q (nT ) = 0
para todo n, (nT ) es una funcin 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 funcin lineal. La fase de entrada tiene esta forma lineal,

57

cuando existe una diferencia en frecuencia entre las frecuencias de la seal recibida y la
portadora. Este bloque junto con los dems 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 trminos
sin (

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

por una funcin 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 aproximacin (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 acten
como filtros pasobajos en q (nT ) . Entonces sea

k1 = Ac2 E m 2 (nT )

(2.8-16)

y una aproximacin 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 funcin de transferencia ahora se puede obtener, y es la siguiente

k1 ( + )1
z 1
(z )
+

H (z ) = 2
=
1 ( z ) 1 [2 k1 ( + )]z 1 + (1 k1 )z 2

58

(2.8-18)

La respuesta en frecuencia se puede obtener por medio de z = e jT y tiene la forma


de un filtro pasobajo muy estrecho para valores pequeos 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 terica laboratorio de modulacin SSB1


Los tipos de modulacin AM y DSBSC-AM no utilizan eficientemente el espectro

de frecuencia. Al analizar el espectro se encuentra que an hay redundancia ya que las dos
bandas alrededor de la frecuencia de corte son simtricas. El objetivo es demostrar que una
seal 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 modulacin se le conoce como modulacin de
banda lateral nica (SSB, acrnimo en ingls para Single Sideband). Este mtodo de
modulacin 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 seal 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 seal 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 Edicin, Kluwer Academic
/ Plenum Publishers, New York, Estados Unidos, 2003.

60

Luego la seal DSBSC-AM se pasa a travs 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
H sup ( ) =
0

para

> c

cualquier otro

(2.9-3)

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

1
H inf ( ) =
0

para

< c

cualquier otro

(2.9-4)

Figura 2.21 Diagrama de bloques de la modulacin SSB

Al utilizar alguno de estos dos filtros se obtiene una seal SSB, la cual puede ser
expresada en trminos de la seal banda base m(t ) y su transformada Hilbert m (t ) , tal y
como se muestra a continuacin. La seal 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 )

61

(2.9-6)

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


ecuacin (2.9-6), se puede notar que
S ( ) = Ac M ( )u ( ) = 0.5 Ac M ( )(1 + sign )
S ( ) = 0.5 Ac M ( )[1 + j ( j sign )] = 0.5 Ac M ( ) + j 0.5 Ac M ( )

(2.9-7)

Entonces la envolvente compleja es


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

(2.9-8)

Por consiguiente la seal 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 )senct

(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 )
S ( ) = 0.5 Ac M ( )[1 j ( j sign )] = 0.5 Ac M ( ) j 0.5 Ac M ( )

(2.9-10)

Por consiguiente, la envolvente compleja


~
s (t ) = 0.5 Ac [m(t ) jm (t )]

(2.9-11)

De esta manera la correspondiente seal SSB es

s (t ) = e ~
s (t )e j c t = 0.5 Ac m(t )cos ct + 0.5 Ac m (t )senct

(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 Demodulacin coherente de seales SSB

Para demodular seales SSB, existe una tcnica conocida, la cual consiste en
multiplicar la seal por una rplica de la seal portadora. Al multiplicar la ecuacin (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

b(t ) = 0.5 Ac m(t ) + 0.5 Ac m(t )cos 2ct m 0.5 Ac m (t )sin 2ct

(2.9-13)

El primer trmino del lado derecho de la ecuacin anterior es proporcional a la seal


que desea transmitir. El segundo y tercer trmino tienen un espectro centrado en 2c y
pueden ser removidos haciendo pasar la seal b(t ) a travs 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 trmino deseado y tambin traslada las bandas

laterales 2c , las cuales son los trminos removidos por el filtro pasobajo. Este
demodulador posee el mismo diagrama de bloques de la figura 2.21, excepto que en lugar
de la seal a transmitir m(t ) se pone la seal recibida s (t ) y el bloque H ( ) por un filtro
pasobajo. En la prctica, a la entrada de este sistema se coloca un filtro pasabanda para
eliminar ruido que se adhiere a la seal modulada.
Otra forma para demodular seales SSB est basado en la utilizacin de la
transformada de Hilbert. El primer paso es tomar la transformada de Hilbert de la seal
recibida s (t ) . Usando la ecuacin (2.9-8) y (2.9-11), se obtiene
s+ (t ) = s (t ) + js(t ) = ~
s (t )e j c t = 0.5 Ac [ m(t ) jm (t )]e j c 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 expresin 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 ms baja que la frecuencia de m(t ) . Por ltimo, al tomar la parte real de la
seal compleja se tiene que

64

0.5 Ac m(t ) = e s+ (t )e j c t = e{[s(t ) + js(t )][cos ct jsenct ]}


0.5 Ac m(t ) = s(t )cos ct + s(t )senct

(2.9-16)

la cual es proporcional a la seal transmitida. Este demodulador usa la transformada


de Hilbert pero no necesita un etapa de filtrado que elimine trminos 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
informacin no se puede obtener como en el caso del lazo de Costas porque la seal SSB
contiene una componente en cuadratura no deseada m (t )senct .

Esta componente

corresponde a una distorsin de fase. Un error de fase en el oscilador local da lugar a una
distorsin de fase donde cada componente frecuencial de la seal m(t ) sufre un desfase
constante a la salida del demodulador. Este desfase no suele ser un problema en el caso de
seales de voz debido que el odo suele ser relativamente insensible a la distorsin de fase.
En el caso de seales musicales o seales de video, la distorsin de fase es un error no
tolerable.

65

2.9.3 Desplazamiento en frecuencia

En sistemas de comunicaciones en la mayora de las veces para no decir todas, el


espectro de una seal pasabanda es desplazado de una frecuencia central a otra. Una razn
para esto colocar el espectro de la seal en cierto canal de transmisin. Otra razn es para
corregir las distorsiones en frecuencia causadas por los osciladores al estar mal calibrados.
Es un hecho que la operacin bsica que se realiza en la modulacin SSB es una forma de
traslacin en frecuencia.
La idea de traslacin en frecuencia descrita para SSB puede generalizarse de la
siguiente forma.
Sea s (t ) una seal 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)

S + ( ) = 2S ( ) u ( )

(2.9-18)

la transformada de Fourier es

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 ]
y su transformada es

66

(2.9-19)

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 seal
transmitida
r (t ) = s(t )cos t s(t )sent

(2.9-21)

La parte real de r+ (t ) tambin puede ser expresada como


r (t ) = [r+ (t ) + r+ (t )] 2

(2.9-22)

Entonces su transformada de Fourier es

R( ) = R+ ( ) + R+ ( ) 2

R( ) = S ( )u ( ) + S ( )u ( )

(2.9-23)

La figura 2.22 tambin 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 ms que con la apropiada frecuencia portadora.

67

2.10 Nota terica laboratorio de modulacin FM


Modulacin en Frecuencia (FM, acrnimo en ingls para Frequency Modulation)
fue inventada y comercializada despus de AM. Fue utilizada en un principio por la
radiodifusin para crear canales radiofnicos. Su principal ventaja radica en que al sistema
FM apenas le afectan las interferencias y descargas estticas. El objetivo es estudiar la
teora bsica de modulacin y demodulacin FM.

2.10.1 Descripcin de la modulacin FM1

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


El proceso de modulacin consiste en variar algunos de estos parmetros en la seal
portadora, de acuerdo a la seal que se desea modular. La modulacin en frecuencia
consiste en variar la frecuencia de la seal portadora. La modulacin FM es inmune a las
no linealidades. Las no linealidades en este caso generan ondas moduladas con portadoras
mltiplos de la original. Esta caracterstica hace a FM til en aquellos sistemas de
transmisin de alta potencia ya que el uso de amplificadores permite altos rendimientos.
Una seal FM es generada utilizando la seal de banda base para cambiar la
frecuencia instantnea de la seal portadora pero sin cambiar su amplitud. La frecuencia
instantnea de una seal sinusoidal cos (t ) est definida por

Tretter, S. A. Communication System Design Using DSP Algorithms. Primera Edicin, Kluwer Academic
/ Plenum Publishers, New York, Estados Unidos, 2003.

68

(t ) =

d
(t )
dt

(2.10-1)

Esta definicin se justifica al observar que cuando (t ) = ct , su derivada es c la


cual es la frecuencia de cos ct . La frecuencia instantnea de una seal FM con frecuencia
portadora c est relacionada con la seal de banda base m(t ) por la ecuacin

(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 seal FM es 0
en t = 0 ,

(t ) = ( ) d = ct + m (t )
t

(2.10-3)

donde

m (t ) = k m( ) d
t

(2.10-4)

es la desviacin de fase de la seal portadora causada por m(t ) . Por ltimo la seal
FM generada a partir de m(t ) es
s (t ) = Ac cos[ct + m (t )]

(2.10-5)

Un aproximacin en tiempo discreto para una seal 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 ) = kT m(kT )

(2.10-7)

k =0

La fase de la portadora se puede calcular a partir de la siguiente ecuacin recursiva

(nT ) = ((n 1)T ) + cT + kTm((n 1)T )

(2.10-8)

La seal muestreada FM resultante sera


s (nT ) = Ac cos (nT )

2.10.1.1

(2.10-9)

Modulacin FM de un tono simple

Una expresin sencilla para la transformada de Fourier de una seal FM en trminos


de la transformada de seal de banda base parecida a la de AM, no existe. Sin embargo, en
el caso especial cuando la seal de banda base es m(t ) = Am cos mt , se pueden obtener
resultados muy interesantes. A este caso especial se le conoce como modulacin FM de un
tono simple. La seal FM que se obtiene para m(t ) es

k A
s (t ) = Ac cos c + m sin mt
m

70

(2.10-10)

De la expresin anterior se define un parmetro conocido como ndice de


modulacin de frecuencia y est dado por

k Am

mxima desviacin de frecuencia


frecuencia de modulacin

(2.10-11)

A continuacin se muestra en la siguiente figura el efecto de modulacin FM

Figura 2.23 Modulacin FM

2.10.1.2

Ancho de banda de una seal FM

Dado que la portadora en FM es la suma de todas las componentes espectrales de la


seal FM, dicha suma da como resultado una seal de amplitud constante. En otras
palabras, la portadora en FM puede considerarse como la seal compleja total. Debido a

71

estas razones la cantidad de bandas laterales es infinita, por tanto es imposible obtener una
expresin para el ancho de banda de una seal FM. El ancho de banda depende de la forma
de la seal de banda base y la mxima desviacin en frecuencia. Esta relacin de
desviacin est dada por la ecuacin (2.10-11). El ancho de banda de la seal modulada,
bajo estas condiciones est dado por:
BT = 2(f + f m ) Hz

(2.10-12)

En la ecuacin anterior, f es la mxima desviacin en frecuencia y f m es la


mxima frecuencia a la cual la seal de banda base tiene una componente. La expresin
anterior se conoce como regla de Carson. Esta regla proporciona el ancho de banda de la
seal modulada en frecuencia con razonable exactitud cuando el ndice de modulacin es
mucho mayor a 1, pero falla cuando es cercano o menor a 1.

2.10.2 Demodulacin FM: discriminador en frecuencia

Los demoduladores de FM fsicamente son circuitos dependientes de la frecuencia


que producen un voltaje de salida que es directamente proporcional a la frecuencia
instantnea en su entrada ( Vsalida = K f , en donde K est en voltios por Hertz y es la
funcin 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 seales de FM. Los ms comunes son el detector de pendiente, discriminador de
Foster-Seeley, detector de relacin, demodulador de PLL y detector en cuadratura. El

72

detector de pendiente, discriminador de Foster-Seeley y el detector de relacin son todos


formas de discriminadores de frecuencia de circuito sintonizado. Los discriminadores de
frecuencia de circuito sintonizado se convierten de FM a AM y despus 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 ms 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 suposicin de que la entrada al diferenciador es una seal FM de
amplitud constante. Ahora suponemos lo siguiente, cuando m (t ) es suficientemente
pequeo y la banda limitada, entonces cos m (t ) y sin m (t ) son seales 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 )]
Al calcular el ngulo, de la expresin anterior se obtiene

73

(2.10-13)

(t ) = arctan[s(t ) s(t )] = ct + m (t )

(2.10-14)

Al derivar la expresin anterior se obtiene

d
(t ) =
dt

s(t )

d
d
s(t ) s(t ) s (t )
dt
dt
= c + k m(t )
2
2
s (t ) + s (t )

(2.10-15)

Del resultado anterior se puede notar que se trata de la frecuencia instantnea.

2.10.2.2

Discriminador FM utilizando la envolvente compleja

La envolvente compleja de una seal 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 expresin anterior se obtiene

~(t ) = arctan[sQ (t ) sI (t )] = m (t )

(2.10-17)

Al derivar la expresin anterior se obtiene

d ~
(t ) =
dt

sI (t )

d
d
sQ (t ) sQ (t ) sI (t )
dt
dt
= k m(t )
2
2
sI (t ) + sQ (t )

El resultado anterior es proporcional a la seal banda base.


La siguiente figura muestra como implementar este discriminador.

74

(2.10-18)

Figura 2.25 Discriminador en tiempo discreto usando la envolvente compleja1

2.10.3 Demodulacin FM usando un PLL

Desde el desarrollo de los circuitos integrados lineales LSI, la demodulacin FM


puede lograrse muy fcilmente con un PLL. Aunque la operacin de un PLL es bastante
complicada, la operacin de un demodulador PLL de FM, es probablemente, la ms
sencilla y fcil de entender. La figura 2.26 muestra el diagrama de bloques de un
demodulador FM. Las lneas slidas y las lneas punteadas representan la parte real y la
parte imaginaria de una seal.

Tretter, S. A. Communication System Design Using DSP Algorithms. Primera Edicin, Kluwer Academic
/ Plenum Publishers, New York, Estados Unidos, 2003.

75

Primero se toma la seal FM y se le aplica la transformada de Hilbert para obtener


la envolvente compleja que contiene la informacin transmitida, luego se pasa a travs de
un detector de fase el cual consigue calcular la diferencia de fase entre la seal FM y la
salida del VCO. Luego esta seal se pasa por un filtro que permite obtener la frecuencia de
la seal 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


automticamente compensa los cambios en la frecuencia de la portadora debido a la
estabilidad en el oscilador de transmisin.

Tretter, S. A. Communication System Design Using DSP Algorithms. Primera Edicin, Kluwer Academic
/ Plenum Publishers, New York, Estados Unidos, 2003.

76

Despus que el enganche de frecuencia ha ocurrido, el VCO encontrara los


cambios en la frecuencia en la seal de entrada, manteniendo un error de fase en la entrada
del comparador de fase. Por tanto, si la entrada es una seal FM y la frecuencia natural
VCO es igual a la frecuencia central de la seal de entrada, el voltaje de correccin se
produce a la salida del comparador de fase y alimenta de nuevo a la entrada de VCO,
siendo proporcional a la desviacin de frecuencia, por tanto es la seal demodulada.
Este sistema es no lineal debido a las caractersticas del detector de fase. Pero si se
ignoran las discontinuidades de la funcin 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 terica laboratorio de modulacin PAM1


En la transmisin digital de datos existen varios mtodos para lograr transferir datos
digitales por el medio en que se desea, uno de ellos es la modulacin por amplitud de
pulsos (PAM, acrnimo en ingls para Pulse Amplitud Modulation). El objetivo es dar a
conocer este tipo de modulacin de gran importancia para el procesamiento digital de
seales.

2.11.1 Descripcin de la modulacin PAM

En la modulacin PAM, la informacin es transmitida en smbolos de valores


discretos, uniformemente espaciados por intervalos de tiempo. La seal portadora es un
tren peridico de pulsos rectangulares separados a la misma distancia uno de otro. La
siguiente figura muestra una representacin de este tipo de modulacin

Figura 2.28 Modulacin PAM

Tretter, S. A. Communication System Design Using DSP Algorithms. Primera Edicin, Kluwer Academic
/ Plenum Publishers, New York, Estados Unidos, 2003.

78

Figura 2.29 Diagrama de bloques de un sistema de comunicacin 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
transmisin de Rd bits/segundo . Estos bits de entrada son puestos dentro de palabras de
tamao J-bit por medio de un convertidor de serie a paralelo y se les asigna un valor de la

79

secuencia de smbolos an , los cuales son seleccionados de un alfabeto de M = 2 J niveles


de voltaje. Estos smbolos son generados por una frecuencia f s = Rd J smbolos/segundo
y el intervalo entre un smbolo y otro est dado por T = 1 f s .
Los niveles estn espaciados por 2d con M posibles valores
l i = d (2i 1)

para i =

M
M
+ 1, ...., 0, ....,
2
2

(2.11-1)

De lo anterior, se puede notar que el nivel mnimo es (M 1)d y el nivel mximo


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)

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 seal
al ancho de banda del canal. El resultado de este filtrado es
s (t ) =

a g (t kT )
k

k =

(2.11-3)

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 seal.

80

La combinacin 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 =

(2.11-6)

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 =
0 cualquier otro valor

(2.11-7)

Una respuesta al impulso con esta propiedad se dice que no tiene interferencia entre
smbolos (ISI, acrnimo en ingls 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 expresin es exactamente la secuencia de
smbolos transmitida. Es usual que cuando se disean los filtros de transmisin y recepcin,
estos combinen sus efectos de manera que se forme un nico filtro sin interferencia entre
smbolos bajo la suposicin de que la respuesta en frecuencia del canal sea constante en
todo el ancho de banda de la seal, as no se introduce distorsin.

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 automticamente
compensa las caractersticas no lineales del canal. Adems este se encarga de corregir
ciertas muestras, dndole 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 ecuacin (2.11-7) se establece el criterio para no tener ISI en trminos


de la respuesta al impulso g (nT ) del filtro conformador de la seal de banda base y est
dada por
g (nT ) =

1
2

G ( )e jnT d

(2.11-8)

Sea s = 2f s = 2 T . La integral de (2.11-8) puede ser calculada si se fracciona


el eje en una serie de intervalos muy pequeos.

ks , s ks para k = , .....,

2
2

82

Y tomando la sumatoria de estos intervalos, da como resultado la siguiente


expresin
s

1
g (nT ) =

k =

k s

k s

1
1
G ( )e jnT d =
T
k = s

1
G ( ks )e j ( k s )nT d (2.11-9)
T
s

Se puede notar que e jkn s T = e kn 2 = 1 y al tomar la suma dentro de la integral nos


da
s

g (nT ) =

G ( )e
*

jnT

(2.11-10)

donde
G * ( ) =

1
G( ks )
T k =

(2.11-11)

La funcin G*(w) se le conoce en la teora del procesamiento digital de seales


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 prctica para el estudio de la calidad de un sistema PAM es el


Diagrama de Ojo, que permite observar el efecto de distorsin ISI y el ruido. Un diagrama
1

Universidad de Valladolid. Marcos Martn Fernndez. http://www.lpi.tel.uva.es/lpi/dld/tts/tema6.pdf

83

de ojo se forma al aplicar la seal recibida y filtrada antes del muestreador a las placas de
deflexin vertical de un osciloscopio y una seal con forma de dientes de sierra a la tasa de
sealizacin en sincronismo con la seal recibida a las placas de deflexin horizontal. De
esta manera todos los smbolos se superponen en la pantalla del osciloscopio en un nico
perodo de smbolo, 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 seal binaria recibida (los primeros 8 bits)
y filtrada para un canal que introduce ruido y distorsin. En la figura 2.31 se puede ver un
diagrama de ojo (para 160 bits). El analizar este diagrama va a permitir determinar ciertas
caractersticas de la seal como el mejor instante de muestreo y la sensibilidad frente a
errores de temporizacin.

Figura 2.30 Seal binaria antes del muestreador

84

Figura 2.31 Diagrama de ojos para la seal de la figura 2.30

Un diagrama de ojos va a proporcionar mucha informacin prctica que caracteriza


a un sistema PAM. Los parmetros asociados ms interesantes de un diagrama de ojos se
mencionan a continuacin:
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
temporizacin.

85

El margen del ruido para un smbolo 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 fenmenos de
distorsin.

2.11.4 Recuperacin de la frecuencia del tren de pulsos

En tpicos sistemas PAM, el receptor es razonablemente bueno, pero no perfecto, al


reconocer la frecuencia del transmisor. Por esta razn debe establecer su propia frecuencia
y estar en fase con la seal del receptor para mantener la frecuencia de muestreo. A
continuacin se presenta un mtodo para recuperar la frecuencia de muestreo de la seal
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 travs 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 combinacin del filtro conformador
y el prefiltro, da como resultado la siguiente respuesta en frecuencia y respuesta al impulso
G1 ( ) = G ( )B ( ) y

86

g1 (t ) = g (t ) b(t )

(2.11-12)

De esta manera la salida del prefiltro es


q(t ) =

a g (t kT )

k =

(2.11-13)

Luego la salida del prefiltro se pasa a travs de un potenciador cuya salida es


p (t ) = q 2 (t ) =

a a g (t kT )g (t mT )

k = m =

m 1

(2.11-14)

La salida del potenciador se pasa a travs 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 funcin

sinusoidal con la frecuencia original con una pequea variacin en amplitud y fase. Luego
esta seal se pasa a travs de un PLL para obtener una seal estable con frecuencia f s .

Figura 2.32 Diagrama de bloques del sistema de recuperacin de frecuencia

87

2.12 Nota terica laboratorio de modulacin QAM1


La Modulacin de Amplitud en Cuadratura (QAM, acrnimo en ingls para
Quadrature Amplitude Modulation) es una modulacin digital en la que el mensaje est
contenido tanto en la amplitud como en la fase de la seal transmitida. La importancia de
este sistema de modulacin se debe a la gran cantidad de aplicaciones asociadas a ella. Es
empleada en multitud de sistemas de transmisin de televisin, microondas y satlite.
Tambin es empleada por mdems para velocidades superiores a los 2400 bps (por ejemplo
V.22 bis y V.32). Es la base de modulacin TCM (acrnimo en ingls para trellis coded
modulation), que consigue velocidades de transmisin muy elevadas combinando la
modulacin con la codificacin de canal.

2.12.1 Transmisor QAM bsico

El diagrama de bloques de un transmisor QAM bsico 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 pasarn al mdulo de mapeo
de estas palabras. Este mdulo se encarga de seleccionar un smbolo de entre los M = 2 J
posibles smbolos, ubicados sobre un espacio bidimensional. A la salida, los smbolos se
producen por tanto a una velocidad de f s = Rd J smbolos por segundo o baudios.

Tretter, S. A. Communication System Design Using DSP Algorithms. Primera Edicin, Kluwer Academic
/ Plenum Publishers, New York, Estados Unidos, 2003.

88

Figura 2.33 Diagrama de bloques de un transmisor QAM bsico

Los smbolos a transmitir son nmeros complejos que representaremos como


ck = ak + jbk . As, el alfabeto lo forman el conjunto de nmeros complejos que podremos
transmitir. Este alfabeto se puede representar en el plano complejo, formando la
constelacin de la modulacin. En la siguiente grfica se presentan diferentes
constelaciones posibles

89

Figura 2.34 Constelaciones QAM

A continuacin, los smbolos se introducen en los moduladores de impulsos, uno


para cada componente, obteniendo las seales:
a* (t ) =

a (t kT )
k

k =

(2.12-1)

y
b* (t ) =

b (t kT )

k =

(2.12-2)

Estas dos seales se pasan a travs de los filtros de transmisin


a(t ) =

a g (t kT )

k =

90

(2.12-3)

b(t ) =

b g (t kT )

k =

(2.12-4)

La funcin gT (t ) corresponde al filtro de transmisin y es de tipo pasobajo. En una


implementacin discreta, los filtros actan como filtros interpoladores, produciendo L
muestras por cada smbolo de entrada, de forma que la frecuencia de trabajo de los filtros
ser de Lfs.
La seal QAM se obtiene modulando en DSBSC-AM estas seales
s (t ) = a(t )cos ct b(t )senct

(2.12-5)

As, a (t ) es la componente en fase de la seal QAM y b(t ) la componente en


cuadratura. El equivalente pasobajo de la seal QAM, tomando como frecuencia de
referencia fc ser
~
s (t ) = a(t ) + jb(t ) =

ak gT (t kT ) + j bk gT (t kT )

k =

~
s (t ) =

(a

k =

k =

+ jbk )gT (t kT ) =

c g (t kT )

k =

(2.12-6)

La seal analtica es

s+ (t ) = ck gT (t kT ) e j c t
k =

(2.12-7)

En donde la seal QAM transmitida se puede expresar como


s (t ) = e{s+ (t )}

(2.12-8)

Por tanto, el modulador QAM puede ser representado de forma esquemtica, por el
siguiente diagrama de bloques mostrado en la figura 2.35.

91

Figura 2.35 Representacin de un modulador QAM en trminos de seales complejas

Se puede observar que, en el esquema de modulacin propuesto se obtiene primero


la seal pasobajo que se modula ms tarde en DSBSC-AM.

2.12.2 Modulador QAM utilizando filtros conformadores pasabandas

Otra alternativa para la implementacin del transmisor QAM puede conseguirse


modificando la ecuacin (2.12-7) de la siguiente manera


j c t
s+ (t ) = ck gT (t kT ) e
= ck e jc kT gT (t kT )e j c (t kT )
k =
k =

(2.12-9)

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 )senc t

(2.12-11)

Este filtro es un filtro pasabanda con respuesta en frecuencia H ( ) = GT ( c ) .


Tambin, sea
ck = ck e j c kT = ak + jbk

92

(2.12-12)

donde

(2.12-13)

(2.12-14)

ak = e ck e j c kT = ak cos c kT bk senc kT
y
bk = m ck e j c kT = ak senc kT + bk cos c kT
Sustituyendo estas definiciones en la ecuacin (2.12-9), da como resultado
s+ (t ) =

c h(t kT )

k =

(2.12-15)

Luego
s (t ) = e{s+ (t )} =

a h (t kT ) b h (t kT )

k =

k I

k Q

(2.12-16)

Un diagrama de bloques para el modulador en trminos de las seales complejas se


muestra en la figura 2.36. Y el diagrama de bloques que representa a la ecuacin (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 smbolos como los filtros son pasabanda, a
diferencia del esquema inicial en el que las seales se conformaban en banda base, y la
traslacin espectral se produce en la ltima etapa.
Los filtros conformadores de pulsos hI (t ) y hQ (t ) son tambin interpoladores igual
que en el esquema anterior. Estos producen L muestras por cada smbolo. Si comparamos
este esquema de modulador QAM con el esquema inicial, ste hace L multiplicaciones
complejas menos por perodo de smbolo que el anterior, ya que el modulador de producto,
trabaja con la seal a ritmo de smbolo, mientras que en el caso anterior, deba de realizar la
multiplicacin a razn de L por cada smbolo.

94

CAPTULO 3: Laboratorios
En este captulo se describen las prcticas de cada uno de los temas desarrollados en
el captulo anterior. Cada prctica consta de dos partes:

Simulacin, utilizando MATLAB y SIMULINK.

Cuestionario de preguntas especficas.

La parte de simulacin es necesaria para repasar los conocimientos adquiridos


durante el curso de procesamiento digital de seales. Asimismo, el estudiante ser capaz de
aplicar estos conocimientos en la solucin de los ejercicios propuestos.

Despus 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
H ( ) =
0

para < o

(banda de paso)

para > o

(banda de rechazo)

no son fsicamente realizables ya que no son causales, sin embargo es posible disear
filtros causales que pueden aproximarse a los ideales con tanta precisin como sea
necesaria.
Estos filtros causales presentarn rizado tanto en la banda de paso como en la banda
de rechazo, por lo general .Por otro lado, la transicin de frecuencia entre ambas bandas no
se realizar de forma abrupta. La figura muestra las caractersticas indicadas

Figura 3.1 Respuesta en frecuencia de un filtro pasobajo

96

En MATLAB existen varias funciones que ayudan al diseo de un filtro indicando


sus caractersticas. Para el diseo de filtros del tipo IIR o FIR se utilizan frecuentemente las
funciones que se muestran a continuacin:

Tabla 3.1 Funciones ms comunes para el diseo de filtros digitales en MATLAB


Filtro Digital

Tipo

Funcin en MATLAB
[b,a] = besself(n,Wn,options)

Bessel (solo anlogo)

[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)

Elptico

[z,p,k] = ellip(n,Rp,Rs,Wn,options)
[A,B,C,D] = ellip(n,Rp,Rs,Wn,options)

FIR

Ventana

b = fir1(n,Wn,'ftype',window)
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. Disee un filtro pasabanda de respuesta finita al impulso (FIR) de orden 8,
suponiendo una frecuencia de muestreo de 8 kHz. Las frecuencias de paso estn
situadas en 1200 y 2000 Hz. Utilice la funcin 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 grfica y comente sus resultados.
3. Considere una seal de entrada formada por la suma de tres seales 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 funcin ventana de Kaiser.
5. Repita los puntos (1), (2) y (3) utilizando una funcin ventana de Barlett.

3.1.2 Filtros digitales IIR

Resuelva cada paso del siguiente procedimiento:


1.

Disee un filtro digital IIR basado en el prototipo de un filtro elptico


pasobajo con frecuencia de corte en 300 Hz, una atenuacin mxima en la
banda de paso de 0.5 dB y una atenuacin mnima en la banda de rechazo
de 80 dB, suponiendo que la seal de entrada ser muestreada a una

98

frecuencia de 8000Hz. En MATLAB utilice la funcin ellip para


implementar el filtro.
2.

Grafique la respuesta en frecuencia del filtro anterior utilizando la funcin


freqz (ver ayuda de MATLAB).

3.

Considere que la seal de entrada est formada por la suma de dos seales
sinusoidales de frecuencia 180 y 720 Hz respectivamente. Usando la
funcin filter, grafique la salida del filtro y determine que sucede.

4.

Estudiar la dependencia del filtro de los parmetros de orden, atenuacin


mnima y mxima, pero manteniendo la frecuencia de corte y
modificando alguno de los parmetros anteriores. Utilice al menos 3
valores diferentes para cada uno y grafique los resultados.

5.

Disee un filtro digital pasabanda Chebyshev Tipo I de orden 6 con


frecuencia de paso de 300 y 500 Hz, suponiendo que la seal de entrada
ser muestreada a una frecuencia de 8000 Hz. Grafique la respuesta en
frecuencia del filtro.

6.

Considere una seal de entrada formada por la suma de tres seales


sinusoidales de frecuencia 120, 400, 680 Hz respectivamente. Grafique la
salida del filtro y explique que sucede.

7.

Disee un filtro digital rechaza banda de orden 6 con frecuencias de


rechazo entre 300 y 500 Hz, suponiendo que la seal de entrada ser
muestreada a una frecuencia de 8000 Hz. Grafique la respuesta en
frecuencia del filtro.

99

8.

Repita el punto 6.

9.

Disee un filtro pasabanda de respuesta infinita al impulso (IIR), basado


en el prototipo de un filtro elptico analgico 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 atenuacin mxima en la banda de paso del filtro
no debe ser mayor que 0.3 dB y la atenuacin mnima en la banda de
rechazo de al menos 40 dB. Utilice las funciones de MATLAB para la
conversin de filtros.

3.1.3 Filtrado en SIMULINK

1. Considere la seal del punto (3) de la seccin 3.1.1. Se desea filtrar esa seal y
se quiere dejar pasar solo la seal con frecuencia de 1440 Hz. Utilice el bloque
llamado Sine Wave de la librera Sources en SIMULINK para generar cada
una de las seales que componen la seal principal, luego utilice un bloque de
punto de suma Sum y una de estas seales para formar una seal con tres
componentes en frecuencia. Luego utilice el bloque Zero-Order Hold para
muestrear la seal debe configurarlo para una frecuencia de muestreo de 8 KHz.
2. Ahora utilice el bloque Digital Filter Design de la librera 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 seal
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 seccin 3.1.2. Implemente la seal del punto (6) de la seccin 3.1.2. Utilice
el filtro que hizo y pase la seal a travs de este y explique que sucede.
4. Repita el punto anterior pero para el filtro del punto (7) de la seccin 3.1.2.

3.1.3 Cuestionario

1. Cmo se define un filtro IIR? Cmo se define un filtro FIR? Mencione tres
diferencias entre estos dos tipos de filtros.
2. Qu es la transformacin bilineal y para qu se utiliza?
3. Investigue si existen otros mtodos de transformacin para pasar de un filtro
analgico a uno digital.

101

3.2

Laboratorio de FFT
El algoritmo de la FFT es una manera eficiente de calcular la DFT. Una primera

aproximacin al clculo de la DFT requerira 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 clculo de la DFT


introduciendo atajos matemticos para reducir drsticamente el nmero 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 clculo de la FFT.


Funcin en MATLAB

Descripcin

Obtiene la FFT del vector x. X es un vector de nmeros


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 nmero primo. Otra


opcin de la FFT es especificar el nmero de puntos con el que
se quiere hacer la FFT.

X= ifft(Y,N)

Obtiene la FFT inversa del vector x. Tambin se puede

X= ifft(Y,N)

especificar el nmero 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 funcin


reordenamos los puntos en funcin de la frecuencia.

3.2.1 Clculo 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.25n ) + cos(0.5n ) + cos(0.52n ) . Calcular


la DFT utilizando la funcin de MATLAB fft(x, N). Sea L la longitud de
la secuencia x[n] de 256 muestras. Probar con diferentes valores de
nmero 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 seal 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 seal rellenada con


ceros, utilizando la funcin de MATLAB ifft(X) para recuperar la seal
en el dominio del tiempo.

103

4.

Usando la FFT, se desea estudiar las componentes en frecuencia de una


seal conformada por la suma de las siguientes seales
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 seal mencionada se debe determinar

5.

Cul es su frecuencia fundamental?

Qu frecuencia de muestreo debe usarse?

Valor adecuado de N para obtener suficiente precisin de frecuencias.

Grafique la magnitud y la fase de la seal en el dominio de la frecuencia.


Calcule la inversa de la FFT obtenida a partir de la seal del punto (4)
utilizando la funcin de MATLAB ifft(X) para recuperar la seal 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


estn presentes en una seal discreta. SIMULINK tiene un bloque para analizar el espectro
de una seal, este bloque se llama Spectrum Scope. Este bloque recibe a su entrada una
seal discreta y devuelve como resultado una grfica donde se muestra el espectro en
frecuencia de la seal de entrada.

104

1.

Genere una seal de entrada compuesta de las siguientes seales


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 seal 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 seal 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 bsicos para la FFT,


diezmado en el tiempo y diezmado en frecuencia?

2.

Investigue en que consisten los fenmenos en frecuencia conocidos como


aliasing y leakage.

105

3.3

Laboratorio de modulacin AM
Entre los primeros moduladores empleados se encuentra la modulacin de amplitud.

La necesidad ms importante para modular seales es el desplazamiento de los


componentes en frecuencia de una seal para poder transmitirla por un canal de
comunicacin donde se transmiten otras seales. La siguiente figura presenta el principio
bsico de la modulacin AM

Figura 3.3 Diagrama del principio bsico de modulacin AM

MATLAB tiene varias funciones para modular y demodular, estas funciones se


muestran en la siguiente tabla.

Tabla 3.3 Funciones de MATLAB para modulacin y demodulacin AM


Funcin en MATLAB

Descripcin

Esta funcin modula una seal 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'. Tambin se puede obtener el


vector de tiempo interno que utiliza la funcin
modulate para hacer los clculos.

La funcin demod demodula la seal


modulada obtenida por la funcin modulate
para obtener la seal original. Demodula la
x = demod(y,fc,fs,'method')

seal con una frecuencia portadora f c y una


frecuencia de muestreo f s , am se usa en
lugar de 'method'.

3.3.1 Modulacin AM

1.

Utilice las funciones mostradas en la tabla 3.3 para la modulacin y


demodulacin de una seal coseno, conocida para este tipo de
modulacin como tono de prueba. Las funciones de la tabla 3.3 utilizan
un ndice de modulacin de m = 1 . La frecuencia de la portadora es 10
veces la frecuencia de la seal a modular con una amplitud igual a 1, en
este caso la seal a modular est dada por
tono = 5 cos(2 (10 )t )

2.

Obtenga las grficas de la seal a modular, la seal modulada, la seal


demodulada, as como el espectro en magnitud y el espectro de fase en
frecuencia de las tres seales.

107

3.

Ahora desarrolle un cdigo en MATLAB para implementar la funcin


modulate. Vare la amplitud de la seal a modular y la seal portadora,
de tal modo que se obtenga un ndice de modulacin m < 1 , otro ndice
m = 1 y por ltimo m > 1 .

4.

Compare la seal inicial obtenida con la seal modulada para los tres
casos. Comente y explique que ocurre en cada uno.

5.

En la mayora de los casos, cuando se modula una seal el canal de


transmisin introduce a la seal modulada otra seal pequea pero que sin
duda distorsiona la seal original, esta seal se le conoce popularmente
como ruido en el canal. Repita los puntos del (1) al (2) pero esta vez
introduciendo ruido al canal de transmisin. Utilice la herramienta de
ayuda de MATLAB para generar una seal 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 Cuadrtica)

1.

Implemente el detector de envolvente de Ley Cuadrtica que se muestra


en la figura 3.4. Utilice una frecuencia de muestreo de 8 KHz, una
frecuencia de 2 KHz para la seal portadora y una frecuencia de 200 Hz
para la seal a modular m(t ) . Utilice un filtro FIR pasobajo con una
funcin ventana Hamming para H ( ) con un orden suficiente para

108

suprimir las componentes no deseadas alrededor de 2 f c con una


atenuacin 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 raz cuadrada utilizando un filtro pasoalto con la siguiente
funcin de transferencia.
G(z ) =

1 + c 1 z 1

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 seal modulada y la salida del detector de envolvente.


Obtenga el espectro de magnitud y el espectro de fase en frecuencia de
ambas seales. 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 seal de
entrada y el bloque que obtiene la raz cuadrada de la seal a la salida del
filtro pasobajo. El filtro pasobajo genrelo con el bloque Digital Filter
Design. Para el filtro pasoalto utilice el bloque Discrete Filter. Luego
obtenga el espectro de la seal a modular y la salida del filtro paso alto.
Mantenga los parmetros del punto (1). Comente sus resultados

109

Figura 3.4 Detector de envolvente de Ley Cuadrtica

3.3.3 Cuestionario

1.

Investigar en que consiste el ndice de modulacin y cules son sus


efectos.

2.

Qu efecto produce el ruido del canal de comunicacin en la modulacin


de amplitud?

3.

Mencione y explique cules son algunas de las ventajas y desventajas que


tiene la modulacin AM.

110

3.4

Laboratorio de modulacin DSBSC-AM


La modulacin AM completa incluye la transmisin de las componentes en

frecuencia tanto de la portadora como de la seal a modular. Este tipo de modulacin


desperdicia ms del 80% de la potencia al transmitir la portadora con toda su potencia
adems de dos bandas laterales, aunque una de las cuales resulta innecesaria para la
recuperacin de la informacin 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 seal en el
transmisor, en el receptor slo sera 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 slo una muestra de ella. Este razonamiento da lugar a la
posibilidad de transmitir slo las dos bandas laterales con, o sin un piloto de la portadora.
La siguiente figura muestra el principio bsico de la demodulacin para modulacin
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 seal original.

Figura 3.5 Diagrama del principio bsico de demodulacin 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 opcin amdsb-sc.

3.4.1 Modulacin DSBSC-AM

1.

Utilizando MATLAB y basado en la figura 3.5 demodule una seal


utilizando modulacin DSBSC que ha sido modulada por una seal
portadora con una frecuencia de 200 Hz. La seal a modular es la
siguiente
m(t ) = 10e 0.5t sin (2 (20)t )

2.

Grafique la seal a modular, la seal modulada y la demodulada.


Grafique la salida del filtro.

3.

Obtenga el espectro de magnitud en frecuencia de la seal antes de pasar


por el filtro y despus de pasar por este.

4.

Compare la seal inicial con la obtenida luego de la modulacin y


demodulacin de la misma y comente sus resultados.

5.

Ahora utilizando las funciones modulate y demod de MATLAB


module y demodule la seal del punto (1).

6.

Grafique la seal modulada y la demodulada y compare con la seal


original. Obtenga adems el espectro de magnitud en frecuencia de ambas
seales.

112

7.

Compare los resultados del punto (6) con los obtenidos en el punto (2).

3.4.2 Modulacin y demodulacin AM utilizando SIMULINK

1.

Con ayuda de la herramienta SIMULINK de MATLAB, implemente el


modelo de simulacin DSBSC-AM de la seccin 3.4.1 y el modelo bsico
de demodulacin de la figura 3.5. Para generar la seal a modular de la
seccin 3.4.1, utilice los bloques Sine Wave, Clock y Fcn. El tercer
bloque es para generar una seal basado en una funcin y el segundo es la
variable para generar la seal deseada. Utilice el bloque Digital Filter
Design para generar el filtro pasobajo.

2.

Muestre la seal a modular, la seal modulada y la seal demodulada.

3.

Obtenga el espectro en frecuencia de estas seales utilizando el bloque


Spectrum Scope.

3.4.3 Cuestionario

1.

Cules son las ventajas de utilizar este tipo de modulacin 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 modulacin DSBSC-AM?

113

3.5

Laboratorio de modulacin SSB


Los tipos de modulacin AM y DSBSC-AM no utilizan eficientemente el espectro

de frecuencia. Al analizar el espectro se encuentra que an hay redundancia ya que las dos
bandas alrededor de la frecuencia de corte son simtricas. El objetivo de la modulacin
SSB es utilizar eficientemente el espectro, transmitiendo una seal utilizando una de las
dos bandas alrededor de la frecuencia de corte, ya sea la banda inferior o la banda superior,
pues ambas son simtricas. 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 seal modulada con DSBSC-AM y una etapa de filtrado.

Figura 3.6 Modulador SSB

3.5.1 Modulacin SSB-AM

1.

En MATLAB, con base en el modulador de la figura 3.6, implemente este


tipo de modulacin SSB, tanto para la banda superior como la inferior.
Utilice una seal 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 seal 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
H sup ( ) =
0

> c

para

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
H inf ( ) =
0
2.

Pruebe

su

procedimiento

< c

para

cualquier otro
para

la

siguiente

seal

de

entrada

m(t ) = Am cos(2 600t ) con Am = 0.5 .


3.

Grafique las seales generadas por el modulador y la seal de entrada.


Tambin grafique la respuesta en frecuencia y fase de los filtros
utilizados.

4.

Obtenga el espectro de magnitud en frecuencia para las seales generadas


por el modulador y la seal de entrada. Comente sus resultados.

3.5.2 Demodulacin 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
seal a transmitir m(t ) se pone la seal 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 seal original.
2.

Una vez que tenga listo el procedimiento para demodular, pruebe con la
seal modulada que obtuvo en el punto (2) de la seccin 3.5.1.

3.

Grafique y compare la salida del demodulador con la seal 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 seales


demoduladas y comente sus resultados.

3.5.3 Modulacin y demodulacin SSBAM en SIMULINK

1.

En SIMULINK implemente este modulador SSB y repita el ejercicio.


Utilice los bloques Sine Wave para generar la seal a modular del punto
(6) y la seal portadora del punto (1) de la seccin 3.5.1. Multiplique
estas seales, luego utilice el bloque Digital Filter Design para simular
los filtros selectores de las bandas laterales y as generar la seal SSBAM.

2.

Obtenga el espectro en frecuencia con el bloque Spectrum Scope para la


seal a modular y la seal SSB-AM de banda lateral inferior y superior.

116

3.

Luego implemente el procedimiento para demodular la seal SSB-AM


para recuperar la seal original, tal y como se indic en el punto (1) de la
seccin 3.5.2.

4.

Obtenga el espectro de frecuencia de estas seales y compare con el


espectro de la seal original.

3.5.4 Cuestionario

1.

Cules son las ventajas y desventajas de utilizar la modulacin SSB?

2.

Mencione y explique al menos dos mtodos diferentes al del laboratorio


que existen para modular una seal SSB.

3.

Investigar cules otros mtodos para demodular seales SSB existen.


Explique detalladamente cada uno.

117

3.6

Laboratorio de modulacin FM
La modulacin en frecuencia consiste en hacer variar la frecuencia de la portadora

en funcin de la seal moduladora. Estas variaciones han de ser proporcionales a la


amplitud de la seal a transmitir. Un modulador de FM debe tener las siguientes
caractersticas:

La frecuencia de la seal de salida no ser siempre la de la portadora.

Si la seal a modular tiene un valor de cero en su amplitud, en la salida


tendremos una seal de frecuencia igual a la portadora.

Si la seal a modular tiene un valor positivo en su amplitud, en la salida se


tendr una seal de frecuencia proporcional superior a la de la portadora.

Si la seal a modular tiene un valor negativo en su amplitud, en la salida se


tendr una seal de frecuencia proporcional inferior a la de la portadora.

La frecuencia de la seal a modular no afecta a la variacin de frecuencia de


la seal modulada, nicamente influye en la velocidad a la que se produce la
variacin.

3.6.1 Modulacin FM

1.

Implemente la modulacin de frecuencia de un tono simple en MATLAB.


Utilice un ndice de modulacin = 5 . La frecuencia de la seal a
modular es de 100 Hz y la frecuencia de la seal portadora es de 1 KHz.

118

Utilice una frecuencia de muestreo de 80 KHz. La seal a modular es


m(t ) = Am cos mt . La seal 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 seal a modular y la seal modulada (seal FM generada).


Comente sus resultados.

3.

Determine el espectro de frecuencia en magnitud y fase de la seal


modulada. Compruebe que la seal FM posee muchas componentes en
frecuencia y que la magnitud de componente de la seal portadora tiende
a cero.

4.

Utilizando la funcin modulate de MATLAB y cambiando la palabra


method por fm module la seal m(t ) = Am cos mt con una frecuencia
de 100 Hz y la portadora con una frecuencia de 1 KHz. Cuando se utiliza
la opcin fm se debe agregar una constante llamada opt esta
representa el ndice de modulacin, pruebe con 0.04.

5.

Grafique la seal a modular y la seal modulada con modulate.

6.

Utilizando modulate vare el valor de la constante opt. Puede utilizar


tres valores diferentes entre 0 y 1.

7.

Grafique estas tres seales FM generadas y observe lo que sucede cuando


el ndice de modulacin es modificado.

119

8.

Ahora utilizando demod demodule las seales obtenidas en los puntos


(6) y (7). Utilice fm en lugar de la palabra method.

9.

Grafique las seales demoduladas para cada ndice de modulacin


probado y compare con la seal original la cual es la seal a modular.
Comente sus resultados.

10.

Obtenga el espectro en frecuencia de magnitud y fase para cada una las


seales obtenidas en el punto (8).

3.6.2 Modulacin y demodulacin FM utilizando SIMULINK

1.

Como introduccin a la modulacin y demodulacin FM, SIMULINK


tiene dos bloques especficos para simular una seal FM y otro para
recuperar la seal original a partir una seal FM. Estos bloques se llaman
FM Modulator Paseband y FM Demodulator Passband. Utilice estos
bloques para modular la seal del punto (1) de la seccin 3.6.1. La
herramienta de ayuda de MATLAB tiene la informacin necesaria para
utilizar correctamente estos bloques.

2.

Utilice nuevamente el bloque Sine Wave para generar la seal a


modular. La seal que se obtiene despus del bloque demodulador psela
a travs de un filtro IIR pasobajo Chebyshev Tipo I con una frecuencia de
corte que permita el paso de la frecuencia central de la seal original y
justifique el porque de su escogencia.

120

3.

Obtenga la grafica de la seal a modular, la seal FM y la seal


demodulada. Tambin represente el espectro de frecuencia para cada una
de estas seales 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 modulacin en frecuencia y cul es su


efecto cuando se usa modulacin FM? Cmo debe ser este para que la
seal se pueda reconstruir bien?

3.

Cules son las ventajas y desventajas de utilizar la modulacin FM?

121

3.7

Laboratorio de modulacin PAM


En la modulacin PAM, la informacin es transmitida en smbolos de valores

discretos, uniformemente espaciados por intervalos de tiempo. La seal portadora es un


tren peridico de pulsos rectangulares separados a la misma distancia uno de otro. La
amplitud de los pulsos es proporcional al valor instantneo de las muestras de una seal
continua. Una seal PAM se puede representar por la siguiente ecuacin

s (t ) =

[1 + k m(nT )]g (t nT )
a

n =

Donde s (t ) > 0 para todo valor de n, m(nTs ) es la muestra de la seal 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 mxima de la seal moduladora
m(t ) de acuerdo con el teorema de muestreo.

MATLAB tiene una funcin para simular este tipo de modulacin, esta funcin es
pammod y tiene otra funcin que demodula una seal PAM, pamdemod las cuales se
muestran en la siguiente tabla.

122

Tabla 3.4 Funciones de MATLAB para modulacin y demodulacin PAM


Funcin en MATLAB

Descripcin

La salida de esta funcin es la envolvente


compleja de una seal x al ser modulada
utilizando modulacin PAM.
y = pammod(x,M)

M es la cantidad de niveles de cuantificacin

y = pammod(x,M,ini_phase)

de la seal, la cual debe estar dada en valores


enteros positivos.
La segunda opcin ini_phase especifica en
radianes la fase inicial de la seal modulada.
Esta funcin demodula la envolvente compleja
de

z = pamdemod(y,M)

una

seal

PAM.

Los

niveles

de

cuantificacin es la variable M.

z = pamdemod(y,M,ini_phase)

La segunda opcin ini_phase especifica en


radianes la fase inicial de la seal PAM.

3.7.1 Modulacin y demodulacin PAM en MATLAB

1.

Para conocer el efecto de la modulacin de amplitud de pulso module la


siguiente seal y = 10 cos(4t ) , utilice una frecuencia de muestreo de
1000 Hz y obtenga mil muestras. En MATLAB con la ayuda de la
funcin square, cree un tren de pulsos con ciclo de trabajo de un 25% y

123

una frecuencia de 30 Hz, esto para apreciar este fenmeno. Aada un


nivel DC a la seal original y multiplique esta por el tren de pulsos.
2.

Grafique la seal a modular, el tren de pulsos y la seal modulada.


Tambin obtenga y grafique el espectro en magnitud y fase de la seal a
modular y la seal modulada.

3.

Para poder utilizar las funciones de la tabla 3.4 se necesita que la seal
est antes cuantificada en niveles de valores enteros positivos. Para no
tener problemas con estas funciones utilizaremos la funcin quantiz que
nos permite cuantificar una seal a los niveles o smbolos que queramos
en este caso enteros positivos. Para ello emplee el siguiente cdigo 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 mtodo anterior para cuantificar esta seal m(t ) = Am sin (2f 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 cuantificacin de la seal cuantificada, pero antes de

124

cuantificar debe aadir un nivel DC a la seal muestreada suficiente para


que no haya niveles de valores negativos.
5.

Module por medio de modulacin PAM utilizando la funcin pammod


la seal cuantificada en el punto (4).

6.

Grafique la seal a modular, la seal cuantificada y la seal modulada.


Grafique la seal cuantificada utilizando tanto la funcin plot como la
funcin stem.

7.

Demodule la seal PAM generada en el punto (5) utilizando la funcin


pamdemod. Grafique la seal demodulada y compare con la seal
original. Comente sus resultados

8.

Obtenga el espectro de frecuencia en magnitud y fase de la seal


modulada y la seal demodulada.

9.

Obtenga el diagrama de ojo de la seal demodulada utilizando la funcin


eyediagram y comente sus resultados.

3.7.2 Modulacin y demodulacin PAM en SIMULINK

1.

Para modulacin y demodulacin 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 pequeo 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 seal a bits con
el siguiente bloque Integer to Bit Converter. Despus module y
demodule esta seal utilizando los bloques para simulacin PAM que se
encuentran en la librera Digital Baseband Modulation.
2.

Utilice la herramienta de ayuda de MATLAB para utilizar correctamente


estos bloques.

3.

Obtenga la seal a modular, la seal modulada y la seal demodulada.


Compare la seal reconstruida con la seal original.

4.

Obtenga un diagrama de ojo de la seal demodulada con el bloque


Discrete Time Eye Diagram Scope para 8 muestras por smbolo.

5.

Se recomienda utilizar un tiempo de simulacin de 30 segundos para


apreciar con claridad lo que esta sucediendo. Comente sus resultados.

3.7.3 Cuestionario

1.

Qu es el fenmeno de Interferencia entre smbolos (ISI)?

2.

Qu es un diagrama de ojo? Cul es su importancia en el anlisis de


sistemas de comunicaciones digitales?

3.

Cules son las ventajas y desventajas de la modulacin PAM?

126

3.8

Laboratorio de modulacin QAM


La modulacin de amplitud en cuadratura o QAM es una modulacin digital en la

que el mensaje est contenido tanto en la amplitud como la fase de la seal transmitida. Se
basa en la transmisin 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 formacin de dos canales ortogonales en el mismo ancho de banda, con lo cual se
mejora la eficiencia de ancho de banda.
La modulacin QAM es un esquema un tanto riguroso. Un pequeo error en la fase
o la frecuencia de la portadora en el demodulador no solo resulta en prdida o distorsin de
las seales sino interferencia entre ambos canales.
La modulacin QAM es utilizada en las transmisiones de televisin en color para
multiplexar las seales de crominancia, que portan la informacin acerca del color. En este
caso, la sincronizacin se logra por la insercin peridica de una muestra de la seal
portadora.
MATLAB tiene una funcin para simular este tipo de modulacin, esta funcin es
qammod y tiene otra funcin que sirve para demodular una seal QAM qamdemod,
estas funciones se muestran en la siguiente tabla.

127

Tabla 3.5 Funciones de MATLAB para la modulacin y demodulacin QAM


Funcin en MATLAB

Descripcin

La salida de esta funcin es la envolvente


compleja de una seal x al ser modulada
utilizando modulacin QAM.
M es la cantidad de niveles de cuantificacin
y = qammod(x,M)

de la seal, la cual debe estar dada en valores

y = qammod(x,M,ini_phase)

enteros positivos en potencia de 2.


La seal obtenida es una constelacin de forma
rectangular o en cruz.
La segunda opcin ini_phase especifica en
radianes la fase inicial de la seal modulada
Esta funcin demodula la envolvente compleja
de una seal QAM.
M es la cantidad de niveles de cuantificacin

z = qamdemod(y,M)

de la seal, la cual debe estar dada en valores

z = qamdemod(y,M,ini_phase)

enteros positivos en potencia de 2.


La segunda opcin ini_phase especifica en
radianes la fase inicial de la seal modulada

128

3.8.1 Modulacin y demodulacin QAM

1.

Se desea modular una seal formada por las siguientes seales


m1 (t ) = Am sen(2f1t )

m2 (t ) = Am sen(2f 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
seal muestreada a niveles enteros positivos.
2.

Grafique la seal a modular y la seal cuantificada (utilice tanto plot


como stem).

3.

Module la seal cuantificada en el punto (1) utilizando la funcin


qammod y grafique la seal modulada en cuadratura y fase.

4.

Suponga que a la seal se le aade ruido en el canal de transmisin. El


canal contiene ruido gausiano o AWGN. Este ruido se genera con el
siguiente cdigo, utilcelo y explique.
k=log2(M);
EbNo = 10; %dB
snr = EbNo + 10*log10(k) - 10*log10(1);
ynoisy = awgn(ytx,snr,'measured');

5.

Utilice la funcin scatterplot para mostrar la constelacin de la seal


QAM antes y despus de que se le aada el ruido gausiano. Comente sus
resultados.

129

6.

Luego demodule la seal con y sin ruido utilizando la funcin


qamdemod. Grafique ambas seales demoduladas y compare con la
seal original. Comente sus resultados.

7.

Por ltimo obtenga el espectro de frecuencia en magnitud y fase de la


seal a modular, la seal modulada y demodulada, ambas con y sin ruido.
Comente sus resultados.

3.8.2 Modulacin y demodulacin QAM con SIMULINK

1.

Para modulacin y demodulacin 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 pequeo 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. Despus
module y demodule esta seal utilizando los bloques para simulacin
QAM que se encuentran en la librera Digital Baseband Modulation.

2.

Para simular un canal de transmisin con ruido utilice el bloque llamado


AWGN Channel. Modifique sus propiedades y utilice en la Mode la
opcin Signal to noise ratio (SNR). Utilice este bloque con un SNR de

130

10 dB. A la entrada de este bloque debe ir la seal 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 seal a modular, la seal modulada con y sin ruido y la seal


demodulada. Compare la seal reconstruida con la seal original.

5.

Obtenga un diagrama de constelacin de la seal demodulada con el


bloque Discrete Time Scatter Plot Scope para 32 muestras por smbolo.

6.

Se recomienda utilizar un tiempo de simulacin de al menos 100


segundos para apreciar con claridad lo que esta sucediendo. Comente sus
resultados.

3.8.2 Cuestionario

1.

Cules son las ventajas y desventajas de la modulacin QAM?

2.

En qu consiste un canal de transmisin que aade ruido blanco


gausiano (AWGN acrnimo en ingls para Additive White Gaussian
Noise)? Qu es el SNR y el BER?

3.

Cul es la importancia de evaluar un sistema de comunicacin digital


con un canal de este tipo?

4.

Investigue en qu consiste el estndar de transmisin V22bis para


sistemas de comunicacin digital.

131

CAPTULO 4: Conclusiones y recomendaciones

4.1

Conclusiones
MATLAB Y SIMULINK son dos herramientas muy poderosas con las cuales se

hace posible la simulacin de sistemas de comunicacin tanto analgicos como digitales.


Se demostr que con estas dos herramientas se puede obtener una aproximacin excelente
para el estudio de los conceptos bsicos en el comportamiento de los sistemas de
comunicacin.
Al desarrollar prcticas de simulacin en sistemas de comunicaciones tanto
analgicos como digitales, se logra dar un enfoque prctico a los conceptos planteados en
el curso de Procesamiento Digital de Seales, mediante la simulacin de seales en el
dominio del tiempo, as como en el dominio de la frecuencia al evaluar conceptos como
muestreo, cuantificacin, filtrado, densidad espectral, modulacin analgica y digital, por
mencionar algunos de los ms comunes.
Se consigue aprender los conceptos de como implementar las tcnicas de filtrado
para seales de tiempo discreto usualmente utilizadas en el curso de procesamiento digital
de seales por medio del laboratorio de filtros digitales.
El laboratorio de FFT permite conocer y utilizar una tcnica importante en el
anlisis espectral de seales discretas. Este laboratorio ayud a implementar un analizador
de espectro utilizando la Transformada Rpida de Fourier (FFT), el cual fue de gran ayuda
para los laboratorios siguientes.

132

Se examin un mtodo muy comn para transmitir informacin conocido como


modulacin AM. Se analiz el espectro de frecuencia una seal AM con y sin ruido, esto
en laboratorio de modulacin AM.
Con el laboratorio de modulacin DSBSC-AM se consigue introducir al estudiante
a una tcnica de modulacin AM que permite transmitir la seal modulada en amplitud
slo con la potencia requerida para la seal de informacin.
El laboratorio de modulacin SSB-AM permite conocer otra tcnica de modulacin
AM la cual utiliza la mitad del ancho de banda al utilizar eficientemente el espectro en
frecuencia. Tambin se pudo demostrar que se puede recuperar la seal original a pesar de
que solo se transmita la mitad de esta.
Se pudo estudiar la teora bsica de modulacin y demodulacin FM por medio de
las ecuaciones que MATLAB presenta para este tipo de modulacin. Analizar el espectro
de frecuencia de una seal FM por medio del laboratorio de modulacin FM.
El laboratorio de modulacin PAM da a conocer el principio bsico de la
modulacin por amplitud de pulsos la cual es de gran importancia en el procesamiento
digital de seales. Se introduce el concepto de una herramienta llamada diagrama de ojo
que permite analizar la calidad de una seal PAM.
El ltimo laboratorio de modulacin QAM da a conocer otro mtodo de modulacin
digital que permite transmitir parte de la seal tanto en amplitud como en fase. Se introduce
el concepto de los diagramas de constelacin que permite analizar una seal QAM con y
sin ruido.

133

Con la preparacin de las prcticas de simulacin se fortalecen los conceptos que


existen alrededor de los sistemas de comunicacin, los cuales son de gran importancia hoy
en da, donde los medios y tcnicas de comunicacin son necesarias para casi todas las
tareas cotidianas de muchas personas alrededor del mundo.
Estas prcticas de simulacin permitirn al estudiante no slo familiarizarse con la
teora durante sus estudios, sino que le permitir tener una idea ms clara del
comportamiento y las tcnicas utilizadas en los sistemas de comunicacin.

4.2

Recomendaciones
Las prcticas planteadas deben estar acompaadas de una base terica. Esto debido

a que las tcnicas de comunicacin utilizadas en los sistemas de comunicacin se mejoran


da a da.
El estudiante debe sacar el tiempo para investigar como se deben utilizar las
funciones que MATLAB ofrece para el procesamiento de seales. Este tiempo debe ser
contemplado por el profesor dentro del lapso de entrega de su informe de resultados para
cada prctica.
MATLAB 7.0.1 es la versin en la que se basa la realizacin de los ejercicios de
simulacin por lo que algunas de las funciones y bloques de SIMULINK mencionados para
la simulacin de modulaciones es posible que no aparezcan en versiones anteriores a esta.

134

BIBLIOGRAFA
A continuacin se presenta las referencias bibliogrficas consultadas para la
elaboracin de este proyecto.

Libros:
1. Antoniou, A. Digital Signal Processing: Signals, Systems and Filters, Primera
edicin, McGraw-Hill, New York, Estados Unidos, 2006.
2. Tretter, S. A. Communication System Design Using DSP Algorithms, Primera
edicin, Kluwer Academic / Plenum Publishers, New York, Estados Unidos, 2003.
3. Jackson, L. B. Digital filters and Signal Processing, Tercera edicin, Boston:
Kluwer Academic Publishers, Estados Unidos, 1996.
4. Stanley, W. D. Digital Signal Processing, Segunda edicin, Reston Publishing
Company, Inc., Estados Unidos, 1984.
5. Alkin, O. Digital Signal Processing: A Laboratory Approach Using PC-DSP,
Primera edicin, Prentice Hall, Estados Unidos, 1994.
6. Proakis, J. G. Tratamiento digital de seales, Tercera edicin, Prentice Hall,
Madrid, Espaa, 1998.
7. Bildstein, P. Filtros Activos, Primera edicin, Marcombo Boixareu Editores,
Espaa, 1977.
8. Johnson, D. E. Rapid Practical Designs of Active Filters, Primera edicin, John
Wiley & Sons, Inc., Estados Unidos, 1975.

135

Pginas web:
9. Universidad de Valladolid. Marcos Martnez Fernndez, MMF. Modulacin
analgica y digital de Pulsos, http://www.lpi.tel.uva.es/lpi/dld/tts/tema5.pdf

10. Universidad de Valladolid. Marcos Martnez Fernndez, MMF. Transmisin


digital en banda base, http://www.lpi.tel.uva.es/lpi/dld/tts/tema6.pdf

11. Universidad de Valladolid. Marcos Martnez Fernndez, MMF. Transmisin


digital paso banda, http://www.lpi.tel.uva.es/lpi/dld/tts/tema7.pdf

136

APNDICES

APNDICE A: Cdigo fuente de los ejercicios de simulacin en


MATLAB
A.1

Cdigo fuente laboratorio de filtros digitales

%************************************************************************
%LABORATORIO DE FILTROS DIGITALES
%************************************************************************
%************************************************************************
%REALIZADO POR: Jos Gabriel Fernndez Carazo
%
A21941
%
Escuela de Ingeniera Elctrica
%
Facultad de Ingeniera
%
Universidad de Costa Rica
%************************************************************************
%Ultima modificacin: 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
%Parmetros del filtro
N=[8 16 32 64];
Wn=[1200 2000]/(fm/2);
L=length(N);
M=zeros(N(L)+1,L);

%Orden del filtro


%Frecuencias de corte
%Matriz de ceros para guardar los
%coeficientes del filtro para cada orden

137

for i=1:L
ventana=window(@hamming,N(i)+1);

%Clculo de la funcin ventana


%Hamming
B=fir1(N(i),Wn,'bandpass',ventana); %Clculo de los coeficientes del
%filtro
for j=1:length(B)
M(j,i)=B(j);
end

end
%************************************************************************
%************************************************************************
%Punto (2)
%************************************************************************
%Clculo 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
%Visualizacin 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

%Seal 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;
%Grficas de las seales que conforman la seal de entrada
figure(2)
subplot(3,1,1);
plot(t,xin1);
title('Seal con frecuencia de 720 Hz');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
grid on;
subplot(3,1,2);
plot(t,xin2);
title('Seal con frecuencia de 1840 Hz');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
grid on;
subplot(3,1,3);
plot(t,xin3);
title('Seal con frecuencia de 3000 Hz');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
grid on;
figure(3)
plot(t,x_in);
title('Seal 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);
%Clculo de la funcin ventana
%Hamming
B=fir1(N(i),Wn,'bandpass',ventana);
%Clculo de los coeficientes
%del filtro
for j=1:length(B)
M(j,i)=B(j);
end
end
%Clculo 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

% Visualizacin 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);
%Clculo de la funcin ventana
%Hamming
B=fir1(N(i),Wn,'bandpass',ventana);
%Clculo de los coeficientes
%del filtro
for j=1:length(B)
M(j,i)=B(j);
end
end
%Clculo 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
% Visualizacin 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
%Parmetros del filtro
N2=8;

%Orden del filtro

143

[b,a]=ellip(N2,0.5,80,300/(fm/2),'low'); %Clculo de los coeficientes de


%un filtro IIR tipo elptico
%************************************************************************
%************************************************************************
%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
%Seal 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('Seal con frecuencia de 180 Hz');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
grid on;

144

subplot(3,1,2);
plot(t,xin2);
title('Seal con frecuencia de 720 Hz');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
grid on;
subplot(3,1,3);
plot(t,x_in);
title('Seal 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','Seal de entrada');
grid on;
%************************************************************************
%************************************************************************
%Punto (4)
%************************************************************************
%Parmetros del filtro
Ns=[8 12 16];
%Variacin 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);
%Clculo de los coeficientes de un filtro IIR tipo elptico
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;
%Clculo de los coeficientes de un filtro IIR tipo elptico
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;

%Clculo de los coeficientes de un filtro IIR tipo elptico


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
%Parmetros del filtro
N=6;
wn=[300 500];

%Orden del filtro

%Clculo 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
%Seal 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','Seal de entrada');
grid on;
%************************************************************************
%************************************************************************
%Punto (7)
%************************************************************************
fm=8000;
%Frecuencia de muestreo
%Parmetros del filtro
N=6;
wn=[300 500];
[b2,a2]=cheby1(N,0.5,wn/(fm/2),'stop');
[H,f]=freqz(b2,a2,2048,fm);

%Orden del filtro


%Clculo de los coeficientes de
%un filtro IIR tipo elptico
%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','Seal 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);
%Parmetros del filtro
W=[2500 2600]/(fm/2);
Wp=W(1);
Ws=W(2);
R=[0.3 40];
Rp=R(1);
Rs=R(2);
%Clculo del orden del filtro
[n,Wn] = ellipord(Wp,Ws,Rp,Rs,'s');
%Clculo de los coeficientes de un filtro analgico tipo elptico o cauer
[numa,dena]=ellip(n,Rp,Rs,Wn*(fm/2)*2*pi,'low','s');
%Respuesta en frecuencia del filtro analgico
[H1,f1]=freqs(numa,dena,fm);
%Utilizando la transformacin bilineal se pasa de un filtro analgico a
*un filtro digital
[numd,dend] = bilinear(numa,dena,fm,1000);
%Ahora se hace una transformacin 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 analgico
%pasobajo elptico.
[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, Elptico');
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

Cdigo fuente laboratorio de FFT

%************************************************************************
%LABORATORIO DE FFT
%************************************************************************
%************************************************************************
%REALIZADO POR: Jos Gabriel Fernndez Carazo
%
A21941
%
Escuela de Ingeniera Elctrica
%
Facultad de Ingeniera
%
Universidad de Costa Rica
%************************************************************************
%Ultima modificacin: 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 mxima presente en la seal
fn=2*fmax;
%Frecuencia de muestreo segn Nyquist
treq=2*L_medio/fn;
%Tiempo requerido para recolectar las muestras
fs=((2*L_medio-1)/treq); %Divisin 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
%Clculo 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;
faux(1:M)=-M:-1;
f=fn*faux/(Nfft(i));

%Vector de frecuencias desordenado


%Vector de frecuencias ordenado
%Vector de frecuencias normalizado

%Graficas de las espectros en frecuencias de las seales obtenidas


figure;
subplot(3,1,1);
plot(n,xin); axis([0 treq -3 3]);
title('Seal 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 seal 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 seal 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 mxima presente en la seal
fn2=2*fmax2;
%Frecuencia de muestreo segn Nyquist
treq2=2*L2_medio/fn2;
%Tiempo requerido para recolectar las muestras
fs2=((2*L2_medio-1)/treq2);%Divisin 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
%Clculo 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;
faux1(1:M1)=-M1:-1;
f1=fn*faux1/(Nfft2);

%Vector de frecuencias desordenado


%Vector de frecuencias ordenado
%Vector de frecuencias normalizado

%Graficas de las espectros en frecuencias de las seales obtenidas


figure(8);
subplot(3,1,1);
plot(t2,xnew); axis([0 L2_medio*4 -3 3]);
title('Seal 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 seal 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 seal de entrada');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
grid on;
%************************************************************************
%************************************************************************
%Punto (3)
%************************************************************************
%Recuperando la seal 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 seal

154

%Se grafican los resultados y se comprueba que se recupero la seal


figure(9);
subplot(2,1,1);
plot(t2,xnew,'-b'); axis([0 L2_medio*4 -3 3]);
title('Seal 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('Seal 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 mxima presente en la seal
fn3=2*fmax3;
%Frecuencia de muestreo segn Nyquist
treq3=2*L3_medio/fn3;
%Tiempo requerido para recolectar las muestras
fs3=((2*L3_medio-1)/treq3);%Divisin de tiempo para recolectar muestras
t3=0:1/fs3:treq3;
%Vector de muestras a recolectar
%Se definen las seales
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 seal compuesta por las seales anteriores
xtotal=x1+x2+x3+x4+x5;
%Clculo de la DFT utilzando
Y4=fft(xtotal,Nfft3);
Y5=fftshift(Y4);
norm=max(abs(Y5));
Yf=unwrap(angle(Y5));
%Vector de frecuencias
M3=Nfft3/2;
faux3(M3+1:Nfft3)=0:M3-1;
faux3(1:M3)=-M3:-1;
f3=fn3*faux3/(Nfft3);

la FFT
%FFT de Nfft puntos para la secuencia xtotal
%Reordenamiento de los valores de la FFT
%Para normalizar el espectro en magnitud
%Clculo de las componentes de fase

%Vector de frecuencias desordenado


%Vector de frecuencias ordenado
%Vector de frecuencias normalizado

155

%Graficas de las espectros en frecuencias de las seales obtenidas


figure(10);
subplot(3,1,1);
plot(t3,xtotal); axis([0 treq3 -3 3]);
title('Seal 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 seal 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 seal 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 seal 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 seal de entrada');
xlabel('Frecuencia (Hz)');
ylabel('Fase (rad)');
grid on;
%************************************************************************

156

A.3

Cdigo fuente laboratorio de modulacin AM

%************************************************************************
%LABORATORIO DE MODULACION AM
%************************************************************************
%************************************************************************
%REALIZADO POR: Jos Gabriel Fernndez Carazo
%
A21941
%
Escuela de Ingeniera Elctrica
%
Facultad de Ingeniera
%
Universidad de Costa Rica
%************************************************************************
%Ultima modificacin: Julio del 2007.
%************************************************************************
%************************************************************************
%Se limpia el workspace de MATLAB y las variables en uso.
clc;
clear;
%************************************************************************
%************************************************************************
%MODULACION AM
%************************************************************************
%Punto (1)
%************************************************************************
%Modulacin 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
%Seal mensaje (tono):
fs=fm;
ftono=10;
wtono=2*pi*ftono;
mtono=1.6*cos(wtono*t);

%Frecuencia de muestreo
%Frecuencia de la seal a modular
%Frecuencia en rads/s
%Seal a modular

%Seal modulada (AM)


fc=100;
s=modulate(mtono,fc,fs,'am');

%Frecuencia de la seal portadora


%Seal modulada

%Demodulacin (AM)
mreconst = demod(s,fc,fs,'am');
%************************************************************************

157

%************************************************************************
%Punto (2)
%************************************************************************
%Grfica de la seal tono de prueba
figure(1)
subplot(3,1,1);
plot(t,mtono);
title('Seal tono de prueba');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
txt=strcat('f muestreo =',num2str(fs),' Hz');
legend(txt);
grid on;
%Grfica de la seal modulada
subplot(3,1,2)
plot(t,s);
title('Seal modulada');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
txt=strcat('f muestreo =',num2str(fs),' Hz');
legend(txt);
axis([0 treq/4 -2 2]);
grid on;
%Grfica de la seal demodulada
subplot(3,1,3);
plot(t,mreconst);
title('Seal reconstruida');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
axis([0 treq -3 3]);
txt=strcat('f muestreo =',num2str(fs),' Hz');
legend(txt);
grid on;
%Clculo de la DFT utilzando la FFT
Nfft=1024;
Y=fft(s,Nfft);
%FFT de Nfft puntos para la seal 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));
%Clculo de las componentes de fase de la seal
%Vector de frecuencias
M=Nfft/2;
faux(M+1:Nfft)=0:M-1;
faux(1:M)=-M:-1;
f=fm*faux/(Nfft);

%Vector de frecuencias desordenado


%Vector de frecuencias ordenado
%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 seal 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 seal modulada');
xlabel('Frecuencia (Hz)');
ylabel('Fase (rads)');
grid on;
%Clculo de la DFT utilzando la
Ytono=fft(mtono,Nfft);
Y2tono=fftshift(Ytono);
norm1=max(abs(Y2tono));
Yftono=unwrap(angle(Y2tono));

FFT de la seal tono de prueba


%FFT de Nfft puntos para la seal mtono
%Reordenamiento de los valores de la FFT
%Para normalizar el espectro en magnitud
%Clculo de las componentes de fase

%Clculo de la DFT utilzando la FFT de la seal reconstruida


Yreconst=fft(mreconst,Nfft);
%FFT de Nfft puntos para la seal 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)); %Clculo 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('Seal tono de prueba','Seal reconstruida');
grid on;
subplot(2,1,2);
plot(f,Yftono,f,Yfreconst);
title('Espectro continuo de fase');
xlabel('Frecuencia (Hz)');
ylabel('Fase (rads)');
legend('Seal tono de prueba','Seal 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;
indmod=[0.45 1 2.6];
ka=0.5;

%Amplitud de la portadora
%Indice de modulacin
%Indice de sensibilidad

%Modulacin para cada uno de los diferentes ndices de modulacin


L=length(indmod);
for i=1:L
Am1=indmod(i)/ka;
fym=5;
fyc=10*fym;
%Seal a modular
ym=Am1*cos(2*pi*fym*t);
%Seal portadora
yc=Ap*cos(2*pi*fyc*t);
%seal 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('Seal AM con ndice de modulacin 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('Seal AM con ndice de modulacin 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('Seal AM con ndice de modulacin 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('Seal portadora');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
axis([0 treq/4 -Ap Ap]);
txtp=strcat('fc=',num2str(fyc));
legend(txtp);
grid on;

m<1');

subplot(4,1,2);
plot(t,ym);
title('Seal a modular para obtener un ndice de modulacin
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('Seal a modular para obtener un ndice de modulacin
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('Seal a modular para obtener un ndice de modulacin
m>1');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
txtp=strcat('Amplitud media=',num2str(Am1));
legend(txtp);
grid on;
end
end
%************************************************************************

161

%************************************************************************
%Punto (5)
%************************************************************************
%Modulacin de una seal con ruido utilzando las funciones "modulate" y
%"demod"
L_medio=1000;
fm=1000;
treq=2*L_medio/fm;
t=0:1/(fm-1):treq;

%Mitad de la cantidad de muestras a recolectar


%Frecuencia de muestreo
%Tiempo requerido para recolectar las muestras
%Vector de muestras a recolectar

%Seal modulada (AM)


fc=100;
s=modulate(mtono,fc,fs,'am');

%Frecuencia de la seal portadora


%Seal modulada

% Portadora
fc=50;
% Seal mensaje
fs=fm;
m=15*sin(10*pi*t)+10*sin(20*pi*t);
% Seal modulada
g=modulate(m,fc,fs,'am');
% Ruido
g_ruido=g+8*randn(1,length(g));
% Seal reconstruida
m_reconst=demod(g,fc,fs,'am');
figure(6);
subplot(3,1,1);
plot(t,m);
title('Seal 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('Seal modulada con ruido adherido en el canal de transmisin');
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('Seal reconstruida o demodulada');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
legend('Seal demodulada o reconstruida','Seal 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;
indmod=1;
ka=0.5;

%Amplitud de la portadora
%Indice de modulacin
%Indice de sensibilidad

Am1=indmod/ka;
fym=200;
fyc=10*fym;

%Amplitud de la seal a modular


%Frecuencia de la seal a modular
%Frecuencia de la portadora 10 veces la
%Frecuencia de la seal a modular

%Seal a modular
ym=Am1*cos(2*pi*fym*t);
%Seal portadora
yc=Ap*cos(2*pi*fyc*t);
%seal 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 raz 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('Seal 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 (seal demodulada utilizando un
detector de envolvente de Ley Cuadrtica');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
axis([0 treq/4 -max(abs(h3)) max(abs(h3))]);
grid on;
%Clculo de la DFT utilzando la FFT
Nfft=2048;
Y=fft(ym,Nfft);
%FFT de Nfft puntos para la seal 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;
faux1(1:M1)=-M1:-1;
f1=fm*faux1/(Nfft);

%Vector de frecuencias desordenado


%Vector de frecuencias ordenado
%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;
faux1(1:M1)=-M1:-1;
f2=fm*faux1/(Nfft);

%Vector de frecuencias desordenado


%Vector de frecuencias ordenado
%Vector de frecuencias normalizado

figure(9)
subplot(2,1,1);
plot(f1,abs(Y2)/norm2);
title('Espectro continuo en magnitud de la seal 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

Cdigo fuente laboratorio de modulacin DSBSC-AM

%************************************************************************
%LABORATORIO DE MODULACION DSBSC-AM
%************************************************************************
%************************************************************************
%REALIZADO POR: Jos Gabriel Fernndez Carazo
%
A21941
%
Escuela de Ingeniera Elctrica
%
Facultad de Ingeniera
%
Universidad de Costa Rica
%************************************************************************
%Ultima modificacin: Julio del 2007.
%************************************************************************
%************************************************************************
%Se limpia el workspace de MATLAB y las variables en uso.
clc;
clear;
%************************************************************************
%************************************************************************
%MODULACION DSBSC-AM
%************************************************************************
%Punto (1)
%************************************************************************
%Modulacin 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
%Seal 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);
%Seal DSBSC-AM
s1=mt.*yc;
%Se inicia la etapa de demodulacin
s2=s1.*(2*yc);

167

%Se pasa por un filtro pasobajo para obtener la seal 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('Seal a modular');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
ylim([-15 15]);
grid on;
subplot(3,1,2)
plot(t,s1);
title('Seal modulada (Seal DSBSC-AM)');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
xlim([0 treq/4]);
grid on;
subplot(3,1,3)
plot(t,h);
title('Seal 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)
%************************************************************************
%Clculo 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;
faux1(1:M1)=-M1:-1;
f1=fm*faux1/(Nfft);

%Vector de frecuencias desordenado


%Vector de frecuencias ordenado
%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;
faux1(1:M1)=-M1:-1;
f2=fm*faux1/(Nfft);

%Vector de frecuencias desordenado


%Vector de frecuencias ordenado
%Vector de frecuencias normalizado

figure(3)
subplot(2,1,1);
plot(f1,abs(Y2)/max(abs(Y2)));
title('Espectro continuo en magnitud de la seal 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 seal 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)
%************************************************************************
%Seal modulada (AM)
s3=modulate(mt,fc,fm,'amdsb-sc');
%Seal modulada
%Demodulacin (AM)
mreconst = 2*demod(s3,fc,fm,'amdsb-sc');
%************************************************************************
%************************************************************************
%Punto (6)
%************************************************************************
figure(4)
subplot(2,1,1);
plot(t,s3);
title('Seal modulada utilizando la funcin "modulate"');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
grid on;
subplot(2,1,2);
plot(t,mreconst);
title('Seal demodulada utilizando la funcin "demod"');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
grid on;
%Clculo de la DFT utilzando la FFT
Nfft=2048;
Y=fft(s3,Nfft);
%FFT de Nfft puntos para la seal 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;
faux1(1:M1)=-M1:-1;
f1=fm*faux1/(Nfft);

%Vector de frecuencias desordenado


%Vector de frecuencias ordenado
%Vector de frecuencias normalizado

Y3=fft(mreconst,Nfft);
Y4=fftshift(Y3);
norm2=max(abs(Y4));

%FFT de Nfft puntos para la seal reconstruida


%Reordenamiento de los valores de la FFT
%Para normalizar el espectro en magnitud

%Vector de frecuencias
M1=Nfft/2;
faux1(M1+1:Nfft)=0:M1-1;
faux1(1:M1)=-M1:-1;
f2=fm*faux1/(Nfft);

%Vector de frecuencias desordenado


%Vector de frecuencias ordenado
%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 seal 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 seal 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

Cdigo fuente laboratorio de modulacin SSB-AM

%************************************************************************
%LABORATORIO DE MODULACION SSB-AM
%************************************************************************
%************************************************************************
%REALIZADO POR: Jos Gabriel Fernndez Carazo
%
A21941
%
Escuela de Ingeniera Elctrica
%
Facultad de Ingeniera
%
Universidad de Costa Rica
%************************************************************************
%Ultima modificacin: Julio del 2007.
%************************************************************************
%************************************************************************
%Se limpia el workspace de MATLAB y las variables en uso.
clc;
clear;
%************************************************************************
%************************************************************************
%MODULACION SSB-AM
%************************************************************************
%Punto (1) y (2)
%************************************************************************
%Modulacin 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); %Divisin 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
%Parmetros de las seales a utilizar
fc=2000;
%Frecuencia de la portadora
Ap=2;
%Amplitud de la portadora
Am=0.5;
%Amplitud de la seal a modular
fmt=600;
%Frecuencia de la seal a modular

172

%Seal a modular
mt=Am*cos(2*pi*fmt*t);
%Seal portadora
yc=Ap*sin(2*pi*fc*t);
%Se crea una seal 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 seales 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');
%Diseo del filtro
h1=filter(b1,1,at);
%Se filtra la seal
%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 seales 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');
%Diseo del filtro
h2=filter(b2,1,at);
%Se filtra la seal
%Se calcula la respuesta en frecuencia del filtro
[H2 f2]=freqz(b2,1,2048,fm);
%************************************************************************
%************************************************************************
%Punto (3)
%************************************************************************
%Se grafican las seales producidas por el generador
figure(1)
subplot(3,1,1);
plot(t,mt);
axis([0 treq -1 1]);
txt=strcat('Seal 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('Seal 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('Seal 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;
%Seales despus de pasar por los filtros pasobajo y pasoalto
figure(4)
subplot(3,1,1);
plot(t,at);
xlim([0 treq/2]);
title('Seal 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
%Clculo de la DFT utilzando la FFT para la seal 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));
%Clculo de las componentes de fase
%Clculo 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));
%Clculo de las componentes de fase
%Clculo 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));
%Clculo de las componentes de fase
%Espectros de frecuencia de las seales
figure(5)
subplot(3,1,1);
plot(f,abs(Y1)/norm1)
title('Espectro continuo en magnitud de la seal 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 seal 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 seal 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 seal 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 seal 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 seal 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 seal por la portadora nuevamente
a2t=mssbinf.*yc;
%Luego esta seal se pasa por un filtro pasobajo con una frecuencia de
%corte de tal manera que deje pasar la seal 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 seal por la portadora nuevamente
a3t=mssbsup.*yc;
%Luego esta seal se pasa por un filtro pasobajo con una frecuencia de
%corte de tal manera que deje pasar la seal 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('Seal 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('Seal reconstruida a partir de una seal SSB de banda lateral
inferior');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
legend('Seal reconstruida por SSB inferior');
grid on;
subplot(3,1,3);
plot(t,h4);
xlim([0 treq/2]);
title('Seal reconstruida a partir de una seal SSB de banda lateral
superior');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
legend('Seal 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
%Clculo de la DFT utilzando la FFT para la seal a modular
Y4=fft(mt,Nfft);
%FFT de Nfft puntos para la seal "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));
%Clculo de las componentes de fase
%Clculo 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));
%Clculo de las componentes de fase
%Clculo de la DFT utilzando la FFT para la seal 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));
%Clculo de las componentes de fase

179

%Espectros de frecuencia de las seales


figure(9)
subplot(3,1,1)
plot(f,abs(Y4)/norm4)
title('Espectro continuo en magnitud de la seal 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 seal por demodulacin 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 seal por demodulacin 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 seal 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 seal 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 seal SSB de banda lateral
superior');
xlabel('Frecuencia (Hz)');
ylabel('Fase (rads)');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;
%************************************************************************

181

A.6

Cdigo fuente laboratorio de modulacin FM

%************************************************************************
%LABORATORIO DE MODULACION FM
%************************************************************************
%************************************************************************
%REALIZADO POR: Jos Gabriel Fernndez Carazo
%
A21941
%
Escuela de Ingeniera Elctrica
%
Facultad de Ingeniera
%
Universidad de Costa Rica
%************************************************************************
%Ultima modificacin: 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 segn Nyquist
treq=2*L_medio/fm;
%Tiempo requerido para recolectar L muestras
fs=((2*L_medio-1)/treq); %Divisin 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 seal a modular
Am=1;
%Amplitud de la seal a modular
wm=2*pi*100;
%Frecuencia de la seal a modular
phi=0;
%Fase de la seal a modular
mt=Am*cos(wm*n+phi);
%Seal a modular

182

%Parametros necesarios para la modulacin FM


beta=5;
%Indice de modulacin
kw=beta*wm/Am;
%Desviacin de frecuencia
phi=-pi/2;
%Se desfasa la seal
mt1=Am*cos(wm*n+phi);
%Se utiliza la seal original para generar el
desf=beta*mt1;
%Desfase de la portadora
%Se genera la seal FM
Ac=1;
%Amplitud de la seal portadora
wc=2*pi*1000;
%Frecuencia de la seal portadora
st=Ac*cos(wc*n+desf);
%Seal FM
%************************************************************************
%************************************************************************
%Punto (2)
%************************************************************************
%Se grafican la seal a modular y la seal FM
figure(1);
subplot(2,1,1);
plot(t1,mt);
title('Seal 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('Seal 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
%Clculo de la DFT utilzando la FFT para la seal FM
Y1=fft(st,Nfft);
%FFT de Nfft puntos para la seal 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));
%Clculo de las componentes de fase de la
seal
figure(2)
%subplot(3,1,1)
plot(f,abs(Y1)/norm1);

183

title('Espectro continuo en magnitud de la seal 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)
%************************************************************************
%Modulacin FM utilizando "modulate"
%Se utiliza la misma seal del punto (1)
%Seal modulada (FM)
indk=0.039;
gfm = modulate(mt,wc/(2*pi),fm,'fm',indk);
%************************************************************************
%************************************************************************
%Punto (5)
%************************************************************************
%Representacin grfica de las seales
figure(3);
subplot(2,1,1);
plot(n,mt);
txt=strcat('Seal 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('Seal 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)
%************************************************************************
%Modulacin FM utilizando "modulate" para difrentes ndices de modulacin
%Se utiliza la misma seal del punto (1)

184

%Seal 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)
%************************************************************************
%Representacin grfica de las seales
figure(4);
subplot(3,1,1);
plot(n,gfm1);
xlim([0 treq/2]);
txt1=strcat('Seal 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('Seal 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('Seal 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)
%************************************************************************
%Demodulacin FM utilizando la funcin "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)
%************************************************************************
%Representacin grfica de las seales
figure(5);
subplot(4,1,1);
plot(n,rmt,n,mt);
txt1=strcat('Seal reconstruida utilizando "demod" (con opt=
',num2str(0.039),')');
title(txt1);
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
legend('Seal reconstruida','Seal original');
grid on;
subplot(4,1,2);
plot(n,rmt1,n,mt);
txt1=strcat('Seal reconstruida utilizando "demod" (con opt=
',num2str(indk(1)),')');
title(txt1);
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
legend('Seal reconstruida','Seal original');
grid on;
subplot(4,1,3);
plot(n,rmt2,n,mt);
txt1=strcat('Seal reconstruida utilizando "demod" (con opt=
',num2str(indk(2)),')');
title(txt1);
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
legend('Seal reconstruida','Seal original');
grid on;

186

subplot(4,1,4);
plot(n,rmt3,n,mt);
txt1=strcat('Seal reconstruida utilizando "demod" (con opt=
',num2str(indk(3)),')');
title(txt1);
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
legend('Seal reconstruida','Seal original');
grid on;
%************************************************************************
%************************************************************************
%Punto (10)
%************************************************************************
%CALCULO DE LOS ESPECTROS
%Clculo de la DFT utilzando la FFT para la seal gfm1
Y2=fft(gfm1,Nfft);
%FFT de Nfft puntos para la seal 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));
%Clculo de las componentes de fase de la seal
%Clculo de la DFT utilzando la FFT para la seal gfm2
Y3=fft(gfm2,Nfft);
%FFT de Nfft puntos para la seal 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));
%Clculo de las componentes de fase de la seal
%Clculo de la DFT utilzando la FFT para la seal gfm3
Y4=fft(gfm3,Nfft);
%FFT de Nfft puntos para la seal 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));
%Clculo de las componentes de fase de la seal
%se grafican los espectros en frecuencia para cada seal
figure(6)
subplot(3,1,1)
plot(f,abs(Y2)/norm2);
txt=strcat('Espectro continuo en magnitud de la seal 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 seal 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 seal 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

Cdigo fuente laboratorio de modulacin PAM

%************************************************************************
%LABORATORIO DE MODULACION PAM
%************************************************************************
%************************************************************************
%REALIZADO POR: Jos Gabriel Fernndez Carazo
%
A21941
%
Escuela de Ingeniera Elctrica
%
Facultad de Ingeniera
%
Universidad de Costa Rica
%************************************************************************
%Ultima modificacin: 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 segn Nyquist
treq=2*L_medio/fm;
%Tiempo requerido para recolectar L muestras
fs=((2*L_medio-1)/treq); %Divisin 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
%Seal a modular
Am=10;
wm=4*pi;
ym=Am*cos(wm*n);
%Luego se aade un nivel DC a la seal 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 seal modulada por amplitud de pulsos
spam=ymdc.*pulsos;
%************************************************************************
%************************************************************************
%Punto (2)
%************************************************************************
%Se grafican los resultados
figure(1)
subplot(3,1,1);
plot(n,ym);
title('Seal 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('Seal modulada empleando modulacin por amplitud de pulsos');
xlabel('Tiempo (segundos)');
ylabel('s(t)');
txt=strcat('fmuestreo= ',num2str(fm),' Hz');
legend(txt);
grid on;
%Clculo de la DFT utilzando la FFT para la seal 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));
%Clculo de las componentes de fase de la seal
%Clculo de la DFT utilzando la FFT para la seal 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));
%Clculo de las componentes de fase de la seal

190

%Grafica del espectro de frecuencia de la seal a modular


figure(2)
subplot(2,1,1);
plot(f,abs(Y1)/norm1);
title('Espectro continuo en magnitud de la seal 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 seal 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 seal modulada
figure(3)
subplot(2,1,1);
plot(f,abs(Y2)/norm2);
title('Espectro continuo en magnitud de la seal 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 seal a modulada');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;
%************************************************************************
%************************************************************************
%Punto (3)
%************************************************************************
%Ejemplo simple de cuantificacin
partition = [0,1,3];
%Criterio de evaluacin de muestras
codebook = [-1,0.5,2,3];
%Niveles de cuantifficacin o smbolos
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 segn Nyquist
treq=2*L_medio/fm;
%Tiempo requerido para recolectar L muestras
fs=((2*L_medio-1)/treq); %Divisin de tiempo para recolectar L muestras
n1=0:1/fs:treq;
%Vector de muestras a recolectar
%Muestreo de la seal a modular
Am=15;
wm=2*pi*100;
ym1=Am*sin(wm*n1);
%Se aade un nivel DC suficiente para no tener valores negativos
ym1dc=ym1+max(abs(ym1));
%CUANTIFICACION
%Se define la particin
a=round(max(ym1dc));
particion = [0:1:a-1];
simbolos = [0:1:a];

%La longitud de la particin debe ser una


%unidad menor que le codebook
%Niveles de cuantioficacin o smbolos

%Cuantificacin
[intervalos,sencuant] = quantiz(ym1dc,particion,simbolos);
%************************************************************************
%************************************************************************
%Punto (5)
%************************************************************************
%Modualcin PAM utilizando pammod
b=[4 8 16 32 64 128 256 512];
%Niveles en potencia de 2
L=length(b);
%Bsqueda del M apropiado dependiendo de la amplitud de la seal una vez
%cuantificada
M=0;
%Inicializacin de M
i=1;
while M==0
if b(i)>a
M=b(i)
end
i=i+1;
end

192

%Modulacin PAM
spam1=pammod(sencuant,M);
%************************************************************************
%************************************************************************
%Punto (6)
%************************************************************************
%se grafican los resultados
figure(4)
subplot(3,1,1);
plot(n1,ym1);
title('Seal 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('Seal 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('Seal modulada mediante la funcin "pammod". M=',num2str(M),'
smbolos.');
title(txt);
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
txt=strcat('fmuestreo= ',num2str(fm),' Hz');
legend(txt);
xlim([0 treq/3]);
grid on;
%************************************************************************
%************************************************************************
%Punto (7)
%************************************************************************
%Demodulacin utilizando pamdemod
z=pamdemod(spam1,M);

193

%Se recupera la seal original eliminando el nivel DC


z1=z-max(abs(ym1));
%se grafican los resultados
figure(5)
subplot(2,1,1)
plot(n1,ym1)
title('Seal 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('Seal demodulada');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
legend('Seal reconstruida','Seal original');
xlim([0 treq/3]);
grid on;
%************************************************************************

%************************************************************************
%Punto (8)
%************************************************************************
%Clculo de la DFT utilzando la FFT para la seal 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));
%Clculo de las componentes de fase de la seal
figure(6)
subplot(2,1,1);
plot(f,abs(Y3)/norm3);
title('Espectro continuo en magnitud de la seal 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 seal a modulada');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');

194

txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;
%Clculo de la DFT utilzando la FFT para la seal 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));
%Clculo de las componentes de fase de la seal
figure(7)
subplot(2,1,1);
plot(f,abs(Y4)/norm3);
title('Espectro continuo en magnitud de la seal 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 seal 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 funcin eyediagram
eyediagram(real(spam1),M);
title('Diagrama de Ojo para la seal PAM');
xlabel('Tiempo (s)');
ylabel('Amplitud');
grid on;
%************************************************************************

195

A.8

Cdigo fuente laboratorio de modulacin QAM

%************************************************************************
%LABORATORIO DE MODULACION QAM
%************************************************************************
%************************************************************************
%REALIZADO POR: Jos Gabriel Fernndez Carazo
%
A21941
%
Escuela de Ingeniera Elctrica
%
Facultad de Ingeniera
%
Universidad de Costa Rica
%************************************************************************
%Ultima modificacin: 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 segn Nyquist
treq=2*L_medio/fm;
%Tiempo requerido para recolectar L muestras
fs=((2*L_medio-1)/treq); %Divisin de tiempo para recolectar L muestras
n1=0:1/fs:treq;
%Vector de muestras a recolectar
%Muestreo de la seal 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 aade un nivel DC suficiente para no tener valores negativos
ymtdc=ymt+max(abs(ymt));

196

%CUANTIFICACION
%Se define la particin
a=round(max(ymtdc));
particion = [0:1:a-1];
simbolos = [0:1:a];

%La longitud de la particin debe ser una


%unidad menor que le codebook
%Niveles de cuantificacin o smbolos

%Cuantificacin
[intervalos,sencuant] = quantiz(ymtdc,particion,simbolos);
%************************************************************************
%************************************************************************
%Punto (2)
%************************************************************************
%Grafica de la seal a modular
figure(1)
subplot(3,1,1);
plot(n1,ym1,'-r');
title('Seal 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('Seal 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('Seal a modular');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
txt=strcat('fmuestreo= ',num2str(fm),' Hz');
legend(txt);
grid on;
%seal cuantificada
figure(2)
subplot(2,1,1);
plot(n1,ymt);
title('Seal 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('Seal muestreada y cuantificada');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
txt=strcat('fmuestreo= ',num2str(fm),' Hz');
legend(txt);
xlim([0 treq/3]);
grid on;
%************************************************************************
%************************************************************************
%Punto (3)
%************************************************************************
%Modulacin QAM utilizando qammod
b=[4 8 16 32 64 128 256 512];
%Niveles en potencia de 2
L=length(b);
%Bsqueda del M apropiado dependiendo de la amplitud de la seal una vez
%cuantificada
M=0;
%Inicializacin de M
i=1;
while M==0
if b(i)>a
M=b(i);
%Asignacin de un M
end
i=i+1;
end
%Modulacin QAM
sqam=qammod(sencuant,M);
%grafica de la seal en cuadratura y fase
figure(3)
subplot(2,1,1);
plot(real(sqam),'-g');
title('Seal QAM en cuadratura');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
grid on;
subplot(2,1,2);
plot(imag(sqam),'-m');
title('Seal QAM en fase');
xlabel('Tiempo (segundos)');

198

ylabel('Amplitud');
grid on;
%************************************************************************
%************************************************************************
%Punto (4)
%************************************************************************
%Seal QAM transmitida
ytx = sqam;
%Simulacin de un canal AWGN
%Se envia la seal travs de este canal
k=log2(M);
EbNo = 10;
%Tasa de energa de la densidad de energa espectral dB
snr = EbNo + 10*log10(k) - 10*log10(1);%Tasa de ruido por muestra
ynoisy = awgn(ytx,snr,'measured');
%Se genera la nueva seal con ruido
%************************************************************************
%************************************************************************
%Punto (5)
%************************************************************************
%La nueva seal es recibida
yrx = ynoisy;
%Se analiza la seal QAM utilizando un diagrama de constelacin M valores
h=scatterplot(yrx,1,0,'g.');
hold on;
scatterplot(ytx,1,0,'k*',h);
title('Seal QAM');
ylabel('En Cuadratura');
xlabel('En Fase');
legend('Seal con ruido','Seal sin ruido',4);
grid on;
hold off;
%************************************************************************
%************************************************************************
%Punto (6)
%************************************************************************
%Demodulacin QAM utilizando "qamdemod"
%Se demodula la seal sin ruido
z1=qamdemod(ytx,M);
z1=z1-max(abs(ymt));
%Se demodula la seal con ruido
z2=qamdemod(yrx,M);
z2=z2-max(abs(ymt));

199

figure(5)
subplot(2,1,1)
plot(n1,z1,n1,ymt);
title('Seal demodulada a partir de una seal QAM sin ruido');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
legend('Seal reconstruida','Seal original');
grid on;
subplot(2,1,2)
plot(n1,z2,n1,ymt);
title('Seal demodulada a partir de una seal QAM con ruido');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
legend('Seal reconstruida','Seal 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
%Clculo de la DFT utilzando la FFT para la seal 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));
%Clculo de las componentes de fase de la seal
%Clculo de la DFT utilzando la FFT para la seal 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));
%Clculo de las componentes de fase de la seal
%Clculo de la DFT utilzando la FFT para la seal 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));
%Clculo de las componentes de fase de la seal
%Clculo de la DFT utilzando la FFT para la seal 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));
%Clculo de las componentes de fase de la seal

200

%Clculo de la DFT utilzando la FFT para la seal 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));
%Clculo de las componentes de fase de la seal
%Grafica del espectro de frecuencia de la seal a modular
figure(6)
subplot(2,1,1);
plot(f,abs(Y1)/norm1);
title('Espectro continuo en magnitud de la seal 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 seal 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 seal modulada sin ruido
figure(7)
subplot(2,1,1);
plot(f,abs(Y2)/norm2);
title('Espectro continuo en magnitud de la seal 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 seal 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 seal modulada con ruido


figure(8)
subplot(2,1,1);
plot(f,abs(Y3)/norm3);
title('Espectro continuo en magnitud de la seal 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 seal 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 seal demodulada sin ruido
figure(9)
subplot(2,1,1);
plot(f,abs(Y4)/norm4);
title('Espectro continuo en magnitud de la seal 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 seal 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 seal demodulada con ruido
figure(10)
subplot(2,1,1);
plot(f,abs(Y5)/norm5);
title('Espectro continuo en magnitud de la seal 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 seal demodulada con ruido');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;
%************************************************************************

203

APNDICE B: Diagramas de bloques de los ejercicios de simulacin en


SIMULINK
B.1

Simulacin: laboratorio de filtros digitales


************************************************************************
LABORATORIO DE FILTROS DIGITALES
************************************************************************
REALIZADO POR: Jos Gabriel Fernndez Carazo
A21941
Escuela de Ingeniera Elctrica
Facultad de Ingeniera
Universidad de Costa Rica
************************************************************************
Ultima modificacin: Julio del 2007.
************************************************************************

Onda de 720 Hz

FDATool

Onda de 1440 Hz
Add

Zero-Order
Hold

Filtro FIR N=64


Hamming

Salida del filtro


pasabanda FIR

Onda de 3000 Hz
Seales Seal completa

FDATool

Onda de 120 Hz
Filtro pasabanda IIR N=6
Chebyshev Tipo I
Onda de 400 Hz
Add1

Zero-Order
Hold1

FDATool

Onda de 680 Hz
Seales1 Seal completa1

204

Salida del filtro


pasabanda

Filtro rechaza banda IIR N=6


Chebyshev Tipo I1

Salida del filtro


rechaza banda

B.2

Simulacin: laboratorio de FFT


************************************************************************
LABORATORIO FFT
************************************************************************
REALIZADO POR: Jos Gabriel Fernndez Carazo
A21941
Escuela de Ingeniera Elctrica
Facultad de Ingeniera
Universidad de Costa Rica
************************************************************************
Ultima modificacin: Julio del 2007.
************************************************************************

Seal de entrada
B-FFT
Espectro de la seal de entrada
FDATool
Salida del filtro pasoabajo
Salida f iltro pasobajo

Onda de 1500 Hz

Filtro Pasobajo FIR


N=36 Hamming

Onda de 175 Hz

Onda de 1200 Hz

B-FFT
Espectro de la salida del filtro pasobajo

Zero-Order
Hold

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

Simulacin: laboratorio de modulacin AM


************************************************************************
LABORATORIO MODULACION AM
************************************************************************
REALIZADO POR: Jos Gabriel Fernndez Carazo
A21941
Escuela de Ingeniera Elctrica
Facultad de Ingeniera
Universidad de Costa Rica
************************************************************************
Ultima modificacin: Julio del 2007.
************************************************************************

Seal a modular1

Sea a modular

Zero-Order
Hold2

B-FFT
Espectro de la seal a modular

Seal a modular
Product

0.5

Zero-Order
Hold

Modulador

Seal modulada

ka
1
Nivel DC

Seal portadora
Zero-Order
Hold1
Detector de envolvente de Ley Cuadrtica
Seal reconstruida

FDATool

1.7-1.7z-1

sqrt

2-1.4z-1
Seal reconstruida

Filtro pasoalto para eliminar DC

Raz cuadrada1

Raz cuadrada

206

Salida del filtro


pasobajo

Elevador
Filtro FIR pasobajo
N=36 Hamming

B-FFT
Espectro de la salida
del filtro paso alto

B.4

Simulacin: laboratorio de modulacin DSBSC-AM


************************************************************************
LABORATORIO MODULACION DSBSC-AM
************************************************************************
REALIZADO POR: Jos Gabriel Fernndez Carazo
A21941
Escuela de Ingeniera Elctrica
Facultad de Ingeniera
Universidad de Costa Rica
************************************************************************
Ultima modificacin: Julio del 2007.
************************************************************************

Sen de 20Hz

Zero-Order
Hold1

Fcn

Seal a modular

Product

exp(-0.5*(u))
Clock

Seal a modular

B-FFT

Zero-Order
Hold2

Espectro seal a modular


Seal modulada

Seal portadora

Zero-Order
Hold

Product1

Seal modulada

B-FFT
Espectro portadora

Demodulador
FDATool

Seal demodulada

LO (Oscilador Local)

Zero-Order
Hold3

Product3

Seal demodulada
Filtro FIR pasobajo
N=24 Hamming
B-FFT
Espectro de la salida
del filtro pasobajo

207

B.5

Simulacin: laboratorio de modulacin SSB-AM


************************************************************************
LABORATORIO MODULACION SSB-AM
************************************************************************
REALIZADO POR: Jos Gabriel Fernndez Carazo
A21941
Escuela de Ingeniera Elctrica
Facultad de Ingeniera
Universidad de Costa Rica
************************************************************************
Ultima modificacin: Julio del 2007.
************************************************************************

Seal a modular

Seal a modular

Sen de 600Hz

Zero-Order
Hold1

B-FFT

Product1

Zero-Order
Hold

Espectro de la seal a modular

Seal portadora
Seal DSBSC-AM

Seal DSBSC-AM

MODULACION SSB-AM
Modulador SSB-AM (Banda lateral inferior)

B-FFT

FDATool

Espectro de la seal DSBSC-AM


Seal SSB-AM banda lateral inferior
Seal SSB-AM banda lateral inf erior

Filtro FIR pasobajo


N=36 Hamming

B-FFT

Espectro de la seal SSB-AM


banda lateral inferior

Modulador SSB-AM (Banda lateral superior)


FDATool

Seal SSB-AM banda lateral superior


Seal SSB-AM banda lateral superior

Filtro FIR pasoalto


N=36 Hamming

B-FFT

Espectro de la seal SSB-AM


banda lateral superior
FDATool

DEMODULACION SSB-AM

Product2
Filtro FIR pasobajo
N=36 Hamming1
FDATool

Seal portadora1 Zero-Order


Hold2
Product3

Filtro FIR pasobajo


N=36 Hamming2

208

Seal reconstruida con


banda lateral inferior

Seal reconstruida con


banda lateral superior
Comparacin

B.6

Simulacin: laboratorio de modulacin FM


************************************************************************
LABORATORIO MODULACION FM
************************************************************************
REALIZADO POR: Jos Gabriel Fernndez Carazo
A21941
Escuela de Ingeniera Elctrica
Facultad de Ingeniera
Universidad de Costa Rica
************************************************************************
Ultima modificacin: Julio del 2007.
************************************************************************

MODULACION DE UN TONO SIMPLE


Seal a modular

Seal a modular

Sen de 100Hz Zero-Order


Hold1

B-FFT

Seal a modular

Espectro seal a modular


Comparacin

Seal FM

Seal FM

FM
FM
Modulator
Passband

Seal FM

B-FFT
Espectro seal FM

FM
FM
Demodulator
Passband
FDATool
Seal demodulada
Seal demodulada

Filtro Chebyshev Tipo I


N=6 pasobajo

B-FFT
Espectro seal demodulada

209

B.7

Simulacin: laboratorio de modulacin PAM

************************************************************************
LABORATORIO MODULACION PAM
************************************************************************
REALIZADO POR: Jos Gabriel Fernndez Carazo
A21941
Escuela de Ingeniera Elctrica
Facultad de Ingeniera
Universidad de Costa Rica
************************************************************************
Ultima modificacin: Julio del 2007.
************************************************************************
MODULACION PAM
Random
Integer

Integer to Bit
Converter

M-PAM

Seal PAM

Random Integer
Generator

M-PAM
Modulator
Baseband
Seal aleatoria de enteros positivos Se convierten en bits

B-FFT

Espectro seal PAM

|u|
Abs

Seal PAM

Diagrama de Ojo
Seal PAM

M-PAM
M-PAM
Demodulator
Baseband

Bit to Integer
Converter
Bit to Integer
Converter

Seal reconstruida
Seal reconstruida

B-FFT
Espectro seal reconstruida

210

B.8

Simulacin: laboratorio de modulacin QAM


************************************************************************
LABORATORIO MODULACION QAM
************************************************************************
REALIZADO POR: Jos Gabriel Fernndez Carazo
A21941
Escuela de Ingeniera Elctrica
Facultad de Ingeniera
Universidad de Costa Rica
************************************************************************
Ultima modificacin: Julio del 2007.
************************************************************************
MODULACION QAM

Random
Integer
Random Integer
Generator

Rectangular
QAM
Rectangular QAM
Modulator
Baseband
Seal aleatoria de enteros positivos

Seal QAM

B-FFT
Espectro seal QAM
Seal QAM

Re(u)
Im(u)

Cuadratura

Complex to
Real-Imag
Rectangular
QAM
Constelacin seal
QAM sin ruido

AWGN

AWGN
Channel

Seal reconstruida
sin ruido

Rectangular QAM
Demodulator
Baseband1

Fase

Seal QAM

Seal reconstruida
sin ruido en el canal

B-FFT
Espectro seal reconstruida
sin ruido en el canal

Constelacin seal
QAM con ruido

Rectangular
QAM
Rectangular QAM
Demodulator
Baseband

Seal reconstruida
con ruido

Seal reconstruida
con ruido en el canal

B-FFT
Espectro seal reconstruida
con ruido en el canal

211

Vous aimerez peut-être aussi