You are on page 1of 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 DFT DSBSC-AM Modulacin de amplitud (Amplitude Modulation) Transformada discreta de Fourier (Discrete Fourier Transform) Modulacin de amplitud de doble banda lateral con portadora suprimida Modulation) DSP FFT FIR FM IDFT IIR LSB LSI MSI PLL QAM SSB-AM USB VLSI Procesamiento digital de seales (Digital Signal Processing) Transformada rpida de Fourier (Fast Fourier Transform) Respuesta de duracin finita al impulse (Finite duration Impulse Response) Modulacin en frecuencia (Frequency Modulation) Transformada Discreta de Fourier Inversa (Inverse Discrete Fourier Transform) Respuesta de duracin infinita al impulse (Infinite duration Impulse Response) Banda lateral inferior (Low Sideband) Integracin a gran escala (Large Scale Integration) Integracin a media escala (Medium Scale Integration) Circuito de lazo por enganche de fase (Phase Locked Loop) Modulacin de amplitud en cuadratura (Quadrature Amplitude Modulation) Modulacin de amplitud de banda lateral nica (Single Sideband Amplitude Modulation) Banda lateral superior (Upper Sideband) Integracin a muy gran escala (Very Large Scale Integration) (Double Sideband Suppressed Carrier Amplitude

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
1.1.1

Objetivos
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

x(t ) = Ak sin (k t + k )
k =1

(2.3-1)

puede ser descrita completamente por dos series, A( ) = { Ak : = k y


1

para k = 1,2,3,K,9}

(2.3-2)

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

k
1 2 3 4 5 6 7 8 9

Ak 0.6154 0.7919 0.9218 0.7382 0.1763 0.4057 0.9355 0.9169 0.4103

k
0.0579 0.3529 -0.8132 0.0099 0.1389 -0.2028 0.1987 -0.6038 -0.2722

1 2 3 4 5 6 7 8 9

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 activos RC discretos Filtros activos RC integrados

Filtros de capacitores conmutados Filtros de microondas

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 recursivos y no Filtros adaptativos Filtros multidimensionales Filtros Multitasa

recursivos Filtros de abanico Filtros bidimensionales

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] =

k =

x[k ] h[n k ] =

k =

h[k ] x[n k ]

(2.5-1)

La transformada z de la convolucin de dos seales es igual a la multiplicacin de las transformadas de cada una: Y ( z) =

n =

y[n]z

= X ( z) H ( z)

(2.5-2)

donde H ( z) =

n =

h[n]z n

X ( z) =

n =

x[n]z

(2.5-3)

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] =

k =

h[k ] Ce

j ( n k )T

= Ce jnT

k =

h[k ] e

jkT

= 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 + ( )] Cuando la entrada es una seal sinusoidal real, por ejemplo x[n] = C cos(nT + ) = e{Ce j e jnT } La salida es de la siguiente manera y[n] = e{H * ( )Ce j e jnT } = CA( ) cos[nT + ( ) + ] (2.5-9) (2.5-8) (2.5-7)

15

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

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


k =0

N 1

k = n N +1

x[k ] h[n k ]

(2.5-10)

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 )

(2.5-11)

18

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

(2.5-13)

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


k =0 k =1 N M

(2.5-14)

La ecuacin en diferencias es el equivalente en el dominio del tiempo y[n] = bk x[n k ] ak y[n k ]


k =0 k =1 N M

(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 v[n] = x[n] ak v[n k ]
k =1 M

(2.5-18)

luego, la salida puede estar representada por y[n] = bk v[n k ]


k =0 N

(2.5-19)

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]

v[n] = x[n] ak v[n k ]


k =1

Paso 2: Calculo de la salida y[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] 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. Y ( z ) = b0 X ( z ) + [bk X ( z ) akY ( z )]z k
k =1 N

(2.5-20)

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

H a (s) =

B( s) = A( s )

s s
k =0 k k =0 N k

(2.5-21)
k

donde { k } y { k } son los coeficientes del filtro, o por su respuesta al impulso, que se relaciona con Ha(s) mediante la transformada de Laplace
H a (s ) = h(t )e st dt

(2.5-22)

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 (2.5-25)

26

O equivalentemente,

= 2 tan 1

T 2

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

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

(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)
2 tan T 2

