Informe - Escuela de Ingeniería Eléctrica

Anuncio
Universidad de Costa Rica
Facultad de Ingeniería
Escuela de Ingeniería Eléctrica
IE – 0502 Proyecto Eléctrico
Diseño e implementación de un laboratorio virtual en
DSP para comunicaciones usando Matlab y Simulink
Por:
José Gabriel Fernández Carazo
Ciudad Universitaria Rodrigo Facio
Julio del 2007
Diseño e implementación de un laboratorio virtual en
DSP para Comunicaciones usando Matlab y Simulink
Por:
José Gabriel Fernández Carazo
Sometido a la Escuela de Ingeniería Eléctrica
de la Facultad de Ingeniería
de la Universidad de Costa Rica
como requisito parcial para optar por el grado de:
BACHILLER EN INGENIERÍA ELÉCTRICA
Aprobado por el Tribunal:
_________________________________
Ing. Jorge Romero Chacón
Profesor Guía
_________________________________
Ing. Víctor Hugo Chacón
Profesor lector
_________________________________
Ing. Lucía Acuña Avendaño
Profesora lectora
ii
DEDICATORIA
Este proyecto se lo dedico primero y sobre todo a
Dios por la vida, por la disposición y energía que ha hecho
crecer en mí y que me ha permitido llegar hasta este nivel.
A mi familia, razón importante para buscar siempre
una superación intelectual.
A mi madre por el consistente apoyo, paciencia y
motivación para siempre buscar obtener nuevos logros. Y
porque su sola presencia es una razón para seguir adelante.
iii
RECONOCIMIENTOS
Al profesor Jorge Romero por su confianza, paciencia, consejos, apoyo
bibliográfico, aportes y guía en la elaboración de este trabajo, así como el tiempo brindado
para discutir las dudas y avances.
A todas las personas que han tenido que ver con mi educación moral y profesional,
ya que en estos momentos tiene sentido todo el conocimiento y sabiduría que me han
transmitido.
A mis amigos, compañeros de carrera y a todas las personas que de una u otra
forma han influenciado mi manera de pensar y que de alguna manera han tenido que ver
con el camino profesional que he elegido.
A dos grandes amigas Joselyn Ovares por su compañía incondicional e interés en
mi avance en todo el transcurso del desarrollo de este proyecto y Jennifer Soto por su
apoyo y motivación para seguir adelante en los momentos difíciles.
iv
ÍNDICE GENERAL
ÍNDICE DE FIGURAS.................................................................................. ix
ÍNDICE DE TABLAS.................................................................................... xi
NOMENCLATURA...................................................................................... xii
RESUMEN .................................................................................................... xiii
CAPÍTULO 1: Introducción ...........................................................................1
1.1
Objetivos ................................................................................................................ 1
1.1.1
Objetivo general............................................................................................. 1
1.1.2
Objetivos específicos ..................................................................................... 1
1.2
Justificación del tema............................................................................................. 1
1.3
Problema a resolver................................................................................................ 2
1.4
Metodología ........................................................................................................... 3
CAPÍTULO 2: Desarrollo teórico...................................................................4
2.1
Introducción al procesamiento digital de señales .................................................. 4
2.2
Tipos de señales ..................................................................................................... 5
2.3
Representación frecuencial del dominio................................................................ 8
2.4
Filtros analógicos y digitales ............................................................................... 12
2.4.1
Filtros analógicos ......................................................................................... 12
2.4.2
Filtros digitales............................................................................................. 13
2.5
Nota teórica laboratorio de filtros digitales ......................................................... 14
2.5.1
Suma convolución y respuesta en frecuencia para tiempo discreto............. 14
2.5.2
Filtros de respuesta de duración finita al impulso (FIR).............................. 16
2.5.2.1 Estructura en forma directa de un filtro FIR................................................ 16
2.5.2.2 Métodos para el diseño de filtros FIR.......................................................... 18
2.5.3
Filtros de respuesta de duración infinita al impulso (IIR) ........................... 18
2.5.3.1 Estructura en forma directa de un filtro IIR................................................. 19
2.5.4
Transformación bilineal ............................................................................... 24
2.6
Nota teórica laboratorio de FFT........................................................................... 32
2.6.1
Muestreo en tiempo discreto utilizando la transformada de Fourier ........... 32
2.6.2
La transformada discreta de Fourier y su inversa ........................................ 33
2.6.3
La transformada rápida de Fourier............................................................... 34
2.6.4
Uso de la FFT para determinar la densidad espectral de potencia............... 41
v
2.7
Nota teórica laboratorio de modulación AM ....................................................... 44
2.7.1
Descripción de la modulación de amplitud (AM)........................................ 44
2.7.1.1 Espectro de una señal AM ........................................................................... 46
2.7.2
Demodulación de una señal AM capturando la envolvente......................... 48
2.7.2.1 Demodulación de señales AM utilizando la ley cuadrática ......................... 48
2.8
Nota teórica laboratorio de modulación DSBSC-AM ......................................... 50
2.8.1
Descripción matemática de una señal DSBSC-AM..................................... 50
2.8.2
El receptor coherente ideal........................................................................... 51
2.8.3
Lazo de Costas: técnica práctica para demodulación coherente .................. 54
2.9
Nota teórica laboratorio de modulación SSB....................................................... 60
2.9.1
Moduladores SSB ........................................................................................ 60
2.9.2
Demodulación coherente de señales SSB .................................................... 63
2.9.3
Desplazamiento en frecuencia ..................................................................... 66
2.10 Nota teórica laboratorio de modulación FM........................................................ 68
2.10.1
Descripción de la modulación FM............................................................... 68
2.10.1.1
Modulación FM de un tono simple.......................................................... 70
2.10.1.2
Ancho de banda de una señal FM ............................................................ 71
2.10.2
Demodulación FM: discriminador en frecuencia ........................................ 72
2.10.2.1
Discriminador FM utilizando un detector de envolvente ........................ 73
2.10.2.2
Discriminador FM utilizando la envolvente compleja............................. 74
2.10.3
Demodulación FM usando un PLL.............................................................. 75
2.11 Nota teórica laboratorio de modulación PAM ..................................................... 78
2.11.1
Descripción de la modulación PAM ............................................................ 78
2.11.2
Criterio de Nyquist para no tener ISI........................................................... 82
2.11.3
Diagramas de ojo ......................................................................................... 83
2.11.4
Recuperación de la frecuencia del tren de pulsos ........................................ 86
2.12 Nota teórica laboratorio de modulación QAM .................................................... 88
2.12.1
Transmisor QAM básico.............................................................................. 88
2.12.2
Modulador QAM utilizando filtros conformadores pasabandas.................. 92
CAPÍTULO 3: Laboratorios .........................................................................95
3.1
Laboratorio de filtros digitales............................................................................. 96
3.1.1
Filtros digitales FIR ..................................................................................... 98
3.1.2
Filtros digitales IIR ...................................................................................... 98
3.1.3
Filtrado en SIMULINK.............................................................................. 100
3.1.3
Cuestionario ............................................................................................... 101
3.2
Laboratorio de FFT ............................................................................................ 102
3.2.1
Cálculo de la FFT....................................................................................... 103
3.2.2
Analizador de espectro de frecuencia en SIMULINK............................... 104
3.2.3
Cuestionario ............................................................................................... 105
3.3
Laboratorio de modulación AM......................................................................... 106
3.3.1
Modulación AM......................................................................................... 107
3.3.2
Detector de envolvente (Ley Cuadrática) .................................................. 108
vi
3.3.3
Cuestionario ............................................................................................... 110
3.4
Laboratorio de modulación DSBSC-AM........................................................... 111
3.4.1
Modulación DSBSC-AM........................................................................... 112
3.4.2
Modulación y demodulación AM utilizando SIMULINK......................... 113
3.4.3
Cuestionario ............................................................................................... 113
3.5
Laboratorio de modulación SSB........................................................................ 114
3.5.1
Modulación SSB-AM ................................................................................ 114
3.5.2
Demodulación SSB-AM ............................................................................ 115
3.5.3
Modulación y demodulación SSB–AM en SIMULINK............................ 116
3.5.4
Cuestionario ............................................................................................... 117
3.6
Laboratorio de modulación FM ......................................................................... 118
3.6.1
Modulación FM ......................................................................................... 118
3.6.2
Modulación y demodulación FM utilizando SIMULINK ......................... 120
3.6.3
Cuestionario ............................................................................................... 121
3.7
Laboratorio de modulación PAM ...................................................................... 122
3.7.1
Modulación y demodulación PAM en MATLAB ..................................... 123
3.7.2
Modulación y demodulación PAM en SIMULINK................................... 125
3.7.3
Cuestionario ............................................................................................... 126
3.8
Laboratorio de modulación QAM...................................................................... 127
3.8.1
Modulación y demodulación QAM ........................................................... 129
3.8.2
Modulación y demodulación QAM con SIMULINK................................ 130
3.8.2
Cuestionario ............................................................................................... 131
CAPÍTULO 4: Conclusiones y recomendaciones .....................................132
4.1
4.2
Conclusiones ...................................................................................................... 132
Recomendaciones .............................................................................................. 134
BIBLIOGRAFÍA ..........................................................................................135
APÉNDICES.................................................................................................137
APÉNDICE A: Código fuente de los ejercicios de simulación en MATLAB .............. 137
A.1
Código fuente laboratorio de filtros digitales ................................................ 137
A.2
Código fuente laboratorio de FFT.................................................................. 152
A.3
Código fuente laboratorio de modulación AM .............................................. 157
A.4
Código fuente laboratorio de modulación DSBSC-AM ................................ 167
A.5
Código fuente laboratorio de modulación SSB-AM...................................... 172
A.6
Código fuente laboratorio de modulación FM............................................... 182
A.7
Código fuente laboratorio de modulación PAM............................................ 189
A.8
Código fuente laboratorio de modulación QAM ........................................... 196
APÉNDICE B: Diagramas de bloques de los ejercicios de simulación en SIMULINK204
B.1
Simulación: laboratorio de filtros digitales.................................................... 204
B.2
Simulación: laboratorio de FFT ..................................................................... 205
B.3
Simulación: laboratorio de modulación AM.................................................. 206
vii
B.4
B.5
B.6
B.7
B.8
Simulación: laboratorio de modulación DSBSC-AM.................................... 207
Simulación: laboratorio de modulación SSB-AM ......................................... 208
Simulación: laboratorio de modulación FM .................................................. 209
Simulación: laboratorio de modulación PAM ............................................... 210
Simulación: laboratorio de modulación QAM............................................... 211
viii
ÍNDICE DE FIGURAS
Figura 2.1 Tipos de señales: (a) Señal continua en el tiempo sin cuantificar, (b) señal
discreta en el tiempo sin cuantificar................................................................................... 7
Figura 2.2 Tipos de señales: (a) Señal continua en el tiempo cuantificada, (b) señal
discreta en el tiempo cuantificada...................................................................................... 8
Figura 2.3 Representación en el dominio del tiempo de la señal periódica dada por la
ecuación (2.3-1). .............................................................................................................. 10
Figura 2.4 Representación en el dominio de la frecuencia de la señal periódica de la
ecuación (2.3-1). (a) Espectro de Magnitud, (b) Espectro de Fase.................................. 10
Figura 2.5 Diagrama de bloques de la estructura en forma directa de un filtro FIR ....... 17
Figura 2.6 Primer paso de la estructura en forma directa tipo 1 de un filtro IIR............. 20
Figura 2.7 Diagrama de bloques de la estructura en forma directa tipo 1 de un filtro IIR
.......................................................................................................................................... 21
Figura 2.8 Diagrama de bloques de la estructura en forma directa tipo 2 de un filtro IIR
.......................................................................................................................................... 23
Figura 2.9 Mapeo del plano s al plano s’ ......................................................................... 26
Figura 2.10 Mapeo de Ω a ω por medio de la transformación bilineal. .......................... 27
Figura 2.11 Descripción del efecto de la transformación bilineal de Hc( jΩ) a H'(ω)..... 29
Figura 2.12 Esquema de Mariposa del algoritmo FFT de diezmado en el tiempo. ......... 37
Figura 2.13 Primera etapa del algoritmo FFT de diezmado en el tiempo........................ 37
Figura 2.14 Primera etapa del algoritmo FFT de diezmado en frecuencia...................... 40
Figura 2.15 Espectro de una señal AM............................................................................ 47
Figura 2.16 Detector de envolvente (Ley Cuadrática)..................................................... 49
Figura 2.17 Diagrama de bloques de un Receptor Coherente Ideal ................................ 52
Figura 2.18 Espectro de una señal DSBSC-AM .............................................................. 53
Figura 2.19 Diagrama de bloques del demodulador de lazo Costas ................................ 54
Figura 2.20 Diagrama de bloques del Lazo Costas linealizado ....................................... 59
Figura 2.21 Diagrama de bloques de la modulación SSB ............................................... 61
Figura 2.22 Modulador SSB utilizando la transformada de Hilbert ................................ 63
Figura 2.23 Modulación FM ............................................................................................ 71
Figura 2.24 Diagrama de bloques elemental de un discriminador de frecuencia ............ 73
Figura 2.25 Discriminador en tiempo discreto usando la envolvente compleja .............. 75
Figura 2.26 Demodulador FM con PLL en tiempo discreto............................................ 76
Figura 2.27 Modelo linearizado del PLL......................................................................... 77
Figura 2.28 Modulación PAM ......................................................................................... 78
Figura 2.29 Diagrama de bloques de un sistema de comunicación PAM ....................... 79
Figura 2.30 Señal binaria antes del muestreador ............................................................. 84
Figura 2.31 Diagrama de ojos para la señal de la figura 2.30.......................................... 85
Figura 2.32 Diagrama de bloques del sistema de recuperación de frecuencia ................ 87
ix
Figura 2.33 Diagrama de bloques de un transmisor QAM básico................................... 89
Figura 2.34 Constelaciones QAM.................................................................................... 90
Figura 2.35 Representación de un modulador QAM en términos de señales complejas. 92
Figura 2.36 Modulador QAM utilizando un filtro conformador pasabanda.................... 93
Figura 2.37 Diagrama de bloques expandido del nuevo modulador QAM ..................... 94
Figura 3.1 Respuesta en frecuencia de un filtro pasobajo ............................................... 96
Figura 3.3 Diagrama del principio básico de modulación AM...................................... 106
Figura 3.4 Detector de envolvente de Ley Cuadrática................................................... 110
Figura 3.5 Diagrama del principio básico de demodulación AM.................................. 111
Figura 3.6 Modulador SSB ............................................................................................ 114
x
ÍNDICE DE TABLAS
Tabla 2.1 Parámetros de una señal obtenidos a partir de la ecuación 2.3-1 ...................... 9
Tabla 3.1 Funciones más comunes para el diseño de filtros digitales en MATLAB....... 97
Tabla 3.2 Funciones utilizadas en MATLAB para el cálculo de la FFT. ...................... 102
Tabla 3.3 Funciones de MATLAB para modulación y demodulación AM .................. 106
Tabla 3.4 Funciones de MATLAB para modulación y demodulación PAM ................ 123
Tabla 3.5 Funciones de MATLAB para la modulación y demodulación QAM............ 128
xi
NOMENCLATURA
AM
Modulación de amplitud (Amplitude Modulation)
DFT
Transformada discreta de Fourier (Discrete Fourier Transform)
DSBSC-AM
Modulación de amplitud de doble banda lateral con portadora
suprimida
(Double
Sideband
Suppressed
Carrier
Amplitude
Modulation)
DSP
Procesamiento digital de señales (Digital Signal Processing)
FFT
Transformada rápida de Fourier (Fast Fourier Transform)
FIR
Respuesta de duración finita al impulse (Finite duration Impulse
Response)
FM
Modulación en frecuencia (Frequency Modulation)
IDFT
Transformada Discreta de Fourier Inversa (Inverse Discrete Fourier
Transform)
IIR
Respuesta de duración infinita al impulse (Infinite duration Impulse
Response)
LSB
Banda lateral inferior (Low Sideband)
LSI
Integración a gran escala (Large Scale Integration)
MSI
Integración a media escala (Medium Scale Integration)
PLL
Circuito de lazo por enganche de fase (Phase Locked Loop)
QAM
Modulación de amplitud en cuadratura (Quadrature Amplitude
Modulation)
SSB-AM
Modulación de amplitud de banda lateral única (Single Sideband
Amplitude Modulation)
USB
Banda lateral superior (Upper Sideband)
VLSI
Integración a muy gran escala (Very Large Scale Integration)
xii
RESUMEN
La Escuela de Ingeniería Eléctrica de la Universidad de Costa Rica tiene gran
interés en el Procesamiento Digital de Señales, y por eso se ha decidido desarrollar una
serie de prácticas de simulación en los apartados que envuelve la ciencia del procesamiento
digital de señales para los sistemas de comunicación.
Primero se presenta una investigación teórica de las técnicas de simulación
utilizadas en los sistemas de comunicación. Esta investigación teórica permite reforzar y
entender con claridad los conceptos básicos detrás de la ciencia de las comunicaciones.
Segundo se presentan los enunciados de las prácticas para los temas presentados en
el marco teórico. Se inicia con una práctica sencilla de filtros digitales, luego una para
evaluar los conceptos de la transformada discreta de Fourier utilizando la transformada
rápida de Fourier, le siguen las prácticas de modulación AM completa, DSBSC-AM, SSBAM y FM, después las prácticas de modulación digital PAM y QAM.
Por último, se muestra el código fuente generado para la solución de los ejercicios
de simulación en MATLAB planteados en cada una de las prácticas de laboratorio, así
como los diagramas de bloques de los ejercicios de simulación en SIMULINK planteados
para cada una de ellas.
xiii
CAPÍTULO 1: Introducción
1.1
Objetivos
1.1.1
Objetivo general
Preparar y generar prácticas para una simulación previa a la ejecución de
experimentos que emplearían tarjetas construidas para realizar procesamiento digital
de señales.
1.1.2
Objetivos específicos
Preparación del manual de prácticas para simulación.
Diseño de prácticas adicionales en el área de comunicaciones digitales.
Introducción de nuevas técnicas de simulación en el área de sistemas de
comunicaciones digitales.
1.2
Justificación del tema
El gran avance de la ciencia y la ingeniería, en el desarrollo de circuitos integrados,
microprocesadores y computadoras en los últimos 30 años, ha generado un gran interés en
el estudio del Procesamiento Digital de Señales (DSP, acrónimo para la frase en inglés
Digital Signal Processing). Este tema de estudio se ha vuelto tan indispensable que ha sido
aplicado a muchas disciplinas tanto en ingeniería como economía y desde la astronomía
hasta la biología molecular.
1
Es por eso que este es un tema de estudio de gran interés para la Escuela de
Ingeniería Eléctrica de la Universidad de Costa Rica, y por eso se ha decidido desarrollar
una serie de prácticas de simulación en los apartados que envuelve la ciencia del
procesamiento digital de señales, las cuales se realizarán de forma previa a un laboratorio
en el cual se pondrán en práctica todos los conocimientos adquiridos en el curso de
Procesamiento Digital de Señales que imparte dicha Escuela, con tarjetas de programación
de microprocesadores diseñados para el tratamiento digital de señales.
1.3
Problema a resolver
El problema a resolver, es el de realizar el manual de prácticas para simulación
utilizando MATLAB y SIMULINK. Este deberá abarcar los temas más importantes en el
área del procesamiento digital de señales, como por ejemplo el diseño de filtros digitales,
análisis del espectro de una señal digital aplicando la transformada discreta de Fourier,
modulación y demodulación AM, modulación y demodulación FM, detección de errores
de transmisión; y estos tan solo para mencionar algunos, los demás se deben determinar por
medio de la investigación teórica.
Las prácticas incluirán una nota teórica, un procedimiento detallado de los
ejercicios que se deben realizar, y por último tendrán un cuestionario para evaluar todos los
conceptos que en el experimento se incluyan.
2
1.4
Metodología
La metodología propuesta describe la manera en la cual va a transcurrir el proceso
de investigación hasta alcanzar la meta establecida por medio de los objetivos
anteriormente descritos.
Primeramente se debe elaborar un marco teórico, incluyendo una breve introducción
al DSP, seguido de los temas más importantes en el procesamiento digital de señales, los
cuales son la nota teórica de cada una de las prácticas que se pretenden generar. Esta
investigación teórica se debe realizar con la revisión, obtención, extracción y recopilación
de literatura proveniente de libros, revistas, artículos, bibliotecas e Internet.
El siguiente paso es el desarrollo de los ejercicios incluidos en las prácticas de
simulación, las cuales se deben plantear y solucionar con la ayuda de MATLAB y
SIMULINK, las cuales son dos herramientas informáticas muy poderosas y de gran
importancia para el desarrollo de sistemas de procesamiento digital de señales.
Por último se evalúa cada una de las prácticas por medio de un análisis de
resultados y el procedimiento efectuado para cada una de ellas.
3
CAPÍTULO 2: Desarrollo teórico
2.1
Introducción al procesamiento digital de señales
El acelerado desarrollo de circuitos integrados, comenzando con la integración a
media escala (MSI, medium scale integration), luego con la integración a gran escala (LSI,
large scale integration) y por último, hoy en día, con la integración a muy gran escala
(VLSI, very large scale integration) de circuitos electrónicos integrados ha estimulado el
desarrollo de ordenadores digitales más pequeños, rápidos, y baratos y de hardware de
propósito general. Con estos circuitos digitales, se ha hecho posible construir sistemas
digitales altamente sofisticados, capaces de realizar funciones y tareas para un
procesamiento de señal digital que normalmente eran demasiado difíciles y/o caras con
circuitería o sistemas de procesamiento de señales analógicas.
A través del DSP, se han desarrollado hoy en día, sofisticados sistemas de
comunicación, nació el Internet, se ha podido obtener valiosa información acerca del
cosmos a partir de las señales astronómicas, las señales sísmicas pueden ser analizadas para
determinar la magnitud de un terremoto o para predecir la estabilidad de un volcán, las
imágenes o fotografías por computador pueden ser ahora mejoradas, entre muchas otras
cosas más.
4
2.2
Tipos de señales1
Las señales se pueden encontrar en la mayoría de los campos de la ciencia y la
ingeniería, así como en la astronomía, acústica, biología, comunicaciones, sismología,
telemetría, y economía, tan solo como para nombrar algunos. Las señales naturalmente
provienen de los procesos físicos o son hechas por la humanidad. Las señales astronómicas
pueden ser generadas por explosiones celestes llamadas supernovas o por una estrella
pulsante, mientras las señales sísmicas son manifestaciones de terremotos o de volcanes
que están en actividad. Las señales en biología son producidas por el cerebro o el corazón,
por los delfines o las ballenas para comunicarse entre ellas, o por un murciélago para poder
volar en la oscuridad o para encontrar alimento. Por otra parte, las señales hechas por la
humanidad son producidas en procesos tecnológicos, tales como las que existen en las
computadoras, telefonía y sistemas de radar, o el Internet.
Son muchas las razones por las que existe un gran interés en las señales. Los
astrónomos pueden obtener información muy importante de las estrellas, tal como su
composición química, pueden determinar el tamaño y la densidad de una estrella pulsante
de acuerdo a la frecuencia de radiación de esta. Los sismólogos pueden determinar la
magnitud y el lugar de origen de un terremoto, al igual que un vulcanólogo puede predecir
cuando un volcán estará en erupción. Los cardiólogos pueden diagnosticar la condición del
corazón, al mirar los patrones o alteraciones de los tejidos a través de un
electrocardiograma. Se puede difundir información a través del Internet, ayudar a los
1
Proakis, J. G. “Tratamiento digital de señales”. Tercera Edición, Prentice Hall, Madrid, España, 1998.
5
aviones a aterrizar en condiciones climáticas muy malas y de poca visibilidad, o advertir a
los pilotos de la distancia entre un objeto y los aviones para evitar colisiones.
Entonces, con todo lo que se ha dicho anteriormente se puede decir que una señal es
una cantidad física que varía con el tiempo, el espacio o cualquier otra variable o variables
independientes. Las señales se pueden clasificar como:
•
Señales continuas en el tiempo (analógicas)
•
Señales discretas en el tiempo (digitales)
Una señal continua en el tiempo está definida para todos los valores del tiempo
desde el inicio hasta el final en un intervalo de tiempo dado, por ejemplo la señal acústica
producida por un delfín. Una señal discreta en el tiempo está definida como una señal con
valores en ciertos instantes del tiempo, los cuales pueden ser cada milisegundo, segundo,
minuto, hora o día, por ejemplo las gotas de lluvia como función del tiempo.
Matemáticamente, las señales analógicas se describen como funciones continuas de
variable continua, donde el dominio es un intervalo de valores (t1, t2), donde − ∞ < t1 y
t2 < ∞ , la cual está representada en la figura 2.1a. De forma similar una señal discreta
puede ser representada por una función x(nT ) , donde T es el período entre los valores
discretos adyacentes de la función y n es un integrador del intervalo (n1, n2) donde − ∞ < n1
y n2 < ∞ , tal y como se muestra en la figura 2.1b. Las señales de tiempo discreto a menudo
son generadas a partir de una señal continua por medio de un proceso de muestreo. En
6
particular, tenemos f s = 1 T , la cual es conocida como la frecuencia de muestreo. Las
señales también se pueden clasificar como:
•
Sin cuantificar
•
Cuantificada
Una señal sin cuantificar puede tomar cualquier valor en un intervalo, mientras que
una señal cuantificada sólo puede tomar valores discretos, usualmente de igual longitud de
separación. La figura 2.2a y 2.2b muestra respectivamente, a una señal cuantificada
continua en el tiempo y una señal cuantificada discreta en el tiempo.
(a)
(b)
Figura 2.1 Tipos de señales: (a) Señal continua en el tiempo sin cuantificar, (b) señal
discreta en el tiempo sin cuantificar
7
(a)
(b)
Figura 2.2 Tipos de señales: (a) Señal continua en el tiempo cuantificada, (b) señal
discreta en el tiempo cuantificada
2.3
Representación frecuencial del dominio1
Las señales la mayoría del tiempo son representadas por funciones en el dominio
del tiempo. Pero en algunas situaciones es de gran utilidad representar las señales con
funciones en el dominio de la frecuencia, por ejemplo un señal continua en el tiempo
compuesta por la sumatoria de las componentes sinusoidales, tal como
9
x(t ) = ∑ Ak sin (ωk t + φk )
(2.3-1)
k =1
puede ser descrita completamente por dos series,
A(ω ) = { Ak : ω = ωk
para k = 1,2,3,K,9}
(2.3-2)
y
1
Antoniou, A. “Digital Signal Processing: Signals, Systems and Filters”. Primera edición, McGraw Hill, New
York, Estados Unidos, 2006.
8
φ (ω ) = {φk : ω = ωk
para k = 1,2,3,K,9}
(2.3-3)
las cuales representan las magnitudes y las fases de las componentes sinusoidales presentes
en la señal. A las series A(ω ) y φ (ω ) se les conoce respectivamente como el espectro de
magnitud y el espectro de fase de la señal. Por ejemplo, si A(ω ) y φ (ω ) en la ecuación
2.3-1, tomaran los valores dados en la tabla 2.1 asociados con cierto valor de frecuencia,
x(t ) puede ser representada en el dominio del tiempo, tal y como se muestra en la figura
2.3 y en el dominio de la frecuencia en las figuras 2.4a y b.
Tabla 2.1 Parámetros de una señal obtenidos a partir de la ecuación 2.3-1
k
ωk
Ak
1
1
0.6154
0.0579
2
2
0.7919
0.3529
3
3
0.9218
-0.8132
4
4
0.7382
0.0099
5
5
0.1763
0.1389
6
6
0.4057
-0.2028
7
7
0.9355
0.1987
8
8
0.9169
-0.6038
9
9
0.4103
-0.2722
9
φk
Figura 2.3 Representación en el dominio del tiempo de la señal periódica dada por la
ecuación (2.3-1).
Figura 2.4 Representación en el dominio de la frecuencia de la señal periódica de la
ecuación (2.3-1). (a) Espectro de Magnitud, (b) Espectro de Fase.
10
La utilidad de representar una señal en el dominio de la frecuencia, se puede
apreciar al comparar el dominio del tiempo con el dominio de la frecuencia al analizar la
figura 2.4. La representación en el dominio del tiempo muestra una señal ruidosa y
periódica. Lo cual implica que ésta señal está compuesta por la suma de componentes
periódicos. Por otro lado, la representación en el dominio de la frecuencia, provee una
descripción detallada y significativa de cada una de los componentes en frecuencia, y de los
aportes en magnitud y fase de cada uno de los componentes presentes en la secuencia.
La representación propuesta en la ecuación 2.3, se conoce como la Serie de Fourier
de una señal x(t ) y se obtiene como consecuencia, que las series de Fourier para una señal
periódica son la única manera para obtener una representación espectral de una señal. Los
científicos, matemáticos e ingenieros han ideado una gran variedad de herramientas
matemáticas, las cuales pueden ser usadas para representar diferentes tipos de señales de
forma espectral. Otras herramientas matemáticas, además de las Series de Fourier, son la
Transformada de Fourier, la cual se aplica tanto a señales periódicas o no periódicas
continuas en el tiempo; la Transformada Z, la cual se utiliza para señales no periódicas
discretas en el tiempo; y la Transformada Discreta de Fourier, la cual es la más adecuada
para señales periódicas discretas en el tiempo. Cada una de estas herramientas será
retomada en los siguientes apartados.
11
2.4
Filtros analógicos y digitales1
El término filtro se utiliza comúnmente para describir un dispositivo que discrimina,
según algún atributo de los objetos que se aplican a su entrada, aquello que pasa a su través.
Por ejemplo, un filtro de aire permite que el aire pase a su través, evitando que las
partículas de polvo presentes en el aire lo atraviesen.
El filtrado se emplea en el procesamiento digital de señales de diferentes maneras,
por ejemplo, en la eliminación de ruido indeseable de señales deseadas, en la conformación
espectral para ecualización de canales de comunicaciones, en la detección de señales en
radar, sonar y comunicaciones, en los análisis espectrales de señales, etc.
2.4.1 Filtros analógicos
Los filtros eléctricos, desde que fueron inventados, han hecho posible el gran
desarrollo de las telecomunicaciones. Originalmente los filtros analógicos fueron
inventados para ser usados para receptores de radio y sistemas telefónicos para comunicar
personas a larga distancia, convirtiéndose de esta manera en elementos importantes en
todos los tipos de sistemas de comunicación. Con el desarrollo de filtros en los últimos
años, estos se pueden clasificar según su función, su gama de frecuencias o según su
tecnología y de acuerdo, con los elementos que los componen. Algunos tipos de filtros
analógicos son los siguientes:
1
Antoniou, A. “Digital Signal Processing: Signals, Systems and Filters”. Primera edición, McGraw Hill, New
York, Estados Unidos, 2006.
12
•
Filtros pasivos RLC
•
Filtros de capacitores conmutados
•
Filtros activos RC discretos
•
Filtros de microondas
•
Filtros activos RC integrados
2.4.2 Filtros digitales
En general, un filtro digital es un sistema que recibe de entrada una señal de tiempo
discreto y produce de salida una señal de tiempo discreto, pero modificada en cierta forma
ya sea en magnitud o en frecuencia. Con el rápido avance en la tecnología de los circuitos
integrados, el desarrollo de tecnologías digitales hizo que se construyeran sistemas más
versátiles y de muy bajo costo.
El desarrollo de filtros digitales sigue creciendo día con día, y por ello se tiene los
siguientes ejemplos:
•
•
Filtros adaptativos
recursivos
•
Filtros multidimensionales
•
Filtros de abanico
•
Filtros Multitasa
•
Filtros bidimensionales
Filtros
recursivos
y
no
Estos filtros digitales hoy en día, pueden ser implementados en lenguajes como
MATLAB o C++.
13
2.5
Nota teórica laboratorio de filtros digitales 1
El objetivo es aprender como implementar las técnicas de filtrado para señales de
tiempo discreto, usualmente utilizadas en el curso de Procesamiento Digital de Señales.
2.5.1 Suma convolución y respuesta en frecuencia para tiempo discreto
La salida y[n] de un sistema lineal e invariante en el tiempo se puede expresar
como la suma convolución de la entrada x[n] con su respuesta al impulso h[n] , por medio
de la siguiente ecuación:
∞
y[n] =
∑ x[k ] ⋅ h[n − k ] =
k = −∞
∞
∑ h[k ] ⋅ x[n − k ]
(2.5-1)
k = −∞
La transformada z de la convolución de dos señales es igual a la multiplicación de
las transformadas de cada una:
Y ( z) =
∞
∑ y[n]z
−n
= X ( z) ⋅ H ( z)
(2.5-2)
n = −∞
donde
H ( z) =
∞
∑ h[n]z − n
y
X ( z) =
∞
∑ x[n]z
−n
(2.5-3)
n = −∞
n = −∞
1
Tretter, S. A. “Communication System Design Using DSP Algorithms”. Primera Edición, Kluwer Academic
/ Plenum Publishers, New York, Estados Unidos, 2003.
14
De acuerdo con la ecuación 2.5-1, la salida es
y[n] =
∞
∑ h[k ] ⋅ Ce ω
j ( n − k )T
∞
= Ce jωnT
k = −∞
∑ h[k ] ⋅ e
− jωkT
k = −∞
= x[n]H ( z ) z = e jωT (2.5-4)
Por tanto, la salida tiene forma sinusoidal a la misma frecuencia que la entrada, pero
con su amplitud dada a partir del número complejo.
H * (ω ) = H ( z ) z = e jωT
(2.5-5)
La expresión H * (ω ) se le conoce como la respuesta en frecuencia del sistema. La
expresión A(ω ) = H * (ω ) se le conoce como la amplitud de la respuesta del sistema y el
ángulo θ (ω ) = arg H * (ω ) se le conoce como la respuesta de fase del sistema. Estas
funciones todas están en función de ω con un período ωs = 2π T . En coordenadas polares
la respuesta en frecuencia se ve así
H * (ω ) = A(ω )e jθ (ω )
(2.5-6)
Entonces, de acuerdo con la ecuación 2.5-4, la salida puede ser expresada como
y[n] = CA(ω )e j[ωnT +θ (ω )]
(2.5-7)
Cuando la entrada es una señal sinusoidal real, por ejemplo
x[n] = C cos(ωnT + φ ) = ℜe{Ce jφ e jωnT }
(2.5-8)
La salida es de la siguiente manera
y[n] = ℜe{H * (ω )Ce jφ e jωnT } = CA(ω ) cos[ωnT + θ (ω ) + φ ]
15
(2.5-9)
En otras palabras, el sistema modifica la magnitud de la señal sinusoidal de entrada
por medio de la amplitud de la respuesta y varía su fase a través de la fase de la respuesta
en frecuencia, lo que constituye la idea básica del filtrado digital.
2.5.2 Filtros de respuesta de duración finita al impulso (FIR)
FIR es un acrónimo en inglés para Finite Impulse Response o Respuesta finita al
impulso. Se trata de un filtro, en el cual si la entrada es una señal impulso, la salida tendrá
un número finito de términos no nulos.
Los filtros FIR tienen la gran ventaja de que pueden diseñarse para ser de fase
lineal, lo cual hace que presenten ciertas propiedades en la simetría de los coeficientes. Este
tipo de filtros tiene especial interés en aplicaciones de audio.
Estos filtros tienen todos los polos en el origen, por lo que son estables. Los ceros se
presentan en pares de recíprocos si el filtro se diseña para tener fase lineal. Una de sus
desventajas es de necesitar un orden mayor respecto a los filtros IIR para cumplir las
mismas características. Esto se traduce en un mayor gasto computacional.
2.5.2.1 Estructura en forma directa de un filtro FIR
La realización de la estructura en forma directa se deriva directamente de la
ecuación 2.5-1, cuando la respuesta al impulso es idénticamente a cero fuera del intervalo
de valores siguientes {0, 1,2,…, N-1}, de esta manera la suma convolución esta dada por:
16
N −1
y[n] = ∑ h[k ] ⋅ x[n − k ] =
k =0
n
∑ x[k ] ⋅ h[n − k ]
(2.5-10)
k = n − N +1
Un filtro de este tipo se le conoce como un filtro de respuesta finita al impulso de
N-etapas (FIR), filtro no recursivo, filtro transversal, o moving average filter (filtro de
combinación lineal ponderada). El diagrama de bloques para la realización de la estructura
en forma directa para construir filtros FIR se muestra en la figura 2.5. Consiste en una línea
de retardos representada por la cadena de bloques llamados z-1 y una serie de divisiones que
salen de la línea de retardo, las cuales son muestras de la respuesta al impulso.
Figura 2.5 Diagrama de bloques de la estructura en forma directa de un filtro FIR
17
2.5.2.2 Métodos para el diseño de filtros FIR
Hay tres métodos básicos para diseñar este tipo de filtros:
•
Método de las ventanas. Las más habituales son:
•
Ventana rectangular
•
Ventana de Barlett
•
Ventana de Von Hann
•
Ventana de Hamming
•
Ventana de Blackman
•
Ventana de Kaiser
•
Muestreo en frecuencia
•
Rizado constante (Aproximación de Chebyshev y algoritmo de
intercambio de Remez).
2.5.3 Filtros de respuesta de duración infinita al impulso (IIR)
Un filtro con respuesta al impulso, h(n), que tiene duración infinita es conocido
como un filtro IIR, h(n) es la suma de varios exponenciales. En el dominio de la
transformada z, H(z), se conoce como la función de transferencia, y es una función racional
de z. Es la razón de dos polinomios de grado finito, tal y como se muestra en la siguiente
función racional,
H ( z) =
b0 + b1 z −1 + b2 z −2 + L + bN z − N
B( z )
=
−1
−2
−M
1 + a0 + a1 z + a2 z + L + aM z
A( z )
18
(2.5-11)
2.5.3.1 Estructura en forma directa de un filtro IIR
La función de transferencia racional dada por la ecuación 2.5-11, se puede obtener
de diferentes maneras. Una de ellas, es por medio de la estructura en forma directa. La
razón de las transformadas z entre la salida y la entrada del filtro esta dada por
Y ( z)
B( z )
= H ( z) =
X ( z)
A( z )
(2.5-12)
De la expresión anterior obtenemos,
M
N
⎛
⎞
Y ( z ) ⋅ A( z ) = X ( z ) ⋅ B( z ) o Y ( z )⎜1 + ∑ ak z − k ⎟ = X ( z )∑ bk z − k
k =0
⎝ k =1
⎠
(2.5-13)
Despejando para Y(z)
N
M
k =0
k =1
Y ( z ) = ∑ bk X ( z ) z − k − ∑ ak Y ( z ) z − k
(2.5-14)
La ecuación en diferencias es el equivalente en el dominio del tiempo
N
M
k =0
k =1
y[n] = ∑ bk x[n − k ] − ∑ ak y[n − k ]
(2.5-15)
La ecuación anterior muestra cómo construir un filtro a partir de las N entradas y M
salidas pasadas. Un filtro implementado de esta manera se le conoce como un filtro
recursivo, dado que las salidas pasadas son utilizadas para calcular la salida actual. Se le
llama de forma directa porque los coeficientes en la función de transferencia aparecen en la
ecuación en diferencias.
19
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 expresión anterior se muestra en la siguiente figura
Figura 2.6 Primer paso de la estructura en forma directa tipo 1 de un filtro IIR
La Señal intermedia v[n] puede ser obtenida a partir de la estructura de forma
directa
M
v[n] = x[n] − ∑ ak v[n − k ]
(2.5-18)
k =1
luego, la salida puede estar representada por
N
y[n] = ∑ bk v[n − k ]
(2.5-19)
k =0
Un diagrama de bloques para las ecuaciones 2.5-18, 2.5-19 se muestra en la
siguiente figura, donde se asume que M=N. Este tipo de estructuras requieren menos
20
capacidad y se les conoce como estructura en forma directa tipo 1 y forma directa tipo 2
respectivamente.
Figura 2.7 Diagrama de bloques de la estructura en forma directa tipo 1 de un filtro
IIR
Los elementos s1[n],….,sN[n], son variables de estado para el filtro. La salida actual
y el siguiente estado pueden ser obtenidos a partir de la entrada y estado actual. La
siguiente secuencia de pasos puede ser utilizada para obtener las salidas y los estados del
filtro:
21
Paso1: Calculo de v[n]
M
v[n] = x[n] − ∑ ak v[n − k ]
k =1
Paso 2: Calculo de la salida y[n]
N
y[n] = b0v[n] + ∑ bk sk [n]
k =1
Paso 3: Actualizar las variables de estado
s N [n + 1] = s N −1[n]
s N −1[n + 1] = sN − 2 [n]
M
s2 [n + 1] = s1[n]
s1[n + 1] = v[n]
Otra estructura, es la de forma directa tipo 2, la cual se puede obtener de la ecuación
2.5-13. Para simplificar, sea M=N.
N
Y ( z ) = b0 X ( z ) + ∑ [bk X ( z ) − akY ( z )]z − k
(2.5-20)
k =1
Un diagrama de bloques que representa la expresión anterior se muestra en la figura
siguiente.
22
Figura 2.8 Diagrama de bloques de la estructura en forma directa tipo 2 de un filtro
IIR
La secuencia de pasos siguiente es para obtener las salidas y para actualizar sus
variables de estado de este tipo de estructura.
Paso1: Cálculo de la salida y[n]
y[n] = b0 x[n] + s1[n]
23
Paso 2: Actualizar las variables de estado
s1[n + 1] = b1 x[n] − a1 y[n] + s2 [n]
s2 [n + 1] = b2 x[n] − a2 y[n] + s3[n]
M
s N −1[n + 1] = bN −1 x[n] − aN −1 y[n] + s N [n]
s N [n + 1] = bN x[n] − aN y[n]
2.5.4 Transformación bilineal1
El diseño de filtros digitales a partir de filtros analógicos es un campo maduro y
bien desarrollado, así que en la mayoría de las veces es de gran utilidad diseñar un filtro
digital en el dominio analógico y luego este se convierte al dominio digital.
Un filtro analógico se puede describir por su función de transferencia
M
H a (s) =
B( s)
=
A( s )
∑β s
k
∑α s
k
k =0
N
k =0
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
∞
−∞
1
(2.5-22)
Proakis, J. G. “Tratamiento digital de señales”. Tercera Edición, Prentice Hall, Madrid, España, 1998.
Jackson, L. B. “Digital filters and Signal Processing”. Tercera Edición, Boston: Kluwer Academic Publishers,
Estados Unidos, 1996.
24
También, el filtro analógico que tiene la función de transferencia racional, H(s)
dada en (2.5-21), se puede describir mediante la ecuación diferencial lineal con coeficientes
lineales constantes
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 señal de entrada e y(t) denota la salida del filtro.
Cada una de estas tres caracterizaciones equivalentes de un filtro analógico conduce
a métodos alternativos para convertir el filtro al dominio digital. Recuérdese que un sistema
analógico lineal invariante en el tiempo con función de transferencia H(s) es estable si
todos sus polos se encuentran en la mitad izquierda del plano s. Consecuentemente, si la
técnica de conversión es efectiva debería tener las siguientes propiedades deseables:
•
El eje jΩ en el plano s debería corresponderse a la circunferencia unidad en
el plano z. Así, habrá una relación directa entre las dos variables de
frecuencia en los dos dominios.
•
El semiplano izquierdo del plano s se debería corresponder con el interior de
la circunferencia unidad en el plano z. Así, un filtro analógico estable se
convertirá en un filtro digital estable.
Uno de estos métodos es la correspondencia del plano s al plano z, denominada
transformación bilineal, que soluciona ciertas limitaciones que poseen otros métodos. La
transformación bilineal es una correspondencia conformadora que transforma el eje jΩ en
25
la circunferencia unidad del plano z sólo una vez, evitando el solapamiento de componentes
de frecuencia. Además, todos los puntos en el semiplano izquierdo s se corresponden con el
interior de la circunferencia unidad en el plano z y todos los puntos en el semiplano
derecho de s se corresponden con puntos fuera de la circunferencia unidad del plano z.
De esta manera se necesita una transformación de s a s’, la cual contenga todo el
plano s dentro del intervalo − π T ≤ Im(s ' ) ≤ π T , luego para transformarlo al plano z
utilizando z = e s 'T . La transformación del plano s al plano s’ está descrita en la figura 2.9 y
esta dada por
s' =
2
⎛ sT ⎞
tan −1 ⎜ ⎟
T
⎝ 2 ⎠
(2.5-24)
Figura 2.9 Mapeo del plano s al plano s’
Ahora para ver el efecto de esta transformada es mejor pasar al eje jΩ. Sustituyendo
s=jΩ y s’=jΩ en (2.5-24), se obtiene
Ω' =
2
⎛ ΩT ⎞
tan −1 ⎜
⎟
T
⎝ 2 ⎠
26
(2.5-25)
O equivalentemente,
⎛ ΩT ⎞
⎟
⎝ 2 ⎠
ω = 2 tan −1 ⎜
(2.5-26)
Por tanto, el eje Ω esta completamente contenido en el intervalo (-π, π) para ω.
También se puede notar que la relación entre ω y Ω no es lineal, pero es aproximadamente
lineal para valores pequeños de ω ≈ ΩT , tal y como se muestra en la figura 2.10.
Figura 2.10 Mapeo de Ω a ω por medio de la transformación bilineal.
Ahora, la transformación del plano s al plano z se obtiene invirtiendo (2.5-24), así
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 aplicándolo a la ecuación (2.5-28), se obtiene
e x + e− x 1 + e− 2 x
2 ⎛ 1 − z −1 ⎞
⎟
s = ⎜⎜
T ⎝ 1 + z −1 ⎟⎠
(2.5-29)
Por tanto, el diseño en tiempo discreto de un filtro se obtiene a partir del diseño en
tiempo continuo a través de la transformada bilineal.
H ( z ) = H c ( s)
2 ⎛ 1− z − 1
S= ⎜
T ⎜⎝ 1+ z −1
⎞
⎟
⎟
⎠
(2.5-30)
Se puede notar que la transformada bilineal es invertible, es decir hay una
transformada inversa que se deriva a partir de (2.5-29)
T
s
2
z=
T
1− s
2
1+
(2.5-31)
La relación no-lineal que existe entre Ω y ω dada por la ecuación (2.5-26) se le
conoce como distorsión en frecuencia. De esta manera el efecto en H’(ω) relativo a Hc(jΩ)
se obtiene a partir de (2.5-30)
H ' (ω ) = H c ( jΩ)
28
Ω=
2
⎛ω ⎞
tan ⎜ ⎟
T
⎝2⎠
(2.5-32)
La relación es descrita en la siguiente figura
Figura 2.11 Descripción del efecto de la transformación bilineal de Hc( jΩ) a H'(ω).
De la figura anterior se puede notar que a partir de esta transformación Hc(jΩ) se
comprime en frecuencia, pero a pesar de esto, las características de Hc(jΩ) se mantienen en
H’(ω). Esta propiedad es la característica más importante de la transformada bilineal.
29
Para diseñar filtros utilizando la transformación bilineal se utiliza el siguiente
procedimiento:
Distorsión en Frecuencia: se calculan los valores de Ωc y Ωr correspondientes a los
valores especificados de ωc y ωr a partir de
Ω=
2
⎛ω ⎞
tan⎜ ⎟
T
⎝2⎠
(2.5-33)
Diseño en tiempo continuo: a partir de los valores de Ωc, Ωr, δ1, δ2, y N, se obtiene
las ceros y polos del filtro analógico.
Transformación de los ceros y polos: utilizando la ecuación (2.5-36) los ceros σm
y polos sk se transforman en zm y pk. Poniendo Hc(jΩ) en términos de sus polos y ceros de la
siguiente manera
∏
H ( s) = K
∏
Mc
m =1
N
c
(s − σ m )
( s − sk )
k =1
(2.5-34)
Y aplicando la transformada bilineal se produce
(
H ( z ) = b0 1 + z
)
−1 N − M c
30
∏
∏
Mc
m =1
N
(1 − zm z −1 )
(1 − pk z −1 )
k =1
(2.5-35)
donde
T
σm
2
zm =
T
1− σm
2
T
sk
2
pk =
T
1 − sk
2
1+
1+
y
(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 función de transferencia del sistema H(z) la cual está dada
por (2.5-35).
31
2.6
Nota teórica laboratorio de FFT1
El objetivo es repasar y utilizar algunas técnicas importantes en el procesamiento
digital de señales. Prácticamente sería construir un analizador del espectro utilizando la
Transformada Rápida de Fourier (FFT, acrónimo en inglés de Fast Fourier Transform).
2.6.1 Muestreo en tiempo discreto utilizando la transformada de Fourier
Suponga que una señal continua en el tiempo, es muestreada con un período T o una
frecuencia de muestreo de ωs = 2π T para obtener una señal discreta en el tiempo
x[n]=x(nT).
Se define en tiempo discreto la Transformada de Fourier de x[n] como la siguiente
expresión,
X (ω ) =
∞
∑ x[n] ⋅ e
− jωnT
(2.6-1)
n = −∞
La transformada Z de la señal se obtiene sustituyendo por z = e jωT . Nótese que
X (ω ) tiene un período ωs , puesto que la sumatoria es una serie de Fourier. La señal
discreta de Fourier puede ser determinada en tiempo discreto a partir de la transformada de
Fourier, por
1
Tretter, S. A. “Communication System Design Using DSP Algorithms”. Primera Edición, Kluwer Academic
/ Plenum Publishers, New York, Estados Unidos, 2003.
32
ws
x[n] =
2
1
ωs
∫ X (ω ) ⋅ e
−
jωnT
dω
(2.6-2)
ws
2
Así, x[n] puede ser considerada como la suma de ondas sinusoidales muestreadas
en un intervalo de frecuencias continuas, de acuerdo al ancho de banda según Nyquist
− ωs 2 < ω < ωs 2 con amplitudes complejas dadas por X(ω). De esta manera X(ω) se le
puede llamar como el espectro de frecuencia de la señal.
2.6.2 La transformada discreta de Fourier y su inversa
Sea x[n] una señal la cual es cero para valores de n que no estén en el siguiente
intervalo {0, 1, 2,…., N-1}. Sea X(ω) en tiempo discreto la transformada de Fourier de
x[n], la cual se definió en el punto 2.6.1. Entonces, la Transformada Discreta de Fourier
(DFT, acrónimo en inglés de Discrete Fourier Transform) de x[n], se define como
N −1
X k = X (kωs N ) = ∑ x[n] e
−j
2π
nk
N
para k = 0, 1,.…, N-1
(2.6-3)
n =0
La DFT es simplemente la serie de N muestras de X(ω) tomadas a diferentes valores
de frecuencia dadas por ωs N dentro del intervalo de Nyquist.
Los valores originales de la señal se pueden obtener utilizando la Transformada
Discreta Inversa de Fourier (IDFT, acrónimo en inglés de Inverse Discrete Fourier
Transform), dada por la siguiente fórmula
33
1
x[n] =
N
N −1
∑X
k =0
k
e
j
2π
nk
N
para k = 0, 1,.…, N-1
(2.6-4)
2.6.3 La transformada rápida de Fourier1
La transformada discreta de Fourier (DFT) juega un papel importante en el análisis,
el diseño y la realización de algoritmos y sistemas de procesamiento digital de señales. Una
de las razones por las que el análisis en Fourier es de una amplia importancia en el
procesamiento digital de señales es debido a la existencia de un algoritmo eficiente para
calcular la DFT. Este algoritmo se le denomina como la Transformada Rápida de Fourier
(FFT). La FFT elimina información redundante que existe en la DFT, ya que esta explota
las propiedades de periodicidad y simetría del factor de fase WN. Estas propiedades son:
k+
WN
W
N
2
k+N
N
= −WNk
=W
k
N
Simetría
(2.6-5)
Periodicidad
Existen básicamente dos tipos de algoritmos FFT:
•
Diezmado en el tiempo
•
Diezmado en frecuencia
1
Proakis, J. G. “Tratamiento digital de señales”, Tercera edición, Prentice Hall, Madrid España, 1998.
Tretter, S. A. “Communication System Design Using DSP Algorithms”, Primera edición, Kluwer Academic /
Plenum Publishers, New York, Estados Unidos, 2003.
34
Estos algoritmos son de gran utilidad debido a que si se realiza el cálculo directo de
la DFT o IDFT dadas por (2.6-3) y (2.6-4), esto supone realizar N multiplicaciones
complejas y N − 1 sumas complejas. En consecuencia, para calcular los N valores de de
DFT necesitamos N 2 multiplicaciones complejas y N 2 − N sumas complejas. Por otra
parte el cálculo utilizando estos algoritmos reduce el número de sumas complejas a
N log 2 N . De manera para valores de N muy grandes es de gran importancia utilizar la FFT
en lugar de calcular directamente la DFT.
El algoritmo de diezmado en el tiempo es uno de los algoritmos mas utilizados en la
actualidad, este se presenta a continuación. Para simplificar la notación, sea WN = e − j 2π N ,
de esta manera de (2.6-3) obtengo
Xk =
N −1
∑ x[n] e
−j
2π
nk
N
n=0
N −1
= ∑ x[n]WNnk
(2.6-6)
n=0
Este algoritmo asume que N = 2v . Luego se separa la sumatoria en dos sumatorias,
cuando n es par y otra cuando n es impar.
Xk =
N
−1
2
∑ x[2n] W
n=0
2 nk
N
N
−1
2
+ ∑ x[2n + 1] WN( 2 n +1) k para k = 0, 1, K , N − 1
(2.6-7)
n=0
Ahora sea,
a [n] = x[2n]
b [n] = x[2n + 1]
para n = 0, 1, K ,
35
N
−1
2
(2.6-8)
Se puede notar que WN2 = WN 2 . Por tanto, (2.6-7) puede escribirse como
Xk =
N
−1
2
∑ a[n] W
nk
N /2
n=0
N
−1
2
+ WNk ∑ b[n] WNnk/ 2 para k = 0, 1, K , N − 1
(2.6-9)
n=0
y definiendo Ak y Bk de la siguiente manera
Ak =
Bk =
N
−1
2
∑ a[n] W
nk
N /2
n=0
N
−1
2
para n = 0, 1, K , N − 1
(2.6-10)
∑ b[n] W
n=0
nk
N /2
De esta manera (2.6-9) se puede escribir como
X k = Ak + WNk Bk
para n = 0, 1, K , N − 1
(2.6-11)
El siguiente paso muestra las ecuaciones claves para la FFT de diezmado en el
tiempo. Primero se nota que WNN / 2 = −1 . Luego, la ecuación anterior se puede separar en
dos nuevas ecuaciones,
X k = Ak + WNk Bk
X
k+
N
2
= Ak − WNk Bk
para n = 0, 1, K ,
N
−1
2
(2.6-12)
El cálculo básico de las dos ecuaciones anteriores se muestra en la siguiente figura,
al cual se le denomina Mariposa, dado que el diagrama de flujo recuerda a una mariposa.
36
Figura 2.12 Esquema de Mariposa del algoritmo FFT de diezmado en el tiempo.
Un diagrama de flujo para un cálculo completo de la primera etapa de este
algoritmo con N = 8, se muestra en la siguiente figura.
Figura 2.13 Primera etapa del algoritmo FFT de diezmado en el tiempo.
37
Otro algoritmo para el cálculo de la FFT importante, denominado algoritmo de
diezmado en frecuencia. Esto implica un almacenamiento por columnas de la secuencia de
datos de entrada. Para deducir el algoritmo se empieza dividiendo la ecuación (2.6-6) en
dos sumatorias, una de las cuales contiene los primeros N 2 puntos de datos y el otro los
últimos N 2 puntos de datos. Así se obtiene
Xk =
Xk =
N
−1
2
∑ x[n]WNkn +
n=0
N −1
∑ x[n]W
N
2
n=
N
−1
2
∑ x[n]W
kn
N
n=0
kn
N
N
Nk 2 −1
2
N
N
n=
2
+W
(2.6-13)
⎡
∑ x ⎢⎣n +
N ⎤ kn
WN
2 ⎥⎦
kN
Dado que WN 2 = (− 1) , la expresión (2.6-13) puede reescribirse como
k
N
Nk 2 −1
2
N
N
n=
2
⎧
∑ ⎨ x[n] + (− 1)
Xk = W
k
⎩
N⎤⎫
⎡
x ⎢n + ⎥ ⎬WNkn
2⎦⎭
⎣
(2.6-14)
Ahora se diezma X k en las muestras pares e impares. De esta manera, se obtiene
X 2k =
N
−1
2
⎧
⎡
∑ ⎨ x[n] + x ⎢⎣n +
n=0
⎩
N ⎤ ⎫ kn
⎬W N
2 ⎥⎦ ⎭ 2
para k = 0, 1,K,
N
−1
2
(2.6-15)
y
X 2 k +1 =
N
−1
2
⎧
⎡
∑ ⎨ x[n] − x ⎢⎣n +
n=0
⎩
N ⎤ ⎫ kn kn
⎬W N W N
2 ⎥⎦ ⎭ 2 2
38
para k = 0, 1,K,
N
−1
2
(2.6-16)
Donde se recurre al hecho de que WN2 = W N . Si se definen las secuencias de
2
N
2
puntos g1 (n ) y g 2 (n ) como
N⎤
⎡
g1 [n] = x[n] + x ⎢n + ⎥
2⎦
⎣
⎧
N ⎤⎫
⎡
g 2 [n] = ⎨ x[n] − x ⎢n + ⎥ ⎬WNn
2 ⎦⎭
⎣
⎩
(2.6-17)
N
para n = 0, 1, 2,K , − 1
2
Entonces
X 2k =
N
−1
2
∑ g [n]W
n =0
X 2 k +1 =
1
N
−1
2
kn
N
2
∑ g [n]W
n=0
2
(2.6-18)
kn
N
2
El cálculo de las secuencias g1 [n] y g 2 [n ] según (2.6-17) y el uso de estas
secuencias para el cálculo de la DFT de N 2 puntos se muestra en la figura 2.14.
Este procedimiento computacional puede repetirse diezmando la DFT de N 2
puntos para X 2 k y X 2 k +1 . Consecuentemente, el cálculo de la DFT de N puntos por medio
del algoritmo para la FFT de diezmado en frecuencia, requiere
(N 2)log 2 N
multiplicaciones complejas y N log 2 N sumas complejas, igual que el algoritmo de
diezmado en tiempo.
39
Un diagrama de flujo para un cálculo completo de la primera etapa de este
algoritmo con N = 8, se muestra en la siguiente figura.
Figura 2.14 Primera etapa del algoritmo FFT de diezmado en frecuencia
Se puede observar que el cálculo básico en esta figura es la mariposa mostrada en la
figura 2.12
40
2.6.4 Uso de la FFT para determinar la densidad espectral de potencia1
Hay señales de energía finita que tienen transformada de Fourier y están
caracterizadas en el dominio espectral por su densidad espectral de energía. Por otro lado,
la clase importante de señales caracterizadas como procesos aleatorios estacionarios no
tienen energía finita y, por lo tanto, no tienen transformada de Fourier. Tales señales están
caracterizadas por la densidad espectral de potencia, ya que tienen potencia media finita.
Un método para estimar la densidad espectral de frecuencia está basado en usar una
función llamada periodograma. Esta función de una secuencia de N puntos y[n] esta
definida por
I N (ω ) =
1
2
Y (ω )
N
(2.6-19)
donde
N −1
Y (ω ) = ∑ y[n] e − jωnT
(2.6-20)
n=0
es en tiempo discreto la transformada de Fourier de y[n]. Se puede demostrar que la
transformada inversa del periodograma es iguala a la función de autocorrelación
⎧1
⎪
R(n ) = ⎨ N
⎪0
⎩
N −1
∑ y[n + k ] y[k ]
para
n ≤ N −1
k =0
(2.6-21)
cualquier otro valor
1
Proakis, J. G. “Tratamiento digital de señales”, Tercera edición, Prentice Hall, Madrid España, 1998.
Tretter, S. A. “Communication System Design Using DSP Algorithms”, Primera edición, Kluwer Academic /
Plenum Publishers, New York, Estados Unidos, 2003.
41
La variable, n, en la función de autocorrelación se le conoce como el retardo. Para
un retardo cero
R(0 ) =
1
N
N −1
∑ y[k ]
2
=
k =0
1
ωs / 2
ω 2 ∫−ω
s
/2
I N (ω ) dω
(2.6-22)
es la potencia promedio de la secuencia de puntos. Esta relación justifica el uso de
la autocorrelación promediada en el tiempo, como la interpretación del periodograma como
una función que muestra como la potencia se distribuye en el dominio de la frecuencia.
A simple vista, se puede asumir que conforme aumenta N, el periodograma se
vuelve una mejor forma de estimar la densidad espectral de potencia para procesos
aleatorios estacionarios. Sin embargo, esto no es cierto. Conforme N aumenta, el
periodograma tiende a oscilar más y más rápidamente.
Una solución a este problema es promediar los periodogramas de diferentes
segmentos de la secuencia de N puntos. Sea x[n] una secuencia de duración M = LN y la
ventana L para cada uno de los segmentos.
⎧h[n] x[n + kL]
yk [n] = ⎨
⎩0
para n = 0, 1,..., N − 1
cualquier otro
(2.6-23)
donde h[n] es la función de la ventana deseada. El periodograma obtenido del
segmento ventaneado está dado por I N , k (ω ) . Así, la densidad espectral de potencia se
determina ahora por
) 1 L −1
S = ∑ I N , k (ω )
L k =0
42
(2.6-24)
Cuando los segmentos de puntos son estadísticamente independientes, el promedio
de L segmentos reduce la varianza en un factor de L. Además los segmentos de datos se
pueden ir solapando a ciertos porcentajes para intentar mejorar las ganancias de la
estimación.
43
2.7
Nota teórica laboratorio de modulación AM1
El objetivo es examinar un método muy común de transmitir información conocido
como modulación de amplitud (AM, acrónimo en inglés de Amplitude Modulation), y a su
vez conocer como se utiliza para procesar señales digitales.
2.7.1 Descripción de la modulación de amplitud (AM)
Las señales de información deben ser transportadas entre un transmisor y un
receptor sobre alguna forma de medio de transmisión. Sin embargo, las señales de
información pocas veces encuentran una forma adecuada para la transmisión. La
modulación se define como el proceso de transformar información de su forma original a
una forma más adecuada para la transmisión. El propósito es transformar una señal m(t) en
otra señal s(t). Este proceso debe ser reversible, de tal manera que se pueda recuperar la
señal m(t) a partir de la señal s(t) en el receptor. La señal m(t) es la señal en banda base que
se va a transmitir. Puede ser representada tanto en forma temporal como en forma de
espectro de frecuencias. La modulación recurre a una nueva señal auxiliar de frecuencia f0.
Esta frecuencia f0 recibe el nombre de frecuencia portadora o frecuencia central.
Evidentemente la frecuencia f0 se elige de forma que se encuentre en la banda de paso del
canal de transmisión. La señal que será transmitida s(t), es la señal llamada portadora a la
frecuencia f0.
1
Tretter, S. A. “Communication System Design Using DSP Algorithms”. Primera Edición, Kluwer Academic
/ Plenum Publishers, New York, Estados Unidos, 2003.
44
Una señal AM está descrita por
s (t ) = Ac [1 + ka m(t )]cos ωct
(2.7-1)
c (t ) = Ac cos ωct
(2.7-2)
donde
es llamada la onda portadora de amplitud Ac y frecuencia f c = ωc (2π ) Hz. La
frecuencia portadora, fc, es relativamente alta de acuerdo con la amplitud de la señal
modulante (señal original). El parámetro k a es una constante positiva llamada índice de
modulación del modulador.
La señal
e(t ) = Ac 1 + k a m(t )
(2.7-3)
se le conoce como la envolvente de s(t). Cuando fc es relativamente alta de acuerdo
al ancho de banda de m(t), la envolvente es una señal suavizada que pasa por los picos
positivos de s(t) y puede ser vista al modular la amplitud de la onda portadora relativa a
m(t). En general, en radiodifusión AM, k a m(t ) es ajustado de la siguiente manera
1 + ka m(t ) ≥ 0
para todo t
(2.7-4)
Para este caso la envolvente es
e(t ) = Ac [1 + k a m(t )]
45
(2.7-5)
Entonces m(t) se puede obtener a partir de la envolvente, a los receptores que
poseen esta propiedad se les conoce como demoduladores no coherentes, porque no se
generan frecuencias en el receptor o las frecuencias utilizadas para la demodulación son
completamente independientes de la frecuencia o fase de la onda portadora del transmisor.
2.7.1.1 Espectro de una señal AM
Suponga que la señal de banda base m(t) tiene como transformada de Fourier M (ω )
y M (ω ) = 0 para ω ≥ W .
Es una señal pasobajo con frecuencia de corte W. La
transformada de Fourier de la señal transmitida s(t), es
S (ω ) = Acπ δ (ω + ωc ) + Acπ δ (ω − ωc ) +
Ac
A
ka M (ω + ωc ) + c ka M (ω − ωc )
2
2
(2.7-6)
En la expresión anterior se identifican señales de cuatro frecuencias diferentes, dos
de amplitud π Ac y frecuencia ωc y − ωc , que corresponde a la portadora y cuya amplitud
y frecuencia no dependen de la señal moduladora. Las otras dos señales tienen frecuencias
(ω + ωc )
y (ω − ωc ) , separadas por debajo y arriba de la portadora por ω, cada una de
amplitud Ac k a 2 .
Para frecuencias positivas la parte del espectro por encima de ωc y para frecuencias
negativas la parte del espectro por debajo de -ωc se denomina banda lateral superior (USB,
acrónimo en inglés de Upper Side Band) y para frecuencias positivas la parte del espectro
por debajo de ωc y para frecuencias negativas la parte del espectro por encima de -ωc se
46
denomina banda lateral inferior (LSB, acrónimo en inglés para Lower Side Band). La
condición ωc > W asegura que las bandas laterales inferiores (la positiva y la negativa) no
se solapen.
Para frecuencias positivas, la componente frecuencial superior es (ωc + W ) y la
inferior (ωc − W ) . La diferencia entre ambas define el ancho de banda de transmisión de la
señal AM que se representa mediante Br y viene dado por la siguiente ecuación
Br = 2W
Figura 2.15 Espectro de una señal AM
47
(2.7-7)
2.7.2 Demodulación de una señal AM capturando la envolvente
Un circuito análogo, muy simple y conocido como detector de envolvente es usado
comúnmente en los radios para demodular señales AM. Este circuito esta implementado
por un diodo, capacitores y resistencias, es un seguidor de picos de la onda AM. Existen
dos métodos para la detección de la envolvente de gran importancia en el procesamiento
digital de señales. El primer método se conoce como ley cuadrática y el segundo método
utiliza la transformación de Hilbert para crear algo llamado la envolvente compleja.
2.7.2.1 Demodulación de señales AM utilizando la ley cuadrática
El diagrama de bloques de la ley cuadrática se muestra en la figura 2.16. La entrada
s(t) tiene la forma de una señal AM dada por (2.7-1). Se asume que la señal banda base es
una señal pasobajo con frecuencia de corte W. El primer bloque da como resultado
s 2 (t ) = Ac2 [1 + ka m(t )] cos 2 ωct = 0.5 Ac2 [1 + k a m(t )] + 0.5 Ac2 [1 + ka m(t )] cos 2 2ωct
2
2
2
(2.7-8)
El primer término del lado derecho de la ecuación es una señal pasobajo excepto
que la frecuencia de corte se aumentó en 2W. El segundo término tiene un espectro
centrado en ± 2ωc . Para frecuencias positivas, este espectro se encuentra dentro del
intervalo (2ωc − 2W , 2ωc + 2W ) . Para que el detector funcione correctamente, los espectros
de estos dos términos no deben solaparse. Esto se logra si
2W < 2ωc − 2W
48
or ωc > 2W
(2.7-9)
De acuerdo a lo anterior, la señal AM tiene la banda lateral con una frecuencia de
corte de 2(ωc + W ) . Por consiguiente, la entrada s(t) debe ser muestreada a una tasa de al
menos 4(ωc + W ) para prevenir pérdidas y el filtro pasobajo H(ω) debe operar con
muestras tomadas de la tasa de muestreo de s2(t). La salida del filtro pasobajo tiene su
banda lateral en el ancho de banda Nyquist de corte 2W .
Figura 2.16 Detector de envolvente (Ley Cuadrática)
El filtro H(ω) es un filtro pasobajo ideal con una frecuencia de corte 2W de manera
que su salida es 0.5 Ac2 [1 + ka m(t )] . La caja final del diagrama de bloques del detector se
2
encarga de obtener la raíz cuadrada de la salida del filtro y da como resultado una señal que
es proporcional a m(t) con un nivel DC. En muchos casos, la señal que se desea transmitir
no tiene componentes de espectro cerca de la frecuencia cero y el nivel DC puede ser
eliminado utilizando un filtro pasoalto.
49
2.8
Nota teórica laboratorio de modulación DSBSC-AM1
Puesto que es indispensable que en el receptor se reinserte la portadora exactamente
a la misma frecuencia y fase de la portadora utilizada para modular la señal en el
transmisor, en el receptor sólo sería necesaria una muestra o piloto de esa portadora, de
nivel suficiente para sincronizar o enganchar la frecuencia de un oscilador local. En estas
condiciones, no es necesario transmitir la portadora con toda su potencia y basta, como se
mencionó con transmitir sólo una muestra de ella. Esto hace posible transmitir la señal
modulada en amplitud sólo con la potencia requerida para la señal de información y
permite reducir de manera importante la potencia del transmisor con la consiguiente
reducción del costo de operación. Este razonamiento da lugar a la posibilidad de transmitir
sólo las dos bandas laterales con, o sin un piloto de la portadora. Si no se transmite este
piloto, la complejidad del receptor aumenta ya que el oscilador local no tiene una referencia
precisa para sincronizarse, aunque es posible, a expensas de circuitos más complejos. A
este tipo de modulación se le conoce como modulación de amplitud con portadora
suprimida de doble banda lateral (DSBSC-AM, acrónimo en inglés para double-sideband
suppressed-carrier amplitude modulation).
2.8.1 Descripción matemática de una señal DSBSC-AM
Sea m(t) la señal que se desea transmitir. La señal DSBSC-AM obtenida a partir de
m(t) es
1
Tretter, S. A. “Communication System Design Using DSP Algorithms”. Primera Edición, Kluwer Academic
/ Plenum Publishers, New York, Estados Unidos, 2003.
50
s (t ) = Ac m(t )cos ωct
(2.8-1)
Esta es la misma señal AM excepto que con la componente sinusoidal de la
portadora eliminada. Usualmente la señal m(t) que se transmite posee valores positivos y
negativos que no pueden ser recuperados por medio de un detector de envolvente. Un
método de demodulación llamado demodulación coherente es utilizado para este caso de
señales. Luego la transformada de Fourier de s(t) es
S (ω ) = 0.5 Ac M (ω − ωc ) + 0.5 Ac M (ω + ωc )
(2.8-2)
De la ecuación anterior se puede notar que es el mismo espectro de una señal AM
pero sin el valor discreto de la frecuencia de la portadora. Tal y como se muestra en la
figura 2.18, en este caso el proceso de modulación simplemente traslada la señal
moduladora a las frecuencias ± ωc . Se tienen las dos bandas laterales sin portadora. En este
caso el ancho de banda de la señal moduladora es B = 2W y la eficiencia en potencia
η = 1 . La parte del espectro para ω > ωc se le conoce como banda lateral superior (USB,
acrónimo en inglés de Upper Sideband) y la parte del espectro para ω < ωc se le conoce
como la banda lateral inferior (LSB, acrónimo en inglés para Lower Sideband).
2.8.2 El receptor coherente ideal
El diagrama de bloques de un receptor coherente ideal se muestra en la figura 2.17.
Primero la señal recibida se pasa a través de un filtro pasabanda centrado a la frecuencia de
51
la portadora de tal manera que pase la señal DSBSC y elimine el ruido. La salida del filtro
pasabanda luego es multiplicado por una réplica de la onda portadora. Esta replica es
generada por un dispositivo llamado oscilador local (LO, acrónimo en inglés para Local
Oscilator). Suponiendo una señal sin ruido, el producto de esa multiplicación es
s1 (t ) = 2s (t )cos ωct = 2 Ac m(t )cos 2 ωct = Ac m(t ) + Ac m(t )cos 2ωct
(2.8-3)
El dispositivo que es capaz de obtener el resultado anterior se le conoce como
modulador balanceado.
Figura 2.17 Diagrama de bloques de un Receptor Coherente Ideal
La transformada de Fourier de la salida del modulador balanceado es
S1 (ω ) = Ac M (ω ) + 0.5 Ac M (ω + 2ωc ) + 0.5 Ac M (ω − 2ωc )
(2.8-4)
y se muestra en la figura 2.18(c). El primer término a mano derecha de la ecuación
(2.8-3) es proporcional a la señal transmitida. El segundo término tiene los componentes
del espectro centrados alrededor de − 2ωc y 2ωc , los cuales se pueden ver en S1 (ω ) . Las
52
altas frecuencias no deseadas son eliminadas finalmente por el filtro pasobajo con
frecuencia de corte W.
Figura 2.18 Espectro de una señal DSBSC-AM
53
2.8.3 Lazo de Costas: técnica práctica para demodulación coherente
Un receptor debe tener un perfecto conocimiento de la frecuencia de portadora y la
fase de la señal DSBSC-AM, para lograr una demodulación coherente exacta. Sin embargo,
estos parámetros pueden ser estimados con certeza por el receptor por medio de
dispositivos llamados circuito de lazo por enganche de fase (PLL, acrónimo en inglés de
phase-locked loops), y así poder obtener una demodulación coherente. Un método para
obtener un sistema receptor adecuado para demodular señales DSBSC-AM se denomina
lazo de costas, el cual es una modificación de un tipo de PLL. Un esquema de dicho
receptor se puede ver en la figura 2.19. Esta forma está particularmente diseñada para
aplicaciones de DSP, por tanto las señales que se muestran son señales discretas con un
período de muestreo T.
Figura 2.19 Diagrama de bloques del demodulador de lazo Costas
54
En general, la señal después de pasar por el filtro pasabanda tiene la forma
s (nT ) = Ac m(nT )cos(ωc nT + θ1 )
(2.8-5)
donde ωc es frecuencia nominal de la portadora y θ1 es una constante o un cambio
muy lento de fase. Cuando existe una diferencia en frecuencia entre la frecuencia nominal y
las frecuencias de la portadora, ya sea por una mala calibración en el transmisor o el
oscilador local del receptor, θ1 toma la forma
θ1 = ∆ω nT + γ
(2.8-6)
donde ∆ω es la diferencia en frecuencia y γ es una constante de fase.
El primer paso de este sistema, es formar la envolvente compleja
)
s+ (nT ) = s(nT ) + js (nT ) = Ac m(nT )e j (ω c nT +θ1 )
(2.8-7)
Las líneas sólidas y punteadas paralelas en la figura 2.19 representan señales
complejas, donde las líneas sólidas corresponden a la parte real y las líneas punteadas a la
parte imaginaria.
El sistema genera un ángulo estimado φ (nT ) de la señal recibida, el cual puede ser
expresado como
φ (nT ) = ωc nT + θ 2 (nT )
(2.8-8)
Este ángulo es luego pasado por el bloque con el exponencial complejo para dar
lugar a la señal del oscilador local e − jφ (nT ) .
55
La señal del oscilador local es multiplicada por la envolvente compleja dando como
resultado
c(nT ) = s+ (nT )e − jφ (nT ) = Ac m(nT )e j [θ1 −θ 2 (nT )]
(2.8-9)
Esta señal es separada en su parte real e imaginaria, tal y como se muestra
{
}
)
c1 (nT ) = ℜe s+ (nT )e − jφ (nT ) = s(nT )cos φ (nT ) + s (nT )sin φ (nT )
c1 (nT ) = Ac m(nT ) cos[θ1 − θ 2 (nT )]
{
(2.8-10)
}
)
c2 (nT ) = ℑm s+ (nT )e − jφ (nT ) = s (nT )cos φ (nT ) − s(nT )sin φ (nT )
c2 (nT ) = Ac m(nT ) sin[θ1 − θ 2 (nT )]
Se dice que el lazo está enganchado cuando el error de fase θ1 − θ 2 se mantenga
pequeño. Cuando el error es exactamente cero, la señal inicial demodulada aparecerá en el
punto llamado m1(nT) del diagrama de bloques, de esta manera c1 (nT ) = m1 (nT ) y
c2 (nT ) = 0 .
Luego cuando se multiplica la parte real por la parte imaginaria se obtiene
q(nT ) = c1 (nT )c2 (nT ) = Ac2 m 2 (nT ) cos[θ1 − θ 2 (nT )]sin[θ1 − θ 2 (nT )]
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 dirección la fase local que determina
θ2 se puede cambiar para reducir el error de fase hasta tender a cero. Cuando el lazo está
56
enganchado, el ángulo de aproximación sin x ≈ x puede ser utilizado para aproximar con
exactitud a q (nT )
q (nT ) ≈ Ac2 m 2 (nT )[θ1 − θ 2 (nT )] para
θ1 − θ 2 (nT ) << 1
(2.8-12)
En el diagrama de la figura 2.19, los bloques siguientes son el lazo encargado de
determinar la fase de la señal recibida, por medio de la siguiente ecuación
φ ((n + 1)T ) = φ (nT ) + ωcT + α q(nT ) + σ (nT )
(2.8-13)
donde
σ (nT ) = β q(nT ) + σ ((n − 1)T )
(2.8-14)
luego α y β son pequeñas constantes positivas, normalmente β < α / 50 . La idea
básica detrás de estas ecuaciones es que en cada nuevo instante de muestreo el lazo de fase
determina si ha sido incrementada la fase al compararlo con la fase de la portadora para
cada una de las muestras ωcT , más un pequeño término de corrección α q (nT )
estrictamente proporcional al error de fase. También se puede notar que cuando q (nT ) = 0
para todo n, φ (nT ) es una función lineal
φ (nT ) = ωc nT + φ (0)
(2.8-15)
la cual tiene una pendiente igual al valor de la frecuencia portadora nominal.
(
El bloque acumulador β 1 − z −1
)
le permite obtener al lazo el valor de la fase de
entrada θ1 (nT ) , la cual es una función lineal. La fase de entrada tiene esta forma lineal,
57
cuando existe una diferencia en frecuencia entre las frecuencias de la señal recibida y la
portadora. Este bloque junto con los demás bloques introduce un polo de segundo orden en
z = 1 en el lazo abierto el cual es equivalente a un adelanto doble en el dominio del tiempo.
El lazo Costas es un sistema no lineal y variante en el tiempo debido a los términos
sin (
)
y m 2 (nT ) presentes en q (nT ) . Debido a esto, el sistema no puede ser caracterizado
por una función de transferencia. Sin embargo, cuando m(nT ) es un proceso estacionario y
el lazo está enganchado, se puede aproximar con exactitud un sistema lineal e invariante en
el tiempo usando la aproximación (2.8-12) y reemplazando m 2 (nT ) por cierto valor
constante. Al hacer este reemplazo se justifica el hecho de que los lazos de filtrado actúen
como filtros pasobajos en q (nT ) . Entonces sea
{
}
k1 = Ac2 E m 2 (nT )
(2.8-16)
y una aproximación de q (nT ) por
q(nT ) ≈ k1[θ1 − θ 2 (nT )]
(2.8-17)
Con estas ecuaciones aproximadas se puede representar el lazo linealizado en la
figura 2.20. La función de transferencia ahora se puede obtener, y es la siguiente
⎛
⎞
α
k1 (α + β )⎜⎜1 −
z −1 ⎟⎟
Θ (z )
⎝ α +β
⎠
H (z ) = 2
=
Θ1 ( z ) 1 − [2 − k1 (α + β )]z −1 + (1 − k1α )z − 2
58
(2.8-18)
La respuesta en frecuencia se puede obtener por medio de z = e jωT y tiene la forma
de un filtro pasobajo muy estrecho para valores pequeños de α y β. La ganancia en lazo
cerrado con frecuencia igual a cero es H (1) = 1 .
Figura 2.20 Diagrama de bloques del Lazo Costas linealizado
59
2.9
Nota teórica laboratorio de modulación SSB1
Los tipos de modulación AM y DSBSC-AM no utilizan eficientemente el espectro
de frecuencia. Al analizar el espectro se encuentra que aún hay redundancia ya que las dos
bandas alrededor de la frecuencia de corte son simétricas. El objetivo es demostrar que una
señal puede ser transmitida tan solo utilizando una de las dos bandas, ya sea la banda
inferior o la banda superior, y por tanto utiliza tan solo la mitad del ancho de banda
respecto a AM y DSBSC-AM. Este tipo de modulación se le conoce como modulación de
banda lateral única (SSB, acrónimo en inglés para Single Sideband). Este método de
modulación es utilizado extensamente en los sistemas de comunicaciones.
2.9.1 Moduladores SSB
Un modulador SSB se muestra en la figura 2.21. Sea m(t) la señal de banda base
que se desea transmitir con una frecuencia de corte W, la cual es menor a la frecuencia de la
portadora ωc . La primera etapa de modelo genera una señal DSBSC-AM
a(t ) = Ac m(t )cos ωct
(2.9-1)
a la cual se le aplica la transformada de Fourier
A(ω ) = 0.5 Ac M (ω − ωc ) + 0.5 Ac M (ω + ωc )
(2.9-2)
y está centrada alrededor de la frecuencia portadora ωc .
1
Tretter, S. A. “Communication System Design Using DSP Algorithms”. Primera Edición, Kluwer Academic
/ Plenum Publishers, New York, Estados Unidos, 2003.
60
Luego la señal DSBSC-AM se pasa a través de un filtro H (ω ) que elimina o
selecciona una de las bandas laterales. La banda lateral superior se selecciona utilizando un
filtro pasoalto ideal
⎧1
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 modulación SSB
Al utilizar alguno de estos dos filtros se obtiene una señal SSB, la cual puede ser
expresada en términos de la señal banda base m(t ) y su transformada Hilbert m̂(t ) , tal y
como se muestra a continuación. La señal SSB tiene la siguiente transformada de Fourier
S + (ω ) = 2S (ω )u (ω ) = 2 A(ω ) H (ω )u (ω ) = Ac M (ω − ωc )H (ω )
(2.9-5)
y la transformada de la envolvente compleja es
Sˆ (ω ) = S + (ω + ωc ) = Ac M (ω )H (ω + ωc )
61
(2.9-6)
para el caso de la banda lateral superior. Sustituyendo H sup (ω ) por H (ω ) en la
ecuación (2.9-6), se puede notar que
Sˆ (ω ) = Ac M (ω )u (ω ) = 0.5 Ac M (ω )(1 + sign ω )
Sˆ (ω ) = 0.5 Ac M (ω )[1 + j (− j sign ω )] = 0.5 Ac M (ω ) + j 0.5 Ac Mˆ (ω )
(2.9-7)
Entonces la envolvente compleja es
~
s (t ) = 0.5 Ac [m(t ) + jmˆ (t )]
(2.9-8)
Por consiguiente la señal SSB puede expresarse como
{
}
s (t ) = ℜe ~
s (t )e jω c t = 0.5 Ac m(t )cos ωct − 0.5 Ac mˆ (t )senωct
(2.9-9)
Similarmente para el caso de la banda lateral inferior, al seguir el mismo desarrollo
se obtiene
Sˆ (ω ) = Ac M (ω )u (− ω ) = 0.5 Ac M (ω )(1 − sign ω )
Sˆ (ω ) = 0.5 Ac M (ω )[1 − j (− j sign ω )] = 0.5 Ac M (ω ) − j 0.5 Ac Mˆ (ω )
(2.9-10)
Por consiguiente, la envolvente compleja
~
s (t ) = 0.5 Ac [m(t ) − jmˆ (t )]
(2.9-11)
De esta manera la correspondiente señal SSB es
{
}
s (t ) = ℜe ~
s (t )e jω c t = 0.5 Ac m(t )cos ωct + 0.5 Ac mˆ (t )senωct
(2.9-12)
A partir de las ecuaciones (2.9-9) y (2.9-12) se puede obtener la estructura del
modulador SSB mostrado en la figura 2.22.
62
Figura 2.22 Modulador SSB utilizando la transformada de Hilbert
2.9.2 Demodulación coherente de señales SSB
Para demodular señales SSB, existe una técnica conocida, la cual consiste en
multiplicar la señal por una réplica de la señal portadora. Al multiplicar la ecuación (2.9-9)
o (2.9-12) por 2 cos ωct se obtiene
b(t ) = Ac m(t )cos 2 ωct m Ac m(t )sin ωct cos ωct
b(t ) = 0.5 Ac m(t ) + 0.5 Ac m(t )cos 2ωct m 0.5 Ac mˆ (t )sin 2ωct
(2.9-13)
El primer término del lado derecho de la ecuación anterior es proporcional a la señal
que desea transmitir. El segundo y tercer término tienen un espectro centrado en 2ωc y
pueden ser removidos haciendo pasar la señal b(t ) a través un filtro pasobajo con una
frecuencia de corte W. El efecto en el dominio de la frecuencia, al multiplicar por cos ωct
en el dominio del tiempo, es mover el espectro S (ω ) hacia la derecha y hacia la izquierda
63
por ωc . De esta manera se trasladan las bandas laterales ± ωc alrededor de la frecuencia de
m(t ) , con ello se forma M (ω ) con el término deseado y también traslada las bandas
laterales ± 2ωc , las cuales son los términos removidos por el filtro pasobajo. Este
demodulador posee el mismo diagrama de bloques de la figura 2.21, excepto que en lugar
de la señal a transmitir m(t ) se pone la señal recibida s (t ) y el bloque H (ω ) por un filtro
pasobajo. En la práctica, a la entrada de este sistema se coloca un filtro pasabanda para
eliminar ruido que se adhiere a la señal modulada.
Otra forma para demodular señales SSB está basado en la utilización de la
transformada de Hilbert. El primer paso es tomar la transformada de Hilbert de la señal
recibida s (t ) . Usando la ecuación (2.9-8) y (2.9-11), se obtiene
s+ (t ) = s (t ) + jsˆ(t ) = ~
s (t )e jω c t = 0.5 Ac [ m(t ) ± jmˆ (t )]e jω c t
(2.9-14)
en donde el signo positivo es para el caso de la banda lateral superior y el negativo
es para el caso de la banda lateral inferior. Ahora al multiplicar la expresión por e − jω c t se
genera la envolvente compleja
sˆ(t ) = s+ (t )e − jω c t = 0.5 Ac [ m(t ) ± jmˆ (t )]
(2.9-15)
En el dominio del tiempo esto significa que la transformada de (2.9-14) se traslada a
una frecuencia más baja que la frecuencia de m(t ) . Por último, al tomar la parte real de la
señal compleja se tiene que
64
{
}
0.5 Ac m(t ) = ℜe s+ (t )e − jω c t = ℜe{[s(t ) + jsˆ(t )][cos ωct − jsenωct ]}
0.5 Ac m(t ) = s(t )cos ωct + sˆ(t )senωct
(2.9-16)
la cual es proporcional a la señal transmitida. Este demodulador usa la transformada
de Hilbert pero no necesita un etapa de filtrado que elimine términos de la frecuencia
portadora. El diagrama de bloques para este demodulador es el mismo que se muestra en la
figura 2.22 cuando se cambia m(t ) por s (t ) , las amplitudes del seno y el coseno igual a 1, y
el signo positivo se usa en el sumador de la salida.
Estos dos tipos de demoduladores suponen que el receptor tiene perfecto
conocimiento de la frecuencia y fase de la portadora. Desafortunadamente, esta
información no se puede obtener como en el caso del lazo de Costas porque la señal SSB
contiene una componente en cuadratura no deseada mˆ (t )senωct .
Esta componente
corresponde a una distorsión de fase. Un error de fase en el oscilador local da lugar a una
distorsión de fase donde cada componente frecuencial de la señal m(t ) sufre un desfase
constante a la salida del demodulador. Este desfase no suele ser un problema en el caso de
señales de voz debido que el oído suele ser relativamente insensible a la distorsión de fase.
En el caso de señales musicales o señales de video, la distorsión de fase es un error no
tolerable.
65
2.9.3 Desplazamiento en frecuencia
En sistemas de comunicaciones en la mayoría de las veces para no decir todas, el
espectro de una señal pasabanda es desplazado de una frecuencia central a otra. Una razón
para esto colocar el espectro de la señal en cierto canal de transmisión. Otra razón es para
corregir las distorsiones en frecuencia causadas por los osciladores al estar mal calibrados.
Es un hecho que la operación básica que se realiza en la modulación SSB es una forma de
traslación en frecuencia.
La idea de traslación en frecuencia descrita para SSB puede generalizarse de la
siguiente forma.
Sea s (t ) una señal pasabanda cuyo espectro está centrado en una portadora de
frecuencia ω0 . El requerimiento es trasladar o desplazar en frecuencia el espectro hacia
arriba de forma que la frecuencia de la portadora es cambiada de ω0 a otra superior
ω1 = ω0 + ∆ω . Primero tenemos que
s+ (t ) = s (t ) + jsˆ(t )
(2.9-17)
S + (ω ) = 2S (ω ) u (ω )
(2.9-18)
la transformada de Fourier es
El siguiente paso es multiplicar (2.9-17) por e j∆ω t para obtener
r+ (t ) = s+ (t )e j∆ω t = [s (t ) + jsˆ(t )][cos ∆ω t + jsen∆ω t ]
y su transformada es
66
(2.9-19)
R+ (ω ) = S + (ω − ∆ω )
(2.9-20)
Al hacer lo anterior se desplaza el espectro original hacia la derecha por ∆ω y se
mueve desde ω0 hasta la frecuencia ω1 . Al tomar la parte real de r+ (t ) se obtiene la señal
transmitida
r (t ) = s(t )cos ∆ωt − sˆ(t )sen∆ωt
(2.9-21)
La parte real de r+ (t ) también puede ser expresada como
r (t ) = [r+ (t ) + r+ (t )] 2
(2.9-22)
Entonces su transformada de Fourier es
[
]
R(ω ) = R+ (ω ) + R+ (ω ) 2
R(ω ) = S (ω − ∆ω )u (ω − ∆ω ) + S (− ω − ∆ω )u (− ω − ∆ω )
(2.9-23)
La figura 2.22 también es el diagrama de bloques para el desplazamiento en
frecuencia: se cambia m(t ) por s (t ) , la frecuencia ωc se reemplaza por ∆ω , 0.5 Ac por 1, y
el signo negativo se usa en el sumador del que se obtiene la salida. Esto porque el
desplazamiento en frecuencia es funcionalmente lo mismo que un modulador de banda
lateral superior nada más que con la apropiada frecuencia portadora.
67
2.10 Nota teórica laboratorio de modulación FM
Modulación en Frecuencia (FM, acrónimo en inglés para Frequency Modulation)
fue inventada y comercializada después de AM. Fue utilizada en un principio por la
radiodifusión para crear canales radiofónicos. Su principal ventaja radica en que al sistema
FM apenas le afectan las interferencias y descargas estáticas. El objetivo es estudiar la
teoría básica de modulación y demodulación FM.
2.10.1 Descripción de la modulación FM1
En una señal se pueden variar tres propiedades: la amplitud, la frecuencia y la fase.
El proceso de modulación consiste en variar algunos de estos parámetros en la señal
portadora, de acuerdo a la señal que se desea modular. La modulación en frecuencia
consiste en variar la frecuencia de la señal portadora. La modulación FM es inmune a las
no linealidades. Las no linealidades en este caso generan ondas moduladas con portadoras
múltiplos de la original. Esta característica hace a FM útil en aquellos sistemas de
transmisión de alta potencia ya que el uso de amplificadores permite altos rendimientos.
Una señal FM es generada utilizando la señal de banda base para cambiar la
frecuencia instantánea de la señal portadora pero sin cambiar su amplitud. La frecuencia
instantánea de una señal sinusoidal cosθ (t ) está definida por
1
Tretter, S. A. “Communication System Design Using DSP Algorithms”. Primera Edición, Kluwer Academic
/ Plenum Publishers, New York, Estados Unidos, 2003.
68
ω (t ) =
d
θ (t )
dt
(2.10-1)
Esta definición se justifica al observar que cuando θ (t ) = ωct , su derivada es ωc la
cual es la frecuencia de cos ωct . La frecuencia instantánea de una señal FM con frecuencia
portadora ωc está relacionada con la señal de banda base m(t ) por la ecuación
ω (t ) = ωc + kω m(t )
(2.10-2)
donde kω es una constante positiva conocida como sensibilidad frecuencial. Un
oscilador al cual se le puede controlar su frecuencia por su entrada m(t ) , se le conoce como
oscilador controlado por voltaje. Suponiendo que el valor de la fase de una señal FM es 0
en t = 0 ,
θ (t ) = ∫ ω (τ ) dτ = ωct + θ m (t )
t
0
(2.10-3)
donde
θ m (t ) = kω ∫ m(τ ) dτ
t
0
(2.10-4)
es la desviación de fase de la señal portadora causada por m(t ) . Por último la señal
FM generada a partir de m(t ) es
s (t ) = Ac cos[ωct + θ m (t )]
(2.10-5)
Un aproximación en tiempo discreto para una señal FM se puede obtener
reemplazando la integral por una sumatoria en (2.10-3), de esta manera tenemos
69
n −1
θ (nT ) = ∑ ω (kT )T = ωc nT + θ m (nT )
(2.10-6)
k =0
donde
n −1
θ m (nT ) = kωT ∑ m(kT )
(2.10-7)
k =0
La fase de la portadora se puede calcular a partir de la siguiente ecuación recursiva
θ (nT ) = θ ((n − 1)T ) + ωcT + kωTm((n − 1)T )
(2.10-8)
La señal muestreada FM resultante sería
s (nT ) = Ac cosθ (nT )
2.10.1.1
(2.10-9)
Modulación FM de un tono simple
Una expresión sencilla para la transformada de Fourier de una señal FM en términos
de la transformada de señal de banda base parecida a la de AM, no existe. Sin embargo, en
el caso especial cuando la señal de banda base es m(t ) = Am cos ωmt , se pueden obtener
resultados muy interesantes. A este caso especial se le conoce como modulación FM de un
tono simple. La señal FM que se obtiene para m(t ) es
⎞
⎛
k A
s (t ) = Ac cos⎜⎜ ωc + ω m sin ωmt ⎟⎟
ωm
⎠
⎝
70
(2.10-10)
De la expresión anterior se define un parámetro conocido como índice de
modulación de frecuencia y está dado por
β=
kω Am
ωm
=
máxima desviación de frecuencia
frecuencia de modulación
(2.10-11)
A continuación se muestra en la siguiente figura el efecto de modulación FM
Figura 2.23 Modulación FM
2.10.1.2
Ancho de banda de una señal FM
Dado que la portadora en FM es la suma de todas las componentes espectrales de la
señal FM, dicha suma da como resultado una señal de amplitud constante. En otras
palabras, la portadora en FM puede considerarse como la señal compleja total. Debido a
71
estas razones la cantidad de bandas laterales es infinita, por tanto es imposible obtener una
expresión para el ancho de banda de una señal FM. El ancho de banda depende de la forma
de la señal de banda base y la máxima desviación en frecuencia. Esta relación de
desviación está dada por la ecuación (2.10-11). El ancho de banda de la señal modulada,
bajo estas condiciones está dado por:
BT = 2(∆f + f m ) Hz
(2.10-12)
En la ecuación anterior, ∆f es la máxima desviación en frecuencia y f m es la
máxima frecuencia a la cual la señal de banda base tiene una componente. La expresión
anterior se conoce como regla de Carson. Esta regla proporciona el ancho de banda de la
señal modulada en frecuencia con razonable exactitud cuando el índice de modulación es
mucho mayor a 1, pero falla cuando es cercano o menor a 1.
2.10.2 Demodulación FM: discriminador en frecuencia
Los demoduladores de FM físicamente son circuitos dependientes de la frecuencia
que producen un voltaje de salida que es directamente proporcional a la frecuencia
instantánea en su entrada ( Vsalida = K ∆f , en donde K está en voltios por Hertz y es la
función de transferencia para el demodulador, ∆f es la diferencia, entre la frecuencia de
entrada y la frecuencia central del demodulador). Se usan varios circuitos para demodular
las señales de FM. Los más comunes son el detector de pendiente, discriminador de
Foster-Seeley, detector de relación, demodulador de PLL y detector en cuadratura. El
72
detector de pendiente, discriminador de Foster-Seeley y el detector de relación son todos
formas de discriminadores de frecuencia de circuito sintonizado. Los discriminadores de
frecuencia de circuito sintonizado se convierten de FM a AM y después demodulan la
envolvente de AM con detectores de picos convencionales. La figura 2.24 muestra el
diagrama de un discriminador muy sencillo.
Figura 2.24 Diagrama de bloques elemental de un discriminador de frecuencia
2.10.2.1
Discriminador FM utilizando un detector de envolvente
Este tipo de discriminador es el más sencillo. La figura 2.24 muestra el diagrama de
bloques, en el cual se puede notar una primera etapa donde se debe implementar un filtro
diferenciador ideal en lugar del filtro pasabanda y la segunda etapa es un detector de
envolvente, bajo la suposición de que la entrada al diferenciador es una señal FM de
amplitud constante. Ahora suponemos lo siguiente, cuando θ m (t ) es suficientemente
pequeño y la banda limitada, entonces cosθ m (t ) y sin θ m (t ) son señales de banda limitada
con frecuencias de corte menores ωc , se puede demostrar que
s+ (t ) = s (t ) + jsˆ(t ) = Ac e j [ω c t +θ m (t )]
Al calcular el ángulo, de la expresión anterior se obtiene
73
(2.10-13)
ϕ (t ) = arctan[sˆ(t ) s(t )] = ωct + θ m (t )
(2.10-14)
Al derivar la expresión anterior se obtiene
d
ϕ (t ) =
dt
s(t )
d
d
sˆ(t ) − sˆ(t ) s (t )
dt
dt
= ωc + kω m(t )
2
2
s (t ) + sˆ (t )
(2.10-15)
Del resultado anterior se puede notar que se trata de la frecuencia instantánea.
2.10.2.2
Discriminador FM utilizando la envolvente compleja
La envolvente compleja de una señal FM es dada por
~
s (t ) = s+ (t )e − jω c t = sI (t ) + jsQ (t ) = Ac e jθ m (t )
(2.10-16)
Al calcular el ángulo de la expresión anterior se obtiene
ϕ~(t ) = arctan[sQ (t ) sI (t )] = θ m (t )
(2.10-17)
Al derivar la expresión anterior se obtiene
d ~
ϕ (t ) =
dt
sI (t )
d
d
sQ (t ) − sQ (t ) sI (t )
dt
dt
= kω m(t )
2
2
sI (t ) + sQ (t )
El resultado anterior es proporcional a la señal banda base.
La siguiente figura muestra como implementar este discriminador.
74
(2.10-18)
Figura 2.25 Discriminador en tiempo discreto usando la envolvente compleja1
2.10.3 Demodulación FM usando un PLL
Desde el desarrollo de los circuitos integrados lineales LSI, la demodulación FM
puede lograrse muy fácilmente con un PLL. Aunque la operación de un PLL es bastante
complicada, la operación de un demodulador PLL de FM, es probablemente, la más
sencilla y fácil de entender. La figura 2.26 muestra el diagrama de bloques de un
demodulador FM. Las líneas sólidas y las líneas punteadas representan la parte real y la
parte imaginaria de una señal.
1
Tretter, S. A. “Communication System Design Using DSP Algorithms”. Primera Edición, Kluwer Academic
/ Plenum Publishers, New York, Estados Unidos, 2003.
75
Primero se toma la señal FM y se le aplica la transformada de Hilbert para obtener
la envolvente compleja que contiene la información transmitida, luego se pasa a través de
un detector de fase el cual consigue calcular la diferencia de fase entre la señal FM y la
salida del VCO. Luego esta señal se pasa por un filtro que permite obtener la frecuencia de
la señal portadora, a esto se le conoce como enganche de frecuencia.
Figura 2.26 Demodulador FM con PLL en tiempo discreto1
Un demodulador de frecuencia de PLL no requiere de circuitos sintonizados y
automáticamente compensa los cambios en la frecuencia de la portadora debido a la
estabilidad en el oscilador de transmisión.
1
Tretter, S. A. “Communication System Design Using DSP Algorithms”. Primera Edición, Kluwer Academic
/ Plenum Publishers, New York, Estados Unidos, 2003.
76
Después que el enganche de frecuencia ha ocurrido, el VCO encontraría los
cambios en la frecuencia en la señal de entrada, manteniendo un error de fase en la entrada
del comparador de fase. Por tanto, si la entrada es una señal FM y la frecuencia natural
VCO es igual a la frecuencia central de la señal de entrada, el voltaje de corrección se
produce a la salida del comparador de fase y alimenta de nuevo a la entrada de VCO,
siendo proporcional a la desviación de frecuencia, por tanto es la señal demodulada.
Este sistema es no lineal debido a las características del detector de fase. Pero si se
ignoran las discontinuidades de la función arcotangente la cual se encarga de obtener la
diferencia en fase, este sistema se puede representar como un sistema lineal tal y como se
muestra en la siguiente figura.
Figura 2.27 Modelo linearizado del PLL
77
2.11 Nota teórica laboratorio de modulación PAM1
En la transmisión digital de datos existen varios métodos para lograr transferir datos
digitales por el medio en que se desea, uno de ellos es la modulación por amplitud de
pulsos (PAM, acrónimo en inglés para Pulse Amplitud Modulation). El objetivo es dar a
conocer este tipo de modulación de gran importancia para el procesamiento digital de
señales.
2.11.1 Descripción de la modulación PAM
En la modulación PAM, la información es transmitida en símbolos de valores
discretos, uniformemente espaciados por intervalos de tiempo. La señal portadora es un
tren periódico de pulsos rectangulares separados a la misma distancia uno de otro. La
siguiente figura muestra una representación de este tipo de modulación
Figura 2.28 Modulación PAM
1
Tretter, S. A. “Communication System Design Using DSP Algorithms”. Primera Edición, Kluwer Academic
/ Plenum Publishers, New York, Estados Unidos, 2003.
78
Figura 2.29 Diagrama de bloques de un sistema de comunicación PAM
El diagrama de bloques de un sistema PAM se muestra en la figura 2.29. El
transmisor de entrada d i es una secuencia de datos binarios con una velocidad de
transmisión de Rd bits/segundo . Estos bits de entrada son puestos dentro de palabras de
tamaño J-bit por medio de un convertidor de serie a paralelo y se les asigna un valor de la
79
secuencia de símbolos an , los cuales son seleccionados de un alfabeto de M = 2 J niveles
de voltaje. Estos símbolos son generados por una frecuencia f s = Rd J símbolos/segundo
y el intervalo entre un símbolo y otro está dado por T = 1 f s .
Los niveles están espaciados por 2d con M posibles valores
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 mínimo es − (M − 1)d y el nivel máximo
es (M − 1)d .
El tren de pulsos está representado por un tren de impulsos de Dirac
s* (t ) =
∞
∑ a δ (t − kT )
k = −∞
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 señal
al ancho de banda del canal. El resultado de este filtrado es
s (t ) =
∞
∑ a g (t − kT )
k
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 señal.
80
La combinación del filtro transmisor, el canal y el filtro receptor, se le conoce como
filtro conformador, y da como resultado la siguiente respuesta en frecuencia
G (ω ) = GT (ω )C (ω )GR (ω )
(2.11-4)
y su respuesta al impulso es
g (t ) = gT (t ) ∗ c(t ) ∗ g R (t ) = F −1{G (ω )}
(2.11-5)
Luego a la salida del filtro receptor se obtiene
x(t ) =
∞
∑ a g (t − kT ) + υ (t ) ∗ g (t )
k = −∞
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
símbolos (ISI, acrónimo en inglés para InterSymbol Interference). Con estas suposiciones,
se puede notar a partir de (2.11-6) que las muestras tomadas cada nT tiempo de la salida
del filtro receptor se reduce a x(nT ) = an , esta expresión es exactamente la secuencia de
símbolos transmitida. Es usual que cuando se diseñan los filtros de transmisión y recepción,
estos combinen sus efectos de manera que se forme un único filtro sin interferencia entre
símbolos bajo la suposición de que la respuesta en frecuencia del canal sea constante en
todo el ancho de banda de la señal, así no se introduce distorsión.
81
En algunas circunstancias, la respuesta en frecuencia del canal no se conoce con
exactitud y puede que sea lento. El ecualizador adaptivo es un filtro que automáticamente
compensa las características no lineales del canal. Además este se encarga de corregir
ciertas muestras, dándole el valor ideal que le corresponde.
La salida del ecualizador es cuantificada a la tasa de velocidad de muestreo y se le
otorga a cada muestra el valor que le corresponde. Luego la salida del cuantificador se
convierte en una palabra binaria de J-bit y transformada de nuevo en una salida de
secuencia serial.
2.11.2 Criterio de Nyquist para no tener ISI
A partir de la ecuación (2.11-7) se establece el criterio para no tener ISI en términos
de la respuesta al impulso g (nT ) del filtro conformador de la señal de banda base y está
dada por
g (nT ) =
1
2π
∫
∞
−∞
G (ω )e jωnT dω
(2.11-8)
Sea ωs = 2πf s = 2π T . La integral de (2.11-8) puede ser calculada si se fracciona
el eje ω en una serie de intervalos muy pequeños.
ω
⎛ ωs
⎞
− kωs , s − kωs ⎟ para k = −∞, ....., ∞
⎜−
2
⎝ 2
⎠
82
Y tomando la sumatoria de estos intervalos, da como resultado la siguiente
expresión
ωs
∞
1
g (nT ) = ∑
ω
k = −∞
s
− kω s
2
−
∫
ω
s
2
− kω s
ωs
∞
1
1
G (ω )e jωnT dω = ∑
T
k = −∞ ω s
2
−
∫ω
1
G (ω − kωs )e j (ω − kω s )nT dω (2.11-9)
T
s
2
Se puede notar que e − jknω s T = e − kn 2π = 1 y al tomar la suma dentro de la integral nos
da
ωs
g (nT ) =
2
1
ωs
−
∫ω G (ω )e
*
jωnT
dω
(2.11-10)
s
2
donde
G * (ω ) =
1 ∞
∑ G(ω − kωs )
T k = −∞
(2.11-11)
La función G*(w) se le conoce en la teoría del procesamiento digital de señales
como solapamiento o envolvente del espectro. El criterio (2.11-7) para no tener ISI se
satisface si y solo si G*(w)=1.
2.11.3 Diagramas de ojo1
Una herramienta práctica para el estudio de la calidad de un sistema PAM es el
Diagrama de Ojo, que permite observar el efecto de distorsión ISI y el ruido. Un diagrama
1
Universidad de Valladolid. Marcos Martín Fernández. http://www.lpi.tel.uva.es/lpi/dld/tts/tema6.pdf
83
de ojo se forma al aplicar la señal recibida y filtrada antes del muestreador a las placas de
deflexión vertical de un osciloscopio y una señal con forma de dientes de sierra a la tasa de
señalización en sincronismo con la señal recibida a las placas de deflexión horizontal. De
esta manera todos los símbolos se superponen en la pantalla del osciloscopio en un único
período de símbolo, la imagen que se forma por su similitud con el ojo humano se le
denomina diagrama de ojo.
La figura 2.30 muestra el ejemplo de una señal binaria recibida (los primeros 8 bits)
y filtrada para un canal que introduce ruido y distorsión. En la figura 2.31 se puede ver un
diagrama de ojo (para 160 bits). El analizar este diagrama va a permitir determinar ciertas
características de la señal como el mejor instante de muestreo y la sensibilidad frente a
errores de temporización.
Figura 2.30 Señal binaria antes del muestreador
84
Figura 2.31 Diagrama de ojos para la señal de la figura 2.30
Un diagrama de ojos va a proporcionar mucha información práctica que caracteriza
a un sistema PAM. Los parámetros asociados más interesantes de un diagrama de ojos se
mencionan a continuación:
El ancho de la apertura del ojo indica el intervalo de tiempo durante el que se puede
muestrear sin error. Por tanto el mejor instante de muestreo corresponde al momento en que
la apertura del ojo es mayor.
La pendiente de la zona interior del ojo determina la sensibilidad frente a errores de
temporización.
85
El margen del ruido para un símbolo en el instante de muestreo esta definido por la
altura del ojo.
Si el efecto conjunto del ruido y la ISI es muy grande, la traza superior e inferior del
ojo se cruzan, dando como resultado que el ojo se cierre. Cuando esto ocurre es imposible
evitar errores, por lo que se dice que el sistema no es inmune frente a estos fenómenos de
distorsión.
2.11.4 Recuperación de la frecuencia del tren de pulsos
En típicos sistemas PAM, el receptor es razonablemente bueno, pero no perfecto, al
reconocer la frecuencia del transmisor. Por esta razón debe establecer su propia frecuencia
y estar en fase con la señal del receptor para mantener la frecuencia de muestreo. A
continuación se presenta un método para recuperar la frecuencia de muestreo de la señal
transmitida, particularmente para sistemas de banda limitada.
El diagrama de bloques del recuperador de frecuencia se muestra en la figura 2.32.
La salida x(t ) del filtro receptor primero se pasa a través de un prefiltro con una respuesta
en frecuencia B (ω ) . El prefiltro usualmente es un filtro pasabanda centrado en f s 2 , a la
mitad del valor de la frecuencia del tren de pulsos. La combinación del filtro conformador
y el prefiltro, da como resultado la siguiente respuesta en frecuencia y respuesta al impulso
G1 (ω ) = G (ω )B (ω ) y
86
g1 (t ) = g (t ) ∗ b(t )
(2.11-12)
De esta manera la salida del prefiltro es
q(t ) =
∞
∑ a g (t − kT )
k = −∞
k
(2.11-13)
1
Luego la salida del prefiltro se pasa a través de un potenciador cuya salida es
p (t ) = q 2 (t ) =
∞
∞
∑ ∑ a a g (t − kT )g (t − mT )
k = −∞ m = −∞
k
m 1
1
(2.11-14)
La salida del potenciador se pasa a través de un filtro pasabanda de banda estrecha
H (ω ) , para el que su frecuencia central es f s . La salida z (t ) tiene la forma de una función
sinusoidal con la frecuencia original con una pequeña variación en amplitud y fase. Luego
esta señal se pasa a través de un PLL para obtener una señal estable con frecuencia f s .
Figura 2.32 Diagrama de bloques del sistema de recuperación de frecuencia
87
2.12 Nota teórica laboratorio de modulación QAM1
La Modulación de Amplitud en Cuadratura (QAM, acrónimo en inglés para
Quadrature Amplitude Modulation) es una modulación digital en la que el mensaje está
contenido tanto en la amplitud como en la fase de la señal transmitida. La importancia de
este sistema de modulación se debe a la gran cantidad de aplicaciones asociadas a ella. Es
empleada en multitud de sistemas de transmisión de televisión, microondas y satélite.
También es empleada por módems para velocidades superiores a los 2400 bps (por ejemplo
V.22 bis y V.32). Es la base de modulación TCM (acrónimo en inglés para trellis coded
modulation), que consigue velocidades de transmisión muy elevadas combinando la
modulación con la codificación de canal.
2.12.1 Transmisor QAM básico
El diagrama de bloques de un transmisor QAM básico se muestra en la figura 2.33.
Los datos d i serie de entrada, generados a velocidad Ri bps se agrupan mediante un
convertidor serie a paralelo, formando palabras de J bits que pasarán al módulo de mapeo
de estas palabras. Este módulo se encarga de seleccionar un símbolo de entre los M = 2 J
posibles símbolos, ubicados sobre un espacio bidimensional. A la salida, los símbolos se
producen por tanto a una velocidad de f s = Rd J símbolos por segundo o baudios.
1
Tretter, S. A. “Communication System Design Using DSP Algorithms”. Primera Edición, Kluwer Academic
/ Plenum Publishers, New York, Estados Unidos, 2003.
88
Figura 2.33 Diagrama de bloques de un transmisor QAM básico
Los símbolos a transmitir son números complejos que representaremos como
ck = ak + jbk . Así, el alfabeto lo forman el conjunto de números complejos que podremos
transmitir. Este alfabeto se puede representar en el plano complejo, formando la
constelación de la modulación. En la siguiente gráfica se presentan diferentes
constelaciones posibles
89
Figura 2.34 Constelaciones QAM
A continuación, los símbolos se introducen en los moduladores de impulsos, uno
para cada componente, obteniendo las señales:
a* (t ) =
∞
∑ a δ (t − kT )
k
k = −∞
(2.12-1)
y
b* (t ) =
∞
∑ b δ (t − kT )
k = −∞
k
(2.12-2)
Estas dos señales se pasan a través de los filtros de transmisión
a(t ) =
∞
∑ a g (t − kT )
k = −∞
k
y
90
T
(2.12-3)
b(t ) =
∞
∑ b g (t − kT )
k = −∞
k
(2.12-4)
T
La función gT (t ) corresponde al filtro de transmisión y es de tipo pasobajo. En una
implementación discreta, los filtros actúan como filtros interpoladores, produciendo L
muestras por cada símbolo de entrada, de forma que la frecuencia de trabajo de los filtros
será de Lfs.
La señal QAM se obtiene modulando en DSBSC-AM estas señales
s (t ) = a(t )cos ωct − b(t )senωct
(2.12-5)
Así, a (t ) es la componente en fase de la señal QAM y b(t ) la componente en
cuadratura. El equivalente pasobajo de la señal QAM, tomando como frecuencia de
referencia fc será
~
s (t ) = a(t ) + jb(t ) =
∞
∞
∑ ak gT (t − kT ) + j ∑ bk gT (t − kT )
k = −∞
~
s (t ) =
∞
∑ (a
k = −∞
k
k = −∞
+ jbk )gT (t − kT ) =
∞
∑ c g (t − kT )
k = −∞
k
(2.12-6)
T
La señal analítica es
⎡ ∞
⎤
s+ (t ) = ⎢ ∑ ck gT (t − kT )⎥ e jω c t
⎣k = −∞
⎦
(2.12-7)
En donde la señal QAM transmitida se puede expresar como
s (t ) = ℜe{s+ (t )}
(2.12-8)
Por tanto, el modulador QAM puede ser representado de forma esquemática, por el
siguiente diagrama de bloques mostrado en la figura 2.35.
91
Figura 2.35 Representación de un modulador QAM en términos de señales complejas
Se puede observar que, en el esquema de modulación propuesto se obtiene primero
la señal pasobajo que se modula más tarde en DSBSC-AM.
2.12.2 Modulador QAM utilizando filtros conformadores pasabandas
Otra alternativa para la implementación del transmisor QAM puede conseguirse
modificando la ecuación (2.12-7) de la siguiente manera
(
)
∞
⎡ ∞
⎤ jω c t
s+ (t ) = ⎢ ∑ ck gT (t − kT )⎥ e
= ∑ ck e jωc kT gT (t − kT )e jω c (t − kT )
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 )senωc t
(2.12-11)
Este filtro es un filtro pasabanda con respuesta en frecuencia H (ω ) = GT (ω − ωc ) .
También, sea
ck′ = ck e jω c kT = ak′ + jbk′
92
(2.12-12)
donde
{
}
(2.12-13)
{
}
(2.12-14)
ak′ = ℜe ck e jω c kT = ak cos ωc kT − bk senωc kT
y
bk′ = ℑm ck e jω c kT = ak senωc kT + bk cos ωc kT
Sustituyendo estas definiciones en la ecuación (2.12-9), da como resultado
s+ (t ) =
∞
∑ c′ h(t − kT )
k = −∞
(2.12-15)
k
Luego
s (t ) = ℜe{s+ (t )} =
∞
∑ a′ h (t − kT ) − b′ h (t − kT )
k = −∞
k I
k Q
(2.12-16)
Un diagrama de bloques para el modulador en términos de las señales complejas se
muestra en la figura 2.36. Y el diagrama de bloques que representa a la ecuación (2.12-16),
se muestra en la figura 2.37.
Figura 2.36 Modulador QAM utilizando un filtro conformador pasabanda
93
Figura 2.37 Diagrama de bloques expandido del nuevo modulador QAM
En este último esquema, tanto los símbolos como los filtros son pasabanda, a
diferencia del esquema inicial en el que las señales se conformaban en banda base, y la
traslación espectral se produce en la última etapa.
Los filtros conformadores de pulsos hI (t ) y hQ (t ) son también interpoladores igual
que en el esquema anterior. Estos producen L muestras por cada símbolo. Si comparamos
este esquema de modulador QAM con el esquema inicial, éste hace L multiplicaciones
complejas menos por período de símbolo que el anterior, ya que el modulador de producto,
trabaja con la señal a ritmo de símbolo, mientras que en el caso anterior, debía de realizar la
multiplicación a razón de L por cada símbolo.
94
CAPÍTULO 3: Laboratorios
En este capítulo se describen las prácticas de cada uno de los temas desarrollados en
el capítulo anterior. Cada práctica consta de dos partes:
•
Simulación, utilizando MATLAB y SIMULINK.
•
Cuestionario de preguntas específicas.
La parte de simulación es necesaria para repasar los conocimientos adquiridos
durante el curso de procesamiento digital de señales. Asimismo, el estudiante será capaz de
aplicar estos conocimientos en la solución de los ejercicios propuestos.
Después el estudiante deberá analizar cada uno de los resultados obtenidos y
obtener sus propias conclusiones.
Por último se presenta un cuestionario para reforzar los conceptos que se presentan
en el desarrollo del laboratorio.
95
3.1
Laboratorio de filtros digitales
Los filtros ideales definidos como
⎧constante
H (ω ) = ⎨
⎩0
para ω < ωo
(banda de paso)
para ω > ωo
(banda de rechazo)
no son físicamente realizables ya que no son causales, sin embargo es posible diseñar
filtros causales que pueden aproximarse a los ideales con tanta precisión como sea
necesaria.
Estos filtros causales presentarán rizado tanto en la banda de paso como en la banda
de rechazo, por lo general .Por otro lado, la transición de frecuencia entre ambas bandas no
se realizará de forma abrupta. La figura muestra las características indicadas
Figura 3.1 Respuesta en frecuencia de un filtro pasobajo
96
En MATLAB existen varias funciones que ayudan al diseño de un filtro indicando
sus características. Para el diseño de filtros del tipo IIR o FIR se utilizan frecuentemente las
funciones que se muestran a continuación:
Tabla 3.1 Funciones más comunes para el diseño de filtros digitales en MATLAB
Filtro Digital
Tipo
Función en MATLAB
[b,a] = besself(n,Wn,options)
Bessel (solo análogo)
[z,p,k] = besself(n,Wn,options)
[A,B,C,D] = besself(n,Wn,options)
[b,a] = butter(n,Wn,options)
Butterworth
[z,p,k] = butter(n,Wn,options)
[A,B,C,D] = butter(n,Wn,options)
[b,a] = cheby1(n,Rp,Wn,options)
IIR
Chebyshev Tipo I
[z,p,k] = cheby1(n,Rp,Wn,options)
[A,B,C,D] = cheby1(n,Rp,Wn,options)
[b,a] = cheby2(n,Rs,Wn,options)
Chebyshev Tipo II
[z,p,k] = cheby2(n,Rs,Wn,options)
[A,B,C,D] = cheby2(n,Rs,Wn,options)
[b,a] = ellip(n,Rp,Rs,Wn,options)
Elíptico
[z,p,k] = ellip(n,Rp,Rs,Wn,options)
[A,B,C,D] = ellip(n,Rp,Rs,Wn,options)
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. Diseñe un filtro pasabanda de respuesta finita al impulso (FIR) de orden 8,
suponiendo una frecuencia de muestreo de 8 kHz. Las frecuencias de paso están
situadas en 1200 y 2000 Hz. Utilice la función “fir1”.
2. Obtenga la respuesta en frecuencia del filtro anterior pero para un orden de 16,
32, 64 y compare con el resultado anterior. Grafique las respuestas en frecuencia
en una misma gráfica y comente sus resultados.
3. Considere una señal de entrada formada por la suma de tres señales sinusoidales
de frecuencia 720, 1440, 3000 Hz y amplitud A1 = 7 , A2 = 3 y A3 = 15
respectivamente. Grafique la salida del filtro y comente sus resultados.
4. Repita los puntos (1), (2) y (3) utilizando una función ventana de Kaiser.
5. Repita los puntos (1), (2) y (3) utilizando una función ventana de Barlett.
3.1.2 Filtros digitales IIR
Resuelva cada paso del siguiente procedimiento:
1.
Diseñe un filtro digital IIR basado en el prototipo de un filtro elíptico
pasobajo con frecuencia de corte en 300 Hz, una atenuación máxima en la
banda de paso de 0.5 dB y una atenuación mínima en la banda de rechazo
de 80 dB, suponiendo que la señal de entrada será muestreada a una
98
frecuencia de 8000Hz. En MATLAB utilice la función “ellip” para
implementar el filtro.
2.
Grafique la respuesta en frecuencia del filtro anterior utilizando la función
“freqz” (ver ayuda de MATLAB).
3.
Considere que la señal de entrada está formada por la suma de dos señales
sinusoidales de frecuencia 180 y 720 Hz respectivamente. Usando la
función “filter”, grafique la salida del filtro y determine que sucede.
4.
Estudiar la dependencia del filtro de los parámetros de orden, atenuación
mínima y máxima, pero manteniendo la frecuencia de corte y
modificando alguno de los parámetros anteriores. Utilice al menos 3
valores diferentes para cada uno y grafique los resultados.
5.
Diseñe un filtro digital pasabanda Chebyshev Tipo I de orden 6 con
frecuencia de paso de 300 y 500 Hz, suponiendo que la señal de entrada
será muestreada a una frecuencia de 8000 Hz. Grafique la respuesta en
frecuencia del filtro.
6.
Considere una señal de entrada formada por la suma de tres señales
sinusoidales de frecuencia 120, 400, 680 Hz respectivamente. Grafique la
salida del filtro y explique que sucede.
7.
Diseñe un filtro digital rechaza banda de orden 6 con frecuencias de
rechazo entre 300 y 500 Hz, suponiendo que la señal de entrada será
muestreada a una frecuencia de 8000 Hz. Grafique la respuesta en
frecuencia del filtro.
99
8.
Repita el punto 6.
9.
Diseñe un filtro pasabanda de respuesta infinita al impulso (IIR), basado
en el prototipo de un filtro elíptico analógico pasobajo. Use una
frecuencia de muestreo de 8 kHz. La banda lateral inferior del filtro debe
estar entre 0 hasta 400 Hz, la banda central del filtro pasabanda debe estar
entre 1000 hasta 2500 Hz y la banda lateral superior del filtro debe ser de
3500 hasta 4000 Hz. La atenuación máxima en la banda de paso del filtro
no debe ser mayor que 0.3 dB y la atenuación mínima en la banda de
rechazo de al menos 40 dB. Utilice las funciones de MATLAB para la
conversión de filtros.
3.1.3 Filtrado en SIMULINK
1. Considere la señal del punto (3) de la sección 3.1.1. Se desea filtrar esa señal y
se quiere dejar pasar solo la señal con frecuencia de 1440 Hz. Utilice el bloque
llamado “Sine Wave” de la librería “Sources” en SIMULINK para generar cada
una de las señales que componen la señal principal, luego utilice un bloque de
punto de suma “Sum” y una de estas señales para formar una señal con tres
componentes en frecuencia. Luego utilice el bloque “Zero-Order Hold” para
muestrear la señal debe configurarlo para una frecuencia de muestreo de 8 KHz.
2. Ahora utilice el bloque “Digital Filter Design” de la librería “Filtering / Filter
Designs” y con este bloque genere con la ayuda de la herramienta “FDATool”
100
un filtro FIR de orden 64 de ventana Hamming con una banda de paso entre
1200 Hz y 2000 Hz. Luego coloque en la entrada de este filtro la señal
muestreada y coloque un “Scope” para poder ver la salida del filtro y compruebe
que se han suprimido las componentes de 720 Hz y 3000 Hz.
3. Nuevamente utilizando el bloque de filtros digitales genere el filtro del punto (5)
de la sección 3.1.2. Implemente la señal del punto (6) de la sección 3.1.2. Utilice
el filtro que hizo y pase la señal a través de este y explique que sucede.
4. Repita el punto anterior pero para el filtro del punto (7) de la sección 3.1.2.
3.1.3 Cuestionario
1. ¿Cómo se define un filtro IIR? ¿Cómo se define un filtro FIR? Mencione tres
diferencias entre estos dos tipos de filtros.
2. ¿Qué es la transformación bilineal y para qué se utiliza?
3. Investigue si existen otros métodos de transformación para pasar de un filtro
analógico a uno digital.
101
3.2
Laboratorio de FFT
El algoritmo de la FFT es una manera eficiente de calcular la DFT. Una primera
aproximación al cálculo de la DFT requeriría la suma compleja de N multiplicaciones
complejas para cada una de las salidas. En total, N 2 multiplicaciones complejas y N 2
sumas complejas para realizar una DFT de N puntos.
Lo que consigue el algoritmo FFT es simplificar enormemente el cálculo de la DFT
introduciendo “atajos” matemáticos para reducir drásticamente el número de operaciones.
En MATLAB se tienen las siguientes funciones para estimar la FFT de una secuencia de
entrada.
Tabla 3.2 Funciones utilizadas en MATLAB para el cálculo de la FFT.
Función en MATLAB
Descripción
Obtiene la FFT del vector x. “X” es un vector de números
complejos ordenados desde k = 0, 1,…, N-1. Se recomienda que
Y = fft(x)
la longitud del vector x sea una potencia de 2. Lo que no se
Y = fft(x,N)
recomienda es que la longitud de x sea un número primo. Otra
opción de la FFT es especificar el número de puntos con el que
se quiere hacer la FFT.
X= ifft(Y,N)
Obtiene la FFT inversa del vector x. También se puede
X= ifft(Y,N)
especificar el número de puntos N con el que se quiere hacer la
102
IFFT.
Reordena el vector Y en orden creciente de frecuencia. Si “Y”
Y = fftshift(Y)
es el vector resultante de hacer una FFT, utilizando esta función
reordenamos los puntos en función de la frecuencia.
3.2.1 Cálculo de la FFT
Para probar y extender los conocimientos en la FFT, lleve a cabo las siguientes
tareas
1.
Sea la secuencia x[n] = cos(0.25πn ) + cos(0.5πn ) + cos(0.52πn ) . Calcular
la DFT utilizando la función de MATLAB fft(x, N). Sea L la longitud de
la secuencia x[n] de 256 muestras. Probar con diferentes valores de
número de muestras N, tales como 16, 32, 64, 128, 256, 512, 1024.
Indique a partir de que valor de N son distinguibles las tres frecuencias
de la señal de entrada.
2.
Describir lo que sucede en el espectro de frecuencia, si una secuencia de
entrada de L = 100 muestras de x[n] se rellena con ceros hasta N = 200.
Comente sus resultados.
3.
Calcule la inversa de la FFT obtenida a partir de la señal rellenada con
ceros, utilizando la función de MATLAB ifft(X) para recuperar la señal
en el dominio del tiempo.
103
4.
Usando la FFT, se desea estudiar las componentes en frecuencia de una
señal conformada por la suma de las siguientes señales
x1 (t ) = 0.0472 cos(2π (200)t + 1.5077 )
x2 (t ) = 0.1362 cos(2π (400)t + 1.8769)
x3 (t ) = 0.4884 cos(2π (500)t − 0.1852)
x4 (t ) = 0.2942 cos(2π (1600)t − 1.4488)
x5 (t ) = 0.1223 cos(2π (1700)t )
De esta manera para la señal mencionada se debe determinar
5.
•
¿Cuál es su frecuencia fundamental?
•
¿Qué frecuencia de muestreo debe usarse?
•
Valor adecuado de N para obtener suficiente precisión de frecuencias.
•
Grafique la magnitud y la fase de la señal en el dominio de la frecuencia.
Calcule la inversa de la FFT obtenida a partir de la señal del punto (4)
utilizando la función de MATLAB ifft(X) para recuperar la señal en el
dominio del tiempo.
3.2.2
Analizador de espectro de frecuencia en SIMULINK
Un analizador de espectro es un sistema que permite obtener las frecuencias que
están presentes en una señal discreta. SIMULINK tiene un bloque para analizar el espectro
de una señal, este bloque se llama “Spectrum Scope”. Este bloque recibe a su entrada una
señal discreta y devuelve como resultado una gráfica donde se muestra el espectro en
frecuencia de la señal de entrada.
104
1.
Genere una señal de entrada compuesta de las siguientes señales
x1[n] = 12sen(2π (1500 )n )
x2 [n] = 1.25 cos(2π (1200)n) + 3.75 cos(2π (175)n) + 2.15 cos(2π (2325)n)
Y obtenga el espectro en frecuencia de esta señal utilizando el bloque
mencionado anteriormente.
2.
Implemente un filtro FIR pasobajo utilizando una ventana Hamming, con
una frecuencia de corte de 1000 Hz de orden 36.
3.
Implemente un filtro FIR pasabanda utilizando una ventana Kaiser, con
una banda de paso entre 1200 y 2000 Hz de orden 36.
4.
Implemente un filtro FIR pasoalto utilizando una ventana Hamming, con
una frecuencia de corte de 2000 Hz de orden 36.
5.
Para cada uno de los filtros coloque a la entrada la señal compuesta y
obtenga el espectro en frecuencia para la salida de cada filtro.
3.2.3 Cuestionario
1.
¿Explique en que consiste los dos algoritmos básicos para la FFT,
diezmado en el tiempo y diezmado en frecuencia?
2.
Investigue en que consisten los fenómenos en frecuencia conocidos como
“aliasing” y “leakage”.
105
3.3
Laboratorio de modulación AM
Entre los primeros moduladores empleados se encuentra la modulación de amplitud.
La necesidad más importante para modular señales es el desplazamiento de los
componentes en frecuencia de una señal para poder transmitirla por un canal de
comunicación donde se transmiten otras señales. La siguiente figura presenta el principio
básico de la modulación AM
Figura 3.3 Diagrama del principio básico de modulación AM
MATLAB tiene varias funciones para modular y demodular, estas funciones se
muestran en la siguiente tabla.
Tabla 3.3 Funciones de MATLAB para modulación y demodulación AM
Función en MATLAB
Descripción
Esta función modula una señal de entrada x
y = modulate(x,fc,fs,'method')
con una frecuencia portadora
fc
y una
[y,t] = modulate(x,fc,fs)
frecuencia de muestreo f s , “am” se usa en
106
lugar de 'method'. También se puede obtener el
vector de tiempo interno que utiliza la función
“modulate” para hacer los cálculos.
La función “demod” demodula la señal
modulada obtenida por la función “modulate”
para obtener la señal original. Demodula la
x = demod(y,fc,fs,'method')
señal con una frecuencia portadora f c y una
frecuencia de muestreo f s , “am” se usa en
lugar de 'method'.
3.3.1 Modulación AM
1.
Utilice las funciones mostradas en la tabla 3.3 para la modulación y
demodulación de una señal coseno, conocida para este tipo de
modulación como tono de prueba. Las funciones de la tabla 3.3 utilizan
un índice de modulación de m = 1 . La frecuencia de la portadora es 10
veces la frecuencia de la señal a modular con una amplitud igual a 1, en
este caso la señal a modular está dada por
tono = 5 cos(2π (10 )t )
2.
Obtenga las gráficas de la señal a modular, la señal modulada, la señal
demodulada, así como el espectro en magnitud y el espectro de fase en
frecuencia de las tres señales.
107
3.
Ahora desarrolle un código en MATLAB para implementar la función
“modulate”. Varíe la amplitud de la señal a modular y la señal portadora,
de tal modo que se obtenga un índice de modulación m < 1 , otro índice
m = 1 y por último m > 1 .
4.
Compare la señal inicial obtenida con la señal modulada para los tres
casos. Comente y explique que ocurre en cada uno.
5.
En la mayoría de los casos, cuando se modula una señal el canal de
transmisión introduce a la señal modulada otra señal pequeña pero que sin
duda distorsiona la señal original, esta señal se le conoce popularmente
como ruido en el canal. Repita los puntos del (1) al (2) pero esta vez
introduciendo ruido al canal de transmisión. Utilice la herramienta de
ayuda de MATLAB para generar una señal de valores aleatorios de cierta
amplitud la cual será su ruido. Comente y compare sus resultados con los
obtenidos en el punto (2).
3.3.2 Detector de envolvente (Ley Cuadrática)
1.
Implemente el detector de envolvente de Ley Cuadrática que se muestra
en la figura 3.4. Utilice una frecuencia de muestreo de 8 KHz, una
frecuencia de 2 KHz para la señal portadora y una frecuencia de 200 Hz
para la señal a modular m(t ) . Utilice un filtro FIR pasobajo con una
función ventana Hamming para H (ω ) con un orden suficiente para
108
suprimir las componentes no deseadas alrededor de 2 f c con una
atenuación de al menos 40 dB. Suponga que m(t ) no tiene componentes
espectrales menores a los 50 Hz y elimine el nivel DC a la salida del
bloque de raíz cuadrada utilizando un filtro pasoalto con la siguiente
función de transferencia.
G(z ) =
1 + c ⎛ 1 − z −1 ⎞
⎜
⎟
2 ⎜⎝ 1 − cz −1 ⎟⎠
donde c es una constante ligeramente menor a 1. Grafique la respuesta de
magnitud en frecuencia y fase de este filtro para diferentes valores de c
para seleccionar un valor para que el filtro funcione de forma apropiada.
2.
Grafique la señal modulada y la salida del detector de envolvente.
Obtenga el espectro de magnitud y el espectro de fase en frecuencia de
ambas señales. Comente sus resultados.
3.
En SIMULINK implemente el detector de la figura 3.4 y explique en
forma detallada su funcionamiento. Para ello utilice el bloque “Math
Function” para simular el bloque que eleva al cuadrado la señal de
entrada y el bloque que obtiene la raíz cuadrada de la señal a la salida del
filtro pasobajo. El filtro pasobajo genérelo con el bloque “Digital Filter
Design”. Para el filtro pasoalto utilice el bloque “Discrete Filter”. Luego
obtenga el espectro de la señal a modular y la salida del filtro paso alto.
Mantenga los parámetros del punto (1). Comente sus resultados
109
Figura 3.4 Detector de envolvente de Ley Cuadrática
3.3.3 Cuestionario
1.
Investigar en que consiste el índice de modulación y cuáles son sus
efectos.
2.
¿Qué efecto produce el ruido del canal de comunicación en la modulación
de amplitud?
3.
Mencione y explique cuáles son algunas de las ventajas y desventajas que
tiene la modulación AM.
110
3.4
Laboratorio de modulación DSBSC-AM
La modulación AM completa incluye la transmisión de las componentes en
frecuencia tanto de la portadora como de la señal a modular. Este tipo de modulación
desperdicia más del 80% de la potencia al transmitir la portadora con toda su potencia
además de dos bandas laterales, aunque una de las cuales resulta innecesaria para la
recuperación de la información completa en banda base.
Puesto que es indispensable que en el receptor se reinserte la portadora exactamente
a la misma frecuencia y fase de la portadora utilizada para modular la señal en el
transmisor, en el receptor sólo sería necesaria una muestra o piloto de esa portadora. En
estas condiciones, no es necesario transmitir la portadora con toda su potencia y basta,
como se mencionó con transmitir sólo una muestra de ella. Este razonamiento da lugar a la
posibilidad de transmitir sólo las dos bandas laterales con, o sin un piloto de la portadora.
La siguiente figura muestra el principio básico de la demodulación para modulación
por doble banda lateral sin portadora donde H (ωm ) es un filtro FIR pasobajo con una
frecuencia de corte dos veces la frecuencia de la señal original.
Figura 3.5 Diagrama del principio básico de demodulación AM
111
En MATLAB para modular y demodular con doble banda lateral con portadora
suprimida, se utiliza las funciones “modulate” y “demod”, cambiando la palabra “method”
por la opción “amdsb-sc”.
3.4.1 Modulación DSBSC-AM
1.
Utilizando MATLAB y basado en la figura 3.5 demodule una señal
utilizando modulación DSBSC que ha sido modulada por una señal
portadora con una frecuencia de 200 Hz. La señal a modular es la
siguiente
m(t ) = 10e −0.5t sin (2π (20)t )
2.
Grafique la señal a modular, la señal modulada y la demodulada.
Grafique la salida del filtro.
3.
Obtenga el espectro de magnitud en frecuencia de la señal antes de pasar
por el filtro y después de pasar por este.
4.
Compare la señal inicial con la obtenida luego de la modulación y
demodulación de la misma y comente sus resultados.
5.
Ahora utilizando las funciones “modulate” y “demod” de MATLAB
module y demodule la señal del punto (1).
6.
Grafique la señal modulada y la demodulada y compare con la señal
original. Obtenga además el espectro de magnitud en frecuencia de ambas
señales.
112
7.
Compare los resultados del punto (6) con los obtenidos en el punto (2).
3.4.2 Modulación y demodulación AM utilizando SIMULINK
1.
Con ayuda de la herramienta SIMULINK de MATLAB, implemente el
modelo de simulación DSBSC-AM de la sección 3.4.1 y el modelo básico
de demodulación de la figura 3.5. Para generar la señal a modular de la
sección 3.4.1, utilice los bloques “Sine Wave”, “Clock” y “Fcn”. El tercer
bloque es para generar una señal basado en una función y el segundo es la
variable para generar la señal deseada. Utilice el bloque “Digital Filter
Design” para generar el filtro pasobajo.
2.
Muestre la señal a modular, la señal modulada y la señal demodulada.
3.
Obtenga el espectro en frecuencia de estas señales utilizando el bloque
“Spectrum Scope”.
3.4.3 Cuestionario
1.
¿Cuáles son las ventajas de utilizar este tipo de modulación de doble
banda lateral con portadora suprimida (DSBSC-AM)?
2.
¿Por qué se utiliza un PLL para implementar un demodulador coherente
cuando se usa este tipo de modulación DSBSC-AM?
113
3.5
Laboratorio de modulación SSB
Los tipos de modulación AM y DSBSC-AM no utilizan eficientemente el espectro
de frecuencia. Al analizar el espectro se encuentra que aún hay redundancia ya que las dos
bandas alrededor de la frecuencia de corte son simétricas. El objetivo de la modulación
SSB es utilizar eficientemente el espectro, transmitiendo una señal utilizando una de las
dos bandas alrededor de la frecuencia de corte, ya sea la banda inferior o la banda superior,
pues ambas son simétricas. Por tanto, utiliza tan solo la mitad del ancho de banda con
respecto a AM y DSBSC-AM. La figura siguiente muestra un tipo de modulador SSB, que
utiliza una señal modulada con DSBSC-AM y una etapa de filtrado.
Figura 3.6 Modulador SSB
3.5.1 Modulación SSB-AM
1.
En MATLAB, con base en el modulador de la figura 3.6, implemente este
tipo de modulación SSB, tanto para la banda superior como la inferior.
Utilice una señal portadora con frecuencia de 2 KHz y de amplitud
Ap = 1 . Utilice un filtro con un ancho en la pendiente de rechazo menor a
2 veces la frecuencia de la señal a modular. Para seleccionar la banda
114
lateral superior se utiliza un filtro paso alto con una frecuencia de corte
mayor a la frecuencia de la portadora
⎧1
H sup (ω ) = ⎨
⎩0
ω > ωc
para
cualquier otro
Para seleccionar la banda inferior se utiliza un filtro pasobajo con una
frecuencia de corte menor a la frecuencia de la portadora
⎧1
H inf (ω ) = ⎨
⎩0
2.
Pruebe
su
procedimiento
ω < ωc
para
cualquier otro
para
la
siguiente
señal
de
entrada
m(t ) = Am cos(2π 600t ) con Am = 0.5 .
3.
Grafique las señales generadas por el modulador y la señal de entrada.
También grafique la respuesta en frecuencia y fase de los filtros
utilizados.
4.
Obtenga el espectro de magnitud en frecuencia para las señales generadas
por el modulador y la señal de entrada. Comente sus resultados.
3.5.2 Demodulación SSB-AM
1.
Debe implementar un demodulador SSB. Este demodulador posee el
mismo diagrama de bloques de la figura 3.6, excepto que en lugar de la
señal a transmitir m(t ) se pone la señal recibida s (t ) y el bloque H (ω ) se
115
reemplaza por un filtro pasobajo con una frecuencia de corte de tal
manera que deje pasar la señal original.
2.
Una vez que tenga listo el procedimiento para demodular, pruebe con la
señal modulada que obtuvo en el punto (2) de la sección 3.5.1.
3.
Grafique y compare la salida del demodulador con la señal original, para
así poder comprobar si el procedimiento es efectivo. Grafique la respuesta
en frecuencia del filtro paso bajo.
4.
Obtenga el espectro de magnitud en frecuencia para las señales
demoduladas y comente sus resultados.
3.5.3 Modulación y demodulación SSB–AM en SIMULINK
1.
En SIMULINK implemente este modulador SSB y repita el ejercicio.
Utilice los bloques “Sine Wave” para generar la señal a modular del punto
(6) y la señal portadora del punto (1) de la sección 3.5.1. Multiplique
estas señales, luego utilice el bloque “Digital Filter Design” para simular
los filtros selectores de las bandas laterales y así generar la señal SSBAM.
2.
Obtenga el espectro en frecuencia con el bloque “Spectrum Scope” para la
señal a modular y la señal SSB-AM de banda lateral inferior y superior.
116
3.
Luego implemente el procedimiento para demodular la señal SSB-AM
para recuperar la señal original, tal y como se indicó en el punto (1) de la
sección 3.5.2.
4.
Obtenga el espectro de frecuencia de estas señales y compare con el
espectro de la señal original.
3.5.4 Cuestionario
1.
¿Cuáles son las ventajas y desventajas de utilizar la modulación SSB?
2.
Mencione y explique al menos dos métodos diferentes al del laboratorio
que existen para modular una señal SSB.
3.
Investigar cuáles otros métodos para demodular señales SSB existen.
Explique detalladamente cada uno.
117
3.6
Laboratorio de modulación FM
La modulación en frecuencia consiste en hacer variar la frecuencia de la portadora
en función de la señal moduladora. Estas variaciones han de ser proporcionales a la
amplitud de la señal a transmitir. Un modulador de FM debe tener las siguientes
características:
•
La frecuencia de la señal de salida no será siempre la de la portadora.
•
Si la señal a modular tiene un valor de cero en su amplitud, en la salida
tendremos una señal de frecuencia igual a la portadora.
•
Si la señal a modular tiene un valor positivo en su amplitud, en la salida se
tendrá una señal de frecuencia proporcional superior a la de la portadora.
•
Si la señal a modular tiene un valor negativo en su amplitud, en la salida se
tendrá una señal de frecuencia proporcional inferior a la de la portadora.
•
La frecuencia de la señal a modular no afecta a la variación de frecuencia de
la señal modulada, únicamente influye en la velocidad a la que se produce la
variación.
3.6.1 Modulación FM
1.
Implemente la modulación de frecuencia de un tono simple en MATLAB.
Utilice un índice de modulación β = 5 . La frecuencia de la señal a
modular es de 100 Hz y la frecuencia de la señal portadora es de 1 KHz.
118
Utilice una frecuencia de muestreo de 80 KHz. La señal a modular es
m(t ) = Am cos ωmt . La señal modulada es la siguiente
⎛
⎞
k A
s (t ) = Ac cos⎜⎜ ωc + ω m sin ωmt ⎟⎟
ωm
⎝
⎠
Calcule una valor adecuado de kω y Am para que el valor de beta sea 5.
2.
Grafique la señal a modular y la señal modulada (señal FM generada).
Comente sus resultados.
3.
Determine el espectro de frecuencia en magnitud y fase de la señal
modulada. Compruebe que la señal FM posee muchas componentes en
frecuencia y que la magnitud de componente de la señal portadora tiende
a cero.
4.
Utilizando la función “modulate” de MATLAB y cambiando la palabra
“method” por “fm” module la señal m(t ) = Am cos ωmt con una frecuencia
de 100 Hz y la portadora con una frecuencia de 1 KHz. Cuando se utiliza
la opción “fm” se debe agregar una constante llamada “opt” esta
representa el índice de modulación, pruebe con 0.04.
5.
Grafique la señal a modular y la señal modulada con “modulate”.
6.
Utilizando “modulate” varíe el valor de la constante “opt”. Puede utilizar
tres valores diferentes entre 0 y 1.
7.
Grafique estas tres señales FM generadas y observe lo que sucede cuando
el índice de modulación es modificado.
119
8.
Ahora utilizando “demod” demodule las señales obtenidas en los puntos
(6) y (7). Utilice “fm” en lugar de la palabra “method”.
9.
Grafique las señales demoduladas para cada índice de modulación
probado y compare con la señal original la cual es la señal a modular.
Comente sus resultados.
10.
Obtenga el espectro en frecuencia de magnitud y fase para cada una las
señales obtenidas en el punto (8).
3.6.2 Modulación y demodulación FM utilizando SIMULINK
1.
Como introducción a la modulación y demodulación FM, SIMULINK
tiene dos bloques específicos para simular una señal FM y otro para
recuperar la señal original a partir una señal FM. Estos bloques se llaman
“FM Modulator Paseband” y “FM Demodulator Passband”. Utilice estos
bloques para modular la señal del punto (1) de la sección 3.6.1. La
herramienta de ayuda de MATLAB tiene la información necesaria para
utilizar correctamente estos bloques.
2.
Utilice nuevamente el bloque “Sine Wave” para generar la señal a
modular. La señal que se obtiene después del bloque demodulador pásela
a través de un filtro IIR pasobajo Chebyshev Tipo I con una frecuencia de
corte que permita el paso de la frecuencia central de la señal original y
justifique el porque de su escogencia.
120
3.
Obtenga la grafica de la señal a modular, la señal FM y la señal
demodulada. También represente el espectro de frecuencia para cada una
de estas señales utilizando el bloque “Spectrum Scope”.
3.6.3 Cuestionario
1.
¿Por qué la magnitud de la componente en frecuencia de la portadora
tiende a cero?
2.
Investigue, ¿qué es el índice de modulación en frecuencia y cuál es su
efecto cuando se usa modulación FM? ¿Cómo debe ser este para que la
señal se pueda reconstruir bien?
3.
¿Cuáles son las ventajas y desventajas de utilizar la modulación FM?
121
3.7
Laboratorio de modulación PAM
En la modulación PAM, la información es transmitida en símbolos de valores
discretos, uniformemente espaciados por intervalos de tiempo. La señal portadora es un
tren periódico de pulsos rectangulares separados a la misma distancia uno de otro. La
amplitud de los pulsos es proporcional al valor instantáneo de las muestras de una señal
continua. Una señal PAM se puede representar por la siguiente ecuación
s (t ) =
∞
∑ [1 + k m(nT )]g (t − nT )
a
n = −∞
s
s
Donde s (t ) > 0 para todo valor de n, m(nTs ) es la muestra de la señal a modular
m(t ) , ka es la sensibilidad en amplitud y g (t ) es la forma del pulso o cuantificador. La tasa
de muestreo debe ser mayor que dos veces la frecuencia máxima de la señal moduladora
m(t ) de acuerdo con el teorema de muestreo.
MATLAB tiene una función para simular este tipo de modulación, esta función es
“pammod” y tiene otra función que demodula una señal PAM, “pamdemod” las cuales se
muestran en la siguiente tabla.
122
Tabla 3.4 Funciones de MATLAB para modulación y demodulación PAM
Función en MATLAB
Descripción
La salida de esta función es la envolvente
compleja de una señal “x” al ser modulada
utilizando modulación PAM.
y = pammod(x,M)
“M” es la cantidad de niveles de cuantificación
y = pammod(x,M,ini_phase)
de la señal, la cual debe estar dada en valores
enteros positivos.
La segunda opción “ini_phase” especifica en
radianes la fase inicial de la señal modulada.
Esta función demodula la envolvente compleja
de
z = pamdemod(y,M)
una
señal
PAM.
Los
niveles
de
cuantificación es la variable “M”.
z = pamdemod(y,M,ini_phase)
La segunda opción “ini_phase” especifica en
radianes la fase inicial de la señal PAM.
3.7.1 Modulación y demodulación PAM en MATLAB
1.
Para conocer el efecto de la modulación de amplitud de pulso module la
siguiente señal y = 10 cos(4πt ) , utilice una frecuencia de muestreo de
1000 Hz y obtenga mil muestras. En MATLAB con la ayuda de la
función “square”, cree un tren de pulsos con ciclo de trabajo de un 25% y
123
una frecuencia de 30 Hz, esto para apreciar este fenómeno. Añada un
nivel DC a la señal original y multiplique esta por el tren de pulsos.
2.
Grafique la señal a modular, el tren de pulsos y la señal modulada.
También obtenga y grafique el espectro en magnitud y fase de la señal a
modular y la señal modulada.
3.
Para poder utilizar las funciones de la tabla 3.4 se necesita que la señal
esté antes cuantificada en niveles de valores enteros positivos. Para no
tener problemas con estas funciones utilizaremos la función “quantiz” que
nos permite cuantificar una señal a los niveles o símbolos que queramos
en este caso enteros positivos. Para ello emplee el siguiente código y
explique detalladamente lo que sucede.
partition = [0,1,3];
codebook = [-1,0.5,2,3];
samp = [-2.4,-1,-0.2,0,0.2,1,1.2,1.9,2,2.9,3,3.5,5];
[index,quantized] = quantiz(samp,partition,codebook);
index
quantized
4.
Utilice el método anterior para cuantificar esta señal m(t ) = Am sin (2πf mt )
con una frecuencia central f m = 100 Hz y Am = 15 . Debe utilizar una
frecuencia de muestreo de f muestreo = 4 KHz y obtenga 200 muestras.
Recuerde que “M” debe ser una potencia de 2 suficiente para generar los
niveles de cuantificación de la señal cuantificada, pero antes de
124
cuantificar debe añadir un nivel DC a la señal muestreada suficiente para
que no haya niveles de valores negativos.
5.
Module por medio de modulación PAM utilizando la función “pammod”
la señal cuantificada en el punto (4).
6.
Grafique la señal a modular, la señal cuantificada y la señal modulada.
Grafique la señal cuantificada utilizando tanto la función “plot” como la
función “stem”.
7.
Demodule la señal PAM generada en el punto (5) utilizando la función
“pamdemod”. Grafique la señal demodulada y compare con la señal
original. Comente sus resultados
8.
Obtenga el espectro de frecuencia en magnitud y fase de la señal
modulada y la señal demodulada.
9.
Obtenga el diagrama de ojo de la señal demodulada utilizando la función
“eyediagram” y comente sus resultados.
3.7.2 Modulación y demodulación PAM en SIMULINK
1.
Para modulación y demodulación PAM existen los siguientes bloques en
SIMULINK “M-PAM Modulator Baseband” y “M-PAM Demodulator
Baseband”. Estos se pueden configurar para recibir enteros positivos o
una trama de bits. Para simular un pequeño sistema PAM entonces se
necesita generar primero de forma aleatoria cierta cantidad de 32
125
elementos utilizando el bloque “Random Integer Generator”. Utilice una
frecuencia de muestreo de 1000 Hz. Luego convierta esta señal a bits con
el siguiente bloque “Integer to Bit Converter”. Después module y
demodule esta señal utilizando los bloques para simulación PAM que se
encuentran en la librería “Digital Baseband Modulation”.
2.
Utilice la herramienta de ayuda de MATLAB para utilizar correctamente
estos bloques.
3.
Obtenga la señal a modular, la señal modulada y la señal demodulada.
Compare la señal reconstruida con la señal original.
4.
Obtenga un diagrama de ojo de la señal demodulada con el bloque
“Discrete Time Eye Diagram Scope” para 8 muestras por símbolo.
5.
Se recomienda utilizar un tiempo de simulación de 30 segundos para
apreciar con claridad lo que esta sucediendo. Comente sus resultados.
3.7.3 Cuestionario
1.
¿Qué es el fenómeno de Interferencia entre símbolos (ISI)?
2.
¿Qué es un diagrama de ojo? ¿Cuál es su importancia en el análisis de
sistemas de comunicaciones digitales?
3.
¿Cuáles son las ventajas y desventajas de la modulación PAM?
126
3.8
Laboratorio de modulación QAM
La modulación de amplitud en cuadratura o QAM es una modulación digital en la
que el mensaje está contenido tanto en la amplitud como la fase de la señal transmitida. Se
basa en la transmisión de dos mensajes independientes por un único camino. Esto se
consigue modulando una misma portadora, desfasada 90º entre uno y otro mensaje. Esto
supone la formación de dos canales ortogonales en el mismo ancho de banda, con lo cual se
mejora la eficiencia de ancho de banda.
La modulación QAM es un esquema un tanto riguroso. Un pequeño error en la fase
o la frecuencia de la portadora en el demodulador no solo resulta en pérdida o distorsión de
las señales sino interferencia entre ambos canales.
La modulación QAM es utilizada en las transmisiones de televisión en color para
multiplexar las señales de crominancia, que portan la información acerca del color. En este
caso, la sincronización se logra por la inserción periódica de una muestra de la señal
portadora.
MATLAB tiene una función para simular este tipo de modulación, esta función es
“qammod” y tiene otra función que sirve para demodular una señal QAM “qamdemod”,
estas funciones se muestran en la siguiente tabla.
127
Tabla 3.5 Funciones de MATLAB para la modulación y demodulación QAM
Función en MATLAB
Descripción
La salida de esta función es la envolvente
compleja de una señal “x” al ser modulada
utilizando modulación QAM.
“M” es la cantidad de niveles de cuantificación
y = qammod(x,M)
de la señal, la cual debe estar dada en valores
y = qammod(x,M,ini_phase)
enteros positivos en potencia de 2.
La señal obtenida es una constelación de forma
rectangular o en cruz.
La segunda opción “ini_phase” especifica en
radianes la fase inicial de la señal modulada
Esta función demodula la envolvente compleja
de una señal QAM.
“M” es la cantidad de niveles de cuantificación
z = qamdemod(y,M)
de la señal, la cual debe estar dada en valores
z = qamdemod(y,M,ini_phase)
enteros positivos en potencia de 2.
La segunda opción “ini_phase” especifica en
radianes la fase inicial de la señal modulada
128
3.8.1 Modulación y demodulación QAM
1.
Se desea modular una señal formada por las siguientes señales
m1 (t ) = Am sen(2πf1t )
m2 (t ) = Am sen(2πf 2t )
Donde Am = 7 , f1 = 180 Hz y f 2 = 25 Hz. Utilice una frecuencia de
muestreo de f muestreo = 4 KHz y obtenga 200 muestras. Cuantifique la
señal muestreada a niveles enteros positivos.
2.
Grafique la señal a modular y la señal cuantificada (utilice tanto “plot”
como “stem”).
3.
Module la señal cuantificada en el punto (1) utilizando la función
“qammod” y grafique la señal modulada en cuadratura y fase.
4.
Suponga que a la señal se le añade ruido en el canal de transmisión. El
canal contiene ruido gausiano o AWGN. Este ruido se genera con el
siguiente código, utilícelo y explique.
k=log2(M);
EbNo = 10; %dB
snr = EbNo + 10*log10(k) - 10*log10(1);
ynoisy = awgn(ytx,snr,'measured');
5.
Utilice la función “scatterplot” para mostrar la constelación de la señal
QAM antes y después de que se le añada el ruido gausiano. Comente sus
resultados.
129
6.
Luego demodule la señal con y sin ruido utilizando la función
“qamdemod”. Grafique ambas señales demoduladas y compare con la
señal original. Comente sus resultados.
7.
Por último obtenga el espectro de frecuencia en magnitud y fase de la
señal a modular, la señal modulada y demodulada, ambas con y sin ruido.
Comente sus resultados.
3.8.2 Modulación y demodulación QAM con SIMULINK
1.
Para modulación y demodulación QAM existen los siguientes bloques en
SIMULINK “Rectangular QAM Modulator Baseband” y “Rectangular
QAM Demodulator Baseband”. Estos se pueden configurar para recibir
enteros positivos o una trama de bits. Para simular un pequeño sistema
QAM entonces se necesita generar primero de forma aleatoria cierta
cantidad de 32 elementos utilizando el bloque “Random Integer
Generator”. Utilice una frecuencia de muestreo de 1000 Hz. Después
module y demodule esta señal utilizando los bloques para simulación
QAM que se encuentran en la librería “Digital Baseband Modulation”.
2.
Para simular un canal de transmisión con ruido utilice el bloque llamado
“AWGN Channel”. Modifique sus propiedades y utilice en la “Mode” la
opción “Signal to noise ratio (SNR)”. Utilice este bloque con un SNR de
130
10 dB. A la entrada de este bloque debe ir la señal QAM generada y la
salida debe ir a la entrada del demodulador.
3.
Utilice la herramienta de ayuda de MATLAB para utilizar correctamente
estos bloques.
4.
Obtenga la señal a modular, la señal modulada con y sin ruido y la señal
demodulada. Compare la señal reconstruida con la señal original.
5.
Obtenga un diagrama de constelación de la señal demodulada con el
bloque “Discrete Time Scatter Plot Scope” para 32 muestras por símbolo.
6.
Se recomienda utilizar un tiempo de simulación de al menos 100
segundos para apreciar con claridad lo que esta sucediendo. Comente sus
resultados.
3.8.2 Cuestionario
1.
¿Cuáles son las ventajas y desventajas de la modulación QAM?
2.
¿En qué consiste un canal de transmisión que añade ruido blanco
gausiano (AWGN acrónimo en inglés para Additive White Gaussian
Noise)? ¿Qué es el SNR y el BER?
3.
¿Cuál es la importancia de evaluar un sistema de comunicación digital
con un canal de este tipo?
4.
Investigue en qué consiste el estándar de transmisión V22bis para
sistemas de comunicación digital.
131
CAPÍTULO 4: Conclusiones y recomendaciones
4.1
Conclusiones
MATLAB Y SIMULINK son dos herramientas muy poderosas con las cuales se
hace posible la simulación de sistemas de comunicación tanto analógicos como digitales.
Se demostró que con estas dos herramientas se puede obtener una aproximación excelente
para el estudio de los conceptos básicos en el comportamiento de los sistemas de
comunicación.
Al desarrollar prácticas de simulación en sistemas de comunicaciones tanto
analógicos como digitales, se logra dar un enfoque práctico a los conceptos planteados en
el curso de Procesamiento Digital de Señales, mediante la simulación de señales en el
dominio del tiempo, así como en el dominio de la frecuencia al evaluar conceptos como
muestreo, cuantificación, filtrado, densidad espectral, modulación analógica y digital, por
mencionar algunos de los más comunes.
Se consigue aprender los conceptos de como implementar las técnicas de filtrado
para señales de tiempo discreto usualmente utilizadas en el curso de procesamiento digital
de señales por medio del laboratorio de filtros digitales.
El laboratorio de FFT permite conocer y utilizar una técnica importante en el
análisis espectral de señales discretas. Este laboratorio ayudó a implementar un analizador
de espectro utilizando la Transformada Rápida de Fourier (FFT), el cual fue de gran ayuda
para los laboratorios siguientes.
132
Se examinó un método muy común para transmitir información conocido como
modulación AM. Se analizó el espectro de frecuencia una señal AM con y sin ruido, esto
en laboratorio de modulación AM.
Con el laboratorio de modulación DSBSC-AM se consigue introducir al estudiante
a una técnica de modulación AM que permite transmitir la señal modulada en amplitud
sólo con la potencia requerida para la señal de información.
El laboratorio de modulación SSB-AM permite conocer otra técnica de modulación
AM la cual utiliza la mitad del ancho de banda al utilizar eficientemente el espectro en
frecuencia. También se pudo demostrar que se puede recuperar la señal original a pesar de
que solo se transmita la mitad de esta.
Se pudo estudiar la teoría básica de modulación y demodulación FM por medio de
las ecuaciones que MATLAB presenta para este tipo de modulación. Analizar el espectro
de frecuencia de una señal FM por medio del laboratorio de modulación FM.
El laboratorio de modulación PAM da a conocer el principio básico de la
modulación por amplitud de pulsos la cual es de gran importancia en el procesamiento
digital de señales. Se introduce el concepto de una herramienta llamada diagrama de ojo
que permite analizar la calidad de una señal PAM.
El último laboratorio de modulación QAM da a conocer otro método de modulación
digital que permite transmitir parte de la señal tanto en amplitud como en fase. Se introduce
el concepto de los diagramas de constelación que permite analizar una señal QAM con y
sin ruido.
133
Con la preparación de las prácticas de simulación se fortalecen los conceptos que
existen alrededor de los sistemas de comunicación, los cuales son de gran importancia hoy
en día, donde los medios y técnicas de comunicación son necesarias para casi todas las
tareas cotidianas de muchas personas alrededor del mundo.
Estas prácticas de simulación permitirán al estudiante no sólo familiarizarse con la
teoría durante sus estudios, sino que le permitirá tener una idea más clara del
comportamiento y las técnicas utilizadas en los sistemas de comunicación.
4.2
Recomendaciones
Las prácticas planteadas deben estar acompañadas de una base teórica. Esto debido
a que las técnicas de comunicación utilizadas en los sistemas de comunicación se mejoran
día a día.
El estudiante debe sacar el tiempo para investigar como se deben utilizar las
funciones que MATLAB ofrece para el procesamiento de señales. Este tiempo debe ser
contemplado por el profesor dentro del lapso de entrega de su informe de resultados para
cada práctica.
MATLAB 7.0.1 es la versión en la que se basa la realización de los ejercicios de
simulación por lo que algunas de las funciones y bloques de SIMULINK mencionados para
la simulación de modulaciones es posible que no aparezcan en versiones anteriores a esta.
134
BIBLIOGRAFÍA
A continuación se presenta las referencias bibliográficas consultadas para la
elaboración de este proyecto.
Libros:
1. Antoniou, A. “Digital Signal Processing: Signals, Systems and Filters”, Primera
edición, McGraw-Hill, New York, Estados Unidos, 2006.
2. Tretter, S. A. “Communication System Design Using DSP Algorithms”, Primera
edición, Kluwer Academic / Plenum Publishers, New York, Estados Unidos, 2003.
3. Jackson, L. B. “Digital filters and Signal Processing”, Tercera edición, Boston:
Kluwer Academic Publishers, Estados Unidos, 1996.
4. Stanley, W. D. “Digital Signal Processing”, Segunda edición, Reston Publishing
Company, Inc., Estados Unidos, 1984.
5. Alkin, O. “Digital Signal Processing: A Laboratory Approach Using PC-DSP”,
Primera edición, Prentice Hall, Estados Unidos, 1994.
6. Proakis, J. G. “Tratamiento digital de señales”, Tercera edición, Prentice Hall,
Madrid, España, 1998.
7. Bildstein, P. “Filtros Activos”, Primera edición, Marcombo Boixareu Editores,
España, 1977.
8. Johnson, D. E. “Rapid Practical Designs of Active Filters”, Primera edición, John
Wiley & Sons, Inc., Estados Unidos, 1975.
135
Páginas web:
9. Universidad de Valladolid. Marcos Martínez Fernández, MMF. “Modulación
analógica y digital de Pulsos”, http://www.lpi.tel.uva.es/lpi/dld/tts/tema5.pdf
10. Universidad de Valladolid. Marcos Martínez Fernández, MMF. “Transmisión
digital en banda base”, http://www.lpi.tel.uva.es/lpi/dld/tts/tema6.pdf
11. Universidad de Valladolid. Marcos Martínez Fernández, MMF. “Transmisión
digital paso banda”, http://www.lpi.tel.uva.es/lpi/dld/tts/tema7.pdf
136
APÉNDICES
APÉNDICE A: Código fuente de los ejercicios de simulación en
MATLAB
A.1
Código fuente laboratorio de filtros digitales
%************************************************************************
%LABORATORIO DE FILTROS DIGITALES
%************************************************************************
%************************************************************************
%REALIZADO POR: José Gabriel Fernández Carazo
%
A21941
%
Escuela de Ingeniería Eléctrica
%
Facultad de Ingeniería
%
Universidad de Costa Rica
%************************************************************************
%Ultima modificación: Julio del 2007.
%************************************************************************
%************************************************************************
%Se limpia el workspace de MATLAB y las variables en uso.
clc;
clear;
%************************************************************************
%************************************************************************
%FILTROS DIGITALES IIR
%************************************************************************
%Punto (1)
%************************************************************************
fm=8000;
%Frecuencia de muestreo
%Parámetros del filtro
N=[8 16 32 64];
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);
%Cálculo de la función ventana
%Hamming
B=fir1(N(i),Wn,'bandpass',ventana); %Cálculo de los coeficientes del
%filtro
for j=1:length(B)
M(j,i)=B(j);
end
end
%************************************************************************
%************************************************************************
%Punto (2)
%************************************************************************
%Cálculo de la respuesta en frecuencia
Npuntos=256;
%Puntos a calcular de la respuesta en frecuencia
H=zeros(Npuntos,L);
%Matriz de ceros para guardar la respuesta en
%frecuencia del filtro segun el orden
for k=1:L
[H1,W]=freqz(M(:,k),1,Npuntos);
H(:,k)=H1;
end
%Visualización de la respuesta en frecuencia
figure(1)
subplot(2,1,1);
plot(W/pi,20*log10(abs(H)));
title('Respuesta en magnitud del filtro Hamming');
xlabel('\omega en unidades de \pi');
ylabel('Magnitud (dB)');
legend('N=8','N=16','N=32','N=64');
grid on;
subplot(2,1,2);
plot(W/pi,unwrap(angle(H)));
title('Respuesta de fase del filtro');
xlabel('\omega en unidades de \pi');
ylabel('Fase (rads)');
legend('N=8','N=16','N=32','N=64');
grid on;
%************************************************************************
%************************************************************************
%Punto (3)
%************************************************************************
L_medio=200;
%Mitad de la cantidad de muestras a recolectar
fm=8000;
%Frecuencia de muestreo
treq=2*L_medio/fm;
%Tiempo requerido para recolectar las muestras
t=0:1/(fm-1):treq;
%Vector de muestras a recolectar
138
%Señal de entrada
xin1=7*sin(2*pi*720*t);
xin2=3*sin(2*pi*1440*t);
xin3=15*sin(2*pi*3000*t);
x_in=xin1+xin2+xin3;
%Gráficas de las señales que conforman la señal de entrada
figure(2)
subplot(3,1,1);
plot(t,xin1);
title('Señal con frecuencia de 720 Hz');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
grid on;
subplot(3,1,2);
plot(t,xin2);
title('Señal con frecuencia de 1840 Hz');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
grid on;
subplot(3,1,3);
plot(t,xin3);
title('Señal con frecuencia de 3000 Hz');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
grid on;
figure(3)
plot(t,x_in);
title('Señal de entrada');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
%Filtrando
fil=zeros(length(x_in),L);
%Se crea una matriz para guardar las
%salidas de cada filtro
for i=1:L
h1=filter(M(:,i),1,x_in);
fil(:,i)=h1;
end
%Se grafican las salidas de los filtros
figure(4)
subplot(4,1,1);
plot(t,fil(:,1));
txtp1=strcat('Salida del filtro Hamming de orden N=',num2str(N(1)));
title(txtp1);
xlabel('Tiempo (segundos)');
139
ylabel('Amplitud');
grid on;
subplot(4,1,2);
plot(t,fil(:,2));
txtp2=strcat('Salida del filtro Hamming de orden N=',num2str(N(2)));
title(txtp2);
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
grid on;
subplot(4,1,3);
plot(t,fil(:,3));
txtp3=strcat('Salida del filtro Hamming de orden N=',num2str(N(3)));
title(txtp3);
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
grid on;
subplot(4,1,4);
plot(t,fil(:,4));
txtp4=strcat('Salida del filtro Hamming de orden N=',num2str(N(4)));
title(txtp4);
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
grid on;
%************************************************************************
%************************************************************************
%Punto (4)
%************************************************************************
M=zeros(N(L)+1,L);
%Matriz de ceros para guardar los
%coeficientes del filtro para cada orden
for i=1:L
ventana=window(@kaiser,N(i)+1);
%Cálculo de la función ventana
%Hamming
B=fir1(N(i),Wn,'bandpass',ventana);
%Cálculo de los coeficientes
%del filtro
for j=1:length(B)
M(j,i)=B(j);
end
end
%Cálculo de la respuesta en frecuencia
H=zeros(Npuntos,L);
%Matriz de ceros para guardar la respuesta en
%frecuencia del filtro segun el orden
for k=1:L
[H1,W]=freqz(M(:,k),1,Npuntos);
H(:,k)=H1;
end
140
% Visualización de la respuesta en frecuencia
figure(5)
subplot(2,1,1);
plot(W/pi,20*log10(abs(H)));
title('Respuesta en magnitud del filtro Kaiser');
xlabel('\omega en unidades de \pi');
ylabel('Magnitud (dB)');
legend('N=8','N=16','N=32','N=64');
grid on;
subplot(2,1,2);
plot(W/pi,unwrap(angle(H)));
title('Respuesta de fase del filtro');
xlabel('\omega en unidades de \pi');
ylabel('Fase (rads)');
legend('N=8','N=16','N=32','N=64');
grid on;
%Filtrando
fil=zeros(length(x_in),L);
for i=1:L
h1=filter(M(:,i),1,x_in);
fil(:,i)=h1;
end
%Se grafican las salidas de los filtros
figure(6)
subplot(4,1,1);
plot(t,fil(:,1));
txtp1=strcat('Salida del filtro Kaiser de orden N=',num2str(N(1)));
title(txtp1);
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
grid on;
subplot(4,1,2);
plot(t,fil(:,2));
txtp2=strcat('Salida del filtro Kaiser de orden N=',num2str(N(2)));
title(txtp2);
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
grid on;
subplot(4,1,3);
plot(t,fil(:,3));
txtp3=strcat('Salida del filtro Kaiser de orden N=',num2str(N(3)));
title(txtp3);
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
grid on;
141
subplot(4,1,4);
plot(t,fil(:,4));
txtp4=strcat('Salida del filtro Kaiser de orden N=',num2str(N(4)));
title(txtp4);
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
grid on;
%************************************************************************
%************************************************************************
%Punto (5)
%************************************************************************
M=zeros(N(L)+1,L);
%Matriz de ceros para guardar los
%coeficientes del filtro para cada orden
for i=1:L
ventana=window(@barthannwin,N(i)+1);
%Cálculo de la función ventana
%Hamming
B=fir1(N(i),Wn,'bandpass',ventana);
%Cálculo de los coeficientes
%del filtro
for j=1:length(B)
M(j,i)=B(j);
end
end
%Cálculo de la respuesta en frecuencia
H=zeros(Npuntos,L);
%Matriz de ceros para guardar la respuesta en
%frecuencia del filtro segun el orden
for k=1:L
[H1,W]=freqz(M(:,k),1,Npuntos);
H(:,k)=H1;
end
% Visualización de la respuesta en frecuencia
figure(7)
subplot(2,1,1);
plot(W/pi,20*log10(abs(H)));
title('Respuesta en magnitud del filtro Bartlett');
xlabel('\omega en unidades de \pi');
ylabel('Magnitud (dB)');
legend('N=8','N=16','N=32','N=64');
grid on;
subplot(2,1,2);
plot(W/pi,unwrap(angle(H)));
title('Respuesta de fase del filtro');
xlabel('\omega en unidades de \pi');
ylabel('Fase (rads)');
legend('N=8','N=16','N=32','N=64');
grid on;
142
%Filtrando
fil=zeros(length(x_in),L);
for i=1:L
h1=filter(M(:,i),1,x_in);
fil(:,i)=h1;
end
%Se grafican las salidas de los filtros
figure(8)
subplot(4,1,1);
plot(t,fil(:,1));
txtp1=strcat('Salida del filtro Bartlett de orden N=',num2str(N(1)));
title(txtp1);
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
grid on;
subplot(4,1,2);
plot(t,fil(:,2));
txtp2=strcat('Salida del filtro Bartlett de orden N=',num2str(N(2)));
title(txtp2);
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
grid on;
subplot(4,1,3);
plot(t,fil(:,3));
txtp3=strcat('Salida del filtro Bartlett de orden N=',num2str(N(3)));
title(txtp3);
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
grid on;
subplot(4,1,4);
plot(t,fil(:,4));
txtp4=strcat('Salida del filtro Bartlett de orden N=',num2str(N(4)));
title(txtp4);
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
grid on;
%************************************************************************
%************************************************************************
%FILTROS DIGITALES IIR
%************************************************************************
%Punto (1)
%************************************************************************
fm=8000;
%Frecuencia de muestreo
%Parámetros del filtro
N2=8;
%Orden del filtro
143
[b,a]=ellip(N2,0.5,80,300/(fm/2),'low'); %Cálculo de los coeficientes de
%un filtro IIR tipo elíptico
%************************************************************************
%************************************************************************
%Punto (2)
%************************************************************************
[H,f]=freqz(b,a,2048,fm);
%Respuesta en frecuencia
%Se grafican los resultados
figure(9)
subplot(2,1,1);
plot(f,20*log10(abs(H)));
axis([0 2500 -200 0]);
title('Respuesta en magnitud del filtro');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud (dB)');
txtp5=strcat('N=',num2str(N2));
legend(txtp5);
grid on;
subplot(2,1,2);
plot(f,unwrap(angle(H))*180/pi);
axis([0 2500 -600 200]);
xlabel('Frecuencia (Hz)');
ylabel('Fase (º)');
txtp6=strcat('N=',num2str(N2));
legend(txtp6);
grid on;
%************************************************************************
%************************************************************************
%Punto (3)
%************************************************************************
L_medio=200;
%Mitad de la cantidad de muestras a recolectar
treq=2*L_medio/fm;
%Tiempo requerido para recolectar las muestras
t=0:1/(fm-1):treq;
%Vector de muestras a recolectar
%Señal de entrada
xin1=sin(2*pi*180*t);
xin2=sin(2*pi*720*t);
x_in=xin1+xin2;
figure(10)
subplot(3,1,1);
plot(t,xin1);
title('Señal con frecuencia de 180 Hz');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
grid on;
144
subplot(3,1,2);
plot(t,xin2);
title('Señal con frecuencia de 720 Hz');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
grid on;
subplot(3,1,3);
plot(t,x_in);
title('Señal de entrada');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
grid on;
%Filtrando
h=filter(b,a,x_in);
figure(11)
plot(t,h,t,x_in,':');
title('Salida del filtro');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
legend('Salida del filtro','Señal de entrada');
grid on;
%************************************************************************
%************************************************************************
%Punto (4)
%************************************************************************
%Parámetros del filtro
Ns=[8 12 16];
%Variación del orden
Amax=[20 60 120];
Amin=[0.1 0.3 0.9];
L=length(Ns);
B=zeros(Ns(L)+1,L);
A=zeros(Ns(L)+1,L);
%Cálculo de los coeficientes de un filtro IIR tipo elíptico
for i=1:L
[b,a]=ellip(Ns(i),0.3,60,300/(fm/2),'low');
for j=1:length(b)
B(j,i)=b(j);
end
for j=1:length(a)
A(j,i)=a(j);
end
end
%Respuesta en frecuencia
Hf=zeros(2048,L);
145
F=zeros(2048,L);
for k=1:L
[H,f]=freqz(B(:,k),A(:,k),2048,fm);
Hf(:,k)=H;
F(:,k)=f;
end
%Se grafica la respuesta en frecuencia de cada uno de los filtros
figure(12);
subplot(2,1,1);
plot(F,20*log10(abs(Hf)+eps));
title('Respuesta de magnitud del filtro Amin=0.3 dB, Amax=60 dB');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud (dB)');
legend('N=8','N=12','N=16');
grid on;
subplot(2,1,2);
plot(F,unwrap(angle(Hf))*180/pi);
title('Respuesta de fase del filtro Amin=0.3 dB, Amax=60 dB');
xlabel('Frecuencia (Hz)');
ylabel('Fase (º)');
legend('N=8','N=12','N=16');
grid on;
%Cálculo de los coeficientes de un filtro IIR tipo elíptico
B=zeros(Ns(L)+1,L);
A=zeros(Ns(L)+1,L);
for i=1:L
[b,a]=ellip(Ns(1),Amin(i),60,300/(fm/2),'low');
for j=1:length(b)
B(j,i)=b(j);
end
for j=1:length(a)
A(j,i)=a(j);
end
end
%Respuesta en frecuencia
Hf=zeros(2048,L);
F=zeros(2048,L);
for k=1:L
[H,f]=freqz(B(:,k),A(:,k),2048,fm);
Hf(:,k)=H;
F(:,k)=f;
end
%Se grafica la respuesta en frecuencia de cada uno de los filtros
figure(13);
subplot(2,1,1);
plot(F,20*log10(abs(Hf)+eps));
146
title('Respuesta de magnitud del filtro N=8, Amax=60 dB');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud (dB)');
legend('Amin=0.1','Amin=0.3','Amin=0.9');
grid on;
subplot(2,1,2);
plot(F,unwrap(angle(Hf))*180/pi);
title('Respuesta de fase del filtro N=8, Amax=60 dB');
xlabel('Frecuencia (Hz)');
ylabel('Fase (º)');
legend('N=8','N=12','N=16');
grid on;
%Cálculo de los coeficientes de un filtro IIR tipo elíptico
B=zeros(Ns(L)+1,L);
A=zeros(Ns(L)+1,L);
for i=1:L
[b,a]=ellip(Ns(1),0.3,Amax(i),300/(fm/2),'low');
for j=1:length(b)
B(j,i)=b(j);
%Se guardan uno a uno los coeficientes
end
for j=1:length(a)
A(j,i)=a(j);
%Se guardan uno a uno los coeficientes
end
end
%Respuesta en frecuencia
Hf=zeros(2048,L);
F=zeros(2048,L);
for k=1:L
[H,f]=freqz(B(:,k),A(:,k),2048,fm);
Hf(:,k)=H;
F(:,k)=f;
end
%Se grafica la respuesta en frecuencia de cada uno de los filtros
figure(14);
subplot(2,1,1);
plot(F,20*log10(abs(Hf)+eps));
title('Respuesta de magnitud del filtro N=8, Amin=0.3 dB');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud (dB)');
legend('Amax=20','Amax=60','Amax=120');
grid on;
subplot(2,1,2);
plot(F,unwrap(angle(Hf))*180/pi);
title('Respuesta de fase del filtro N=8, Amax=0.3 dB');
xlabel('Frecuencia (Hz)');
147
ylabel('Fase (º)');
legend('Amax=20','Amax=60','Amax=120');
grid on;
%************************************************************************
%************************************************************************
%Punto (5)
%************************************************************************
fm=8000;
%Frecuencia de muestreo
%Parámetros del filtro
N=6;
wn=[300 500];
%Orden del filtro
%Cálculo de los coeficientes de un filtro IIR tipo eliptico
[b1,a1]=cheby1(N,0.5,wn/(fm/2));
%Respuesta en frecuencia
[H,f]=freqz(b1,a1,2048,fm);
%Se grafican los resultados
figure(15);
subplot(2,1,1);
plot(f,20*log10(abs(H)));
title('Respuesta de magnitud del filtro IIR pasabanda, Chebyshev Tipo
I');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud (dB)');
grid on;
subplot(2,1,2);
plot(f,unwrap(angle(H))*180/pi);
title('Respuesta de fase del filtro IIR pasabanda, Chebyshev Tipo I');
xlabel('Frecuencia (Hz)');
ylabel('Fase (º)');
grid on;
%************************************************************************
%************************************************************************
%Punto (6)
%************************************************************************
L_medio=200;
%Mitad de la cantidad de muestras a recolectar
treq=2*L_medio/fm;
%Tiempo requerido para recolectar las muestras
t=0:1/(fm-1):treq;
%Vector de muestras a recolectar
%Señal de entrada
xin1=sin(2*pi*120*t);
xin2=sin(2*pi*400*t);
xin3=sin(2*pi*680*t);
148
x_in=xin1+xin2+xin3;
%Filtrando
h=filter(b1,a1,x_in);
%Se grafica la salida del filtro
figure(16)
plot(t,h,t,x_in,':')
title('Salida del filtro');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
legend('Salida del filtro','Señal de entrada');
grid on;
%************************************************************************
%************************************************************************
%Punto (7)
%************************************************************************
fm=8000;
%Frecuencia de muestreo
%Parámetros del filtro
N=6;
wn=[300 500];
[b2,a2]=cheby1(N,0.5,wn/(fm/2),'stop');
[H,f]=freqz(b2,a2,2048,fm);
%Orden del filtro
%Cálculo de los coeficientes de
%un filtro IIR tipo elíptico
%Respuesta en frecuencia
%Se grafican los resultados
figure(18);
subplot(2,1,1);
plot(f,20*log10(abs(H)));
title('Respuesta de magnitud del filtro IIR rechazabanda, Chebyshev Tipo
I');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud (dB)');
grid on;
subplot(2,1,2);
plot(f,unwrap(angle(H))*180/pi);
title('Respuesta de fase del filtro IIR rechazabanda, Chebyshev Tipo I');
xlabel('Frecuencia (Hz)');
ylabel('Fase (º)');
grid on;
%************************************************************************
149
%************************************************************************
%Punto (8)
%************************************************************************
%Filtrando
h=filter(b2,a2,x_in);
figure(19)
plot(t,h,t,x_in,':')
title('Salida del filtro');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
legend('Salida del filtro','Señal de entrada');
grid on;
%************************************************************************
%************************************************************************
%Punto (9)
%************************************************************************
%Frecuencia de muestreo
fm=8000;
%Frecuencias de la banda de paso del filtro pasabanda
wn=[1310 2120]/(fm/2);
%Parámetros del filtro
W=[2500 2600]/(fm/2);
Wp=W(1);
Ws=W(2);
R=[0.3 40];
Rp=R(1);
Rs=R(2);
%Cálculo del orden del filtro
[n,Wn] = ellipord(Wp,Ws,Rp,Rs,'s');
%Cálculo de los coeficientes de un filtro analógico tipo elíptico o cauer
[numa,dena]=ellip(n,Rp,Rs,Wn*(fm/2)*2*pi,'low','s');
%Respuesta en frecuencia del filtro analógico
[H1,f1]=freqs(numa,dena,fm);
%Utilizando la transformación bilineal se pasa de un filtro analógico a
*un filtro digital
[numd,dend] = bilinear(numa,dena,fm,1000);
%Ahora se hace una transformación espectral pasando de un filtro pasobajo
*a un filtro pasabanda
[b2,a2]=iirlp2bp(numd,dend,0.3,wn);
%Respuesta en frecuencia del filtro IIR basado en un filtro analógico
%pasobajo elíptico.
[H2,f2]=freqz(b2,a2,2048,fm);
150
%Se grafican los resultados
figure(20)
subplot(3,1,1);
plot(f1/(2*pi),20*log10(abs(H1)));
title('Respuesta de magnitud del filtro pasobajo, Elíptico');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud (dB)');
grid on;
subplot(3,1,2);
plot(f2,20*log10(abs(H2)));
title('Respuesta de magnitud del filtro pasabanda IIR');
xlabel('Frecuencia normalizada (\omega en unidades de \pi)');
ylabel('Magnitud (dB)');
grid on;
subplot(3,1,3);
plot(f2/(fm/2),unwrap(angle(H2))*180/pi);
title('Respuesta de fase del filtro pasabanda IIR');
xlabel('Frecuencia normalizada (\omega en unidades de \pi)');
ylabel('Fase (º)');
grid on;
%************************************************************************
151
A.2
Código fuente laboratorio de FFT
%************************************************************************
%LABORATORIO DE FFT
%************************************************************************
%************************************************************************
%REALIZADO POR: José Gabriel Fernández Carazo
%
A21941
%
Escuela de Ingeniería Eléctrica
%
Facultad de Ingeniería
%
Universidad de Costa Rica
%************************************************************************
%Ultima modificación: Julio del 2007.
%************************************************************************
%************************************************************************
%Se limpia el workspace de MATLAB y las variables en uso.
clc;
clear;
%************************************************************************
%************************************************************************
%CALCULO DE LA FFT
%************************************************************************
%Punto (1)
%************************************************************************
L_medio=128;
%Mitad de la cantidad de muestras a recolectar
Nfft=[16 32 64 128 256 512 1024];%Cantidad de puntos para calcular la FFT
fmax=1/2;
%Frecuencia máxima presente en la señal
fn=2*fmax;
%Frecuencia de muestreo según Nyquist
treq=2*L_medio/fn;
%Tiempo requerido para recolectar las muestras
fs=((2*L_medio-1)/treq); %División de tiempo para recolectar las muestras
n=0:1/fs:treq;
%Vector de muestras a recolectar
%Se define la secuencia de entrada
xin=cos(2*pi*1/8*n)+cos(2*pi*1/4*n)+cos(2*pi*13/50*n);
L=length(Nfft);
for i=1:L
%Cálculo de la DFT utilzando la FFT
Y=fft(xin,Nfft(i));
%FFT de Nfft puntos para la secuencia xin
Y1=fftshift(Y);
%Reordenamiento de los valores de la FFT
norm=max(abs(Y1));
%Para normalizar el espectro en magnitud
152
%Vector de frecuencias
M=Nfft(i)/2;
faux(M+1:Nfft(i))=0:M-1;
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 señales obtenidas
figure;
subplot(3,1,1);
plot(n,xin); axis([0 treq -3 3]);
title('Señal de entrada original');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
txtp=strcat('f muestreo = ',num2str(fn),' Hz');
legend(txtp);
grid on;
subplot(3,1,2);
plot(f,abs(Y1));
title('Espectro continuo en magnitud de la señal de entrada');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud |FFT|');
txtp=strcat('NFFT = ',num2str(Nfft(i)),' puntos');
legend(txtp);
grid on;
subplot(3,1,3);
stem(f,abs(Y1)/norm,'r');
title('Espectro discreto en magnitud de la señal de entrada');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txtp=strcat('NFFT = ',num2str(Nfft(i)),' puntos');
legend(txtp);
grid on;
end
%************************************************************************
%************************************************************************
%Punto (2)
%************************************************************************
Nfft2=128;
%Cantidad de puntos para calcular la FFT
L2_medio=50;
%Cantidad de muestras de la secuencia de entrada
t=0:L2_medio-1;
%Vector de muestras a recolectar
t2=0:L2_medio*4-1;
t2n=0:Nfft2-1;
fmax2=1/2;
%Frecuencia máxima presente en la señal
fn2=2*fmax2;
%Frecuencia de muestreo según Nyquist
treq2=2*L2_medio/fn2;
%Tiempo requerido para recolectar las muestras
fs2=((2*L2_medio-1)/treq2);%División de tiempo para recolectar muestras
t=0:1/fs2:treq2;
%Vector de muestras a recolectar
153
%Se define la secuencia de entrada
x2=cos(2*pi*1/8*t)+cos(2*pi*1/4*t)+cos(2*pi*13/50*t);
ceros=zeros(100,1);
%Se define el vector de ceros de relleno
ceros=ceros';
%Se traspone para unirlo al vector muestras
xnew=cat(2,x2,ceros);
%Vector de entrada relleno con ceros hasta 128
%Cálculo de la DFT utilzando la FFT
Y2=fft(xnew,Nfft2);
%FFT de Nfft puntos para la secuencia xnew
Y3=fftshift(Y2);
%Reordenamiento de los valores de la FFT
norm2=max(abs(Y3));
%Para normalizar el espectro en magnitud
%Vector de frecuencias
M1=Nfft2/2;
faux1(M1+1:Nfft2)=0:M1-1;
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 señales obtenidas
figure(8);
subplot(3,1,1);
plot(t2,xnew); axis([0 L2_medio*4 -3 3]);
title('Señal de entrada rellenada con ceros');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
txtp2=strcat('f muestreo = ',num2str(fn2),' Hz');
legend(txtp2);
grid on;
subplot(3,1,2);
plot(f1,abs(Y3));
title('Espectro continuo en magnitud de la señal de entrada');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud |FFT|');
grid on;
subplot(3,1,3);
stem(f1,abs(Y3)/norm2,'r');
title('Espectro discreto en magnitud de la señal de entrada');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
grid on;
%************************************************************************
%************************************************************************
%Punto (3)
%************************************************************************
%Recuperando la señal original a partir de la FFT inversa
x_recup=ifftshift(Y3);
%Se cancela el efecto de ordenar los
%componentes en frecuencia
x_recup=ifft(x_recup);
%Se aplica la FFT inversa en la señal
154
%Se grafican los resultados y se comprueba que se recupero la señal
figure(9);
subplot(2,1,1);
plot(t2,xnew,'-b'); axis([0 L2_medio*4 -3 3]);
title('Señal de entrada recuperada');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
grid on;
subplot(2,1,2);
plot(t2n,x_recup,'-r'); axis([0 L2_medio*4 -3 3]);
title('Señal de entrada recuperada');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
grid on;
%************************************************************************
%************************************************************************
%Punto (4)
%************************************************************************
L3_medio=1000;
%Mitad de la cantidad de muestras a recolectar
Nfft3=256;
%Cantidad de puntos para calcular la FFT
fmax3=2000;
%Frecuencia máxima presente en la señal
fn3=2*fmax3;
%Frecuencia de muestreo según Nyquist
treq3=2*L3_medio/fn3;
%Tiempo requerido para recolectar las muestras
fs3=((2*L3_medio-1)/treq3);%División de tiempo para recolectar muestras
t3=0:1/fs3:treq3;
%Vector de muestras a recolectar
%Se definen las señales
x1=0.04742*cos(2*pi*200*t3+1.5077);
x2=0.1362*cos(2*pi*400*t3+1.8769);
x3=0.4884*cos(2*pi*500*t3-0.1852);
x4=0.4884*cos(2*pi*1600*t3-1.4488);
x5=0.1223*cos(2*pi*1700*t3);
%Se define la señal compuesta por las señales anteriores
xtotal=x1+x2+x3+x4+x5;
%Cálculo de la DFT utilzando
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
%Cálculo 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 señales obtenidas
figure(10);
subplot(3,1,1);
plot(t3,xtotal); axis([0 treq3 -3 3]);
title('Señal de entrada original');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
txtp3=strcat('f muestreo = ',num2str(fn3),' Hz');
legend(txtp3);
grid on;
subplot(3,1,2);
plot(f3,abs(Y5));
title('Espectro continuo en magnitud de la señal de entrada');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud |FFT|');
grid on;
subplot(3,1,3);
plot(f3,Yf,'b');
title('Espectro continuo de fase de la señal de entrada');
xlabel('Frecuencia (Hz)');
ylabel('Fase (rad)');
grid on;
figure(11);
subplot(2,1,1);
stem(f3,abs(Y5)/norm,'r');
title('Espectro discreto en magnitud de la señal de entrada');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
grid on;
subplot(2,1,2);
stem(f3,Yf,'m');
title('Espectro discreto de fase de la señal de entrada');
xlabel('Frecuencia (Hz)');
ylabel('Fase (rad)');
grid on;
%************************************************************************
156
A.3
Código fuente laboratorio de modulación AM
%************************************************************************
%LABORATORIO DE MODULACION AM
%************************************************************************
%************************************************************************
%REALIZADO POR: José Gabriel Fernández Carazo
%
A21941
%
Escuela de Ingeniería Eléctrica
%
Facultad de Ingeniería
%
Universidad de Costa Rica
%************************************************************************
%Ultima modificación: Julio del 2007.
%************************************************************************
%************************************************************************
%Se limpia el workspace de MATLAB y las variables en uso.
clc;
clear;
%************************************************************************
%************************************************************************
%MODULACION AM
%************************************************************************
%Punto (1)
%************************************************************************
%Modulación en amplitud de un tono de prueba
L_medio=1000;
%Mitad de la cantidad de muestras a recolectar
fm=1000;
%Frecuencia de muestreo
treq=2*L_medio/fm;
%Tiempo requerido para recolectar las muestras
t=0:1/(fm-1):treq;
%Vector de muestras a recolectar
%Señal mensaje (tono):
fs=fm;
ftono=10;
wtono=2*pi*ftono;
mtono=1.6*cos(wtono*t);
%Frecuencia de muestreo
%Frecuencia de la señal a modular
%Frecuencia en rads/s
%Señal a modular
%Señal modulada (AM)
fc=100;
s=modulate(mtono,fc,fs,'am');
%Frecuencia de la señal portadora
%Señal modulada
%Demodulación (AM)
mreconst = demod(s,fc,fs,'am');
%************************************************************************
157
%************************************************************************
%Punto (2)
%************************************************************************
%Gráfica de la señal tono de prueba
figure(1)
subplot(3,1,1);
plot(t,mtono);
title('Señal tono de prueba');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
txt=strcat('f muestreo =',num2str(fs),' Hz');
legend(txt);
grid on;
%Gráfica de la señal modulada
subplot(3,1,2)
plot(t,s);
title('Señal modulada');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
txt=strcat('f muestreo =',num2str(fs),' Hz');
legend(txt);
axis([0 treq/4 -2 2]);
grid on;
%Gráfica de la señal demodulada
subplot(3,1,3);
plot(t,mreconst);
title('Señal reconstruida');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
axis([0 treq -3 3]);
txt=strcat('f muestreo =',num2str(fs),' Hz');
legend(txt);
grid on;
%Cálculo de la DFT utilzando la FFT
Nfft=1024;
Y=fft(s,Nfft);
%FFT de Nfft puntos para la señal s
Y2=fftshift(Y);
%Reordenamiento de los valores de la FFT
norm=max(abs(Y2));
%Para normalizar el espectro en magnitud
Yf=unwrap(angle(Y2));
%Cálculo de las componentes de fase de la señal
%Vector de frecuencias
M=Nfft/2;
faux(M+1:Nfft)=0:M-1;
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 señal modulada');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
grid on;
subplot(2,1,2);
plot(f,Yf,'b');
title('Espectro continuo de fase de la señal modulada');
xlabel('Frecuencia (Hz)');
ylabel('Fase (rads)');
grid on;
%Cálculo de la DFT utilzando la
Ytono=fft(mtono,Nfft);
Y2tono=fftshift(Ytono);
norm1=max(abs(Y2tono));
Yftono=unwrap(angle(Y2tono));
FFT de la señal tono de prueba
%FFT de Nfft puntos para la señal mtono
%Reordenamiento de los valores de la FFT
%Para normalizar el espectro en magnitud
%Cálculo de las componentes de fase
%Cálculo de la DFT utilzando la FFT de la señal reconstruida
Yreconst=fft(mreconst,Nfft);
%FFT de Nfft puntos para la señal mtono
Y2reconst=fftshift(Yreconst);
%Reordenamiento de los valores de la FFT
norm2=max(abs(Y2reconst));
%Para normalizar el espectro en magnitud
Yfreconst=unwrap(angle(Y2reconst)); %Cálculo de las componentes de fase
%Se grafican los resultados
figure(3)
subplot(2,1,1);
plot(f,abs(Y2tono)/norm1,f,abs(Y2reconst)/norm2);
title('Espectro continuo en magnitud');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
legend('Señal tono de prueba','Señal reconstruida');
grid on;
subplot(2,1,2);
plot(f,Yftono,f,Yfreconst);
title('Espectro continuo de fase');
xlabel('Frecuencia (Hz)');
ylabel('Fase (rads)');
legend('Señal tono de prueba','Señal reconstruida');
grid on;
%************************************************************************
%************************************************************************
%Punto (3) y (4)
%************************************************************************
L_medio=2000;
%Mitad de la cantidad de muestras a recolectar
fm=1000;
%Frecuencia de muestreo
treq=2*L_medio/fm;
%Tiempo requerido para recolectar las muestras
159
t=0:1/(fm-1):treq;
%Vector de muestras a recolectar
Ap=5;
indmod=[0.45 1 2.6];
ka=0.5;
%Amplitud de la portadora
%Indice de modulación
%Indice de sensibilidad
%Modulación para cada uno de los diferentes índices de modulación
L=length(indmod);
for i=1:L
Am1=indmod(i)/ka;
fym=5;
fyc=10*fym;
%Señal a modular
ym=Am1*cos(2*pi*fym*t);
%Señal portadora
yc=Ap*cos(2*pi*fyc*t);
%señal modulada
ys=(1+ka*ym).*yc;
ysmax=max(abs(ys));
%Se grafican los resultados
figure(4);
if i==1
subplot(3,1,1);
plot(t,real(ys));
title('Señal AM con índice de modulación m<1');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
axis([0 treq/4 -(ysmax+1) ysmax+1]);
grid on;
end
if i==2
subplot(3,1,2);
plot(t,real(ys));
title('Señal AM con índice de modulación m=1');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
axis([0 treq/4 -(ysmax+1) ysmax+1]);
grid on;
end
if i==3
subplot(3,1,3);
plot(t,real(ys));
title('Señal AM con índice de modulación m>1');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
axis([0 treq/4 -(ysmax+1) ysmax+1]);
grid on;
160
end
figure(5);
if i==1
subplot(4,1,1);
plot(t,yc);
title('Señal portadora');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
axis([0 treq/4 -Ap Ap]);
txtp=strcat('fc=',num2str(fyc));
legend(txtp);
grid on;
m<1');
subplot(4,1,2);
plot(t,ym);
title('Señal a modular para obtener un índice de modulación
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
txtp=strcat('Amplitud media=',num2str(Am1));
legend(txtp);
grid on;
end
if i==2
subplot(4,1,3);
plot(t,ym);
title('Señal a modular para obtener un índice de modulación
m=1');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
txtp=strcat('Amplitud media=',num2str(Am1));
legend(txtp);
grid on;
end
if i==3
subplot(4,1,4);
plot(t,ym);
title('Señal a modular para obtener un índice de modulación
m>1');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
txtp=strcat('Amplitud media=',num2str(Am1));
legend(txtp);
grid on;
end
end
%************************************************************************
161
%************************************************************************
%Punto (5)
%************************************************************************
%Modulación de una señal con ruido utilzando las funciones "modulate" y
%"demod"
L_medio=1000;
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
%Señal modulada (AM)
fc=100;
s=modulate(mtono,fc,fs,'am');
%Frecuencia de la señal portadora
%Señal modulada
% Portadora
fc=50;
% Señal mensaje
fs=fm;
m=15*sin(10*pi*t)+10*sin(20*pi*t);
% Señal modulada
g=modulate(m,fc,fs,'am');
% Ruido
g_ruido=g+8*randn(1,length(g));
% Señal reconstruida
m_reconst=demod(g,fc,fs,'am');
figure(6);
subplot(3,1,1);
plot(t,m);
title('Señal a modular');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
txtp=strcat('fmuestreo=',num2str(fm));
legend(txtp);
grid on;
subplot(3,1,2);
plot(t,g_ruido);
title('Señal modulada con ruido adherido en el canal de transmisión');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
txtp=strcat('fmuestreo=',num2str(fm));
legend(txtp);
grid on;
162
subplot(3,1,3);
plot(t,m_reconst,t,m);
title('Señal reconstruida o demodulada');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
legend('Señal demodulada o reconstruida','Señal original');
grid on;
%************************************************************************
%************************************************************************
%DETECTOR DE ENVOLVENTE (LEY CUADRATICA)
%************************************************************************
%Punto (1)
%************************************************************************
L_medio=2000;
%Mitad de la cantidad de muestras a recolectar
fm=8000;
%Frecuencia de muestreo
treq=2*L_medio/fm;
%Tiempo requerido para recolectar las muestras
t=0:1/(fm-1):treq;
%Vector de muestras a recolectar
Ap=5;
indmod=1;
ka=0.5;
%Amplitud de la portadora
%Indice de modulación
%Indice de sensibilidad
Am1=indmod/ka;
fym=200;
fyc=10*fym;
%Amplitud de la señal a modular
%Frecuencia de la señal a modular
%Frecuencia de la portadora 10 veces la
%Frecuencia de la señal a modular
%Señal a modular
ym=Am1*cos(2*pi*fym*t);
%Señal portadora
yc=Ap*cos(2*pi*fyc*t);
%señal modulada
ys=(1+ka*ym).*yc;
ysmax=max(abs(ys));
%Se eleva al cuadrado
ys2=ys.^2;
%Se pasa por un filtro pasobajo
b1=fir1(128,fym/(fm/2),'low');
h=filter(b1,1,ys2);
%Se le saca la raíz cuadrada
y=sqrt(h);
[H f]=freqz(b1,1,2048,fm);
163
%Se pasa por un filtro pasoalto para eliminar la componente DC
c=[0.2 0.5 0.7 0.89 0.98];
L2=length(c);
Hm=zeros(2048,L2);
fil=zeros(length(y),L2);
for i=1:L2;
b3=[1+c(i) -(1+c(i))];
a3=[2 -2*c(i)];
h3=filter(b3,a3,y);
fil(:,i)=h3;
[H3 f3]=freqz(b3,a3,2048,fm);
Hm(:,i)=H3;
end
%se grafican los resultados
figure(7)
subplot(3,1,1);
[AX,H1,H2]=plotyy(f,20*log10(abs(H)+eps),f,unwrap(angle(H)),'plot');
set(get(AX(1),'Ylabel'),'String','Magnitud (dB)')
set(get(AX(2),'Ylabel'),'String','Fase (rads)')
set(AX(1),'YGrid','on');
set(AX(2),'YGrid','on');
title('Respuesta en magnitud y fase de un filtro FIR pasobajo N=64');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud (dB)');
grid on;
subplot(3,1,2);
plot(f3,20*log10(abs(Hm)+eps));
title('Respuesta en magnitud de un filtro digital pasoalto');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud (dB)');
legend('c=0.2','c=0.5','c=0.7','c=0.89','c=0.98');
ylim([-350 50]);
xlim([0 350])
grid on;
subplot(3,1,3);
plot(f3,unwrap(angle(Hm)));
title('Respuesta de fase de un filtro digital pasoalto');
xlabel('Frecuencia (Hz)');
ylabel('Fase(rads)');
legend('c=0.2','c=0.5','c=0.7','c=0.89','c=0.98');
grid on;
c=0.92;
b3=[1+c -(1+c)];
a3=[2 -2*c];
h3=filter(b3,a3,y);
164
figure(8)
subplot(2,1,1);
plot(t,ys);
title('Señal modulada');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
axis([0 treq/4 -(ysmax+1) ysmax+1]);
grid on;
subplot(2,1,2);
plot(t,real(h3));
title('Salida del filtro pasoalto (señal demodulada utilizando un
detector de envolvente de Ley Cuadrática');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
axis([0 treq/4 -max(abs(h3)) max(abs(h3))]);
grid on;
%Cálculo de la DFT utilzando la FFT
Nfft=2048;
Y=fft(ym,Nfft);
%FFT de Nfft puntos para la señal de entrada
Y2=fftshift(Y);
%Reordenamiento de los valores de la FFT
norm2=max(abs(Y2)); %Para normalizar el espectro en magnitud
%Vector de frecuencias
M1=Nfft/2;
faux1(M1+1:Nfft)=0:M1-1;
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 señal de entrada');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;
165
subplot(2,1,2);
plot(f2,abs(Y4)/norm4);
title('Espectro continuo en magnitud de la salida del filtro pasoalto');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;
%************************************************************************
166
A.4
Código fuente laboratorio de modulación DSBSC-AM
%************************************************************************
%LABORATORIO DE MODULACION DSBSC-AM
%************************************************************************
%************************************************************************
%REALIZADO POR: José Gabriel Fernández Carazo
%
A21941
%
Escuela de Ingeniería Eléctrica
%
Facultad de Ingeniería
%
Universidad de Costa Rica
%************************************************************************
%Ultima modificación: Julio del 2007.
%************************************************************************
%************************************************************************
%Se limpia el workspace de MATLAB y las variables en uso.
clc;
clear;
%************************************************************************
%************************************************************************
%MODULACION DSBSC-AM
%************************************************************************
%Punto (1)
%************************************************************************
%Modulación en amplitud de doble banda lateral con portadora suprimida
L_medio=10000;
%Mitad de la cantidad de muestras a recolectar
fm=8000;
%Frecuencia de muestreo
treq=2*L_medio/fm;
%Tiempo requerido para recolectar las muestras
t=0:1/(fm-1):treq;
%Vector de muestras a recolectar
%Señal a demodular
fmt=20;
mt=10*sin(2*pi*fmt*t).*exp(-0.5*t);
%mt=1+0.4*cos(2*pi*fmt*t);
fc=200;
yc=cos(2*pi*fc*t);
%Señal DSBSC-AM
s1=mt.*yc;
%Se inicia la etapa de demodulación
s2=s1.*(2*yc);
167
%Se pasa por un filtro pasobajo para obtener la señal demodulada
b1=fir1(70,2*fmt/(fm/2),'low');
h=filter(b1,1,s2);
%Se calcula la respuesta en frecuencia del filtro
[H f]=freqz(b1,1,2048,fm);
%************************************************************************
%************************************************************************
%Punto (2)
%************************************************************************
%Se grafican los resultados
figure(1)
subplot(3,1,1)
plot(t,mt);
title('Señal a modular');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
ylim([-15 15]);
grid on;
subplot(3,1,2)
plot(t,s1);
title('Señal modulada (Señal DSBSC-AM)');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
xlim([0 treq/4]);
grid on;
subplot(3,1,3)
plot(t,h);
title('Señal demodulada');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
ylim([-15 15]);
grid on;
figure(2)
subplot(2,1,1)
plot(f,20*log10(abs(H)+eps));
title('Respuesta en magnitud de un filtro FIR pasobajo N=70');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud (dB)');
grid on;
subplot(2,1,2)
plot(f,unwrap(angle(H)));
title('Respuesta de fase de un filtro FIR pasobajo N=70');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud (dB)');
grid on;
168
%************************************************************************
%************************************************************************
%Punto (3)
%************************************************************************
%Cálculo de la DFT utilzando la FFT
Nfft=2048;
Y=fft(s2,Nfft);
%FFT de Nfft puntos para la entrada del filtro
Y2=fftshift(Y);
%Reordenamiento de los valores de la FFT
norm2=max(abs(Y2)); %Para normalizar el espectro en magnitud
%Vector de frecuencias
M1=Nfft/2;
faux1(M1+1:Nfft)=0:M1-1;
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 señal de entrada al filtro');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
xlim([-1000 1000]);
grid on;
subplot(2,1,2);
plot(f2,abs(Y4)/max(abs(Y4)));
title('Espectro continuo en magnitud de la señal de salida del filtro');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
xlim([-1000 1000]);
grid on;
%************************************************************************
169
%************************************************************************
%Punto (5)
%************************************************************************
%Señal modulada (AM)
s3=modulate(mt,fc,fm,'amdsb-sc');
%Señal modulada
%Demodulación (AM)
mreconst = 2*demod(s3,fc,fm,'amdsb-sc');
%************************************************************************
%************************************************************************
%Punto (6)
%************************************************************************
figure(4)
subplot(2,1,1);
plot(t,s3);
title('Señal modulada utilizando la función "modulate"');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
grid on;
subplot(2,1,2);
plot(t,mreconst);
title('Señal demodulada utilizando la función "demod"');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
grid on;
%Cálculo de la DFT utilzando la FFT
Nfft=2048;
Y=fft(s3,Nfft);
%FFT de Nfft puntos para la señal modulada
Y2=fftshift(Y);
%Reordenamiento de los valores de la FFT
norm2=max(abs(Y2)); %Para normalizar el espectro en magnitud
%Vector de frecuencias
M1=Nfft/2;
faux1(M1+1:Nfft)=0:M1-1;
faux1(1:M1)=-M1:-1;
f1=fm*faux1/(Nfft);
%Vector de frecuencias desordenado
%Vector de frecuencias ordenado
%Vector de frecuencias normalizado
Y3=fft(mreconst,Nfft);
Y4=fftshift(Y3);
norm2=max(abs(Y4));
%FFT de Nfft puntos para la señal reconstruida
%Reordenamiento de los valores de la FFT
%Para normalizar el espectro en magnitud
%Vector de frecuencias
M1=Nfft/2;
faux1(M1+1:Nfft)=0:M1-1;
faux1(1:M1)=-M1:-1;
f2=fm*faux1/(Nfft);
%Vector de frecuencias desordenado
%Vector de frecuencias ordenado
%Vector de frecuencias normalizado
170
figure(5)
subplot(2,1,1);
plot(f1,abs(Y2)/max(abs(Y2)));
title('Espectro continuo en magnitud de la señal modulada con
"modulate"');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
xlim([-1000 1000]);
grid on;
subplot(2,1,2);
plot(f2,abs(Y4)/max(abs(Y4)));
title('Espectro continuo en magnitud de la señal demodulada con
"demod"');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
xlim([-1000 1000]);
grid on;
%************************************************************************
171
A.5
Código fuente laboratorio de modulación SSB-AM
%************************************************************************
%LABORATORIO DE MODULACION SSB-AM
%************************************************************************
%************************************************************************
%REALIZADO POR: José Gabriel Fernández Carazo
%
A21941
%
Escuela de Ingeniería Eléctrica
%
Facultad de Ingeniería
%
Universidad de Costa Rica
%************************************************************************
%Ultima modificación: Julio del 2007.
%************************************************************************
%************************************************************************
%Se limpia el workspace de MATLAB y las variables en uso.
clc;
clear;
%************************************************************************
%************************************************************************
%MODULACION SSB-AM
%************************************************************************
%Punto (1) y (2)
%************************************************************************
%Modulación en amplitud de banda lateral con portadora suprimida
Nfft=1024;
%Cantidad de puntos a calcular para la FFT
L_medio=500;
%Mitad de la cantidad de muestras a recolectar
fm=8000;
%Frecuencia de muestreo
treq=2*L_medio/fm;
%Tiempo requerido para recolectar muestras
fs=((2*L_medio-1)/treq); %División de tiempo para recolectar muestras
t=0:1/fs:treq;
%Vector de muestras a recolectar
%Vector de frecuencias para los espectros en frecuencia
M=Nfft/2;
faux(M+1:Nfft)=0:M-1;
%Vector de frecuencias desordenado
faux(1:M)=-M:-1;
%Vector de frecuencias ordenado
f=fm*faux/(Nfft);
%Vector de frecuencias normalizado
%Parámetros de las señales a utilizar
fc=2000;
%Frecuencia de la portadora
Ap=2;
%Amplitud de la portadora
Am=0.5;
%Amplitud de la señal a modular
fmt=600;
%Frecuencia de la señal a modular
172
%Señal a modular
mt=Am*cos(2*pi*fmt*t);
%Señal portadora
yc=Ap*sin(2*pi*fc*t);
%Se crea una señal DSBSC-AM
at=mt.*yc;
%MODULACION SSB UTILIZANDO LA BANDA LATERAL INFERIOR
%Se pasa por un filtro pasobajo con frecuencia de corte igual a la
%portadora para dejar pasar solo las señales con frecuencias menores a la
%frecuencia de la portadora
w=fc;
%Frecuencia de corte del filtro paso bajo
N1=64;
%Orden del filtro
b1=fir1(N1,w/(fm/2),'low');
%Diseño del filtro
h1=filter(b1,1,at);
%Se filtra la señal
%Se calcula la respuesta en frecuencia del filtro
[H1 f1]=freqz(b1,1,2048,fm);
%MODULACION SSB UTILIZANDO LA BANDA LATERAL SUPERIOR
%Se pasa por un filtro pasoalto con frecuencia de corte igual a la
%portadora para dejar pasar solo las señales con frecuencias mayores a la
%frecuencia de la portadora
w=fc;
%Frecuencia de corte del filtro paso bajo
N2=64;
b2=fir1(N2,w/(fm/2),'high');
%Diseño del filtro
h2=filter(b2,1,at);
%Se filtra la señal
%Se calcula la respuesta en frecuencia del filtro
[H2 f2]=freqz(b2,1,2048,fm);
%************************************************************************
%************************************************************************
%Punto (3)
%************************************************************************
%Se grafican las señales producidas por el generador
figure(1)
subplot(3,1,1);
plot(t,mt);
axis([0 treq -1 1]);
txt=strcat('Señal a modular con una frecuencia de ',num2str(fmt),' Hz');
title(txt);
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
txt=strcat('fmuestreo=',num2str(fs),' Hz');
legend(txt);
grid on;
173
subplot(3,1,2);
plot(t,yc);
xlim([0 treq/2]);
txt=strcat('Señal portadora con una frecuencia de ',num2str(fc),' Hz');
title(txt);
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
txt=strcat('fmuestreo=',num2str(fs),' Hz');
legend(txt);
grid on;
subplot(3,1,3);
plot(t,at);
axis([0 treq/2 -1 1]);
title('Señal DSBSC-AM generada');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
txt=strcat('fmuestreo=',num2str(fs),' Hz');
legend(txt);
grid on;
%Respuesta en frecuencia de los filtros pasobajo y paso alto
figure(2)
subplot(2,1,1)
plot(f1,20*log10(abs(H1)+eps),'-m');
txt=strcat('Respuesta en magnitud de un filtro FIR pasobajo N=
',num2str(N1));
title(txt);
xlabel('Frecuencia (Hz)');
ylabel('Magnitud (dB)');
txt=strcat('Frecuencia de corte ',num2str(w),' Hz');
legend(txt);
grid on;
subplot(2,1,2)
plot(f1,unwrap(angle(H1)),'-m');
txt=strcat('Respuesta de fase de un filtro FIR pasobajo N=
',num2str(N1));
title(txt);
xlabel('Frecuencia (Hz)');
ylabel('Magnitud (dB)');
txt=strcat('Frecuencia de corte ',num2str(w),' Hz');
legend(txt);
grid on;
figure(3)
subplot(2,1,1)
plot(f2,20*log10(abs(H2)+eps),'-r');
txt=strcat('Respuesta en magnitud de un filtro FIR pasoalto N=
',num2str(N2));
title(txt);
174
xlabel('Frecuencia (Hz)');
ylabel('Magnitud (dB)');
txt=strcat('Frecuencia de corte ',num2str(w),' Hz');
legend(txt);
grid on;
subplot(2,1,2)
plot(f2,unwrap(angle(H2)),'-r');
txt=strcat('Respuesta de fase de un filtro FIR pasoalto N=
',num2str(N2));
title(txt);
xlabel('Frecuencia (Hz)');
ylabel('Magnitud (dB)');
txt=strcat('Frecuencia de corte ',num2str(w),' Hz');
legend(txt);
grid on;
%Señales después de pasar por los filtros pasobajo y pasoalto
figure(4)
subplot(3,1,1);
plot(t,at);
xlim([0 treq/2]);
title('Señal DSBSC-AM generada');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
txt=strcat('fmuestreo=',num2str(fs),' Hz');
legend(txt);
grid on;
subplot(3,1,2);
plot(t,h1,'-m');
xlim([0 treq/2]);
title('Salida del filtro pasobajo selector de la banda lateral
inferior');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
legend('SSB banda lateral inferior');
grid on;
subplot(3,1,3);
plot(t,h2,'-r');
xlim([0 treq/2]);
title('Salida del filtro pasobajo selector de la banda lateral
superior');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
legend('SSB banda lateral superior');
grid on;
%************************************************************************
175
%************************************************************************
%Punto (4)
%************************************************************************
%CALCULO DE LOS ESPECTROS
%Cálculo de la DFT utilzando la FFT para la señal DSBSC-AM
Y1=fft(at,Nfft);
%FFT de Nfft puntos
Y1=fftshift(Y1);
%Reordenamiento de los valores de la FFT
norm1=max(abs(Y1));
%Para normalizar el espectro en magnitud
Yf1=unwrap(angle(Y1));
%Cálculo de las componentes de fase
%Cálculo de la DFT utilzando la FFT para la salida del filtro pasobajo
%selector de la banda lateral inferior
Y2=fft(h1,Nfft);
%FFT de Nfft puntos
Y2=fftshift(Y2);
%Reordenamiento de los valores de la FFT
norm2=max(abs(Y2));
%Para normalizar el espectro en magnitud
Yf2=unwrap(angle(Y2));
%Cálculo de las componentes de fase
%Cálculo de la DFT utilzando la FFT para la salida del filtro pasoalto
Y3=fft(h2,Nfft);
%FFT de Nfft puntos
Y3=fftshift(Y3);
%Reordenamiento de los valores de la FFT
norm3=max(abs(Y3));
%Para normalizar el espectro en magnitud
Yf3=unwrap(angle(Y3));
%Cálculo de las componentes de fase
%Espectros de frecuencia de las señales
figure(5)
subplot(3,1,1);
plot(f,abs(Y1)/norm1)
title('Espectro continuo en magnitud de la señal de entrada');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;
subplot(3,1,2);
plot(f,abs(Y2)/norm2,'-m');
title('Espectro continuo en magnitud de la señal SSB de banda lateral
inferior');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;
subplot(3,1,3);
plot(f,abs(Y3)/norm3,'-r');
title('Espectro continuo en magnitud de la señal SSB de banda lateral
superior');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
176
legend(txt);
grid on;
figure(6)
subplot(3,1,1);
plot(f,Yf1);
title('Espectro continuo de fase de la señal de entrada');
xlabel('Frecuencia (Hz)');
ylabel('Fase (rads)');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;
subplot(3,1,2);
plot(f,Yf2,'-m');
title('Espectro continuo de fase de la señal SSB de banda lateral
inferior');
xlabel('Frecuencia (Hz)');
ylabel('Fase (rads)');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;
subplot(3,1,3);
plot(f,Yf3,'-r');
title('Espectro continuo de fase de la señal SSB de banda lateral
superior');
xlabel('Frecuencia (Hz)');
ylabel('Fase (rads)');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;
%************************************************************************
%************************************************************************
%DEMODULACION SSB-AM
%************************************************************************
%Punto (1) y (2)
%************************************************************************
%Se implementa el modulador de la figura 3.7 del laboratorio
%DEMODULACION SSB DE BANDA LATERAL INFERIOR
mssbinf=h1;
%Se modula la señal por la portadora nuevamente
a2t=mssbinf.*yc;
%Luego esta señal se pasa por un filtro pasobajo con una frecuencia de
%corte de tal manera que deje pasar la señal original
N3=64;
b3=fir1(N3,fmt/(fm/2),'low');
177
h3=filter(b3,1,a2t);
%Se calcula la respuesta en frecuencia del filtro
[H3 f3]=freqz(b3,1,2048,fm);
%DEMODULACION SSB DE BANDA LATERAL SUPERIOR
mssbsup=h2;
%Se modula la señal por la portadora nuevamente
a3t=mssbsup.*yc;
%Luego esta señal se pasa por un filtro pasobajo con una frecuencia de
%corte de tal manera que deje pasar la señal original
h4=filter(b3,1,a3t);
%************************************************************************
%************************************************************************
%Punto (3)
%************************************************************************
figure(7)
subplot(3,1,1);
plot(t,mt);
axis([0 treq/2 -1 1]);
txt=strcat('Señal a modular con una frecuencia de ',num2str(fmt),' Hz');
title(txt);
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
txt=strcat('fmuestreo=',num2str(fs),' Hz');
legend(txt);
grid on;
subplot(3,1,2);
plot(t,h3);
xlim([0 treq/2]);
title('Señal reconstruida a partir de una señal SSB de banda lateral
inferior');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
legend('Señal reconstruida por SSB inferior');
grid on;
subplot(3,1,3);
plot(t,h4);
xlim([0 treq/2]);
title('Señal reconstruida a partir de una señal SSB de banda lateral
superior');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
legend('Señal reconstruida por SSB superior');
grid on;
178
%Respuesta en frecuencia de los filtros pasobajo y paso alto
figure(8)
subplot(2,1,1)
plot(f3,20*log10(abs(H3)+eps),'-m');
txt=strcat('Respuesta en magnitud de un filtro FIR pasobajo N=
',num2str(N3));
title(txt);
xlabel('Frecuencia (Hz)');
ylabel('Magnitud (dB)');
txt=strcat('Frecuencia de corte ',num2str(fmt),' Hz');
legend(txt);
grid on;
subplot(2,1,2)
plot(f3,unwrap(angle(H3)),'-m');
txt=strcat('Respuesta de fase de un filtro FIR pasobajo N=
',num2str(N3));
title(txt);
xlabel('Frecuencia (Hz)');
ylabel('Magnitud (dB)');
txt=strcat('Frecuencia de corte ',num2str(fmt),' Hz');
legend(txt);
grid on;
%************************************************************************
%************************************************************************
%Punto (4)
%************************************************************************
%CALCULO DE LOS ESPECTROS
%Cálculo de la DFT utilzando la FFT para la señal a modular
Y4=fft(mt,Nfft);
%FFT de Nfft puntos para la señal "mt"
Y4=fftshift(Y4);
%Reordenamiento de los valores de la FFT
norm4=max(abs(Y4));
%Para normalizar el espectro en magnitud
Yf4=unwrap(angle(Y4));
%Cálculo de las componentes de fase
%Cálculo de la DFT utilzando la FFT para la salida del filtro pasobajo
%selector de la banda lateral inferior
Y5=fft(h3,Nfft);
%FFT de Nfft puntos
Y5=fftshift(Y5);
%Reordenamiento de los valores de la FFT
norm5=max(abs(Y5));
%Para normalizar el espectro en magnitud
Yf5=unwrap(angle(Y5));
%Cálculo de las componentes de fase
%Cálculo de la DFT utilzando la FFT para la señal DSBSC-AM
Y6=fft(h4,Nfft);
%FFT de Nfft puntos
Y6=fftshift(Y6);
%Reordenamiento de los valores de la FFT
norm6=max(abs(Y6));
%Para normalizar el espectro en magnitud
Yf6=unwrap(angle(Y6));
%Cálculo de las componentes de fase
179
%Espectros de frecuencia de las señales
figure(9)
subplot(3,1,1)
plot(f,abs(Y4)/norm4)
title('Espectro continuo en magnitud de la señal de entrada');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;
subplot(3,1,2)
plot(f,abs(Y5)/norm5,'-m')
title('Espectro continuo en magnitud de la señal por demodulación SSB de
banda lateral inferior');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;
subplot(3,1,3)
plot(f,abs(Y6)/norm6,'-r')
title('Espectro continuo en magnitud de la señal por demodulación SSB de
banda lateral superior');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;
figure(10)
subplot(3,1,1);
plot(f,Yf4);
title('Espectro continuo de fase de la señal de entrada');
xlabel('Frecuencia (Hz)');
ylabel('Fase (rads)');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;
subplot(3,1,2);
plot(f,Yf5,'-m');
title('Espectro continuo de fase de la señal SSB de banda lateral
inferior');
xlabel('Frecuencia (Hz)');
ylabel('Fase (rads)');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;
180
subplot(3,1,3);
plot(f,Yf6,'-r');
title('Espectro continuo de fase de la señal SSB de banda lateral
superior');
xlabel('Frecuencia (Hz)');
ylabel('Fase (rads)');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;
%************************************************************************
181
A.6
Código fuente laboratorio de modulación FM
%************************************************************************
%LABORATORIO DE MODULACION FM
%************************************************************************
%************************************************************************
%REALIZADO POR: José Gabriel Fernández Carazo
%
A21941
%
Escuela de Ingeniería Eléctrica
%
Facultad de Ingeniería
%
Universidad de Costa Rica
%************************************************************************
%Ultima modificación: Julio del 2007.
%************************************************************************
%************************************************************************
%Se limpia el workspace de MATLAB y las variables en uso.
clc;
clear;
%************************************************************************
%************************************************************************
%MODULACION FM
%************************************************************************
%Punto (1)
%************************************************************************
L_medio=1000;
%Mitad de la cantidad de muestras a recolectar
Nfft=2048;
%Cantidad de puntos para calcular la FFT
fm=80000;
%Frecuencia de muesreo según Nyquist
treq=2*L_medio/fm;
%Tiempo requerido para recolectar L muestras
fs=((2*L_medio-1)/treq); %División de tiempo para recolectar L muestras
n=0:1/fs:treq;
%Vector de muestras a recolectar
t1=0:length(n)-1;
%Vector en cantidad de muestras recolectadas
%Vector de frecuencias para los espectros en frecuencia
M=Nfft/2;
faux(M+1:Nfft)=0:M-1;
%Vector de frecuencias desordenado
faux(1:M)=-M:-1;
%Vector de frecuencias ordenado
f=fm*faux/(Nfft);
%Vector de frecuencias normalizado
%Se genera la señal a modular
Am=1;
%Amplitud de la señal a modular
wm=2*pi*100;
%Frecuencia de la señal a modular
phi=0;
%Fase de la señal a modular
mt=Am*cos(wm*n+phi);
%Señal a modular
182
%Parametros necesarios para la modulación FM
beta=5;
%Indice de modulación
kw=beta*wm/Am;
%Desviación de frecuencia
phi=-pi/2;
%Se desfasa la señal
mt1=Am*cos(wm*n+phi);
%Se utiliza la señal original para generar el
desf=beta*mt1;
%Desfase de la portadora
%Se genera la señal FM
Ac=1;
%Amplitud de la señal portadora
wc=2*pi*1000;
%Frecuencia de la señal portadora
st=Ac*cos(wc*n+desf);
%Señal FM
%************************************************************************
%************************************************************************
%Punto (2)
%************************************************************************
%Se grafican la señal a modular y la señal FM
figure(1);
subplot(2,1,1);
plot(t1,mt);
title('Señal de entrada original');
xlabel('Tiempo (Cantidad de muestras)');
ylabel('m(t)');
txtp=strcat('fn = ',num2str(fs),' Hz');
legend(txtp);
grid on;
subplot(2,1,2);
plot(t1,st);
title('Señal FM generada a partir de m(t)');
xlabel('Tiempo (Cantidad de muestras)');
ylabel('s(t)');
txtp=strcat('fn = ',num2str(fs),' Hz');
legend(txtp);
grid on;
%************************************************************************
%************************************************************************
%Punto (3)
%************************************************************************
%CALCULO DE LOS ESPECTROS
%Cálculo de la DFT utilzando la FFT para la señal FM
Y1=fft(st,Nfft);
%FFT de Nfft puntos para la señal FM
Y1=fftshift(Y1);
%Reordenamiento de los valores de la FFT
norm1=max(abs(Y1));
%Para normalizar el espectro en magnitud
Yf1=unwrap(angle(Y1));
%Cálculo de las componentes de fase de la
señal
figure(2)
%subplot(3,1,1)
plot(f,abs(Y1)/norm1);
183
title('Espectro continuo en magnitud de la señal de entrada');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
xlim([-1*10000 1*10000]);
grid on;
%************************************************************************
%************************************************************************
%Punto (4)
%************************************************************************
%Modulación FM utilizando "modulate"
%Se utiliza la misma señal del punto (1)
%Señal modulada (FM)
indk=0.039;
gfm = modulate(mt,wc/(2*pi),fm,'fm',indk);
%************************************************************************
%************************************************************************
%Punto (5)
%************************************************************************
%Representación gráfica de las señales
figure(3);
subplot(2,1,1);
plot(n,mt);
txt=strcat('Señal a modular m(t) (f=',num2str(wm/(2*pi)),' Hz)');
title(txt);
xlabel('Tiempo (segundos)');
ylabel('m(t)');
txt=strcat('fn = ',num2str(fs),' Hz');
legend(txt);
grid on;
subplot(2,1,2);
plot(n,gfm);
txt1=strcat('Señal FM generada a partir de m(t) (\beta =
',num2str(beta),' fc= ',num2str(wc/(2*pi)),' Hz)');
title(txt1);
xlabel('Tiempo (segundos)');
ylabel('s(t)');
txt2=strcat('fn = ',num2str(fs),' Hz');
legend(txt2);
grid on;
%************************************************************************
%************************************************************************
%Punto (6)
%************************************************************************
%Modulación FM utilizando "modulate" para difrentes índices de modulación
%Se utiliza la misma señal del punto (1)
184
%Señal modulada (FM)
indk=[0.1 0.09 0.5];
gfm1 = modulate(mt,wc/(2*pi),fm,'fm',indk(1));
gfm2 = modulate(mt,wc/(2*pi),fm,'fm',indk(2));
gfm3 = modulate(mt,wc/(2*pi),fm,'fm',indk(3));
%************************************************************************
%************************************************************************
%Punto (7)
%************************************************************************
%Representación gráfica de las señales
figure(4);
subplot(3,1,1);
plot(n,gfm1);
xlim([0 treq/2]);
txt1=strcat('Señal FM generada utilizando "modulate" (con opt=
',num2str(indk(1)),')');
title(txt1);
xlabel('Tiempo (segundos)');
ylabel('m(t)');
txt=strcat('fn = ',num2str(fs),' Hz');
legend(txt);
grid on;
subplot(3,1,2);
plot(n,gfm2);
txt1=strcat('Señal FM generada utilizando "modulate" (con opt=
',num2str(indk(2)),')');
title(txt1);
xlabel('Tiempo (segundos)');
ylabel('s(t)');
txt2=strcat('fn = ',num2str(fs),' Hz');
legend(txt2);
grid on;
subplot(3,1,3);
plot(n,gfm3);
xlim([0 treq/2]);
txt1=strcat('Señal FM generada utilizando "modulate" (con opt=
',num2str(indk(3)),')');
title(txt1);
xlabel('Tiempo (segundos)');
ylabel('s(t)');
txt2=strcat('fn = ',num2str(fs),' Hz');
legend(txt2);
grid on;
%************************************************************************
185
%************************************************************************
%Punto (8)
%************************************************************************
%Demodulación FM utilizando la función "demod"
rmt=27*demod(st,wc/(2*pi),fm,'fm');
rmt1=5*demod(gfm1,wc/(2*pi),fm,'fm');
rmt2=5*demod(gfm2,wc/(2*pi),fm,'fm');
rmt3=5*demod(gfm3,wc/(2*pi),fm,'fm');
%************************************************************************
%************************************************************************
%Punto (9)
%************************************************************************
%Representación gráfica de las señales
figure(5);
subplot(4,1,1);
plot(n,rmt,n,mt);
txt1=strcat('Señal reconstruida utilizando "demod" (con opt=
',num2str(0.039),')');
title(txt1);
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
legend('Señal reconstruida','Señal original');
grid on;
subplot(4,1,2);
plot(n,rmt1,n,mt);
txt1=strcat('Señal reconstruida utilizando "demod" (con opt=
',num2str(indk(1)),')');
title(txt1);
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
legend('Señal reconstruida','Señal original');
grid on;
subplot(4,1,3);
plot(n,rmt2,n,mt);
txt1=strcat('Señal reconstruida utilizando "demod" (con opt=
',num2str(indk(2)),')');
title(txt1);
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
legend('Señal reconstruida','Señal original');
grid on;
186
subplot(4,1,4);
plot(n,rmt3,n,mt);
txt1=strcat('Señal reconstruida utilizando "demod" (con opt=
',num2str(indk(3)),')');
title(txt1);
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
legend('Señal reconstruida','Señal original');
grid on;
%************************************************************************
%************************************************************************
%Punto (10)
%************************************************************************
%CALCULO DE LOS ESPECTROS
%Cálculo de la DFT utilzando la FFT para la señal gfm1
Y2=fft(gfm1,Nfft);
%FFT de Nfft puntos para la señal FM
Y2=fftshift(Y2);
%Reordenamiento de los valores de la FFT
norm2=max(abs(Y2));
%Para normalizar el espectro en magnitud
Yf2=unwrap(angle(Y2));
%Cálculo de las componentes de fase de la señal
%Cálculo de la DFT utilzando la FFT para la señal gfm2
Y3=fft(gfm2,Nfft);
%FFT de Nfft puntos para la señal FM
Y3=fftshift(Y3);
%Reordenamiento de los valores de la FFT
norm3=max(abs(Y3));
%Para normalizar el espectro en magnitud
Yf3=unwrap(angle(Y3));
%Cálculo de las componentes de fase de la señal
%Cálculo de la DFT utilzando la FFT para la señal gfm3
Y4=fft(gfm3,Nfft);
%FFT de Nfft puntos para la señal FM
Y4=fftshift(Y4);
%Reordenamiento de los valores de la FFT
norm4=max(abs(Y4));
%Para normalizar el espectro en magnitud
Yf4=unwrap(angle(Y4));
%Cálculo de las componentes de fase de la señal
%se grafican los espectros en frecuencia para cada señal
figure(6)
subplot(3,1,1)
plot(f,abs(Y2)/norm2);
txt=strcat('Espectro continuo en magnitud de la señal FM (con
opt=',num2str(indk(1)),')');
title(txt);
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
xlim([-1*10000 1*10000]);
grid on;
187
subplot(3,1,2)
plot(f,abs(Y3)/norm3);
txt=strcat('Espectro continuo en magnitud de la señal FM (con
opt=',num2str(indk(2)),')');
title(txt);
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
xlim([-1*10000 1*10000]);
grid on;
subplot(3,1,3)
plot(f,abs(Y4)/norm4);
txt=strcat('Espectro continuo en magnitud de la señal FM (con
opt=',num2str(indk(3)),')');
title(txt);
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
xlim([-1*10000 1*10000]);
grid on;
%************************************************************************
188
A.7
Código fuente laboratorio de modulación PAM
%************************************************************************
%LABORATORIO DE MODULACION PAM
%************************************************************************
%************************************************************************
%REALIZADO POR: José Gabriel Fernández Carazo
%
A21941
%
Escuela de Ingeniería Eléctrica
%
Facultad de Ingeniería
%
Universidad de Costa Rica
%************************************************************************
%Ultima modificación: Julio del 2007.
%************************************************************************
%************************************************************************
%Se limpia el workspace de MATLAB y las variables en uso.
clc;
clear;
%************************************************************************
%************************************************************************
%MODULACION Y DEMODULACION PAM
%************************************************************************
%Punto (1)
%************************************************************************
L_medio=500;
%Mitad de la cantidad de muestras a recolectar
Nfft=2048;
%Cantidad de puntos para calcular la FFT
fm=1000;
%Frecuencia de muesreo según Nyquist
treq=2*L_medio/fm;
%Tiempo requerido para recolectar L muestras
fs=((2*L_medio-1)/treq); %División de tiempo para recolectar L muestras
n=0:1/fs:treq;
%Vector de muestras a recolectar
num_n=0:length(n)-1;
%Vector en cantidad de muestras recolectadas
%Vector de frecuencias para los espectros en frecuencia
M=Nfft/2;
faux(M+1:Nfft)=0:M-1;
%Vector de frecuencias desordenado
faux(1:M)=-M:-1;
%Vector de frecuencias ordenado
f=fm*faux/(Nfft);
%Vector de frecuencias normalizado
%Señal a modular
Am=10;
wm=4*pi;
ym=Am*cos(wm*n);
%Luego se añade un nivel DC a la señal anterior
ymdc=ym+max(abs(ym));
189
%Tren de pulsos o cuantificador
pulsos=(square(2*pi*30*n,25)+1)/2;
%Luego se obtiene la señal modulada por amplitud de pulsos
spam=ymdc.*pulsos;
%************************************************************************
%************************************************************************
%Punto (2)
%************************************************************************
%Se grafican los resultados
figure(1)
subplot(3,1,1);
plot(n,ym);
title('Señal a modular');
xlabel('Tiempo (segundos)');
ylabel('m(t)');
txt=strcat('fmuestreo= ',num2str(fm),' Hz');
legend(txt);
grid on;
subplot(3,1,2);
plot(n,pulsos);
title('Tren de pulsos o cuantificador');
xlabel('Tiempo (segundos)');
ylabel('g(t)');
txt=strcat('fmuestreo= ',num2str(fm),' Hz');
legend(txt);
grid on;
subplot(3,1,3)
plot(n,spam);
title('Señal modulada empleando modulación por amplitud de pulsos');
xlabel('Tiempo (segundos)');
ylabel('s(t)');
txt=strcat('fmuestreo= ',num2str(fm),' Hz');
legend(txt);
grid on;
%Cálculo de la DFT utilzando la FFT para la señal a modular
Y1=fft(ym,Nfft);
%FFT de Nfft puntos
Y1=fftshift(Y1);
%Reordenamiento de los valores de la FFT
norm1=max(abs(Y1));
%Para normalizar el espectro en magnitud
Yf1=unwrap(angle(Y1));
%Cálculo de las componentes de fase de la señal
%Cálculo de la DFT utilzando la FFT para la señal modulada
Y2=fft(spam,Nfft);
%FFT de Nfft puntos
Y2=fftshift(Y2);
%Reordenamiento de los valores de la FFT
norm2=max(abs(Y2));
%Para normalizar el espectro en magnitud
Yf2=unwrap(angle(Y2));
%Cálculo de las componentes de fase de la señal
190
%Grafica del espectro de frecuencia de la señal a modular
figure(2)
subplot(2,1,1);
plot(f,abs(Y1)/norm1);
title('Espectro continuo en magnitud de la señal a modular');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
xlim([-50 50]);
grid on;
subplot(2,1,2);
plot(f,Yf1);
title('Espectro continuo de fase de la señal a modular');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
xlim([-50 50]);
grid on;
%Grafica del espectro de frecuencia de la señal modulada
figure(3)
subplot(2,1,1);
plot(f,abs(Y2)/norm2);
title('Espectro continuo en magnitud de la señal modulada');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;
subplot(2,1,2);
plot(f,Yf2);
title('Espectro continuo de fase de la señal a modulada');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;
%************************************************************************
%************************************************************************
%Punto (3)
%************************************************************************
%Ejemplo simple de cuantificación
partition = [0,1,3];
%Criterio de evaluación de muestras
codebook = [-1,0.5,2,3];
%Niveles de cuantifficación o símbolos
samp = [-2.4,-1,-0.2,0,0.2,1,1.2,1.9,2,2.9,3,3.5,5];
%Muestras
191
[index,quantized] = quantiz(samp,partition,codebook);
%Cuantificador
index
%Muestra el nivel otorgado
quantized
%Muestras cuantificadas
%************************************************************************
%************************************************************************
%Punto (4)
%************************************************************************
L_medio=200;
%Mitad de la cantidad de muestras a recolectar
Nfft=2048;
%Cantidad de puntos para calcular la FFT
fm=4000;
%Frecuencia de muesreo según Nyquist
treq=2*L_medio/fm;
%Tiempo requerido para recolectar L muestras
fs=((2*L_medio-1)/treq); %División de tiempo para recolectar L muestras
n1=0:1/fs:treq;
%Vector de muestras a recolectar
%Muestreo de la señal a modular
Am=15;
wm=2*pi*100;
ym1=Am*sin(wm*n1);
%Se añade un nivel DC suficiente para no tener valores negativos
ym1dc=ym1+max(abs(ym1));
%CUANTIFICACION
%Se define la partición
a=round(max(ym1dc));
particion = [0:1:a-1];
simbolos = [0:1:a];
%La longitud de la partición debe ser una
%unidad menor que le codebook
%Niveles de cuantioficación o símbolos
%Cuantificación
[intervalos,sencuant] = quantiz(ym1dc,particion,simbolos);
%************************************************************************
%************************************************************************
%Punto (5)
%************************************************************************
%Modualción PAM utilizando pammod
b=[4 8 16 32 64 128 256 512];
%Niveles en potencia de 2
L=length(b);
%Búsqueda del M apropiado dependiendo de la amplitud de la señal una vez
%cuantificada
M=0;
%Inicialización de M
i=1;
while M==0
if b(i)>a
M=b(i)
end
i=i+1;
end
192
%Modulación PAM
spam1=pammod(sencuant,M);
%************************************************************************
%************************************************************************
%Punto (6)
%************************************************************************
%se grafican los resultados
figure(4)
subplot(3,1,1);
plot(n1,ym1);
title('Señal a modular');
xlabel('Tiempo (segundos)');
ylabel('m(t)');
txt=strcat('fmuestreo= ',num2str(fm),' Hz');
legend(txt);
xlim([0 treq/3])
grid on;
subplot(3,1,2);
plot(n1,sencuant,'-xb');
hold on;
stem(n1,sencuant,'.c');
hold off;
title('Señal muestreada y cuantificada');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
txt=strcat('fmuestreo= ',num2str(fm),' Hz');
legend(txt);
xlim([0 treq/3]);
grid on;
subplot(3,1,3);
plot(n1,real(spam1),'m');
txt=strcat('Señal modulada mediante la función "pammod". M=',num2str(M),'
símbolos.');
title(txt);
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
txt=strcat('fmuestreo= ',num2str(fm),' Hz');
legend(txt);
xlim([0 treq/3]);
grid on;
%************************************************************************
%************************************************************************
%Punto (7)
%************************************************************************
%Demodulación utilizando pamdemod
z=pamdemod(spam1,M);
193
%Se recupera la señal original eliminando el nivel DC
z1=z-max(abs(ym1));
%se grafican los resultados
figure(5)
subplot(2,1,1)
plot(n1,ym1)
title('Señal original');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
txt=strcat('fmuestreo= ',num2str(fm),' Hz');
legend(txt);
xlim([0 treq/3]);
grid on;
subplot(2,1,2)
plot(n1,z1,n1,ym1,':r')
title('Señal demodulada');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
legend('Señal reconstruida','Señal original');
xlim([0 treq/3]);
grid on;
%************************************************************************
%************************************************************************
%Punto (8)
%************************************************************************
%Cálculo de la DFT utilzando la FFT para la señal modulada
Y3=fft(spam1,Nfft);
%FFT de Nfft puntos
Y3=fftshift(Y3);
%Reordenamiento de los valores de la FFT
norm3=max(abs(Y3));
%Para normalizar el espectro en magnitud
Yf3=unwrap(angle(Y3));
%Cálculo de las componentes de fase de la señal
figure(6)
subplot(2,1,1);
plot(f,abs(Y3)/norm3);
title('Espectro continuo en magnitud de la señal modulada');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;
subplot(2,1,2);
plot(f,Yf3,'m');
title('Espectro continuo de fase de la señal a modulada');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
194
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;
%Cálculo de la DFT utilzando la FFT para la señal demodulada
Y4=fft(z1,Nfft);
%FFT de Nfft puntos
Y4=fftshift(Y4);
%Reordenamiento de los valores de la FFT
norm4=max(abs(Y4));
%Para normalizar el espectro en magnitud
Yf4=unwrap(angle(Y4));
%Cálculo de las componentes de fase de la señal
figure(7)
subplot(2,1,1);
plot(f,abs(Y4)/norm3);
title('Espectro continuo en magnitud de la señal demodulada');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;
subplot(2,1,2);
plot(f,Yf4,'m');
title('Espectro continuo de fase de la señal a demodulada');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;
%************************************************************************
%************************************************************************
%Punto (9)
%************************************************************************
%Se obtiene un diagrama de ojo utilizando la función eyediagram
eyediagram(real(spam1),M);
title('Diagrama de Ojo para la señal PAM');
xlabel('Tiempo (s)');
ylabel('Amplitud');
grid on;
%************************************************************************
195
A.8
Código fuente laboratorio de modulación QAM
%************************************************************************
%LABORATORIO DE MODULACION QAM
%************************************************************************
%************************************************************************
%REALIZADO POR: José Gabriel Fernández Carazo
%
A21941
%
Escuela de Ingeniería Eléctrica
%
Facultad de Ingeniería
%
Universidad de Costa Rica
%************************************************************************
%Ultima modificación: Junio del 2007.
%************************************************************************
%************************************************************************
%Se limpia el workspace de MATLAB y las variables en uso.
clc;
clear;
%************************************************************************
%************************************************************************
%MODULACION QAM
%************************************************************************
%Punto (1)
%************************************************************************
%Variables iniciales
L_medio=200;
%Mitad de la cantidad de muestras a recolectar
Nfft=2048;
%Cantidad de puntos para calcular la FFT
fm=4000;
%Frecuencia de muesreo según Nyquist
treq=2*L_medio/fm;
%Tiempo requerido para recolectar L muestras
fs=((2*L_medio-1)/treq); %División de tiempo para recolectar L muestras
n1=0:1/fs:treq;
%Vector de muestras a recolectar
%Muestreo de la señal a modular
Am=7;
wm1=2*pi*180;
wm2=2*pi*25;
ym1=Am*sin(wm1*n1);
ym2=Am*sin(wm2*n1);
ymt=ym1+ym2;
%Se añade un nivel DC suficiente para no tener valores negativos
ymtdc=ymt+max(abs(ymt));
196
%CUANTIFICACION
%Se define la partición
a=round(max(ymtdc));
particion = [0:1:a-1];
simbolos = [0:1:a];
%La longitud de la partición debe ser una
%unidad menor que le codebook
%Niveles de cuantificación o símbolos
%Cuantificación
[intervalos,sencuant] = quantiz(ymtdc,particion,simbolos);
%************************************************************************
%************************************************************************
%Punto (2)
%************************************************************************
%Grafica de la señal a modular
figure(1)
subplot(3,1,1);
plot(n1,ym1,'-r');
title('Señal con frecuencia 180 Hz');
xlabel('Tiempo (segundos)');
ylabel('m(t)');
txt=strcat('fmuestreo= ',num2str(fm),' Hz');
legend(txt);
grid on;
subplot(3,1,2);
plot(n1,ym2,'-g');
title('Señal con frecuencia 25 Hz');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
txt=strcat('fmuestreo= ',num2str(fm),' Hz');
legend(txt);
grid on;
subplot(3,1,3);
plot(n1,ymt);
title('Señal a modular');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
txt=strcat('fmuestreo= ',num2str(fm),' Hz');
legend(txt);
grid on;
%señal cuantificada
figure(2)
subplot(2,1,1);
plot(n1,ymt);
title('Señal a modular');
xlabel('Tiempo (segundos)');
ylabel('m(t)');
txt=strcat('fmuestreo= ',num2str(fm),' Hz');
197
legend(txt);
grid on;
subplot(2,1,2);
plot(n1,sencuant,'-xb');
hold on;
stem(n1,sencuant,'.r');
hold off;
title('Señal muestreada y cuantificada');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
txt=strcat('fmuestreo= ',num2str(fm),' Hz');
legend(txt);
xlim([0 treq/3]);
grid on;
%************************************************************************
%************************************************************************
%Punto (3)
%************************************************************************
%Modulación QAM utilizando qammod
b=[4 8 16 32 64 128 256 512];
%Niveles en potencia de 2
L=length(b);
%Búsqueda del M apropiado dependiendo de la amplitud de la señal una vez
%cuantificada
M=0;
%Inicialización de M
i=1;
while M==0
if b(i)>a
M=b(i);
%Asignación de un M
end
i=i+1;
end
%Modulación QAM
sqam=qammod(sencuant,M);
%grafica de la señal en cuadratura y fase
figure(3)
subplot(2,1,1);
plot(real(sqam),'-g');
title('Señal QAM en cuadratura');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
grid on;
subplot(2,1,2);
plot(imag(sqam),'-m');
title('Señal QAM en fase');
xlabel('Tiempo (segundos)');
198
ylabel('Amplitud');
grid on;
%************************************************************************
%************************************************************************
%Punto (4)
%************************************************************************
%Señal QAM transmitida
ytx = sqam;
%Simulación de un canal AWGN
%Se envia la señal través de este canal
k=log2(M);
EbNo = 10;
%Tasa de energía de la densidad de energía espectral dB
snr = EbNo + 10*log10(k) - 10*log10(1);%Tasa de ruido por muestra
ynoisy = awgn(ytx,snr,'measured');
%Se genera la nueva señal con ruido
%************************************************************************
%************************************************************************
%Punto (5)
%************************************************************************
%La nueva señal es recibida
yrx = ynoisy;
%Se analiza la señal QAM utilizando un diagrama de constelación M valores
h=scatterplot(yrx,1,0,'g.');
hold on;
scatterplot(ytx,1,0,'k*',h);
title('Señal QAM');
ylabel('En Cuadratura');
xlabel('En Fase');
legend('Señal con ruido','Señal sin ruido',4);
grid on;
hold off;
%************************************************************************
%************************************************************************
%Punto (6)
%************************************************************************
%Demodulación QAM utilizando "qamdemod"
%Se demodula la señal sin ruido
z1=qamdemod(ytx,M);
z1=z1-max(abs(ymt));
%Se demodula la señal con ruido
z2=qamdemod(yrx,M);
z2=z2-max(abs(ymt));
199
figure(5)
subplot(2,1,1)
plot(n1,z1,n1,ymt);
title('Señal demodulada a partir de una señal QAM sin ruido');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
legend('Señal reconstruida','Señal original');
grid on;
subplot(2,1,2)
plot(n1,z2,n1,ymt);
title('Señal demodulada a partir de una señal QAM con ruido');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
legend('Señal reconstruida','Señal original');
grid on;
%************************************************************************
%************************************************************************
%Punto (7)
%************************************************************************
%Vector de frecuencias para los espectros en frecuencia
M=Nfft/2;
faux(M+1:Nfft)=0:M-1;
%Vector de frecuencias desordenado
faux(1:M)=-M:-1;
%Vector de frecuencias ordenado
f=fm*faux/(Nfft);
%Vector de frecuencias normalizado
%Cálculo de la DFT utilzando la FFT para la señal a modular
Y1=fft(ymt,Nfft);
%FFT de Nfft puntos
Y1=fftshift(Y1);
%Reordenamiento de los valores de la FFT
norm1=max(abs(Y1));
%Para normalizar el espectro en magnitud
Yf1=unwrap(angle(Y1));
%Cálculo de las componentes de fase de la señal
%Cálculo de la DFT utilzando la FFT para la señal modulada sin ruido
Y2=fft(ytx,Nfft);
%FFT de Nfft puntos
Y2=fftshift(Y2);
%Reordenamiento de los valores de la FFT
norm2=max(abs(Y2));
%Para normalizar el espectro en magnitud
Yf2=unwrap(angle(Y2));
%Cálculo de las componentes de fase de la señal
%Cálculo de la DFT utilzando la FFT para la señal modulada con ruido
Y3=fft(yrx,Nfft);
%FFT de Nfft puntos
Y3=fftshift(Y3);
%Reordenamiento de los valores de la FFT
norm3=max(abs(Y3));
%Para normalizar el espectro en magnitud
Yf3=unwrap(angle(Y3));
%Cálculo de las componentes de fase de la señal
%Cálculo de la DFT utilzando la FFT para la señal demodulada sin ruido
Y4=fft(z1,Nfft);
%FFT de Nfft puntos
Y4=fftshift(Y4);
%Reordenamiento de los valores de la FFT
norm4=max(abs(Y4));
%Para normalizar el espectro en magnitud
Yf4=unwrap(angle(Y4));
%Cálculo de las componentes de fase de la señal
200
%Cálculo de la DFT utilzando la FFT para la señal demodulada con ruido
Y5=fft(z2,Nfft);
%FFT de Nfft puntos
Y5=fftshift(Y5);
%Reordenamiento de los valores de la FFT
norm5=max(abs(Y5));
%Para normalizar el espectro en magnitud
Yf5=unwrap(angle(Y5));
%Cálculo de las componentes de fase de la señal
%Grafica del espectro de frecuencia de la señal a modular
figure(6)
subplot(2,1,1);
plot(f,abs(Y1)/norm1);
title('Espectro continuo en magnitud de la señal a modular');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;
subplot(2,1,2);
plot(f,Yf1);
title('Espectro continuo de fase de la señal a modular');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;
%Grafica del espectro de frecuencia de la señal modulada sin ruido
figure(7)
subplot(2,1,1);
plot(f,abs(Y2)/norm2);
title('Espectro continuo en magnitud de la señal QAM sin ruido');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;
subplot(2,1,2);
plot(f,Yf2);
title('Espectro continuo de fase de la señal QAM sin ruido');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;
201
%Grafica del espectro de frecuencia de la señal modulada con ruido
figure(8)
subplot(2,1,1);
plot(f,abs(Y3)/norm3);
title('Espectro continuo en magnitud de la señal QAM con ruido');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;
subplot(2,1,2);
plot(f,Yf3);
title('Espectro continuo de fase de la señal QAM con ruido');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;
%Grafica del espectro de frecuencia de la señal demodulada sin ruido
figure(9)
subplot(2,1,1);
plot(f,abs(Y4)/norm4);
title('Espectro continuo en magnitud de la señal demodulada sin ruido');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;
subplot(2,1,2);
plot(f,Yf4);
title('Espectro continuo de fase de la señal demodulada sin ruido');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;
%Grafica del espectro de frecuencia de la señal demodulada con ruido
figure(10)
subplot(2,1,1);
plot(f,abs(Y5)/norm5);
title('Espectro continuo en magnitud de la señal demodulada con ruido');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;
202
subplot(2,1,2);
plot(f,Yf5);
title('Espectro continuo de fase de la señal demodulada con ruido');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;
%************************************************************************
203
APÉNDICE B: Diagramas de bloques de los ejercicios de simulación en
SIMULINK
B.1
Simulación: laboratorio de filtros digitales
************************************************************************
LABORATORIO DE FILTROS DIGITALES
************************************************************************
REALIZADO POR: José Gabriel Fernández Carazo
A21941
Escuela de Ingeniería Eléctrica
Facultad de Ingeniería
Universidad de Costa Rica
************************************************************************
Ultima modificación: Julio del 2007.
************************************************************************
Onda de 720 Hz
FDATool
Onda de 1440 Hz
Add
Zero-Order
Hold
Filtro FIR N=64
Hamming
Salida del filtro
pasabanda FIR
Onda de 3000 Hz
Señales Señal completa
FDATool
Onda de 120 Hz
Filtro pasabanda IIR N=6
Chebyshev Tipo I
Onda de 400 Hz
Add1
Zero-Order
Hold1
FDATool
Onda de 680 Hz
Señales1 Señal completa1
204
Salida del filtro
pasabanda
Filtro rechaza banda IIR N=6
Chebyshev Tipo I1
Salida del filtro
rechaza banda
B.2
Simulación: laboratorio de FFT
************************************************************************
LABORATORIO FFT
************************************************************************
REALIZADO POR: José Gabriel Fernández Carazo
A21941
Escuela de Ingeniería Eléctrica
Facultad de Ingeniería
Universidad de Costa Rica
************************************************************************
Ultima modificación: Julio del 2007.
************************************************************************
Señal de entrada
B-FFT
Espectro de la señal de entrada
FDATool
Salida del filtro pasoabajo
Salida f iltro pasobajo
Onda de 1500 Hz
Filtro Pasobajo FIR
N=36 Hamming
Onda de 175 Hz
Onda de 1200 Hz
B-FFT
Espectro de la salida del filtro pasobajo
Zero-Order
Hold
FDATool
Salida del filtro pasabanda
Salida f iltro pasabanda
Onda de 2325 Hz
Filtro FIR N=36
Pasabanda Kaiser
B-FFT
Espectro de la salida del filtro pasabanda
FDATool
Salida del filtro pasoalto
Salida f iltro pasoalto
Filtro FIR N=36
Pasoalto Hamming
B-FFT
Espectro de la salida del filtro pasoalto
205
B.3
Simulación: laboratorio de modulación AM
************************************************************************
LABORATORIO MODULACION AM
************************************************************************
REALIZADO POR: José Gabriel Fernández Carazo
A21941
Escuela de Ingeniería Eléctrica
Facultad de Ingeniería
Universidad de Costa Rica
************************************************************************
Ultima modificación: Julio del 2007.
************************************************************************
Señal a modular1
Seña a modular
Zero-Order
Hold2
B-FFT
Espectro de la señal a modular
Señal a modular
Product
0.5
Zero-Order
Hold
Modulador
Señal modulada
ka
1
Nivel DC
Señal portadora
Zero-Order
Hold1
Detector de envolvente de Ley Cuadrática
Señal reconstruida
FDATool
1.7-1.7z-1
sqrt
2-1.4z-1
Señal reconstruida
Filtro pasoalto para eliminar DC
Raíz cuadrada1
Raíz cuadrada
206
Salida del filtro
pasobajo
2
Elevador
Filtro FIR pasobajo
N=36 Hamming
B-FFT
Espectro de la salida
del filtro paso alto
u
B.4
Simulación: laboratorio de modulación DSBSC-AM
************************************************************************
LABORATORIO MODULACION DSBSC-AM
************************************************************************
REALIZADO POR: José Gabriel Fernández Carazo
A21941
Escuela de Ingeniería Eléctrica
Facultad de Ingeniería
Universidad de Costa Rica
************************************************************************
Ultima modificación: Julio del 2007.
************************************************************************
Sen de 20Hz
Zero-Order
Hold1
Fcn
Señal a modular
Product
exp(-0.5*(u))
Clock
Señal a modular
B-FFT
Zero-Order
Hold2
Espectro señal a modular
Señal modulada
Señal portadora
Zero-Order
Hold
Product1
Señal modulada
B-FFT
Espectro portadora
Demodulador
FDATool
Señal demodulada
LO (Oscilador Local)
Zero-Order
Hold3
Product3
Señal demodulada
Filtro FIR pasobajo
N=24 Hamming
B-FFT
Espectro de la salida
del filtro pasobajo
207
B.5
Simulación: laboratorio de modulación SSB-AM
************************************************************************
LABORATORIO MODULACION SSB-AM
************************************************************************
REALIZADO POR: José Gabriel Fernández Carazo
A21941
Escuela de Ingeniería Eléctrica
Facultad de Ingeniería
Universidad de Costa Rica
************************************************************************
Ultima modificación: Julio del 2007.
************************************************************************
Señal a modular
Señal a modular
Sen de 600Hz
Zero-Order
Hold1
B-FFT
Product1
Zero-Order
Hold
Espectro de la señal a modular
Señal portadora
Señal DSBSC-AM
Señal DSBSC-AM
MODULACION SSB-AM
Modulador SSB-AM (Banda lateral inferior)
B-FFT
FDATool
Espectro de la señal DSBSC-AM
Señal SSB-AM banda lateral inferior
Señal SSB-AM banda lateral inf erior
Filtro FIR pasobajo
N=36 Hamming
B-FFT
Espectro de la señal SSB-AM
banda lateral inferior
Modulador SSB-AM (Banda lateral superior)
FDATool
Señal SSB-AM banda lateral superior
Señal SSB-AM banda lateral superior
Filtro FIR pasoalto
N=36 Hamming
B-FFT
Espectro de la señal SSB-AM
banda lateral superior
FDATool
DEMODULACION SSB-AM
Product2
Filtro FIR pasobajo
N=36 Hamming1
FDATool
Señal portadora1 Zero-Order
Hold2
Product3
Filtro FIR pasobajo
N=36 Hamming2
208
Señal reconstruida con
banda lateral inferior
Señal reconstruida con
banda lateral superior
Comparación
B.6
Simulación: laboratorio de modulación FM
************************************************************************
LABORATORIO MODULACION FM
************************************************************************
REALIZADO POR: José Gabriel Fernández Carazo
A21941
Escuela de Ingeniería Eléctrica
Facultad de Ingeniería
Universidad de Costa Rica
************************************************************************
Ultima modificación: Julio del 2007.
************************************************************************
MODULACION DE UN TONO SIMPLE
Señal a modular
Señal a modular
Sen de 100Hz Zero-Order
Hold1
B-FFT
Señal a modular
Espectro señal a modular
Comparación
Señal FM
Señal FM
FM
FM
Modulator
Passband
Señal FM
B-FFT
Espectro señal FM
FM
FM
Demodulator
Passband
FDATool
Señal demodulada
Señal demodulada
Filtro Chebyshev Tipo I
N=6 pasobajo
B-FFT
Espectro señal demodulada
209
B.7
Simulación: laboratorio de modulación PAM
************************************************************************
LABORATORIO MODULACION PAM
************************************************************************
REALIZADO POR: José Gabriel Fernández Carazo
A21941
Escuela de Ingeniería Eléctrica
Facultad de Ingeniería
Universidad de Costa Rica
************************************************************************
Ultima modificación: Julio del 2007.
************************************************************************
MODULACION PAM
Random
Integer
Integer to Bit
Converter
M-PAM
Señal PAM
Random Integer
Generator
M-PAM
Modulator
Baseband
Señal aleatoria de enteros positivos Se convierten en bits
B-FFT
Espectro señal PAM
|u|
Abs
Señal PAM
Diagrama de Ojo
Señal PAM
M-PAM
M-PAM
Demodulator
Baseband
Bit to Integer
Converter
Bit to Integer
Converter
Señal reconstruida
Señal reconstruida
B-FFT
Espectro señal reconstruida
210
B.8
Simulación: laboratorio de modulación QAM
************************************************************************
LABORATORIO MODULACION QAM
************************************************************************
REALIZADO POR: José Gabriel Fernández Carazo
A21941
Escuela de Ingeniería Eléctrica
Facultad de Ingeniería
Universidad de Costa Rica
************************************************************************
Ultima modificación: Julio del 2007.
************************************************************************
MODULACION QAM
Random
Integer
Random Integer
Generator
Rectangular
QAM
Rectangular QAM
Modulator
Baseband
Señal aleatoria de enteros positivos
Señal QAM
B-FFT
Espectro señal QAM
Señal QAM
Re(u)
Im(u)
Cuadratura
Complex to
Real-Imag
Rectangular
QAM
Constelación señal
QAM sin ruido
AWGN
AWGN
Channel
Señal reconstruida
sin ruido
Rectangular QAM
Demodulator
Baseband1
Fase
Señal QAM
Señal reconstruida
sin ruido en el canal
B-FFT
Espectro señal reconstruida
sin ruido en el canal
Constelación señal
QAM con ruido
Rectangular
QAM
Rectangular QAM
Demodulator
Baseband
Señal reconstruida
con ruido
Señal reconstruida
con ruido en el canal
B-FFT
Espectro señal reconstruida
con ruido en el canal
211
Descargar