(2.5-32)

28

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
c

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

Mc m =1 N

(1 zm z 1 )

(1 pk z 1 ) k =1

(2.5-35)

30

donde T m 2 zm = T 1 m 2 1+ T sk 2 pk = T 1 sk 2 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 ( ) =

n =

x[n] e

jnT

(2.6-1)

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
ws 2

jnT

(2.6-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 X k = X (ks N ) = x[n] e
n =0 N 1 j 2 nk N

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

(2.6-3)

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

X
k =0

N 1

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:

WN W

k+

N 2

k = WN

Simetra Periodicidad

k+N N

(2.6-5)

=W

k N

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 =

x[n] e
n=0

N 1

2 nk N

nk = x[n]WN n=0

N 1

(2.6-6)

Este algoritmo asume que N = 2v . Luego se separa la sumatoria en dos sumatorias, cuando n es par y otra cuando n es impar.
N 1 2 n=0 N 1 2 n=0

Xk =

x[2n] W

2 nk N

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

(2.6-7)

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

para n = 0, 1, K ,

N 1 2

(2.6-8)

35

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

Xk =

a[n] W
n=0

N 1 2

nk N /2

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

N 1 2

(2.6-9)

y definiendo Ak y Bk de la siguiente manera


N 1 2 n=0

Ak = Bk =

a[n] W b[n] W
n=0 N 1 2

nk N /2

para n = 0, 1, K , N 1

(2.6-10)

nk N /2

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


k X k = Ak + WN 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,


k X k = Ak + WN Bk

k+

N 2

k = Ak WN 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
N 1 2 n=0

Xk =

x[n]WNkn + x[n]W
n=0 N 1 2 kn N

x[n]W
n= N 2 N Nk 2 1 2 N N n= 2

N 1

kn N

(2.6-13) N kn WN 2

Xk =

+W

n+ x

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


k N Nk 2 1 2 N N n= 2

kN

Xk = W

x[n] + ( 1)

N kn x n + WN 2

(2.6-14)

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


N 1 2 n=0

X 2k =

n+ x[n] + x

N kn W N 2 2

para k = 0, 1,K,

N 1 2

(2.6-15)

y
N 1 2 n=0

X 2 k +1 =

n+ x[n] x

N kn kn W N W N 2 2 2

para k = 0, 1,K,

N 1 2

(2.6-16)

38

2 Donde se recurre al hecho de que WN = 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 N n g 2 [n] = x[n] x n + WN 2 Entonces


N 1 2 n =0

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

(2.6-17)

X 2k =

g [n]W
1 N 1 2 n=0 2

kn N 2

(2.6-18)
kn N 2

X 2 k +1 =

g [n]W

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 ( ) = donde Y ( ) = y[n] e jnT
n=0 N 1

1 2 Y ( ) N

(2.6-19)

(2.6-20)

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

y[n + k ] y[k ]
k =0

N 1

para

n N 1

(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

y[k ]
k =0

N 1

s / 2
s

/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

(2.6-24)

42

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 donde c (t ) = Ac cos ct (2.7-2) (2.7-1)

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 este caso la envolvente es e(t ) = Ac [1 + k a m(t )] (2.7-5) para todo t (2.7-4)

45

Entonces m(t) se puede obtener a partir de la envolvente, a los receptores que poseen esta propiedad se les conoce como demoduladores no coherentes, porque no se generan frecuencias en el receptor o las frecuencias utilizadas para la 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

(2.7-7)

Figura 2.15 Espectro de una seal AM

47

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 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 or c > 2W (2.7-9)

48

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 +
donde es la diferencia en frecuencia y es una constante de fase. El primer paso de este sistema, es formar la envolvente compleja

(2.8-6)

) 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 )] Esta seal es separada en su parte real e imaginaria, tal y como se muestra (2.8-9)

c1 (nT ) = Ac m(nT ) cos[1 2 (nT )]

) c1 (nT ) = e s+ (nT )e j (nT ) = s(nT )cos (nT ) + s (nT )sin (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 )


donde

(2.8-13)

(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 ) y una aproximacin de q (nT ) por
q(nT ) k1[1 2 (nT )]

(2.8-16)

(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 ( + ) z 1 1 (z ) + H (z ) = 2 = 1 ( z ) 1 [2 k1 ( + )]z 1 + (1 k1 )z 2

(2.8-18)

58

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 a la cual se le aplica la transformada de Fourier A( ) = 0.5 Ac M ( c ) + 0.5 Ac M ( + c ) y est centrada alrededor de la frecuencia portadora c .
1

(2.9-1)

(2.9-2)

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
(t ) , tal y expresada en trminos de la seal banda base m(t ) y su transformada Hilbert m

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 ( ) y la transformada de la envolvente compleja es
( ) = S ( + ) = A M ( )H ( + ) S + c c c

(2.9-5)

(2.9-6)

61

para el caso de la banda lateral superior. Sustituyendo H sup ( ) por H ( ) en la ecuacin (2.9-6), se puede notar que ( ) = A M ( )u ( ) = 0.5 A M ( )(1 + sign ) S c c ( ) = 0.5 A M ( )[1 + j ( j sign )] = 0.5 A M ( ) + j 0.5 A M ( ) S c c c Entonces la envolvente compleja es ~ (t )] s (t ) = 0.5 Ac [m(t ) + jm Por consiguiente la seal SSB puede expresarse como (t )senct s (t ) = e ~ s (t )e j c t = 0.5 Ac m(t )cos ct 0.5 Ac m (2.9-8)

(2.9-7)

(2.9-9)

Similarmente para el caso de la banda lateral inferior, al seguir el mismo desarrollo se obtiene ( ) = A M ( )u ( ) = 0.5 A M ( )(1 sign ) S c c ( ) = 0.5 A M ( )[1 j ( j sign )] = 0.5 A M ( ) j 0.5 A M ( ) S c c c Por consiguiente, la envolvente compleja ~ (t )] s (t ) = 0.5 Ac [m(t ) jm De esta manera la correspondiente seal SSB es (t )senct s (t ) = e ~ s (t )e j c t = 0.5 Ac m(t )cos ct + 0.5 Ac m (2.9-11)

(2.9-10)

(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

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

(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 (t ) = ~ (t )]e j c t s+ (t ) = s (t ) + js s (t )e j c t = 0.5 Ac [ m(t ) jm (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 (t ) = s+ (t )e j c t = 0.5 Ac [ m(t ) jm (t )] s (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

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

(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 (t )senct . contiene una componente en cuadratura no deseada m 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


(t ) s+ (t ) = s (t ) + js

(2.9-17)

la transformada de Fourier es
S + ( ) = 2S ( ) u ( )

(2.9-18)

El siguiente paso es multiplicar (2.9-17) por e j t para obtener (t )][cos t + jsen t ] r+ (t ) = s+ (t )e j t = [s (t ) + js y su transformada es (2.9-19)

66

R+ ( ) = S + ( )

(2.9-20)

Al hacer lo anterior se desplaza el espectro original hacia la derecha por y se mueve desde 0 hasta la frecuencia 1 . Al tomar la parte real de r+ (t ) se obtiene la seal transmitida
(t )sent r (t ) = s(t )cos t s

(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 0

(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

(nT ) = (kT )T = c nT + m (nT )


k =0

n 1

(2.10-6)

donde

m (nT ) = kT m(kT )
k =0

n 1

(2.10-7)

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

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


La seal muestreada FM resultante sera s (nT ) = Ac cos (nT )

(2.10-8)

(2.10-9)

2.10.1.1

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 Am sin s (t ) = Ac cos + t c m m

(2.10-10)

70

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 (t ) = Ac e j [ c t + m (t )] s+ (t ) = s (t ) + js Al calcular el ngulo, de la expresin anterior se obtiene (2.10-13)

73

(t ) s (t )] = ct + m (t ) (t ) = arctan[s Al derivar la expresin anterior se obtiene s(t ) d d (t ) s (t ) s (t ) s dt dt = c + k m(t ) 2 2 (t ) s (t ) + s

(2.10-14)

d (t ) = dt

(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[s (t ) s (t )] = (t ) Q I m Al derivar la expresin anterior se obtiene sI (t ) d d sQ (t ) sQ (t ) sI (t ) dt dt = k m(t ) 2 2 sI (t ) + sQ (t ) (2.10-17)

d ~ (t ) = dt

(2.10-18)

El resultado anterior es proporcional a la seal banda base. La siguiente figura muestra como implementar este discriminador.

74

Figura 2.25 Discriminador en tiempo discreto usando la envolvente compleja1

2.10.3 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 ) =

k =

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

k =

a g (t kT )
k T

(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 ( )} Luego a la salida del filtro receptor se obtiene x(t ) = (2.11-5)

k =

a g (t kT ) + (t ) g (t )
k T R

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

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

82

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


s
k s

1 g (nT ) =
k =

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
*
s

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 g1 (t ) = g (t ) b(t )

(2.11-12)

86

De esta manera la salida del prefiltro es q(t ) =

k =

a g (t kT )
k 1

(2.11-13)

Luego la salida del prefiltro se pasa a travs de un potenciador cuya salida es p (t ) = q 2 (t ) =

k = m =

a a g (t kT )g (t mT )
k m 1 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 ) = y b* (t ) =

k =

a (t kT )
k

(2.12-1)

k =

b (t kT )
k

(2.12-2)

Estas dos seales se pasan a travs de los filtros de transmisin a(t ) = y

k =

a g (t kT )
k T

(2.12-3)

90

b(t ) =

k =

b g (t kT )
k T

(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 ) = ~ s (t ) =

k =

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

k =

(a

+ jbk )gT (t kT ) =

c g (t kT )
k T

(2.12-6)

La seal analtica es s+ (t ) = ck gT (t kT ) e j c t k = En donde la seal QAM transmitida se puede expresar como


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

(2.12-7)

(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 e j c kT = ak + jbk ck (2.12-12)

92

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

(2.12-13)

(2.12-14)

k =

c h(t kT )
k

(2.12-15)

k =

a h (t kT ) b h (t kT )
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 para > o

(banda de paso) (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. 9.

Repita el punto 6. 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) Y = fft(x,N)

la longitud del vector x sea una potencia de 2. Lo que no se 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) X= ifft(Y,N)

Obtiene la FFT inversa del vector x. Tambin se puede 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) x5 (t ) = 0.1223 cos(2 (1700)t )

x4 (t ) = 0.2942 cos(2 (1600)t 1.4488)

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 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. x1[n] = 12sen(2 (1500 )n )

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') [y,t] = modulate(x,fc,fs)

con una frecuencia portadora

fc

y una

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 1 2 1 cz

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

Muestre la seal a modular, la seal modulada y la seal demodulada. 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 para

> c

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 para

< c

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

Cules son las ventajas y desventajas de utilizar la modulacin SSB? 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 Am s (t ) = Ac cos + t sin c m 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. 6. Grafique la seal a modular y la seal modulada con modulate. 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 ) =

n =

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

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) y = pammod(x,M,ini_phase)

M es la cantidad de niveles de cuantificacin 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 una seal PAM. Los niveles de

z = pamdemod(y,M) z = pamdemod(y,M,ini_phase)

cuantificacin es la variable M. 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. 2.

Qu es el fenmeno de Interferencia entre smbolos (ISI)? 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) y = qammod(x,M,ini_phase)

de la seal, la cual debe estar dada en valores 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) z = qamdemod(y,M,ini_phase)

de la seal, la cual debe estar dada en valores 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 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. m1 (t ) = Am sen(2f1t )

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

Cules son las ventajas y desventajas de la modulacin QAM? 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);

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

%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

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); 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)'); %Se crea una matriz para guardar las %salidas de cada filtro

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 %Frecuencia de la seal portadora %Seal modulada

%Seal modulada (AM) fc=100; s=modulate(mtono,fc,fs,'am');

%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; Ap=5; indmod=[0.45 1 2.6]; ka=0.5;

%Vector de muestras a recolectar %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; 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;

m<1');

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 %Frecuencia de la seal portadora %Seal modulada

%Seal modulada (AM) fc=100; s=modulate(mtono,fc,fs,'am'); % 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; Am1=indmod/ka; fym=200; 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 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); %Amplitud de la portadora %Indice de modulacin %Indice de sensibilidad %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

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); Y3=fft(mreconst,Nfft); Y4=fftshift(Y3); norm2=max(abs(Y4)); %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 %FFT de Nfft puntos para la seal reconstruida %Reordenamiento de los valores de la FFT %Para normalizar el espectro en magnitud

%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 Onda de 120 Hz Filtro pasabanda IIR N=6 Chebyshev Tipo I Onda de 400 Hz Add1 Zero-Order Hold1 FDATool Salida del filtro pasabanda FDATool

Onda de 680 Hz Seales1 Seal completa1 Filtro rechaza banda IIR N=6 Chebyshev Tipo I1

Salida del filtro rechaza banda

204

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 Onda de 1500 Hz
Salida f iltro pasobajo

Onda de 175 Hz Zero-Order Hold

Filtro Pasobajo FIR N=36 Hamming

B-FFT Espectro de la salida del filtro pasobajo

Onda de 1200 Hz

FDATool Salida del filtro pasabanda


Salida f iltro pasabanda

Onda de 2325 Hz

Filtro FIR N=36 Pasabanda Kaiser

B-FFT Espectro de la salida del filtro pasabanda

FDATool Salida del filtro pasoalto


Salida f iltro pasoalto

Filtro FIR N=36 Pasoalto Hamming

B-FFT Espectro de la salida del filtro pasoalto

205

B.3

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 Zero-Order Hold2 Seal a modular 0.5 ka 1 Nivel DC Seal portadora Product Zero-Order Hold

Sea a modular

B-FFT Espectro de la seal a modular

Modulador

Seal modulada

Zero-Order Hold1 Detector de envolvente de Ley Cuadrtica


Seal reconstruida

1.7-1.7z-1 2-1.4z-1

FDATool sqrt Raz cuadrada1 Filtro FIR pasobajo N=36 Hamming u 2

Seal reconstruida

Filtro pasoalto para eliminar DC

Elevador

B-FFT Espectro de la salida del filtro paso alto Raz cuadrada Salida del filtro pasobajo

206

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 exp(-0.5*(u)) Clock Fcn

Zero-Order Hold1 Product Zero-Order Hold2

Seal a modular

Seal a modular

B-FFT Espectro seal a modular


Seal modulada

Seal portadora

Zero-Order Hold

Product1

Seal modulada

B-FFT Demodulador FDATool


Seal demodulada

Espectro portadora

LO (Oscilador Local)

Zero-Order Hold3

Product3 Filtro FIR pasobajo N=24 Hamming

Seal demodulada

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 Product1 Zero-Order Hold

B-FFT Espectro de la seal a modular

Seal portadora
Seal DSBSC-AM

Seal DSBSC-AM

MODULACION SSB-AM Modulador SSB-AM (Banda lateral inferior) FDATool B-FFT Espectro de la seal DSBSC-AM Seal SSB-AM banda lateral inferior Filtro FIR pasobajo N=36 Hamming FDATool Seal SSB-AM banda lateral superior Filtro FIR pasoalto N=36 Hamming
Seal SSB-AM banda lateral superior Seal SSB-AM banda lateral inf erior

B-FFT

Modulador SSB-AM (Banda lateral superior)

Espectro de la seal SSB-AM banda lateral inferior

B-FFT

Espectro de la seal SSB-AM banda lateral superior FDATool

DEMODULACION SSB-AM

Product2 Filtro FIR pasobajo N=36 Hamming1 FDATool

Seal reconstruida con banda lateral inferior

Seal portadora1 Zero-Order Hold2 Product3

Filtro FIR pasobajo N=36 Hamming2

Seal reconstruida con banda lateral superior Comparacin

208

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


Seal a modular

B-FFT Espectro seal a modular Comparacin

FM FM Modulator Passband

Seal FM

Seal FM

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 Random Integer Generator Integer to Bit Converter M-PAM

Seal PAM

B-FFT

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

Espectro seal PAM

|u| Abs Diagrama de Ojo Seal PAM 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
Seal QAM

Random Integer Random Integer Generator

Rectangular QAM Rectangular QAM Modulator Baseband Seal aleatoria de enteros positivos

B-FFT Espectro seal QAM


Seal QAM

Re(u) Im(u)

Cuadratura Fase

Complex to Real-Imag Rectangular QAM Constelacin seal QAM sin ruido Rectangular QAM Demodulator Baseband1
Seal reconstruida sin ruido

Seal QAM

Seal reconstruida sin ruido en el canal

AWGN

AWGN Channel

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

You might also like