Matlab Pam
Matlab Pam
Matlab Pam
Facultad de Ingeniera
Escuela de Ingeniera Elctrica
Por:
Jos Gabriel Fernndez Carazo
_________________________________
Ing. Jorge Romero Chacn
Profesor Gua
_________________________________
Ing. Vctor Hugo Chacn
Profesor lector
_________________________________
Ing. Luca Acua Avendao
Profesora lectora
ii
DEDICATORIA
iii
RECONOCIMIENTOS
A todas las personas que han tenido que ver con mi educacin moral y profesional,
ya que en estos momentos tiene sentido todo el conocimiento y sabidura que me han
transmitido.
A mis amigos, compaeros de carrera y a todas las personas que de una u otra
forma han influenciado mi manera de pensar y que de alguna manera han tenido que ver
con el camino profesional que he elegido.
iv
NDICE GENERAL
NDICE DE FIGURAS.................................................................................. ix
NDICE DE TABLAS.................................................................................... xi
NOMENCLATURA...................................................................................... xii
RESUMEN .................................................................................................... xiii
CAPTULO 1: Introduccin ...........................................................................1
1.1
Objetivos ................................................................................................................ 1
1.1.1
Objetivo general............................................................................................. 1
1.1.2
Objetivos especficos ..................................................................................... 1
1.2
Justificacin del tema............................................................................................. 1
1.3
Problema a resolver................................................................................................ 2
1.4
Metodologa ........................................................................................................... 3
2.7
Nota terica laboratorio de modulacin AM ....................................................... 44
2.7.1
Descripcin de la modulacin de amplitud (AM)........................................ 44
2.7.1.1 Espectro de una seal AM ........................................................................... 46
2.7.2
Demodulacin de una seal AM capturando la envolvente......................... 48
2.7.2.1 Demodulacin de seales AM utilizando la ley cuadrtica ......................... 48
2.8
Nota terica laboratorio de modulacin DSBSC-AM ......................................... 50
2.8.1
Descripcin matemtica de una seal DSBSC-AM..................................... 50
2.8.2
El receptor coherente ideal........................................................................... 51
2.8.3
Lazo de Costas: tcnica prctica para demodulacin coherente .................. 54
2.9
Nota terica laboratorio de modulacin SSB....................................................... 60
2.9.1
Moduladores SSB ........................................................................................ 60
2.9.2
Demodulacin coherente de seales SSB .................................................... 63
2.9.3
Desplazamiento en frecuencia ..................................................................... 66
2.10 Nota terica laboratorio de modulacin FM........................................................ 68
2.10.1
Descripcin de la modulacin FM............................................................... 68
2.10.1.1
Modulacin FM de un tono simple.......................................................... 70
2.10.1.2
Ancho de banda de una seal FM ............................................................ 71
2.10.2
Demodulacin FM: discriminador en frecuencia ........................................ 72
2.10.2.1
Discriminador FM utilizando un detector de envolvente ........................ 73
2.10.2.2
Discriminador FM utilizando la envolvente compleja............................. 74
2.10.3
Demodulacin FM usando un PLL.............................................................. 75
2.11 Nota terica laboratorio de modulacin PAM ..................................................... 78
2.11.1
Descripcin de la modulacin PAM ............................................................ 78
2.11.2
Criterio de Nyquist para no tener ISI........................................................... 82
2.11.3
Diagramas de ojo ......................................................................................... 83
2.11.4
Recuperacin de la frecuencia del tren de pulsos ........................................ 86
2.12 Nota terica laboratorio de modulacin QAM .................................................... 88
2.12.1
Transmisor QAM bsico.............................................................................. 88
2.12.2
Modulador QAM utilizando filtros conformadores pasabandas.................. 92
vi
3.3.3
Cuestionario ............................................................................................... 110
3.4
Laboratorio de modulacin DSBSC-AM........................................................... 111
3.4.1
Modulacin DSBSC-AM........................................................................... 112
3.4.2
Modulacin y demodulacin AM utilizando SIMULINK......................... 113
3.4.3
Cuestionario ............................................................................................... 113
3.5
Laboratorio de modulacin SSB........................................................................ 114
3.5.1
Modulacin SSB-AM ................................................................................ 114
3.5.2
Demodulacin SSB-AM ............................................................................ 115
3.5.3
Modulacin y demodulacin SSBAM en SIMULINK............................ 116
3.5.4
Cuestionario ............................................................................................... 117
3.6
Laboratorio de modulacin FM ......................................................................... 118
3.6.1
Modulacin FM ......................................................................................... 118
3.6.2
Modulacin y demodulacin FM utilizando SIMULINK ......................... 120
3.6.3
Cuestionario ............................................................................................... 121
3.7
Laboratorio de modulacin PAM ...................................................................... 122
3.7.1
Modulacin y demodulacin PAM en MATLAB ..................................... 123
3.7.2
Modulacin y demodulacin PAM en SIMULINK................................... 125
3.7.3
Cuestionario ............................................................................................... 126
3.8
Laboratorio de modulacin QAM...................................................................... 127
3.8.1
Modulacin y demodulacin QAM ........................................................... 129
3.8.2
Modulacin y demodulacin QAM con SIMULINK................................ 130
3.8.2
Cuestionario ............................................................................................... 131
BIBLIOGRAFA ..........................................................................................135
APNDICES.................................................................................................137
APNDICE A: Cdigo fuente de los ejercicios de simulacin en MATLAB .............. 137
A.1
Cdigo fuente laboratorio de filtros digitales ................................................ 137
A.2
Cdigo fuente laboratorio de FFT.................................................................. 152
A.3
Cdigo fuente laboratorio de modulacin AM .............................................. 157
A.4
Cdigo fuente laboratorio de modulacin DSBSC-AM ................................ 167
A.5
Cdigo fuente laboratorio de modulacin SSB-AM...................................... 172
A.6
Cdigo fuente laboratorio de modulacin FM............................................... 182
A.7
Cdigo fuente laboratorio de modulacin PAM............................................ 189
A.8
Cdigo fuente laboratorio de modulacin QAM ........................................... 196
APNDICE B: Diagramas de bloques de los ejercicios de simulacin en SIMULINK204
B.1
Simulacin: laboratorio de filtros digitales.................................................... 204
B.2
Simulacin: laboratorio de FFT ..................................................................... 205
B.3
Simulacin: laboratorio de modulacin AM.................................................. 206
vii
B.4
B.5
B.6
B.7
B.8
viii
NDICE DE FIGURAS
Figura 2.1 Tipos de seales: (a) Seal continua en el tiempo sin cuantificar, (b) seal
discreta en el tiempo sin cuantificar................................................................................... 7
Figura 2.2 Tipos de seales: (a) Seal continua en el tiempo cuantificada, (b) seal
discreta en el tiempo cuantificada...................................................................................... 8
Figura 2.3 Representacin en el dominio del tiempo de la seal peridica dada por la
ecuacin (2.3-1). .............................................................................................................. 10
Figura 2.4 Representacin en el dominio de la frecuencia de la seal peridica de la
ecuacin (2.3-1). (a) Espectro de Magnitud, (b) Espectro de Fase.................................. 10
Figura 2.5 Diagrama de bloques de la estructura en forma directa de un filtro FIR ....... 17
Figura 2.6 Primer paso de la estructura en forma directa tipo 1 de un filtro IIR............. 20
Figura 2.7 Diagrama de bloques de la estructura en forma directa tipo 1 de un filtro IIR
.......................................................................................................................................... 21
Figura 2.8 Diagrama de bloques de la estructura en forma directa tipo 2 de un filtro IIR
.......................................................................................................................................... 23
Figura 2.9 Mapeo del plano s al plano s ......................................................................... 26
Figura 2.10 Mapeo de a por medio de la transformacin bilineal. .......................... 27
Figura 2.11 Descripcin del efecto de la transformacin bilineal de Hc( j) a H'()..... 29
Figura 2.12 Esquema de Mariposa del algoritmo FFT de diezmado en el tiempo. ......... 37
Figura 2.13 Primera etapa del algoritmo FFT de diezmado en el tiempo........................ 37
Figura 2.14 Primera etapa del algoritmo FFT de diezmado en frecuencia...................... 40
Figura 2.15 Espectro de una seal AM............................................................................ 47
Figura 2.16 Detector de envolvente (Ley Cuadrtica)..................................................... 49
Figura 2.17 Diagrama de bloques de un Receptor Coherente Ideal ................................ 52
Figura 2.18 Espectro de una seal DSBSC-AM .............................................................. 53
Figura 2.19 Diagrama de bloques del demodulador de lazo Costas ................................ 54
Figura 2.20 Diagrama de bloques del Lazo Costas linealizado ....................................... 59
Figura 2.21 Diagrama de bloques de la modulacin SSB ............................................... 61
Figura 2.22 Modulador SSB utilizando la transformada de Hilbert ................................ 63
Figura 2.23 Modulacin FM ............................................................................................ 71
Figura 2.24 Diagrama de bloques elemental de un discriminador de frecuencia ............ 73
Figura 2.25 Discriminador en tiempo discreto usando la envolvente compleja .............. 75
Figura 2.26 Demodulador FM con PLL en tiempo discreto............................................ 76
Figura 2.27 Modelo linearizado del PLL......................................................................... 77
Figura 2.28 Modulacin PAM ......................................................................................... 78
Figura 2.29 Diagrama de bloques de un sistema de comunicacin PAM ....................... 79
Figura 2.30 Seal binaria antes del muestreador ............................................................. 84
Figura 2.31 Diagrama de ojos para la seal de la figura 2.30.......................................... 85
Figura 2.32 Diagrama de bloques del sistema de recuperacin de frecuencia ................ 87
ix
NDICE DE TABLAS
Tabla 2.1 Parmetros de una seal obtenidos a partir de la ecuacin 2.3-1 ...................... 9
Tabla 3.1 Funciones ms comunes para el diseo de filtros digitales en MATLAB....... 97
Tabla 3.2 Funciones utilizadas en MATLAB para el clculo de la FFT. ...................... 102
Tabla 3.3 Funciones de MATLAB para modulacin y demodulacin AM .................. 106
Tabla 3.4 Funciones de MATLAB para modulacin y demodulacin PAM ................ 123
Tabla 3.5 Funciones de MATLAB para la modulacin y demodulacin QAM............ 128
xi
NOMENCLATURA
AM
DFT
DSBSC-AM
(Double
Sideband
Suppressed
Carrier
Amplitude
Modulation)
DSP
FFT
FIR
FM
IDFT
IIR
LSB
LSI
MSI
PLL
QAM
SSB-AM
USB
VLSI
xii
RESUMEN
xiii
CAPTULO 1: Introduccin
1.1
Objetivos
1.1.1
Objetivo general
Preparar y generar prcticas para una simulacin previa a la ejecucin de
experimentos que emplearan tarjetas construidas para realizar procesamiento digital
de seales.
1.1.2
Objetivos especficos
Preparacin del manual de prcticas para simulacin.
Diseo de prcticas adicionales en el rea de comunicaciones digitales.
Introduccin de nuevas tcnicas de simulacin en el rea de sistemas de
comunicaciones digitales.
1.2
Es por eso que este es un tema de estudio de gran inters para la Escuela de
Ingeniera Elctrica de la Universidad de Costa Rica, y por eso se ha decidido desarrollar
una serie de prcticas de simulacin en los apartados que envuelve la ciencia del
procesamiento digital de seales, las cuales se realizarn de forma previa a un laboratorio
en el cual se pondrn en prctica todos los conocimientos adquiridos en el curso de
Procesamiento Digital de Seales que imparte dicha Escuela, con tarjetas de programacin
de microprocesadores diseados para el tratamiento digital de seales.
1.3
Problema a resolver
El problema a resolver, es el de realizar el manual de prcticas para simulacin
1.4
Metodologa
La metodologa propuesta describe la manera en la cual va a transcurrir el proceso
Por ltimo se evala cada una de las prcticas por medio de un anlisis de
resultados y el procedimiento efectuado para cada una de ellas.
media escala (MSI, medium scale integration), luego con la integracin a gran escala (LSI,
large scale integration) y por ltimo, hoy en da, con la integracin a muy gran escala
(VLSI, very large scale integration) de circuitos electrnicos integrados ha estimulado el
desarrollo de ordenadores digitales ms pequeos, rpidos, y baratos y de hardware de
propsito general. Con estos circuitos digitales, se ha hecho posible construir sistemas
digitales altamente sofisticados, capaces de realizar funciones y tareas para un
procesamiento de seal digital que normalmente eran demasiado difciles y/o caras con
circuitera o sistemas de procesamiento de seales analgicas.
A travs del DSP, se han desarrollado hoy en da, sofisticados sistemas de
comunicacin, naci el Internet, se ha podido obtener valiosa informacin acerca del
cosmos a partir de las seales astronmicas, las seales ssmicas pueden ser analizadas para
determinar la magnitud de un terremoto o para predecir la estabilidad de un volcn, las
imgenes o fotografas por computador pueden ser ahora mejoradas, entre muchas otras
cosas ms.
2.2
Tipos de seales1
Las seales se pueden encontrar en la mayora de los campos de la ciencia y la
Proakis, J. G. Tratamiento digital de seales. Tercera Edicin, Prentice Hall, Madrid, Espaa, 1998.
Una seal continua en el tiempo est definida para todos los valores del tiempo
desde el inicio hasta el final en un intervalo de tiempo dado, por ejemplo la seal acstica
producida por un delfn. Una seal discreta en el tiempo est definida como una seal con
valores en ciertos instantes del tiempo, los cuales pueden ser cada milisegundo, segundo,
minuto, hora o da, por ejemplo las gotas de lluvia como funcin del tiempo.
Matemticamente, las seales analgicas se describen como funciones continuas de
variable continua, donde el dominio es un intervalo de valores (t1, t2), donde < t1 y
t2 < , la cual est representada en la figura 2.1a. De forma similar una seal discreta
puede ser representada por una funcin x(nT ) , donde T es el perodo entre los valores
discretos adyacentes de la funcin y n es un integrador del intervalo (n1, n2) donde < n1
y n2 < , tal y como se muestra en la figura 2.1b. Las seales de tiempo discreto a menudo
son generadas a partir de una seal continua por medio de un proceso de muestreo. En
Sin cuantificar
Cuantificada
Una seal sin cuantificar puede tomar cualquier valor en un intervalo, mientras que
una seal cuantificada slo puede tomar valores discretos, usualmente de igual longitud de
separacin. La figura 2.2a y 2.2b muestra respectivamente, a una seal cuantificada
continua en el tiempo y una seal cuantificada discreta en el tiempo.
(a)
(b)
Figura 2.1 Tipos de seales: (a) Seal continua en el tiempo sin cuantificar, (b) seal
discreta en el tiempo sin cuantificar
(a)
(b)
Figura 2.2 Tipos de seales: (a) Seal continua en el tiempo cuantificada, (b) seal
discreta en el tiempo cuantificada
2.3
del tiempo. Pero en algunas situaciones es de gran utilidad representar las seales con
funciones en el dominio de la frecuencia, por ejemplo un seal continua en el tiempo
compuesta por la sumatoria de las componentes sinusoidales, tal como
9
x(t ) = Ak sin (k t + k )
(2.3-1)
k =1
para k = 1,2,3,K,9}
(2.3-2)
y
1
Antoniou, A. Digital Signal Processing: Signals, Systems and Filters. Primera edicin, McGraw Hill, New
York, Estados Unidos, 2006.
( ) = {k : = k
para k = 1,2,3,K,9}
(2.3-3)
las cuales representan las magnitudes y las fases de las componentes sinusoidales presentes
en la seal. A las series A( ) y ( ) se les conoce respectivamente como el espectro de
magnitud y el espectro de fase de la seal. Por ejemplo, si A( ) y ( ) en la ecuacin
2.3-1, tomaran los valores dados en la tabla 2.1 asociados con cierto valor de frecuencia,
x(t ) puede ser representada en el dominio del tiempo, tal y como se muestra en la figura
2.3 y en el dominio de la frecuencia en las figuras 2.4a y b.
Ak
0.6154
0.0579
0.7919
0.3529
0.9218
-0.8132
0.7382
0.0099
0.1763
0.1389
0.4057
-0.2028
0.9355
0.1987
0.9169
-0.6038
0.4103
-0.2722
Figura 2.3 Representacin en el dominio del tiempo de la seal peridica dada por la
ecuacin (2.3-1).
10
11
2.4
segn algn atributo de los objetos que se aplican a su entrada, aquello que pasa a su travs.
Por ejemplo, un filtro de aire permite que el aire pase a su travs, evitando que las
partculas de polvo presentes en el aire lo atraviesen.
El filtrado se emplea en el procesamiento digital de seales de diferentes maneras,
por ejemplo, en la eliminacin de ruido indeseable de seales deseadas, en la conformacin
espectral para ecualizacin de canales de comunicaciones, en la deteccin de seales en
radar, sonar y comunicaciones, en los anlisis espectrales de seales, etc.
Los filtros elctricos, desde que fueron inventados, han hecho posible el gran
desarrollo de las telecomunicaciones. Originalmente los filtros analgicos fueron
inventados para ser usados para receptores de radio y sistemas telefnicos para comunicar
personas a larga distancia, convirtindose de esta manera en elementos importantes en
todos los tipos de sistemas de comunicacin. Con el desarrollo de filtros en los ltimos
aos, estos se pueden clasificar segn su funcin, su gama de frecuencias o segn su
tecnologa y de acuerdo, con los elementos que los componen. Algunos tipos de filtros
analgicos son los siguientes:
Antoniou, A. Digital Signal Processing: Signals, Systems and Filters. Primera edicin, McGraw Hill, New
York, Estados Unidos, 2006.
12
Filtros de microondas
En general, un filtro digital es un sistema que recibe de entrada una seal de tiempo
discreto y produce de salida una seal de tiempo discreto, pero modificada en cierta forma
ya sea en magnitud o en frecuencia. Con el rpido avance en la tecnologa de los circuitos
integrados, el desarrollo de tecnologas digitales hizo que se construyeran sistemas ms
verstiles y de muy bajo costo.
El desarrollo de filtros digitales sigue creciendo da con da, y por ello se tiene los
siguientes ejemplos:
Filtros adaptativos
recursivos
Filtros multidimensionales
Filtros de abanico
Filtros Multitasa
Filtros bidimensionales
Filtros
recursivos
no
Estos filtros digitales hoy en da, pueden ser implementados en lenguajes como
MATLAB o C++.
13
2.5
y[n] =
x[k ] h[n k ] =
k =
h[k ] x[n k ]
(2.5-1)
k =
y[n]z
= X ( z) H ( z)
(2.5-2)
n =
donde
H ( z) =
h[n]z n
X ( z) =
x[n]z
(2.5-3)
n =
n =
Tretter, S. A. Communication System Design Using DSP Algorithms. Primera Edicin, Kluwer Academic
/ Plenum Publishers, New York, Estados Unidos, 2003.
14
h[k ] Ce
j ( n k )T
= Ce jnT
k =
h[k ] e
jkT
k =
= x[n]H ( z ) z = e jT (2.5-4)
Por tanto, la salida tiene forma sinusoidal a la misma frecuencia que la entrada, pero
con su amplitud dada a partir del nmero complejo.
H * ( ) = H ( z ) z = e jT
(2.5-5)
(2.5-6)
Entonces, de acuerdo con la ecuacin 2.5-4, la salida puede ser expresada como
y[n] = CA( )e j[nT + ( )]
(2.5-7)
(2.5-8)
15
(2.5-9)
16
N 1
x[k ] h[n k ]
(2.5-10)
k = n N +1
17
Ventana rectangular
Ventana de Barlett
Ventana de Hamming
Ventana de Blackman
Ventana de Kaiser
Muestreo en frecuencia
Un filtro con respuesta al impulso, h(n), que tiene duracin infinita es conocido
como un filtro IIR, h(n) es la suma de varios exponenciales. En el dominio de la
transformada z, H(z), se conoce como la funcin de transferencia, y es una funcin racional
de z. Es la razn de dos polinomios de grado finito, tal y como se muestra en la siguiente
funcin racional,
H ( z) =
b0 + b1 z 1 + b2 z 2 + L + bN z N
B( z )
=
1
2
M
1 + a0 + a1 z + a2 z + L + aM z
A( z )
18
(2.5-11)
(2.5-12)
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)
k =0
k =1
Y ( z ) = bk X ( z ) z k ak Y ( z ) z k
(2.5-14)
k =0
k =1
(2.5-15)
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)
Figura 2.6 Primer paso de la estructura en forma directa tipo 1 de un filtro IIR
(2.5-18)
k =1
y[n] = bk v[n k ]
(2.5-19)
k =0
20
capacidad y se les conoce como estructura en forma directa tipo 1 y forma directa tipo 2
respectivamente.
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
s N [n + 1] = s N 1[n]
s N 1[n + 1] = sN 2 [n]
M
s2 [n + 1] = s1[n]
s1[n + 1] = v[n]
Otra estructura, es la de forma directa tipo 2, la cual se puede obtener de la ecuacin
2.5-13. Para simplificar, sea M=N.
N
(2.5-20)
k =1
22
La secuencia de pasos siguiente es para obtener las salidas y para actualizar sus
variables de estado de este tipo de estructura.
23
s N [n + 1] = bN x[n] aN y[n]
2.5.4 Transformacin bilineal1
H a (s) =
B( s)
=
A( s )
k =0
N
k =0
(2.5-21)
donde { k } y { k } son los coeficientes del filtro, o por su respuesta al impulso, que
se relaciona con Ha(s) mediante la transformada de Laplace
H a (s ) = h(t )e st dt
(2.5-22)
Proakis, J. G. Tratamiento digital de seales. Tercera Edicin, Prentice Hall, Madrid, Espaa, 1998.
Jackson, L. B. Digital filters and Signal Processing. Tercera Edicin, Boston: Kluwer Academic Publishers,
Estados Unidos, 1996.
24
dt k
dt k
k =0
k =0
N
(2.5-23)
donde x(t) denota la seal de entrada e y(t) denota la salida del filtro.
Cada una de estas tres caracterizaciones equivalentes de un filtro analgico conduce
a mtodos alternativos para convertir el filtro al dominio digital. Recurdese que un sistema
analgico lineal invariante en el tiempo con funcin de transferencia H(s) es estable si
todos sus polos se encuentran en la mitad izquierda del plano s. Consecuentemente, si la
tcnica de conversin es efectiva debera tener las siguientes propiedades deseables:
25
la circunferencia unidad del plano z slo una vez, evitando el solapamiento de componentes
de frecuencia. Adems, todos los puntos en el semiplano izquierdo s se corresponden con el
interior de la circunferencia unidad en el plano z y todos los puntos en el semiplano
derecho de s se corresponden con puntos fuera de la circunferencia unidad del plano z.
De esta manera se necesita una transformacin de s a s, la cual contenga todo el
plano s dentro del intervalo T Im(s ' ) T , luego para transformarlo al plano z
utilizando z = e s 'T . La transformacin del plano s al plano s est descrita en la figura 2.9 y
esta dada por
s' =
2
sT
tan 1
T
2
(2.5-24)
Ahora para ver el efecto de esta transformada es mejor pasar al eje j. Sustituyendo
s=j y s=j en (2.5-24), se obtiene
' =
2
T
tan 1
T
2
26
(2.5-25)
O equivalentemente,
T
= 2 tan 1
(2.5-26)
2
s'T
tanh
T
2
(2.5-27)
27
s=
2
ln z
tanh
T
2
(2.5-28)
Recordando que:
tanh x =
e x e x 1 e 2 x
=
y aplicndolo a la ecuacin (2.5-28), se obtiene
e x + e x 1 + e 2 x
2 1 z 1
s =
T 1 + z 1
(2.5-29)
Por tanto, el diseo en tiempo discreto de un filtro se obtiene a partir del diseo en
tiempo continuo a travs de la transformada bilineal.
H ( z ) = H c ( s)
2 1 z 1
S=
T 1+ z 1
(2.5-30)
(2.5-31)
28
2
tan
T
2
(2.5-32)
29
2
tan
T
2
(2.5-33)
H ( s) = K
Mc
m =1
N
(s m )
( s sk )
k =1
(2.5-34)
H ( z ) = b0 1 + z
1 N M c
30
Mc
m =1
N
(1 zm z 1 )
(1 pk z 1 )
k =1
(2.5-35)
donde
T
m
2
zm =
T
1 m
2
T
sk
2
pk =
T
1 sk
2
1+
1+
(2.5-36)
31
2.6
Suponga que una seal continua en el tiempo, es muestreada con un perodo T o una
frecuencia de muestreo de s = 2 T para obtener una seal discreta en el tiempo
x[n]=x(nT).
Se define en tiempo discreto la Transformada de Fourier de x[n] como la siguiente
expresin,
X ( ) =
x[n] e
jnT
(2.6-1)
n =
Tretter, S. A. Communication System Design Using DSP Algorithms. Primera Edicin, Kluwer Academic
/ Plenum Publishers, New York, Estados Unidos, 2003.
32
ws
x[n] =
X ( ) e
jnT
(2.6-2)
ws
2
As, x[n] puede ser considerada como la suma de ondas sinusoidales muestreadas
en un intervalo de frecuencias continuas, de acuerdo al ancho de banda segn Nyquist
s 2 < < s 2 con amplitudes complejas dadas por X(). De esta manera X() se le
puede llamar como el espectro de frecuencia de la seal.
Sea x[n] una seal la cual es cero para valores de n que no estn en el siguiente
intervalo {0, 1, 2,., N-1}. Sea X() en tiempo discreto la transformada de Fourier de
x[n], la cual se defini en el punto 2.6.1. Entonces, la Transformada Discreta de Fourier
(DFT, acrnimo en ingls de Discrete Fourier Transform) de x[n], se define como
N 1
X k = X (ks N ) = x[n] e
2
nk
N
(2.6-3)
n =0
33
1
x[n] =
N
N 1
X
k =0
2
nk
N
(2.6-4)
WN
W
N
2
k+N
N
= WNk
=W
k
N
Simetra
(2.6-5)
Periodicidad
Diezmado en el tiempo
Diezmado en frecuencia
Proakis, J. G. Tratamiento digital de seales, Tercera edicin, Prentice Hall, Madrid Espaa, 1998.
Tretter, S. A. Communication System Design Using DSP Algorithms, Primera edicin, Kluwer Academic /
Plenum Publishers, New York, Estados Unidos, 2003.
34
Estos algoritmos son de gran utilidad debido a que si se realiza el clculo directo de
la DFT o IDFT dadas por (2.6-3) y (2.6-4), esto supone realizar N multiplicaciones
complejas y N 1 sumas complejas. En consecuencia, para calcular los N valores de de
DFT necesitamos N 2 multiplicaciones complejas y N 2 N sumas complejas. Por otra
parte el clculo utilizando estos algoritmos reduce el nmero de sumas complejas a
N log 2 N . De manera para valores de N muy grandes es de gran importancia utilizar la FFT
N 1
x[n] e
2
nk
N
n=0
N 1
= x[n]WNnk
(2.6-6)
n=0
Xk =
N
1
2
x[2n] W
n=0
2 nk
N
N
1
2
(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
(2.6-9)
n=0
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
X k = Ak + WNk Bk
para n = 0, 1, K , N 1
(2.6-11)
k+
N
2
= Ak WNk Bk
para n = 0, 1, K ,
N
1
2
(2.6-12)
36
37
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
N
Nk 2 1
2
N
N
n=
2
x[n] + ( 1)
Xk = W
x n + WNkn
2
(2.6-14)
X 2k =
N
1
2
x[n] + x n +
n=0
N kn
W N
2 2
para k = 0, 1,K,
N
1
2
(2.6-15)
X 2 k +1 =
N
1
2
x[n] x n +
n=0
N kn kn
W N W N
2 2 2
38
para k = 0, 1,K,
N
1
2
(2.6-16)
N
2
puntos g1 (n ) y g 2 (n ) como
N
g1 [n] = x[n] + x n +
2
(2.6-17)
N
para n = 0, 1, 2,K , 1
2
Entonces
X 2k =
N
1
2
g [n]W
n =0
X 2 k +1 =
N
1
2
kn
N
2
g [n]W
n=0
(2.6-18)
kn
N
2
(N 2)log 2 N
39
40
1
2
Y ( )
N
(2.6-19)
donde
N 1
Y ( ) = y[n] e jnT
(2.6-20)
n=0
R(n ) = N
0
N 1
y[n + k ] y[k ]
para
n N 1
k =0
(2.6-21)
Proakis, J. G. Tratamiento digital de seales, Tercera edicin, Prentice Hall, Madrid Espaa, 1998.
Tretter, S. A. Communication System Design Using DSP Algorithms, Primera edicin, Kluwer Academic /
Plenum Publishers, New York, Estados Unidos, 2003.
41
1
N
N 1
y[k ]
k =0
s / 2
/2
I N ( ) d
(2.6-22)
para n = 0, 1,..., N 1
cualquier otro
(2.6-23)
) 1 L 1
S = I N , k ( )
L k =0
42
(2.6-24)
43
2.7
Tretter, S. A. Communication System Design Using DSP Algorithms. Primera Edicin, Kluwer Academic
/ Plenum Publishers, New York, Estados Unidos, 2003.
44
(2.7-1)
c (t ) = Ac cos ct
(2.7-2)
donde
(2.7-3)
para todo t
(2.7-4)
45
(2.7-5)
Suponga que la seal de banda base m(t) tiene como transformada de Fourier M ( )
y M ( ) = 0 para W .
S ( ) = Ac ( + c ) + Ac ( c ) +
Ac
A
ka M ( + c ) + c ka M ( c )
2
2
(2.7-6)
( + c )
amplitud Ac k a 2 .
Para frecuencias positivas la parte del espectro por encima de c y para frecuencias
negativas la parte del espectro por debajo de -c se denomina banda lateral superior (USB,
acrnimo en ingls de Upper Side Band) y para frecuencias positivas la parte del espectro
por debajo de c y para frecuencias negativas la parte del espectro por encima de -c se
46
denomina banda lateral inferior (LSB, acrnimo en ingls para Lower Side Band). La
condicin c > W asegura que las bandas laterales inferiores (la positiva y la negativa) no
se solapen.
Para frecuencias positivas, la componente frecuencial superior es (c + W ) y la
inferior (c W ) . La diferencia entre ambas define el ancho de banda de transmisin de la
seal AM que se representa mediante Br y viene dado por la siguiente ecuacin
Br = 2W
47
(2.7-7)
(2.7-8)
El primer trmino del lado derecho de la ecuacin es una seal pasobajo excepto
que la frecuencia de corte se aument en 2W. El segundo trmino tiene un espectro
centrado en 2c . Para frecuencias positivas, este espectro se encuentra dentro del
intervalo (2c 2W , 2c + 2W ) . Para que el detector funcione correctamente, los espectros
de estos dos trminos no deben solaparse. Esto se logra si
2W < 2c 2W
48
or c > 2W
(2.7-9)
El filtro H() es un filtro pasobajo ideal con una frecuencia de corte 2W de manera
que su salida es 0.5 Ac2 [1 + ka m(t )] . La caja final del diagrama de bloques del detector se
2
encarga de obtener la raz cuadrada de la salida del filtro y da como resultado una seal que
es proporcional a m(t) con un nivel DC. En muchos casos, la seal que se desea transmitir
no tiene componentes de espectro cerca de la frecuencia cero y el nivel DC puede ser
eliminado utilizando un filtro pasoalto.
49
2.8
Sea m(t) la seal que se desea transmitir. La seal DSBSC-AM obtenida a partir de
m(t) es
1
Tretter, S. A. Communication System Design Using DSP Algorithms. Primera Edicin, Kluwer Academic
/ Plenum Publishers, New York, Estados Unidos, 2003.
50
s (t ) = Ac m(t )cos ct
(2.8-1)
(2.8-2)
= 1 . La parte del espectro para > c se le conoce como banda lateral superior (USB,
acrnimo en ingls de Upper Sideband) y la parte del espectro para < c se le conoce
como la banda lateral inferior (LSB, acrnimo en ingls para Lower Sideband).
51
la portadora de tal manera que pase la seal DSBSC y elimine el ruido. La salida del filtro
pasabanda luego es multiplicado por una rplica de la onda portadora. Esta replica es
generada por un dispositivo llamado oscilador local (LO, acrnimo en ingls para Local
Oscilator). Suponiendo una seal sin ruido, el producto de esa multiplicacin es
s1 (t ) = 2s (t )cos ct = 2 Ac m(t )cos 2 ct = Ac m(t ) + Ac m(t )cos 2ct
(2.8-3)
(2.8-4)
52
altas frecuencias no deseadas son eliminadas finalmente por el filtro pasobajo con
frecuencia de corte W.
53
54
(2.8-5)
1 = nT +
(2.8-6)
)
s+ (nT ) = s(nT ) + js (nT ) = Ac m(nT )e j ( c nT +1 )
(2.8-7)
(nT ) = c nT + 2 (nT )
(2.8-8)
Este ngulo es luego pasado por el bloque con el exponencial complejo para dar
lugar a la seal del oscilador local e j (nT ) .
55
La seal del oscilador local es multiplicada por la envolvente compleja dando como
resultado
c(nT ) = s+ (nT )e j (nT ) = Ac m(nT )e j [1 2 (nT )]
(2.8-9)
)
c1 (nT ) = e s+ (nT )e j (nT ) = s(nT )cos (nT ) + s (nT )sin (nT )
(2.8-10)
)
c2 (nT ) = m s+ (nT )e j (nT ) = s (nT )cos (nT ) s(nT )sin (nT )
c2 (nT ) = Ac m(nT ) sin[1 2 (nT )]
(2.8-11)
56
enganchado, el ngulo de aproximacin sin x x puede ser utilizado para aproximar con
exactitud a q (nT )
q (nT ) Ac2 m 2 (nT )[1 2 (nT )] para
1 2 (nT ) << 1
(2.8-12)
(2.8-13)
donde
(2.8-14)
(nT ) = c nT + (0)
(2.8-15)
El bloque acumulador 1 z 1
entrada 1 (nT ) , la cual es una funcin lineal. La fase de entrada tiene esta forma lineal,
57
cuando existe una diferencia en frecuencia entre las frecuencias de la seal recibida y la
portadora. Este bloque junto con los dems bloques introduce un polo de segundo orden en
z = 1 en el lazo abierto el cual es equivalente a un adelanto doble en el dominio del tiempo.
El lazo Costas es un sistema no lineal y variante en el tiempo debido a los trminos
sin (
por una funcin de transferencia. Sin embargo, cuando m(nT ) es un proceso estacionario y
el lazo est enganchado, se puede aproximar con exactitud un sistema lineal e invariante en
el tiempo usando la aproximacin (2.8-12) y reemplazando m 2 (nT ) por cierto valor
constante. Al hacer este reemplazo se justifica el hecho de que los lazos de filtrado acten
como filtros pasobajos en q (nT ) . Entonces sea
k1 = Ac2 E m 2 (nT )
(2.8-16)
(2.8-17)
k1 ( + )1
z 1
(z )
+
H (z ) = 2
=
1 ( z ) 1 [2 k1 ( + )]z 1 + (1 k1 )z 2
58
(2.8-18)
59
2.9
de frecuencia. Al analizar el espectro se encuentra que an hay redundancia ya que las dos
bandas alrededor de la frecuencia de corte son simtricas. El objetivo es demostrar que una
seal puede ser transmitida tan solo utilizando una de las dos bandas, ya sea la banda
inferior o la banda superior, y por tanto utiliza tan solo la mitad del ancho de banda
respecto a AM y DSBSC-AM. Este tipo de modulacin se le conoce como modulacin de
banda lateral nica (SSB, acrnimo en ingls para Single Sideband). Este mtodo de
modulacin es utilizado extensamente en los sistemas de comunicaciones.
Un modulador SSB se muestra en la figura 2.21. Sea m(t) la seal de banda base
que se desea transmitir con una frecuencia de corte W, la cual es menor a la frecuencia de la
portadora c . La primera etapa de modelo genera una seal DSBSC-AM
a(t ) = Ac m(t )cos ct
(2.9-1)
(2.9-2)
Tretter, S. A. Communication System Design Using DSP Algorithms. Primera Edicin, Kluwer Academic
/ Plenum Publishers, New York, Estados Unidos, 2003.
60
para
> c
cualquier otro
(2.9-3)
1
H inf ( ) =
0
para
< c
cualquier otro
(2.9-4)
Al utilizar alguno de estos dos filtros se obtiene una seal SSB, la cual puede ser
expresada en trminos de la seal banda base m(t ) y su transformada Hilbert m (t ) , tal y
como se muestra a continuacin. La seal SSB tiene la siguiente transformada de Fourier
S + ( ) = 2S ( )u ( ) = 2 A( ) H ( )u ( ) = Ac M ( c )H ( )
(2.9-5)
61
(2.9-6)
(2.9-7)
(2.9-8)
s (t ) = e ~
s (t )e j c t = 0.5 Ac m(t )cos ct 0.5 Ac m (t )senct
(2.9-9)
(2.9-10)
(2.9-11)
s (t ) = e ~
s (t )e j c t = 0.5 Ac m(t )cos ct + 0.5 Ac m (t )senct
(2.9-12)
62
Para demodular seales SSB, existe una tcnica conocida, la cual consiste en
multiplicar la seal por una rplica de la seal portadora. Al multiplicar la ecuacin (2.9-9)
o (2.9-12) por 2 cos ct se obtiene
b(t ) = Ac m(t )cos 2 ct m Ac m(t )sin ct cos ct
b(t ) = 0.5 Ac m(t ) + 0.5 Ac m(t )cos 2ct m 0.5 Ac m (t )sin 2ct
(2.9-13)
63
laterales 2c , las cuales son los trminos removidos por el filtro pasobajo. Este
demodulador posee el mismo diagrama de bloques de la figura 2.21, excepto que en lugar
de la seal a transmitir m(t ) se pone la seal recibida s (t ) y el bloque H ( ) por un filtro
pasobajo. En la prctica, a la entrada de este sistema se coloca un filtro pasabanda para
eliminar ruido que se adhiere a la seal modulada.
Otra forma para demodular seales SSB est basado en la utilizacin de la
transformada de Hilbert. El primer paso es tomar la transformada de Hilbert de la seal
recibida s (t ) . Usando la ecuacin (2.9-8) y (2.9-11), se obtiene
s+ (t ) = s (t ) + js(t ) = ~
s (t )e j c t = 0.5 Ac [ m(t ) jm (t )]e j c t
(2.9-14)
(2.9-15)
64
(2.9-16)
Esta componente
corresponde a una distorsin de fase. Un error de fase en el oscilador local da lugar a una
distorsin de fase donde cada componente frecuencial de la seal m(t ) sufre un desfase
constante a la salida del demodulador. Este desfase no suele ser un problema en el caso de
seales de voz debido que el odo suele ser relativamente insensible a la distorsin de fase.
En el caso de seales musicales o seales de video, la distorsin de fase es un error no
tolerable.
65
(2.9-17)
S + ( ) = 2S ( ) u ( )
(2.9-18)
la transformada de Fourier es
66
(2.9-19)
R+ ( ) = S + ( )
(2.9-20)
(2.9-21)
(2.9-22)
R( ) = R+ ( ) + R+ ( ) 2
R( ) = S ( )u ( ) + S ( )u ( )
(2.9-23)
67
Tretter, S. A. Communication System Design Using DSP Algorithms. Primera Edicin, Kluwer Academic
/ Plenum Publishers, New York, Estados Unidos, 2003.
68
(t ) =
d
(t )
dt
(2.10-1)
(t ) = c + k m(t )
(2.10-2)
(t ) = ( ) d = ct + m (t )
t
(2.10-3)
donde
m (t ) = k m( ) d
t
(2.10-4)
es la desviacin de fase de la seal portadora causada por m(t ) . Por ltimo la seal
FM generada a partir de m(t ) es
s (t ) = Ac cos[ct + m (t )]
(2.10-5)
69
n 1
(2.10-6)
k =0
donde
n 1
m (nT ) = kT m(kT )
(2.10-7)
k =0
(2.10-8)
2.10.1.1
(2.10-9)
k A
s (t ) = Ac cos c + m sin mt
m
70
(2.10-10)
k Am
(2.10-11)
2.10.1.2
71
estas razones la cantidad de bandas laterales es infinita, por tanto es imposible obtener una
expresin para el ancho de banda de una seal FM. El ancho de banda depende de la forma
de la seal de banda base y la mxima desviacin en frecuencia. Esta relacin de
desviacin est dada por la ecuacin (2.10-11). El ancho de banda de la seal modulada,
bajo estas condiciones est dado por:
BT = 2(f + f m ) Hz
(2.10-12)
72
2.10.2.1
73
(2.10-13)
(t ) = arctan[s(t ) s(t )] = ct + m (t )
(2.10-14)
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)
2.10.2.2
(2.10-16)
~(t ) = arctan[sQ (t ) sI (t )] = m (t )
(2.10-17)
d ~
(t ) =
dt
sI (t )
d
d
sQ (t ) sQ (t ) sI (t )
dt
dt
= k m(t )
2
2
sI (t ) + sQ (t )
74
(2.10-18)
Tretter, S. A. Communication System Design Using DSP Algorithms. Primera Edicin, Kluwer Academic
/ Plenum Publishers, New York, Estados Unidos, 2003.
75
Tretter, S. A. Communication System Design Using DSP Algorithms. Primera Edicin, Kluwer Academic
/ Plenum Publishers, New York, Estados Unidos, 2003.
76
77
Tretter, S. A. Communication System Design Using DSP Algorithms. Primera Edicin, Kluwer Academic
/ Plenum Publishers, New York, Estados Unidos, 2003.
78
79
para i =
M
M
+ 1, ...., 0, ....,
2
2
(2.11-1)
a (t kT )
k =
(2.11-2)
El bloque Modulador de Impulso genera este tren de impulsos. Luego este se pasa
por un bloque de filtrado con respuesta al impulso gT (t ) el cual limita la banda de la seal
al ancho de banda del canal. El resultado de este filtrado es
s (t ) =
a g (t kT )
k
k =
(2.11-3)
El canal se modela como un filtro lineal e invariante en el tiempo con una respuesta
en frecuencia C ( ) , seguido de la suma de la componente de ruido introducida por el
canal. En el receptor, la salida del canal r(t) primero se pasa por un filtro que se encarga de
eliminar el ruido que no pertenece a la seal.
80
(2.11-4)
y su respuesta al impulso es
g (t ) = gT (t ) c(t ) g R (t ) = F 1{G ( )}
(2.11-5)
a g (t kT ) + (t ) g (t )
k =
(2.11-6)
(2.11-7)
Una respuesta al impulso con esta propiedad se dice que no tiene interferencia entre
smbolos (ISI, acrnimo en ingls para InterSymbol Interference). Con estas suposiciones,
se puede notar a partir de (2.11-6) que las muestras tomadas cada nT tiempo de la salida
del filtro receptor se reduce a x(nT ) = an , esta expresin es exactamente la secuencia de
smbolos transmitida. Es usual que cuando se disean los filtros de transmisin y recepcin,
estos combinen sus efectos de manera que se forme un nico filtro sin interferencia entre
smbolos bajo la suposicin de que la respuesta en frecuencia del canal sea constante en
todo el ancho de banda de la seal, as no se introduce distorsin.
81
1
2
G ( )e jnT d
(2.11-8)
ks , s ks para k = , .....,
2
2
82
1
g (nT ) =
k =
k s
k s
1
1
G ( )e jnT d =
T
k = s
1
G ( ks )e j ( k s )nT d (2.11-9)
T
s
g (nT ) =
G ( )e
*
jnT
(2.11-10)
donde
G * ( ) =
1
G( ks )
T k =
(2.11-11)
83
de ojo se forma al aplicar la seal recibida y filtrada antes del muestreador a las placas de
deflexin vertical de un osciloscopio y una seal con forma de dientes de sierra a la tasa de
sealizacin en sincronismo con la seal recibida a las placas de deflexin horizontal. De
esta manera todos los smbolos se superponen en la pantalla del osciloscopio en un nico
perodo de smbolo, la imagen que se forma por su similitud con el ojo humano se le
denomina diagrama de ojo.
La figura 2.30 muestra el ejemplo de una seal binaria recibida (los primeros 8 bits)
y filtrada para un canal que introduce ruido y distorsin. En la figura 2.31 se puede ver un
diagrama de ojo (para 160 bits). El analizar este diagrama va a permitir determinar ciertas
caractersticas de la seal como el mejor instante de muestreo y la sensibilidad frente a
errores de temporizacin.
84
85
El margen del ruido para un smbolo en el instante de muestreo esta definido por la
altura del ojo.
Si el efecto conjunto del ruido y la ISI es muy grande, la traza superior e inferior del
ojo se cruzan, dando como resultado que el ojo se cierre. Cuando esto ocurre es imposible
evitar errores, por lo que se dice que el sistema no es inmune frente a estos fenmenos de
distorsin.
86
g1 (t ) = g (t ) b(t )
(2.11-12)
a g (t kT )
k =
(2.11-13)
a a g (t kT )g (t mT )
k = m =
m 1
(2.11-14)
sinusoidal con la frecuencia original con una pequea variacin en amplitud y fase. Luego
esta seal se pasa a travs de un PLL para obtener una seal estable con frecuencia f s .
87
Tretter, S. A. Communication System Design Using DSP Algorithms. Primera Edicin, Kluwer Academic
/ Plenum Publishers, New York, Estados Unidos, 2003.
88
89
a (t kT )
k
k =
(2.12-1)
y
b* (t ) =
b (t kT )
k =
(2.12-2)
a g (t kT )
k =
90
(2.12-3)
b(t ) =
b g (t kT )
k =
(2.12-4)
(2.12-5)
ak gT (t kT ) + j bk gT (t kT )
k =
~
s (t ) =
(a
k =
k =
+ jbk )gT (t kT ) =
c g (t kT )
k =
(2.12-6)
La seal analtica es
s+ (t ) = ck gT (t kT ) e j c t
k =
(2.12-7)
(2.12-8)
Por tanto, el modulador QAM puede ser representado de forma esquemtica, por el
siguiente diagrama de bloques mostrado en la figura 2.35.
91
j c t
s+ (t ) = ck gT (t kT ) e
= ck e jc kT gT (t kT )e j c (t kT )
k =
k =
(2.12-9)
(2.12-10)
donde
hI (t ) = gT (t ) cos c t
y hQ (t ) = gT (t )senc t
(2.12-11)
92
(2.12-12)
donde
(2.12-13)
(2.12-14)
ak = e ck e j c kT = ak cos c kT bk senc kT
y
bk = m ck e j c kT = ak senc kT + bk cos c kT
Sustituyendo estas definiciones en la ecuacin (2.12-9), da como resultado
s+ (t ) =
c h(t kT )
k =
(2.12-15)
Luego
s (t ) = e{s+ (t )} =
a h (t kT ) b h (t kT )
k =
k I
k Q
(2.12-16)
93
En este ltimo esquema, tanto los smbolos como los filtros son pasabanda, a
diferencia del esquema inicial en el que las seales se conformaban en banda base, y la
traslacin espectral se produce en la ltima etapa.
Los filtros conformadores de pulsos hI (t ) y hQ (t ) son tambin interpoladores igual
que en el esquema anterior. Estos producen L muestras por cada smbolo. Si comparamos
este esquema de modulador QAM con el esquema inicial, ste hace L multiplicaciones
complejas menos por perodo de smbolo que el anterior, ya que el modulador de producto,
trabaja con la seal a ritmo de smbolo, mientras que en el caso anterior, deba de realizar la
multiplicacin a razn de L por cada smbolo.
94
CAPTULO 3: Laboratorios
En este captulo se describen las prcticas de cada uno de los temas desarrollados en
el captulo anterior. Cada prctica consta de dos partes:
Por ltimo se presenta un cuestionario para reforzar los conceptos que se presentan
en el desarrollo del laboratorio.
95
3.1
para < o
(banda de paso)
para > o
(banda de rechazo)
no son fsicamente realizables ya que no son causales, sin embargo es posible disear
filtros causales que pueden aproximarse a los ideales con tanta precisin como sea
necesaria.
Estos filtros causales presentarn rizado tanto en la banda de paso como en la banda
de rechazo, por lo general .Por otro lado, la transicin de frecuencia entre ambas bandas no
se realizar de forma abrupta. La figura muestra las caractersticas indicadas
96
Tipo
Funcin en MATLAB
[b,a] = besself(n,Wn,options)
[z,p,k] = besself(n,Wn,options)
[A,B,C,D] = besself(n,Wn,options)
[b,a] = butter(n,Wn,options)
Butterworth
[z,p,k] = butter(n,Wn,options)
[A,B,C,D] = butter(n,Wn,options)
[b,a] = cheby1(n,Rp,Wn,options)
IIR
Chebyshev Tipo I
[z,p,k] = cheby1(n,Rp,Wn,options)
[A,B,C,D] = cheby1(n,Rp,Wn,options)
[b,a] = cheby2(n,Rs,Wn,options)
Chebyshev Tipo II
[z,p,k] = cheby2(n,Rs,Wn,options)
[A,B,C,D] = cheby2(n,Rs,Wn,options)
[b,a] = ellip(n,Rp,Rs,Wn,options)
Elptico
[z,p,k] = ellip(n,Rp,Rs,Wn,options)
[A,B,C,D] = ellip(n,Rp,Rs,Wn,options)
FIR
Ventana
b = fir1(n,Wn,'ftype',window)
b = fir2(n,f,m,npt,window)
97
98
3.
Considere que la seal de entrada est formada por la suma de dos seales
sinusoidales de frecuencia 180 y 720 Hz respectivamente. Usando la
funcin filter, grafique la salida del filtro y determine que sucede.
4.
5.
6.
7.
99
8.
Repita el punto 6.
9.
1. Considere la seal del punto (3) de la seccin 3.1.1. Se desea filtrar esa seal y
se quiere dejar pasar solo la seal con frecuencia de 1440 Hz. Utilice el bloque
llamado Sine Wave de la librera Sources en SIMULINK para generar cada
una de las seales que componen la seal principal, luego utilice un bloque de
punto de suma Sum y una de estas seales para formar una seal con tres
componentes en frecuencia. Luego utilice el bloque Zero-Order Hold para
muestrear la seal debe configurarlo para una frecuencia de muestreo de 8 KHz.
2. Ahora utilice el bloque Digital Filter Design de la librera Filtering / Filter
Designs y con este bloque genere con la ayuda de la herramienta FDATool
100
un filtro FIR de orden 64 de ventana Hamming con una banda de paso entre
1200 Hz y 2000 Hz. Luego coloque en la entrada de este filtro la seal
muestreada y coloque un Scope para poder ver la salida del filtro y compruebe
que se han suprimido las componentes de 720 Hz y 3000 Hz.
3. Nuevamente utilizando el bloque de filtros digitales genere el filtro del punto (5)
de la seccin 3.1.2. Implemente la seal del punto (6) de la seccin 3.1.2. Utilice
el filtro que hizo y pase la seal a travs de este y explique que sucede.
4. Repita el punto anterior pero para el filtro del punto (7) de la seccin 3.1.2.
3.1.3 Cuestionario
1. Cmo se define un filtro IIR? Cmo se define un filtro FIR? Mencione tres
diferencias entre estos dos tipos de filtros.
2. Qu es la transformacin bilineal y para qu se utiliza?
3. Investigue si existen otros mtodos de transformacin para pasar de un filtro
analgico a uno digital.
101
3.2
Laboratorio de FFT
El algoritmo de la FFT es una manera eficiente de calcular la DFT. Una primera
Descripcin
Y = fft(x,N)
X= ifft(Y,N)
X= ifft(Y,N)
102
IFFT.
Reordena el vector Y en orden creciente de frecuencia. Si Y
Y = fftshift(Y)
Para probar y extender los conocimientos en la FFT, lleve a cabo las siguientes
tareas
1.
2.
3.
103
4.
5.
3.2.2
104
1.
x2 [n] = 1.25 cos(2 (1200)n) + 3.75 cos(2 (175)n) + 2.15 cos(2 (2325)n)
Y obtenga el espectro en frecuencia de esta seal utilizando el bloque
mencionado anteriormente.
2.
3.
4.
5.
3.2.3 Cuestionario
1.
2.
105
3.3
Laboratorio de modulacin AM
Entre los primeros moduladores empleados se encuentra la modulacin de amplitud.
Descripcin
fc
y una
[y,t] = modulate(x,fc,fs)
106
3.3.1 Modulacin AM
1.
2.
107
3.
4.
Compare la seal inicial obtenida con la seal modulada para los tres
casos. Comente y explique que ocurre en cada uno.
5.
1.
108
1 + c 1 z 1
2 1 cz 1
3.
109
3.3.3 Cuestionario
1.
2.
3.
110
3.4
111
En MATLAB para modular y demodular con doble banda lateral con portadora
suprimida, se utiliza las funciones modulate y demod, cambiando la palabra method
por la opcin amdsb-sc.
1.
2.
3.
4.
5.
6.
112
7.
Compare los resultados del punto (6) con los obtenidos en el punto (2).
1.
2.
3.
3.4.3 Cuestionario
1.
2.
113
3.5
de frecuencia. Al analizar el espectro se encuentra que an hay redundancia ya que las dos
bandas alrededor de la frecuencia de corte son simtricas. El objetivo de la modulacin
SSB es utilizar eficientemente el espectro, transmitiendo una seal utilizando una de las
dos bandas alrededor de la frecuencia de corte, ya sea la banda inferior o la banda superior,
pues ambas son simtricas. Por tanto, utiliza tan solo la mitad del ancho de banda con
respecto a AM y DSBSC-AM. La figura siguiente muestra un tipo de modulador SSB, que
utiliza una seal modulada con DSBSC-AM y una etapa de filtrado.
1.
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
Pruebe
su
procedimiento
< c
para
cualquier otro
para
la
siguiente
seal
de
entrada
4.
1.
115
Una vez que tenga listo el procedimiento para demodular, pruebe con la
seal modulada que obtuvo en el punto (2) de la seccin 3.5.1.
3.
4.
1.
2.
116
3.
4.
3.5.4 Cuestionario
1.
2.
3.
117
3.6
Laboratorio de modulacin FM
La modulacin en frecuencia consiste en hacer variar la frecuencia de la portadora
3.6.1 Modulacin FM
1.
118
k A
s (t ) = Ac cos c + m sin mt
m
3.
4.
5.
6.
7.
119
8.
9.
10.
1.
2.
120
3.
3.6.3 Cuestionario
1.
2.
3.
121
3.7
s (t ) =
[1 + k m(nT )]g (t nT )
a
n =
de muestreo debe ser mayor que dos veces la frecuencia mxima de la seal moduladora
m(t ) de acuerdo con el teorema de muestreo.
MATLAB tiene una funcin para simular este tipo de modulacin, esta funcin es
pammod y tiene otra funcin que demodula una seal PAM, pamdemod las cuales se
muestran en la siguiente tabla.
122
Descripcin
y = pammod(x,M,ini_phase)
z = pamdemod(y,M)
una
seal
PAM.
Los
niveles
de
cuantificacin es la variable M.
z = pamdemod(y,M,ini_phase)
1.
123
3.
Para poder utilizar las funciones de la tabla 3.4 se necesita que la seal
est antes cuantificada en niveles de valores enteros positivos. Para no
tener problemas con estas funciones utilizaremos la funcin quantiz que
nos permite cuantificar una seal a los niveles o smbolos que queramos
en este caso enteros positivos. Para ello emplee el siguiente cdigo y
explique detalladamente lo que sucede.
partition = [0,1,3];
codebook = [-1,0.5,2,3];
samp = [-2.4,-1,-0.2,0,0.2,1,1.2,1.9,2,2.9,3,3.5,5];
[index,quantized] = quantiz(samp,partition,codebook);
index
quantized
4.
Utilice el mtodo anterior para cuantificar esta seal m(t ) = Am sin (2f mt )
con una frecuencia central f m = 100 Hz y Am = 15 . Debe utilizar una
frecuencia de muestreo de f muestreo = 4 KHz y obtenga 200 muestras.
Recuerde que M debe ser una potencia de 2 suficiente para generar los
niveles de cuantificacin de la seal cuantificada, pero antes de
124
6.
7.
8.
9.
1.
125
3.
4.
5.
3.7.3 Cuestionario
1.
2.
3.
126
3.8
que el mensaje est contenido tanto en la amplitud como la fase de la seal transmitida. Se
basa en la transmisin de dos mensajes independientes por un nico camino. Esto se
consigue modulando una misma portadora, desfasada 90 entre uno y otro mensaje. Esto
supone la formacin de dos canales ortogonales en el mismo ancho de banda, con lo cual se
mejora la eficiencia de ancho de banda.
La modulacin QAM es un esquema un tanto riguroso. Un pequeo error en la fase
o la frecuencia de la portadora en el demodulador no solo resulta en prdida o distorsin de
las seales sino interferencia entre ambos canales.
La modulacin QAM es utilizada en las transmisiones de televisin en color para
multiplexar las seales de crominancia, que portan la informacin acerca del color. En este
caso, la sincronizacin se logra por la insercin peridica de una muestra de la seal
portadora.
MATLAB tiene una funcin para simular este tipo de modulacin, esta funcin es
qammod y tiene otra funcin que sirve para demodular una seal QAM qamdemod,
estas funciones se muestran en la siguiente tabla.
127
Descripcin
y = qammod(x,M,ini_phase)
z = qamdemod(y,M)
z = qamdemod(y,M,ini_phase)
128
1.
m2 (t ) = Am sen(2f 2t )
Donde Am = 7 , f1 = 180 Hz y f 2 = 25 Hz. Utilice una frecuencia de
muestreo de f muestreo = 4 KHz y obtenga 200 muestras. Cuantifique la
seal muestreada a niveles enteros positivos.
2.
3.
4.
5.
129
6.
7.
1.
2.
130
4.
5.
6.
3.8.2 Cuestionario
1.
2.
3.
4.
131
4.1
Conclusiones
MATLAB Y SIMULINK son dos herramientas muy poderosas con las cuales se
132
133
4.2
Recomendaciones
Las prcticas planteadas deben estar acompaadas de una base terica. Esto debido
134
BIBLIOGRAFA
A continuacin se presenta las referencias bibliogrficas consultadas para la
elaboracin de este proyecto.
Libros:
1. Antoniou, A. Digital Signal Processing: Signals, Systems and Filters, Primera
edicin, McGraw-Hill, New York, Estados Unidos, 2006.
2. Tretter, S. A. Communication System Design Using DSP Algorithms, Primera
edicin, Kluwer Academic / Plenum Publishers, New York, Estados Unidos, 2003.
3. Jackson, L. B. Digital filters and Signal Processing, Tercera edicin, Boston:
Kluwer Academic Publishers, Estados Unidos, 1996.
4. Stanley, W. D. Digital Signal Processing, Segunda edicin, Reston Publishing
Company, Inc., Estados Unidos, 1984.
5. Alkin, O. Digital Signal Processing: A Laboratory Approach Using PC-DSP,
Primera edicin, Prentice Hall, Estados Unidos, 1994.
6. Proakis, J. G. Tratamiento digital de seales, Tercera edicin, Prentice Hall,
Madrid, Espaa, 1998.
7. Bildstein, P. Filtros Activos, Primera edicin, Marcombo Boixareu Editores,
Espaa, 1977.
8. Johnson, D. E. Rapid Practical Designs of Active Filters, Primera edicin, John
Wiley & Sons, Inc., Estados Unidos, 1975.
135
Pginas web:
9. Universidad de Valladolid. Marcos Martnez Fernndez, MMF. Modulacin
analgica y digital de Pulsos, http://www.lpi.tel.uva.es/lpi/dld/tts/tema5.pdf
136
APNDICES
%************************************************************************
%LABORATORIO DE FILTROS DIGITALES
%************************************************************************
%************************************************************************
%REALIZADO POR: Jos Gabriel Fernndez Carazo
%
A21941
%
Escuela de Ingeniera Elctrica
%
Facultad de Ingeniera
%
Universidad de Costa Rica
%************************************************************************
%Ultima modificacin: Julio del 2007.
%************************************************************************
%************************************************************************
%Se limpia el workspace de MATLAB y las variables en uso.
clc;
clear;
%************************************************************************
%************************************************************************
%FILTROS DIGITALES IIR
%************************************************************************
%Punto (1)
%************************************************************************
fm=8000;
%Frecuencia de muestreo
%Parmetros del filtro
N=[8 16 32 64];
Wn=[1200 2000]/(fm/2);
L=length(N);
M=zeros(N(L)+1,L);
137
for i=1:L
ventana=window(@hamming,N(i)+1);
end
%************************************************************************
%************************************************************************
%Punto (2)
%************************************************************************
%Clculo de la respuesta en frecuencia
Npuntos=256;
%Puntos a calcular de la respuesta en frecuencia
H=zeros(Npuntos,L);
%Matriz de ceros para guardar la respuesta en
%frecuencia del filtro segun el orden
for k=1:L
[H1,W]=freqz(M(:,k),1,Npuntos);
H(:,k)=H1;
end
%Visualizacin de la respuesta en frecuencia
figure(1)
subplot(2,1,1);
plot(W/pi,20*log10(abs(H)));
title('Respuesta en magnitud del filtro Hamming');
xlabel('\omega en unidades de \pi');
ylabel('Magnitud (dB)');
legend('N=8','N=16','N=32','N=64');
grid on;
subplot(2,1,2);
plot(W/pi,unwrap(angle(H)));
title('Respuesta de fase del filtro');
xlabel('\omega en unidades de \pi');
ylabel('Fase (rads)');
legend('N=8','N=16','N=32','N=64');
grid on;
%************************************************************************
%************************************************************************
%Punto (3)
%************************************************************************
L_medio=200;
%Mitad de la cantidad de muestras a recolectar
fm=8000;
%Frecuencia de muestreo
treq=2*L_medio/fm;
%Tiempo requerido para recolectar las muestras
t=0:1/(fm-1):treq;
%Vector de muestras a recolectar
138
%Seal de entrada
xin1=7*sin(2*pi*720*t);
xin2=3*sin(2*pi*1440*t);
xin3=15*sin(2*pi*3000*t);
x_in=xin1+xin2+xin3;
%Grficas de las seales que conforman la seal de entrada
figure(2)
subplot(3,1,1);
plot(t,xin1);
title('Seal con frecuencia de 720 Hz');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
grid on;
subplot(3,1,2);
plot(t,xin2);
title('Seal con frecuencia de 1840 Hz');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
grid on;
subplot(3,1,3);
plot(t,xin3);
title('Seal con frecuencia de 3000 Hz');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
grid on;
figure(3)
plot(t,x_in);
title('Seal de entrada');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
%Filtrando
fil=zeros(length(x_in),L);
for i=1:L
h1=filter(M(:,i),1,x_in);
fil(:,i)=h1;
end
%Se grafican las salidas de los filtros
figure(4)
subplot(4,1,1);
plot(t,fil(:,1));
txtp1=strcat('Salida del filtro Hamming de orden N=',num2str(N(1)));
title(txtp1);
xlabel('Tiempo (segundos)');
139
ylabel('Amplitud');
grid on;
subplot(4,1,2);
plot(t,fil(:,2));
txtp2=strcat('Salida del filtro Hamming de orden N=',num2str(N(2)));
title(txtp2);
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
grid on;
subplot(4,1,3);
plot(t,fil(:,3));
txtp3=strcat('Salida del filtro Hamming de orden N=',num2str(N(3)));
title(txtp3);
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
grid on;
subplot(4,1,4);
plot(t,fil(:,4));
txtp4=strcat('Salida del filtro Hamming de orden N=',num2str(N(4)));
title(txtp4);
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
grid on;
%************************************************************************
%************************************************************************
%Punto (4)
%************************************************************************
M=zeros(N(L)+1,L);
%Matriz de ceros para guardar los
%coeficientes del filtro para cada orden
for i=1:L
ventana=window(@kaiser,N(i)+1);
%Clculo de la funcin ventana
%Hamming
B=fir1(N(i),Wn,'bandpass',ventana);
%Clculo de los coeficientes
%del filtro
for j=1:length(B)
M(j,i)=B(j);
end
end
%Clculo de la respuesta en frecuencia
H=zeros(Npuntos,L);
%Matriz de ceros para guardar la respuesta en
%frecuencia del filtro segun el orden
for k=1:L
[H1,W]=freqz(M(:,k),1,Npuntos);
H(:,k)=H1;
end
140
141
subplot(4,1,4);
plot(t,fil(:,4));
txtp4=strcat('Salida del filtro Kaiser de orden N=',num2str(N(4)));
title(txtp4);
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
grid on;
%************************************************************************
%************************************************************************
%Punto (5)
%************************************************************************
M=zeros(N(L)+1,L);
%Matriz de ceros para guardar los
%coeficientes del filtro para cada orden
for i=1:L
ventana=window(@barthannwin,N(i)+1);
%Clculo de la funcin ventana
%Hamming
B=fir1(N(i),Wn,'bandpass',ventana);
%Clculo de los coeficientes
%del filtro
for j=1:length(B)
M(j,i)=B(j);
end
end
%Clculo de la respuesta en frecuencia
H=zeros(Npuntos,L);
%Matriz de ceros para guardar la respuesta en
%frecuencia del filtro segun el orden
for k=1:L
[H1,W]=freqz(M(:,k),1,Npuntos);
H(:,k)=H1;
end
% Visualizacin de la respuesta en frecuencia
figure(7)
subplot(2,1,1);
plot(W/pi,20*log10(abs(H)));
title('Respuesta en magnitud del filtro Bartlett');
xlabel('\omega en unidades de \pi');
ylabel('Magnitud (dB)');
legend('N=8','N=16','N=32','N=64');
grid on;
subplot(2,1,2);
plot(W/pi,unwrap(angle(H)));
title('Respuesta de fase del filtro');
xlabel('\omega en unidades de \pi');
ylabel('Fase (rads)');
legend('N=8','N=16','N=32','N=64');
grid on;
142
%Filtrando
fil=zeros(length(x_in),L);
for i=1:L
h1=filter(M(:,i),1,x_in);
fil(:,i)=h1;
end
%Se grafican las salidas de los filtros
figure(8)
subplot(4,1,1);
plot(t,fil(:,1));
txtp1=strcat('Salida del filtro Bartlett de orden N=',num2str(N(1)));
title(txtp1);
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
grid on;
subplot(4,1,2);
plot(t,fil(:,2));
txtp2=strcat('Salida del filtro Bartlett de orden N=',num2str(N(2)));
title(txtp2);
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
grid on;
subplot(4,1,3);
plot(t,fil(:,3));
txtp3=strcat('Salida del filtro Bartlett de orden N=',num2str(N(3)));
title(txtp3);
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
grid on;
subplot(4,1,4);
plot(t,fil(:,4));
txtp4=strcat('Salida del filtro Bartlett de orden N=',num2str(N(4)));
title(txtp4);
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
grid on;
%************************************************************************
%************************************************************************
%FILTROS DIGITALES IIR
%************************************************************************
%Punto (1)
%************************************************************************
fm=8000;
%Frecuencia de muestreo
%Parmetros del filtro
N2=8;
143
144
subplot(3,1,2);
plot(t,xin2);
title('Seal con frecuencia de 720 Hz');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
grid on;
subplot(3,1,3);
plot(t,x_in);
title('Seal de entrada');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
grid on;
%Filtrando
h=filter(b,a,x_in);
figure(11)
plot(t,h,t,x_in,':');
title('Salida del filtro');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
legend('Salida del filtro','Seal de entrada');
grid on;
%************************************************************************
%************************************************************************
%Punto (4)
%************************************************************************
%Parmetros del filtro
Ns=[8 12 16];
%Variacin del orden
Amax=[20 60 120];
Amin=[0.1 0.3 0.9];
L=length(Ns);
B=zeros(Ns(L)+1,L);
A=zeros(Ns(L)+1,L);
%Clculo de los coeficientes de un filtro IIR tipo elptico
for i=1:L
[b,a]=ellip(Ns(i),0.3,60,300/(fm/2),'low');
for j=1:length(b)
B(j,i)=b(j);
end
for j=1:length(a)
A(j,i)=a(j);
end
end
%Respuesta en frecuencia
Hf=zeros(2048,L);
145
F=zeros(2048,L);
for k=1:L
[H,f]=freqz(B(:,k),A(:,k),2048,fm);
Hf(:,k)=H;
F(:,k)=f;
end
%Se grafica la respuesta en frecuencia de cada uno de los filtros
figure(12);
subplot(2,1,1);
plot(F,20*log10(abs(Hf)+eps));
title('Respuesta de magnitud del filtro Amin=0.3 dB, Amax=60 dB');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud (dB)');
legend('N=8','N=12','N=16');
grid on;
subplot(2,1,2);
plot(F,unwrap(angle(Hf))*180/pi);
title('Respuesta de fase del filtro Amin=0.3 dB, Amax=60 dB');
xlabel('Frecuencia (Hz)');
ylabel('Fase ()');
legend('N=8','N=12','N=16');
grid on;
%Clculo de los coeficientes de un filtro IIR tipo elptico
B=zeros(Ns(L)+1,L);
A=zeros(Ns(L)+1,L);
for i=1:L
[b,a]=ellip(Ns(1),Amin(i),60,300/(fm/2),'low');
for j=1:length(b)
B(j,i)=b(j);
end
for j=1:length(a)
A(j,i)=a(j);
end
end
%Respuesta en frecuencia
Hf=zeros(2048,L);
F=zeros(2048,L);
for k=1:L
[H,f]=freqz(B(:,k),A(:,k),2048,fm);
Hf(:,k)=H;
F(:,k)=f;
end
%Se grafica la respuesta en frecuencia de cada uno de los filtros
figure(13);
subplot(2,1,1);
plot(F,20*log10(abs(Hf)+eps));
146
147
ylabel('Fase ()');
legend('Amax=20','Amax=60','Amax=120');
grid on;
%************************************************************************
%************************************************************************
%Punto (5)
%************************************************************************
fm=8000;
%Frecuencia de muestreo
%Parmetros del filtro
N=6;
wn=[300 500];
148
x_in=xin1+xin2+xin3;
%Filtrando
h=filter(b1,a1,x_in);
%Se grafica la salida del filtro
figure(16)
plot(t,h,t,x_in,':')
title('Salida del filtro');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
legend('Salida del filtro','Seal de entrada');
grid on;
%************************************************************************
%************************************************************************
%Punto (7)
%************************************************************************
fm=8000;
%Frecuencia de muestreo
%Parmetros del filtro
N=6;
wn=[300 500];
[b2,a2]=cheby1(N,0.5,wn/(fm/2),'stop');
[H,f]=freqz(b2,a2,2048,fm);
149
%************************************************************************
%Punto (8)
%************************************************************************
%Filtrando
h=filter(b2,a2,x_in);
figure(19)
plot(t,h,t,x_in,':')
title('Salida del filtro');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
legend('Salida del filtro','Seal de entrada');
grid on;
%************************************************************************
%************************************************************************
%Punto (9)
%************************************************************************
%Frecuencia de muestreo
fm=8000;
%Frecuencias de la banda de paso del filtro pasabanda
wn=[1310 2120]/(fm/2);
%Parmetros del filtro
W=[2500 2600]/(fm/2);
Wp=W(1);
Ws=W(2);
R=[0.3 40];
Rp=R(1);
Rs=R(2);
%Clculo del orden del filtro
[n,Wn] = ellipord(Wp,Ws,Rp,Rs,'s');
%Clculo de los coeficientes de un filtro analgico tipo elptico o cauer
[numa,dena]=ellip(n,Rp,Rs,Wn*(fm/2)*2*pi,'low','s');
%Respuesta en frecuencia del filtro analgico
[H1,f1]=freqs(numa,dena,fm);
%Utilizando la transformacin bilineal se pasa de un filtro analgico a
*un filtro digital
[numd,dend] = bilinear(numa,dena,fm,1000);
%Ahora se hace una transformacin espectral pasando de un filtro pasobajo
*a un filtro pasabanda
[b2,a2]=iirlp2bp(numd,dend,0.3,wn);
%Respuesta en frecuencia del filtro IIR basado en un filtro analgico
%pasobajo elptico.
[H2,f2]=freqz(b2,a2,2048,fm);
150
151
A.2
%************************************************************************
%LABORATORIO DE FFT
%************************************************************************
%************************************************************************
%REALIZADO POR: Jos Gabriel Fernndez Carazo
%
A21941
%
Escuela de Ingeniera Elctrica
%
Facultad de Ingeniera
%
Universidad de Costa Rica
%************************************************************************
%Ultima modificacin: Julio del 2007.
%************************************************************************
%************************************************************************
%Se limpia el workspace de MATLAB y las variables en uso.
clc;
clear;
%************************************************************************
%************************************************************************
%CALCULO DE LA FFT
%************************************************************************
%Punto (1)
%************************************************************************
L_medio=128;
%Mitad de la cantidad de muestras a recolectar
Nfft=[16 32 64 128 256 512 1024];%Cantidad de puntos para calcular la FFT
fmax=1/2;
%Frecuencia mxima presente en la seal
fn=2*fmax;
%Frecuencia de muestreo segn Nyquist
treq=2*L_medio/fn;
%Tiempo requerido para recolectar las muestras
fs=((2*L_medio-1)/treq); %Divisin de tiempo para recolectar las muestras
n=0:1/fs:treq;
%Vector de muestras a recolectar
%Se define la secuencia de entrada
xin=cos(2*pi*1/8*n)+cos(2*pi*1/4*n)+cos(2*pi*13/50*n);
L=length(Nfft);
for i=1:L
%Clculo de la DFT utilzando la FFT
Y=fft(xin,Nfft(i));
%FFT de Nfft puntos para la secuencia xin
Y1=fftshift(Y);
%Reordenamiento de los valores de la FFT
norm=max(abs(Y1));
%Para normalizar el espectro en magnitud
152
%Vector de frecuencias
M=Nfft(i)/2;
faux(M+1:Nfft(i))=0:M-1;
faux(1:M)=-M:-1;
f=fn*faux/(Nfft(i));
end
%************************************************************************
%************************************************************************
%Punto (2)
%************************************************************************
Nfft2=128;
%Cantidad de puntos para calcular la FFT
L2_medio=50;
%Cantidad de muestras de la secuencia de entrada
t=0:L2_medio-1;
%Vector de muestras a recolectar
t2=0:L2_medio*4-1;
t2n=0:Nfft2-1;
fmax2=1/2;
%Frecuencia mxima presente en la seal
fn2=2*fmax2;
%Frecuencia de muestreo segn Nyquist
treq2=2*L2_medio/fn2;
%Tiempo requerido para recolectar las muestras
fs2=((2*L2_medio-1)/treq2);%Divisin de tiempo para recolectar muestras
t=0:1/fs2:treq2;
%Vector de muestras a recolectar
153
154
la FFT
%FFT de Nfft puntos para la secuencia xtotal
%Reordenamiento de los valores de la FFT
%Para normalizar el espectro en magnitud
%Clculo de las componentes de fase
155
156
A.3
%************************************************************************
%LABORATORIO DE MODULACION AM
%************************************************************************
%************************************************************************
%REALIZADO POR: Jos Gabriel Fernndez Carazo
%
A21941
%
Escuela de Ingeniera Elctrica
%
Facultad de Ingeniera
%
Universidad de Costa Rica
%************************************************************************
%Ultima modificacin: Julio del 2007.
%************************************************************************
%************************************************************************
%Se limpia el workspace de MATLAB y las variables en uso.
clc;
clear;
%************************************************************************
%************************************************************************
%MODULACION AM
%************************************************************************
%Punto (1)
%************************************************************************
%Modulacin en amplitud de un tono de prueba
L_medio=1000;
%Mitad de la cantidad de muestras a recolectar
fm=1000;
%Frecuencia de muestreo
treq=2*L_medio/fm;
%Tiempo requerido para recolectar las muestras
t=0:1/(fm-1):treq;
%Vector de muestras a recolectar
%Seal mensaje (tono):
fs=fm;
ftono=10;
wtono=2*pi*ftono;
mtono=1.6*cos(wtono*t);
%Frecuencia de muestreo
%Frecuencia de la seal a modular
%Frecuencia en rads/s
%Seal a modular
%Demodulacin (AM)
mreconst = demod(s,fc,fs,'am');
%************************************************************************
157
%************************************************************************
%Punto (2)
%************************************************************************
%Grfica de la seal tono de prueba
figure(1)
subplot(3,1,1);
plot(t,mtono);
title('Seal tono de prueba');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
txt=strcat('f muestreo =',num2str(fs),' Hz');
legend(txt);
grid on;
%Grfica de la seal modulada
subplot(3,1,2)
plot(t,s);
title('Seal modulada');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
txt=strcat('f muestreo =',num2str(fs),' Hz');
legend(txt);
axis([0 treq/4 -2 2]);
grid on;
%Grfica de la seal demodulada
subplot(3,1,3);
plot(t,mreconst);
title('Seal reconstruida');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
axis([0 treq -3 3]);
txt=strcat('f muestreo =',num2str(fs),' Hz');
legend(txt);
grid on;
%Clculo de la DFT utilzando la FFT
Nfft=1024;
Y=fft(s,Nfft);
%FFT de Nfft puntos para la seal s
Y2=fftshift(Y);
%Reordenamiento de los valores de la FFT
norm=max(abs(Y2));
%Para normalizar el espectro en magnitud
Yf=unwrap(angle(Y2));
%Clculo de las componentes de fase de la seal
%Vector de frecuencias
M=Nfft/2;
faux(M+1:Nfft)=0:M-1;
faux(1:M)=-M:-1;
f=fm*faux/(Nfft);
158
subplot(2,1,1);
plot(f,abs(Y2)/norm);
title('Espectro continuo en magnitud de la seal modulada');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
grid on;
subplot(2,1,2);
plot(f,Yf,'b');
title('Espectro continuo de fase de la seal modulada');
xlabel('Frecuencia (Hz)');
ylabel('Fase (rads)');
grid on;
%Clculo de la DFT utilzando la
Ytono=fft(mtono,Nfft);
Y2tono=fftshift(Ytono);
norm1=max(abs(Y2tono));
Yftono=unwrap(angle(Y2tono));
159
t=0:1/(fm-1):treq;
Ap=5;
indmod=[0.45 1 2.6];
ka=0.5;
%Amplitud de la portadora
%Indice de modulacin
%Indice de sensibilidad
160
end
figure(5);
if i==1
subplot(4,1,1);
plot(t,yc);
title('Seal portadora');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
axis([0 treq/4 -Ap Ap]);
txtp=strcat('fc=',num2str(fyc));
legend(txtp);
grid on;
m<1');
subplot(4,1,2);
plot(t,ym);
title('Seal a modular para obtener un ndice de modulacin
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
txtp=strcat('Amplitud media=',num2str(Am1));
legend(txtp);
grid on;
end
if i==2
subplot(4,1,3);
plot(t,ym);
title('Seal a modular para obtener un ndice de modulacin
m=1');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
txtp=strcat('Amplitud media=',num2str(Am1));
legend(txtp);
grid on;
end
if i==3
subplot(4,1,4);
plot(t,ym);
title('Seal a modular para obtener un ndice de modulacin
m>1');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
txtp=strcat('Amplitud media=',num2str(Am1));
legend(txtp);
grid on;
end
end
%************************************************************************
161
%************************************************************************
%Punto (5)
%************************************************************************
%Modulacin de una seal con ruido utilzando las funciones "modulate" y
%"demod"
L_medio=1000;
fm=1000;
treq=2*L_medio/fm;
t=0:1/(fm-1):treq;
% Portadora
fc=50;
% Seal mensaje
fs=fm;
m=15*sin(10*pi*t)+10*sin(20*pi*t);
% Seal modulada
g=modulate(m,fc,fs,'am');
% Ruido
g_ruido=g+8*randn(1,length(g));
% Seal reconstruida
m_reconst=demod(g,fc,fs,'am');
figure(6);
subplot(3,1,1);
plot(t,m);
title('Seal a modular');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
txtp=strcat('fmuestreo=',num2str(fm));
legend(txtp);
grid on;
subplot(3,1,2);
plot(t,g_ruido);
title('Seal modulada con ruido adherido en el canal de transmisin');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
txtp=strcat('fmuestreo=',num2str(fm));
legend(txtp);
grid on;
162
subplot(3,1,3);
plot(t,m_reconst,t,m);
title('Seal reconstruida o demodulada');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
legend('Seal demodulada o reconstruida','Seal original');
grid on;
%************************************************************************
%************************************************************************
%DETECTOR DE ENVOLVENTE (LEY CUADRATICA)
%************************************************************************
%Punto (1)
%************************************************************************
L_medio=2000;
%Mitad de la cantidad de muestras a recolectar
fm=8000;
%Frecuencia de muestreo
treq=2*L_medio/fm;
%Tiempo requerido para recolectar las muestras
t=0:1/(fm-1):treq;
%Vector de muestras a recolectar
Ap=5;
indmod=1;
ka=0.5;
%Amplitud de la portadora
%Indice de modulacin
%Indice de sensibilidad
Am1=indmod/ka;
fym=200;
fyc=10*fym;
%Seal a modular
ym=Am1*cos(2*pi*fym*t);
%Seal portadora
yc=Ap*cos(2*pi*fyc*t);
%seal modulada
ys=(1+ka*ym).*yc;
ysmax=max(abs(ys));
%Se eleva al cuadrado
ys2=ys.^2;
%Se pasa por un filtro pasobajo
b1=fir1(128,fym/(fm/2),'low');
h=filter(b1,1,ys2);
%Se le saca la raz cuadrada
y=sqrt(h);
[H f]=freqz(b1,1,2048,fm);
163
164
figure(8)
subplot(2,1,1);
plot(t,ys);
title('Seal modulada');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
axis([0 treq/4 -(ysmax+1) ysmax+1]);
grid on;
subplot(2,1,2);
plot(t,real(h3));
title('Salida del filtro pasoalto (seal demodulada utilizando un
detector de envolvente de Ley Cuadrtica');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
axis([0 treq/4 -max(abs(h3)) max(abs(h3))]);
grid on;
%Clculo de la DFT utilzando la FFT
Nfft=2048;
Y=fft(ym,Nfft);
%FFT de Nfft puntos para la seal de entrada
Y2=fftshift(Y);
%Reordenamiento de los valores de la FFT
norm2=max(abs(Y2)); %Para normalizar el espectro en magnitud
%Vector de frecuencias
M1=Nfft/2;
faux1(M1+1:Nfft)=0:M1-1;
faux1(1:M1)=-M1:-1;
f1=fm*faux1/(Nfft);
figure(9)
subplot(2,1,1);
plot(f1,abs(Y2)/norm2);
title('Espectro continuo en magnitud de la seal de entrada');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;
165
subplot(2,1,2);
plot(f2,abs(Y4)/norm4);
title('Espectro continuo en magnitud de la salida del filtro pasoalto');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;
%************************************************************************
166
A.4
%************************************************************************
%LABORATORIO DE MODULACION DSBSC-AM
%************************************************************************
%************************************************************************
%REALIZADO POR: Jos Gabriel Fernndez Carazo
%
A21941
%
Escuela de Ingeniera Elctrica
%
Facultad de Ingeniera
%
Universidad de Costa Rica
%************************************************************************
%Ultima modificacin: Julio del 2007.
%************************************************************************
%************************************************************************
%Se limpia el workspace de MATLAB y las variables en uso.
clc;
clear;
%************************************************************************
%************************************************************************
%MODULACION DSBSC-AM
%************************************************************************
%Punto (1)
%************************************************************************
%Modulacin en amplitud de doble banda lateral con portadora suprimida
L_medio=10000;
%Mitad de la cantidad de muestras a recolectar
fm=8000;
%Frecuencia de muestreo
treq=2*L_medio/fm;
%Tiempo requerido para recolectar las muestras
t=0:1/(fm-1):treq;
%Vector de muestras a recolectar
%Seal a demodular
fmt=20;
mt=10*sin(2*pi*fmt*t).*exp(-0.5*t);
%mt=1+0.4*cos(2*pi*fmt*t);
fc=200;
yc=cos(2*pi*fc*t);
%Seal DSBSC-AM
s1=mt.*yc;
%Se inicia la etapa de demodulacin
s2=s1.*(2*yc);
167
168
%************************************************************************
%************************************************************************
%Punto (3)
%************************************************************************
%Clculo de la DFT utilzando la FFT
Nfft=2048;
Y=fft(s2,Nfft);
%FFT de Nfft puntos para la entrada del filtro
Y2=fftshift(Y);
%Reordenamiento de los valores de la FFT
norm2=max(abs(Y2)); %Para normalizar el espectro en magnitud
%Vector de frecuencias
M1=Nfft/2;
faux1(M1+1:Nfft)=0:M1-1;
faux1(1:M1)=-M1:-1;
f1=fm*faux1/(Nfft);
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);
figure(3)
subplot(2,1,1);
plot(f1,abs(Y2)/max(abs(Y2)));
title('Espectro continuo en magnitud de la seal de entrada al filtro');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
xlim([-1000 1000]);
grid on;
subplot(2,1,2);
plot(f2,abs(Y4)/max(abs(Y4)));
title('Espectro continuo en magnitud de la seal de salida del filtro');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
xlim([-1000 1000]);
grid on;
%************************************************************************
169
%************************************************************************
%Punto (5)
%************************************************************************
%Seal modulada (AM)
s3=modulate(mt,fc,fm,'amdsb-sc');
%Seal modulada
%Demodulacin (AM)
mreconst = 2*demod(s3,fc,fm,'amdsb-sc');
%************************************************************************
%************************************************************************
%Punto (6)
%************************************************************************
figure(4)
subplot(2,1,1);
plot(t,s3);
title('Seal modulada utilizando la funcin "modulate"');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
grid on;
subplot(2,1,2);
plot(t,mreconst);
title('Seal demodulada utilizando la funcin "demod"');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
grid on;
%Clculo de la DFT utilzando la FFT
Nfft=2048;
Y=fft(s3,Nfft);
%FFT de Nfft puntos para la seal modulada
Y2=fftshift(Y);
%Reordenamiento de los valores de la FFT
norm2=max(abs(Y2)); %Para normalizar el espectro en magnitud
%Vector de frecuencias
M1=Nfft/2;
faux1(M1+1:Nfft)=0:M1-1;
faux1(1:M1)=-M1:-1;
f1=fm*faux1/(Nfft);
Y3=fft(mreconst,Nfft);
Y4=fftshift(Y3);
norm2=max(abs(Y4));
%Vector de frecuencias
M1=Nfft/2;
faux1(M1+1:Nfft)=0:M1-1;
faux1(1:M1)=-M1:-1;
f2=fm*faux1/(Nfft);
170
figure(5)
subplot(2,1,1);
plot(f1,abs(Y2)/max(abs(Y2)));
title('Espectro continuo en magnitud de la seal modulada con
"modulate"');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
xlim([-1000 1000]);
grid on;
subplot(2,1,2);
plot(f2,abs(Y4)/max(abs(Y4)));
title('Espectro continuo en magnitud de la seal demodulada con
"demod"');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
xlim([-1000 1000]);
grid on;
%************************************************************************
171
A.5
%************************************************************************
%LABORATORIO DE MODULACION SSB-AM
%************************************************************************
%************************************************************************
%REALIZADO POR: Jos Gabriel Fernndez Carazo
%
A21941
%
Escuela de Ingeniera Elctrica
%
Facultad de Ingeniera
%
Universidad de Costa Rica
%************************************************************************
%Ultima modificacin: Julio del 2007.
%************************************************************************
%************************************************************************
%Se limpia el workspace de MATLAB y las variables en uso.
clc;
clear;
%************************************************************************
%************************************************************************
%MODULACION SSB-AM
%************************************************************************
%Punto (1) y (2)
%************************************************************************
%Modulacin en amplitud de banda lateral con portadora suprimida
Nfft=1024;
%Cantidad de puntos a calcular para la FFT
L_medio=500;
%Mitad de la cantidad de muestras a recolectar
fm=8000;
%Frecuencia de muestreo
treq=2*L_medio/fm;
%Tiempo requerido para recolectar muestras
fs=((2*L_medio-1)/treq); %Divisin de tiempo para recolectar muestras
t=0:1/fs:treq;
%Vector de muestras a recolectar
%Vector de frecuencias para los espectros en frecuencia
M=Nfft/2;
faux(M+1:Nfft)=0:M-1;
%Vector de frecuencias desordenado
faux(1:M)=-M:-1;
%Vector de frecuencias ordenado
f=fm*faux/(Nfft);
%Vector de frecuencias normalizado
%Parmetros de las seales a utilizar
fc=2000;
%Frecuencia de la portadora
Ap=2;
%Amplitud de la portadora
Am=0.5;
%Amplitud de la seal a modular
fmt=600;
%Frecuencia de la seal a modular
172
%Seal a modular
mt=Am*cos(2*pi*fmt*t);
%Seal portadora
yc=Ap*sin(2*pi*fc*t);
%Se crea una seal DSBSC-AM
at=mt.*yc;
%MODULACION SSB UTILIZANDO LA BANDA LATERAL INFERIOR
%Se pasa por un filtro pasobajo con frecuencia de corte igual a la
%portadora para dejar pasar solo las seales con frecuencias menores a la
%frecuencia de la portadora
w=fc;
%Frecuencia de corte del filtro paso bajo
N1=64;
%Orden del filtro
b1=fir1(N1,w/(fm/2),'low');
%Diseo del filtro
h1=filter(b1,1,at);
%Se filtra la seal
%Se calcula la respuesta en frecuencia del filtro
[H1 f1]=freqz(b1,1,2048,fm);
%MODULACION SSB UTILIZANDO LA BANDA LATERAL SUPERIOR
%Se pasa por un filtro pasoalto con frecuencia de corte igual a la
%portadora para dejar pasar solo las seales con frecuencias mayores a la
%frecuencia de la portadora
w=fc;
%Frecuencia de corte del filtro paso bajo
N2=64;
b2=fir1(N2,w/(fm/2),'high');
%Diseo del filtro
h2=filter(b2,1,at);
%Se filtra la seal
%Se calcula la respuesta en frecuencia del filtro
[H2 f2]=freqz(b2,1,2048,fm);
%************************************************************************
%************************************************************************
%Punto (3)
%************************************************************************
%Se grafican las seales producidas por el generador
figure(1)
subplot(3,1,1);
plot(t,mt);
axis([0 treq -1 1]);
txt=strcat('Seal a modular con una frecuencia de ',num2str(fmt),' Hz');
title(txt);
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
txt=strcat('fmuestreo=',num2str(fs),' Hz');
legend(txt);
grid on;
173
subplot(3,1,2);
plot(t,yc);
xlim([0 treq/2]);
txt=strcat('Seal portadora con una frecuencia de ',num2str(fc),' Hz');
title(txt);
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
txt=strcat('fmuestreo=',num2str(fs),' Hz');
legend(txt);
grid on;
subplot(3,1,3);
plot(t,at);
axis([0 treq/2 -1 1]);
title('Seal DSBSC-AM generada');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
txt=strcat('fmuestreo=',num2str(fs),' Hz');
legend(txt);
grid on;
%Respuesta en frecuencia de los filtros pasobajo y paso alto
figure(2)
subplot(2,1,1)
plot(f1,20*log10(abs(H1)+eps),'-m');
txt=strcat('Respuesta en magnitud de un filtro FIR pasobajo N=
',num2str(N1));
title(txt);
xlabel('Frecuencia (Hz)');
ylabel('Magnitud (dB)');
txt=strcat('Frecuencia de corte ',num2str(w),' Hz');
legend(txt);
grid on;
subplot(2,1,2)
plot(f1,unwrap(angle(H1)),'-m');
txt=strcat('Respuesta de fase de un filtro FIR pasobajo N=
',num2str(N1));
title(txt);
xlabel('Frecuencia (Hz)');
ylabel('Magnitud (dB)');
txt=strcat('Frecuencia de corte ',num2str(w),' Hz');
legend(txt);
grid on;
figure(3)
subplot(2,1,1)
plot(f2,20*log10(abs(H2)+eps),'-r');
txt=strcat('Respuesta en magnitud de un filtro FIR pasoalto N=
',num2str(N2));
title(txt);
174
xlabel('Frecuencia (Hz)');
ylabel('Magnitud (dB)');
txt=strcat('Frecuencia de corte ',num2str(w),' Hz');
legend(txt);
grid on;
subplot(2,1,2)
plot(f2,unwrap(angle(H2)),'-r');
txt=strcat('Respuesta de fase de un filtro FIR pasoalto N=
',num2str(N2));
title(txt);
xlabel('Frecuencia (Hz)');
ylabel('Magnitud (dB)');
txt=strcat('Frecuencia de corte ',num2str(w),' Hz');
legend(txt);
grid on;
%Seales despus de pasar por los filtros pasobajo y pasoalto
figure(4)
subplot(3,1,1);
plot(t,at);
xlim([0 treq/2]);
title('Seal DSBSC-AM generada');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
txt=strcat('fmuestreo=',num2str(fs),' Hz');
legend(txt);
grid on;
subplot(3,1,2);
plot(t,h1,'-m');
xlim([0 treq/2]);
title('Salida del filtro pasobajo selector de la banda lateral
inferior');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
legend('SSB banda lateral inferior');
grid on;
subplot(3,1,3);
plot(t,h2,'-r');
xlim([0 treq/2]);
title('Salida del filtro pasobajo selector de la banda lateral
superior');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
legend('SSB banda lateral superior');
grid on;
%************************************************************************
175
%************************************************************************
%Punto (4)
%************************************************************************
%CALCULO DE LOS ESPECTROS
%Clculo de la DFT utilzando la FFT para la seal DSBSC-AM
Y1=fft(at,Nfft);
%FFT de Nfft puntos
Y1=fftshift(Y1);
%Reordenamiento de los valores de la FFT
norm1=max(abs(Y1));
%Para normalizar el espectro en magnitud
Yf1=unwrap(angle(Y1));
%Clculo de las componentes de fase
%Clculo de la DFT utilzando la FFT para la salida del filtro pasobajo
%selector de la banda lateral inferior
Y2=fft(h1,Nfft);
%FFT de Nfft puntos
Y2=fftshift(Y2);
%Reordenamiento de los valores de la FFT
norm2=max(abs(Y2));
%Para normalizar el espectro en magnitud
Yf2=unwrap(angle(Y2));
%Clculo de las componentes de fase
%Clculo de la DFT utilzando la FFT para la salida del filtro pasoalto
Y3=fft(h2,Nfft);
%FFT de Nfft puntos
Y3=fftshift(Y3);
%Reordenamiento de los valores de la FFT
norm3=max(abs(Y3));
%Para normalizar el espectro en magnitud
Yf3=unwrap(angle(Y3));
%Clculo de las componentes de fase
%Espectros de frecuencia de las seales
figure(5)
subplot(3,1,1);
plot(f,abs(Y1)/norm1)
title('Espectro continuo en magnitud de la seal de entrada');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;
subplot(3,1,2);
plot(f,abs(Y2)/norm2,'-m');
title('Espectro continuo en magnitud de la seal SSB de banda lateral
inferior');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;
subplot(3,1,3);
plot(f,abs(Y3)/norm3,'-r');
title('Espectro continuo en magnitud de la seal SSB de banda lateral
superior');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
176
legend(txt);
grid on;
figure(6)
subplot(3,1,1);
plot(f,Yf1);
title('Espectro continuo de fase de la seal de entrada');
xlabel('Frecuencia (Hz)');
ylabel('Fase (rads)');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;
subplot(3,1,2);
plot(f,Yf2,'-m');
title('Espectro continuo de fase de la seal SSB de banda lateral
inferior');
xlabel('Frecuencia (Hz)');
ylabel('Fase (rads)');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;
subplot(3,1,3);
plot(f,Yf3,'-r');
title('Espectro continuo de fase de la seal SSB de banda lateral
superior');
xlabel('Frecuencia (Hz)');
ylabel('Fase (rads)');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;
%************************************************************************
%************************************************************************
%DEMODULACION SSB-AM
%************************************************************************
%Punto (1) y (2)
%************************************************************************
%Se implementa el modulador de la figura 3.7 del laboratorio
%DEMODULACION SSB DE BANDA LATERAL INFERIOR
mssbinf=h1;
%Se modula la seal por la portadora nuevamente
a2t=mssbinf.*yc;
%Luego esta seal se pasa por un filtro pasobajo con una frecuencia de
%corte de tal manera que deje pasar la seal original
N3=64;
b3=fir1(N3,fmt/(fm/2),'low');
177
h3=filter(b3,1,a2t);
%Se calcula la respuesta en frecuencia del filtro
[H3 f3]=freqz(b3,1,2048,fm);
%DEMODULACION SSB DE BANDA LATERAL SUPERIOR
mssbsup=h2;
%Se modula la seal por la portadora nuevamente
a3t=mssbsup.*yc;
%Luego esta seal se pasa por un filtro pasobajo con una frecuencia de
%corte de tal manera que deje pasar la seal original
h4=filter(b3,1,a3t);
%************************************************************************
%************************************************************************
%Punto (3)
%************************************************************************
figure(7)
subplot(3,1,1);
plot(t,mt);
axis([0 treq/2 -1 1]);
txt=strcat('Seal a modular con una frecuencia de ',num2str(fmt),' Hz');
title(txt);
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
txt=strcat('fmuestreo=',num2str(fs),' Hz');
legend(txt);
grid on;
subplot(3,1,2);
plot(t,h3);
xlim([0 treq/2]);
title('Seal reconstruida a partir de una seal SSB de banda lateral
inferior');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
legend('Seal reconstruida por SSB inferior');
grid on;
subplot(3,1,3);
plot(t,h4);
xlim([0 treq/2]);
title('Seal reconstruida a partir de una seal SSB de banda lateral
superior');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
legend('Seal reconstruida por SSB superior');
grid on;
178
179
180
subplot(3,1,3);
plot(f,Yf6,'-r');
title('Espectro continuo de fase de la seal SSB de banda lateral
superior');
xlabel('Frecuencia (Hz)');
ylabel('Fase (rads)');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;
%************************************************************************
181
A.6
%************************************************************************
%LABORATORIO DE MODULACION FM
%************************************************************************
%************************************************************************
%REALIZADO POR: Jos Gabriel Fernndez Carazo
%
A21941
%
Escuela de Ingeniera Elctrica
%
Facultad de Ingeniera
%
Universidad de Costa Rica
%************************************************************************
%Ultima modificacin: Julio del 2007.
%************************************************************************
%************************************************************************
%Se limpia el workspace de MATLAB y las variables en uso.
clc;
clear;
%************************************************************************
%************************************************************************
%MODULACION FM
%************************************************************************
%Punto (1)
%************************************************************************
L_medio=1000;
%Mitad de la cantidad de muestras a recolectar
Nfft=2048;
%Cantidad de puntos para calcular la FFT
fm=80000;
%Frecuencia de muesreo segn Nyquist
treq=2*L_medio/fm;
%Tiempo requerido para recolectar L muestras
fs=((2*L_medio-1)/treq); %Divisin de tiempo para recolectar L muestras
n=0:1/fs:treq;
%Vector de muestras a recolectar
t1=0:length(n)-1;
%Vector en cantidad de muestras recolectadas
%Vector de frecuencias para los espectros en frecuencia
M=Nfft/2;
faux(M+1:Nfft)=0:M-1;
%Vector de frecuencias desordenado
faux(1:M)=-M:-1;
%Vector de frecuencias ordenado
f=fm*faux/(Nfft);
%Vector de frecuencias normalizado
%Se genera la seal a modular
Am=1;
%Amplitud de la seal a modular
wm=2*pi*100;
%Frecuencia de la seal a modular
phi=0;
%Fase de la seal a modular
mt=Am*cos(wm*n+phi);
%Seal a modular
182
183
184
185
%************************************************************************
%Punto (8)
%************************************************************************
%Demodulacin FM utilizando la funcin "demod"
rmt=27*demod(st,wc/(2*pi),fm,'fm');
rmt1=5*demod(gfm1,wc/(2*pi),fm,'fm');
rmt2=5*demod(gfm2,wc/(2*pi),fm,'fm');
rmt3=5*demod(gfm3,wc/(2*pi),fm,'fm');
%************************************************************************
%************************************************************************
%Punto (9)
%************************************************************************
%Representacin grfica de las seales
figure(5);
subplot(4,1,1);
plot(n,rmt,n,mt);
txt1=strcat('Seal reconstruida utilizando "demod" (con opt=
',num2str(0.039),')');
title(txt1);
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
legend('Seal reconstruida','Seal original');
grid on;
subplot(4,1,2);
plot(n,rmt1,n,mt);
txt1=strcat('Seal reconstruida utilizando "demod" (con opt=
',num2str(indk(1)),')');
title(txt1);
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
legend('Seal reconstruida','Seal original');
grid on;
subplot(4,1,3);
plot(n,rmt2,n,mt);
txt1=strcat('Seal reconstruida utilizando "demod" (con opt=
',num2str(indk(2)),')');
title(txt1);
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
legend('Seal reconstruida','Seal original');
grid on;
186
subplot(4,1,4);
plot(n,rmt3,n,mt);
txt1=strcat('Seal reconstruida utilizando "demod" (con opt=
',num2str(indk(3)),')');
title(txt1);
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
legend('Seal reconstruida','Seal original');
grid on;
%************************************************************************
%************************************************************************
%Punto (10)
%************************************************************************
%CALCULO DE LOS ESPECTROS
%Clculo de la DFT utilzando la FFT para la seal gfm1
Y2=fft(gfm1,Nfft);
%FFT de Nfft puntos para la seal FM
Y2=fftshift(Y2);
%Reordenamiento de los valores de la FFT
norm2=max(abs(Y2));
%Para normalizar el espectro en magnitud
Yf2=unwrap(angle(Y2));
%Clculo de las componentes de fase de la seal
%Clculo de la DFT utilzando la FFT para la seal gfm2
Y3=fft(gfm2,Nfft);
%FFT de Nfft puntos para la seal FM
Y3=fftshift(Y3);
%Reordenamiento de los valores de la FFT
norm3=max(abs(Y3));
%Para normalizar el espectro en magnitud
Yf3=unwrap(angle(Y3));
%Clculo de las componentes de fase de la seal
%Clculo de la DFT utilzando la FFT para la seal gfm3
Y4=fft(gfm3,Nfft);
%FFT de Nfft puntos para la seal FM
Y4=fftshift(Y4);
%Reordenamiento de los valores de la FFT
norm4=max(abs(Y4));
%Para normalizar el espectro en magnitud
Yf4=unwrap(angle(Y4));
%Clculo de las componentes de fase de la seal
%se grafican los espectros en frecuencia para cada seal
figure(6)
subplot(3,1,1)
plot(f,abs(Y2)/norm2);
txt=strcat('Espectro continuo en magnitud de la seal FM (con
opt=',num2str(indk(1)),')');
title(txt);
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
xlim([-1*10000 1*10000]);
grid on;
187
subplot(3,1,2)
plot(f,abs(Y3)/norm3);
txt=strcat('Espectro continuo en magnitud de la seal FM (con
opt=',num2str(indk(2)),')');
title(txt);
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
xlim([-1*10000 1*10000]);
grid on;
subplot(3,1,3)
plot(f,abs(Y4)/norm4);
txt=strcat('Espectro continuo en magnitud de la seal FM (con
opt=',num2str(indk(3)),')');
title(txt);
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
xlim([-1*10000 1*10000]);
grid on;
%************************************************************************
188
A.7
%************************************************************************
%LABORATORIO DE MODULACION PAM
%************************************************************************
%************************************************************************
%REALIZADO POR: Jos Gabriel Fernndez Carazo
%
A21941
%
Escuela de Ingeniera Elctrica
%
Facultad de Ingeniera
%
Universidad de Costa Rica
%************************************************************************
%Ultima modificacin: Julio del 2007.
%************************************************************************
%************************************************************************
%Se limpia el workspace de MATLAB y las variables en uso.
clc;
clear;
%************************************************************************
%************************************************************************
%MODULACION Y DEMODULACION PAM
%************************************************************************
%Punto (1)
%************************************************************************
L_medio=500;
%Mitad de la cantidad de muestras a recolectar
Nfft=2048;
%Cantidad de puntos para calcular la FFT
fm=1000;
%Frecuencia de muesreo segn Nyquist
treq=2*L_medio/fm;
%Tiempo requerido para recolectar L muestras
fs=((2*L_medio-1)/treq); %Divisin de tiempo para recolectar L muestras
n=0:1/fs:treq;
%Vector de muestras a recolectar
num_n=0:length(n)-1;
%Vector en cantidad de muestras recolectadas
%Vector de frecuencias para los espectros en frecuencia
M=Nfft/2;
faux(M+1:Nfft)=0:M-1;
%Vector de frecuencias desordenado
faux(1:M)=-M:-1;
%Vector de frecuencias ordenado
f=fm*faux/(Nfft);
%Vector de frecuencias normalizado
%Seal a modular
Am=10;
wm=4*pi;
ym=Am*cos(wm*n);
%Luego se aade un nivel DC a la seal anterior
ymdc=ym+max(abs(ym));
189
190
191
[index,quantized] = quantiz(samp,partition,codebook);
%Cuantificador
index
%Muestra el nivel otorgado
quantized
%Muestras cuantificadas
%************************************************************************
%************************************************************************
%Punto (4)
%************************************************************************
L_medio=200;
%Mitad de la cantidad de muestras a recolectar
Nfft=2048;
%Cantidad de puntos para calcular la FFT
fm=4000;
%Frecuencia de muesreo segn Nyquist
treq=2*L_medio/fm;
%Tiempo requerido para recolectar L muestras
fs=((2*L_medio-1)/treq); %Divisin de tiempo para recolectar L muestras
n1=0:1/fs:treq;
%Vector de muestras a recolectar
%Muestreo de la seal a modular
Am=15;
wm=2*pi*100;
ym1=Am*sin(wm*n1);
%Se aade un nivel DC suficiente para no tener valores negativos
ym1dc=ym1+max(abs(ym1));
%CUANTIFICACION
%Se define la particin
a=round(max(ym1dc));
particion = [0:1:a-1];
simbolos = [0:1:a];
%Cuantificacin
[intervalos,sencuant] = quantiz(ym1dc,particion,simbolos);
%************************************************************************
%************************************************************************
%Punto (5)
%************************************************************************
%Modualcin PAM utilizando pammod
b=[4 8 16 32 64 128 256 512];
%Niveles en potencia de 2
L=length(b);
%Bsqueda del M apropiado dependiendo de la amplitud de la seal una vez
%cuantificada
M=0;
%Inicializacin de M
i=1;
while M==0
if b(i)>a
M=b(i)
end
i=i+1;
end
192
%Modulacin PAM
spam1=pammod(sencuant,M);
%************************************************************************
%************************************************************************
%Punto (6)
%************************************************************************
%se grafican los resultados
figure(4)
subplot(3,1,1);
plot(n1,ym1);
title('Seal a modular');
xlabel('Tiempo (segundos)');
ylabel('m(t)');
txt=strcat('fmuestreo= ',num2str(fm),' Hz');
legend(txt);
xlim([0 treq/3])
grid on;
subplot(3,1,2);
plot(n1,sencuant,'-xb');
hold on;
stem(n1,sencuant,'.c');
hold off;
title('Seal muestreada y cuantificada');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
txt=strcat('fmuestreo= ',num2str(fm),' Hz');
legend(txt);
xlim([0 treq/3]);
grid on;
subplot(3,1,3);
plot(n1,real(spam1),'m');
txt=strcat('Seal modulada mediante la funcin "pammod". M=',num2str(M),'
smbolos.');
title(txt);
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
txt=strcat('fmuestreo= ',num2str(fm),' Hz');
legend(txt);
xlim([0 treq/3]);
grid on;
%************************************************************************
%************************************************************************
%Punto (7)
%************************************************************************
%Demodulacin utilizando pamdemod
z=pamdemod(spam1,M);
193
%************************************************************************
%Punto (8)
%************************************************************************
%Clculo de la DFT utilzando la FFT para la seal modulada
Y3=fft(spam1,Nfft);
%FFT de Nfft puntos
Y3=fftshift(Y3);
%Reordenamiento de los valores de la FFT
norm3=max(abs(Y3));
%Para normalizar el espectro en magnitud
Yf3=unwrap(angle(Y3));
%Clculo de las componentes de fase de la seal
figure(6)
subplot(2,1,1);
plot(f,abs(Y3)/norm3);
title('Espectro continuo en magnitud de la seal modulada');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;
subplot(2,1,2);
plot(f,Yf3,'m');
title('Espectro continuo de fase de la seal a modulada');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
194
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;
%Clculo de la DFT utilzando la FFT para la seal demodulada
Y4=fft(z1,Nfft);
%FFT de Nfft puntos
Y4=fftshift(Y4);
%Reordenamiento de los valores de la FFT
norm4=max(abs(Y4));
%Para normalizar el espectro en magnitud
Yf4=unwrap(angle(Y4));
%Clculo de las componentes de fase de la seal
figure(7)
subplot(2,1,1);
plot(f,abs(Y4)/norm3);
title('Espectro continuo en magnitud de la seal demodulada');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;
subplot(2,1,2);
plot(f,Yf4,'m');
title('Espectro continuo de fase de la seal a demodulada');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;
%************************************************************************
%************************************************************************
%Punto (9)
%************************************************************************
%Se obtiene un diagrama de ojo utilizando la funcin eyediagram
eyediagram(real(spam1),M);
title('Diagrama de Ojo para la seal PAM');
xlabel('Tiempo (s)');
ylabel('Amplitud');
grid on;
%************************************************************************
195
A.8
%************************************************************************
%LABORATORIO DE MODULACION QAM
%************************************************************************
%************************************************************************
%REALIZADO POR: Jos Gabriel Fernndez Carazo
%
A21941
%
Escuela de Ingeniera Elctrica
%
Facultad de Ingeniera
%
Universidad de Costa Rica
%************************************************************************
%Ultima modificacin: Junio del 2007.
%************************************************************************
%************************************************************************
%Se limpia el workspace de MATLAB y las variables en uso.
clc;
clear;
%************************************************************************
%************************************************************************
%MODULACION QAM
%************************************************************************
%Punto (1)
%************************************************************************
%Variables iniciales
L_medio=200;
%Mitad de la cantidad de muestras a recolectar
Nfft=2048;
%Cantidad de puntos para calcular la FFT
fm=4000;
%Frecuencia de muesreo segn Nyquist
treq=2*L_medio/fm;
%Tiempo requerido para recolectar L muestras
fs=((2*L_medio-1)/treq); %Divisin de tiempo para recolectar L muestras
n1=0:1/fs:treq;
%Vector de muestras a recolectar
%Muestreo de la seal a modular
Am=7;
wm1=2*pi*180;
wm2=2*pi*25;
ym1=Am*sin(wm1*n1);
ym2=Am*sin(wm2*n1);
ymt=ym1+ym2;
%Se aade un nivel DC suficiente para no tener valores negativos
ymtdc=ymt+max(abs(ymt));
196
%CUANTIFICACION
%Se define la particin
a=round(max(ymtdc));
particion = [0:1:a-1];
simbolos = [0:1:a];
%Cuantificacin
[intervalos,sencuant] = quantiz(ymtdc,particion,simbolos);
%************************************************************************
%************************************************************************
%Punto (2)
%************************************************************************
%Grafica de la seal a modular
figure(1)
subplot(3,1,1);
plot(n1,ym1,'-r');
title('Seal con frecuencia 180 Hz');
xlabel('Tiempo (segundos)');
ylabel('m(t)');
txt=strcat('fmuestreo= ',num2str(fm),' Hz');
legend(txt);
grid on;
subplot(3,1,2);
plot(n1,ym2,'-g');
title('Seal con frecuencia 25 Hz');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
txt=strcat('fmuestreo= ',num2str(fm),' Hz');
legend(txt);
grid on;
subplot(3,1,3);
plot(n1,ymt);
title('Seal a modular');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
txt=strcat('fmuestreo= ',num2str(fm),' Hz');
legend(txt);
grid on;
%seal cuantificada
figure(2)
subplot(2,1,1);
plot(n1,ymt);
title('Seal a modular');
xlabel('Tiempo (segundos)');
ylabel('m(t)');
txt=strcat('fmuestreo= ',num2str(fm),' Hz');
197
legend(txt);
grid on;
subplot(2,1,2);
plot(n1,sencuant,'-xb');
hold on;
stem(n1,sencuant,'.r');
hold off;
title('Seal muestreada y cuantificada');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
txt=strcat('fmuestreo= ',num2str(fm),' Hz');
legend(txt);
xlim([0 treq/3]);
grid on;
%************************************************************************
%************************************************************************
%Punto (3)
%************************************************************************
%Modulacin QAM utilizando qammod
b=[4 8 16 32 64 128 256 512];
%Niveles en potencia de 2
L=length(b);
%Bsqueda del M apropiado dependiendo de la amplitud de la seal una vez
%cuantificada
M=0;
%Inicializacin de M
i=1;
while M==0
if b(i)>a
M=b(i);
%Asignacin de un M
end
i=i+1;
end
%Modulacin QAM
sqam=qammod(sencuant,M);
%grafica de la seal en cuadratura y fase
figure(3)
subplot(2,1,1);
plot(real(sqam),'-g');
title('Seal QAM en cuadratura');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
grid on;
subplot(2,1,2);
plot(imag(sqam),'-m');
title('Seal QAM en fase');
xlabel('Tiempo (segundos)');
198
ylabel('Amplitud');
grid on;
%************************************************************************
%************************************************************************
%Punto (4)
%************************************************************************
%Seal QAM transmitida
ytx = sqam;
%Simulacin de un canal AWGN
%Se envia la seal travs de este canal
k=log2(M);
EbNo = 10;
%Tasa de energa de la densidad de energa espectral dB
snr = EbNo + 10*log10(k) - 10*log10(1);%Tasa de ruido por muestra
ynoisy = awgn(ytx,snr,'measured');
%Se genera la nueva seal con ruido
%************************************************************************
%************************************************************************
%Punto (5)
%************************************************************************
%La nueva seal es recibida
yrx = ynoisy;
%Se analiza la seal QAM utilizando un diagrama de constelacin M valores
h=scatterplot(yrx,1,0,'g.');
hold on;
scatterplot(ytx,1,0,'k*',h);
title('Seal QAM');
ylabel('En Cuadratura');
xlabel('En Fase');
legend('Seal con ruido','Seal sin ruido',4);
grid on;
hold off;
%************************************************************************
%************************************************************************
%Punto (6)
%************************************************************************
%Demodulacin QAM utilizando "qamdemod"
%Se demodula la seal sin ruido
z1=qamdemod(ytx,M);
z1=z1-max(abs(ymt));
%Se demodula la seal con ruido
z2=qamdemod(yrx,M);
z2=z2-max(abs(ymt));
199
figure(5)
subplot(2,1,1)
plot(n1,z1,n1,ymt);
title('Seal demodulada a partir de una seal QAM sin ruido');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
legend('Seal reconstruida','Seal original');
grid on;
subplot(2,1,2)
plot(n1,z2,n1,ymt);
title('Seal demodulada a partir de una seal QAM con ruido');
xlabel('Tiempo (segundos)');
ylabel('Amplitud');
legend('Seal reconstruida','Seal original');
grid on;
%************************************************************************
%************************************************************************
%Punto (7)
%************************************************************************
%Vector de frecuencias para los espectros en frecuencia
M=Nfft/2;
faux(M+1:Nfft)=0:M-1;
%Vector de frecuencias desordenado
faux(1:M)=-M:-1;
%Vector de frecuencias ordenado
f=fm*faux/(Nfft);
%Vector de frecuencias normalizado
%Clculo de la DFT utilzando la FFT para la seal a modular
Y1=fft(ymt,Nfft);
%FFT de Nfft puntos
Y1=fftshift(Y1);
%Reordenamiento de los valores de la FFT
norm1=max(abs(Y1));
%Para normalizar el espectro en magnitud
Yf1=unwrap(angle(Y1));
%Clculo de las componentes de fase de la seal
%Clculo de la DFT utilzando la FFT para la seal modulada sin ruido
Y2=fft(ytx,Nfft);
%FFT de Nfft puntos
Y2=fftshift(Y2);
%Reordenamiento de los valores de la FFT
norm2=max(abs(Y2));
%Para normalizar el espectro en magnitud
Yf2=unwrap(angle(Y2));
%Clculo de las componentes de fase de la seal
%Clculo de la DFT utilzando la FFT para la seal modulada con ruido
Y3=fft(yrx,Nfft);
%FFT de Nfft puntos
Y3=fftshift(Y3);
%Reordenamiento de los valores de la FFT
norm3=max(abs(Y3));
%Para normalizar el espectro en magnitud
Yf3=unwrap(angle(Y3));
%Clculo de las componentes de fase de la seal
%Clculo de la DFT utilzando la FFT para la seal demodulada sin ruido
Y4=fft(z1,Nfft);
%FFT de Nfft puntos
Y4=fftshift(Y4);
%Reordenamiento de los valores de la FFT
norm4=max(abs(Y4));
%Para normalizar el espectro en magnitud
Yf4=unwrap(angle(Y4));
%Clculo de las componentes de fase de la seal
200
201
202
subplot(2,1,2);
plot(f,Yf5);
title('Espectro continuo de fase de la seal demodulada con ruido');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud normalizada |FFT|');
txt=strcat('Nfft=',num2str(Nfft),' puntos');
legend(txt);
grid on;
%************************************************************************
203
Onda de 720 Hz
FDATool
Onda de 1440 Hz
Add
Zero-Order
Hold
Onda de 3000 Hz
Seales Seal completa
FDATool
Onda de 120 Hz
Filtro pasabanda IIR N=6
Chebyshev Tipo I
Onda de 400 Hz
Add1
Zero-Order
Hold1
FDATool
Onda de 680 Hz
Seales1 Seal completa1
204
B.2
Seal de entrada
B-FFT
Espectro de la seal de entrada
FDATool
Salida del filtro pasoabajo
Salida f iltro pasobajo
Onda de 1500 Hz
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
B-FFT
Espectro de la salida del filtro pasabanda
FDATool
Salida del filtro pasoalto
Salida f iltro pasoalto
B-FFT
Espectro de la salida del filtro pasoalto
205
B.3
Seal a modular1
Sea a modular
Zero-Order
Hold2
B-FFT
Espectro de la seal a modular
Seal a modular
Product
0.5
Zero-Order
Hold
Modulador
Seal modulada
ka
1
Nivel DC
Seal portadora
Zero-Order
Hold1
Detector de envolvente de Ley Cuadrtica
Seal reconstruida
FDATool
1.7-1.7z-1
sqrt
2-1.4z-1
Seal reconstruida
Raz cuadrada1
Raz cuadrada
206
Elevador
Filtro FIR pasobajo
N=36 Hamming
B-FFT
Espectro de la salida
del filtro paso alto
B.4
Sen de 20Hz
Zero-Order
Hold1
Fcn
Seal a modular
Product
exp(-0.5*(u))
Clock
Seal a modular
B-FFT
Zero-Order
Hold2
Seal portadora
Zero-Order
Hold
Product1
Seal modulada
B-FFT
Espectro portadora
Demodulador
FDATool
Seal demodulada
LO (Oscilador Local)
Zero-Order
Hold3
Product3
Seal demodulada
Filtro FIR pasobajo
N=24 Hamming
B-FFT
Espectro de la salida
del filtro pasobajo
207
B.5
Seal a modular
Seal a modular
Sen de 600Hz
Zero-Order
Hold1
B-FFT
Product1
Zero-Order
Hold
Seal portadora
Seal DSBSC-AM
Seal DSBSC-AM
MODULACION SSB-AM
Modulador SSB-AM (Banda lateral inferior)
B-FFT
FDATool
B-FFT
B-FFT
DEMODULACION SSB-AM
Product2
Filtro FIR pasobajo
N=36 Hamming1
FDATool
208
B.6
Seal a modular
B-FFT
Seal a modular
Seal FM
Seal FM
FM
FM
Modulator
Passband
Seal FM
B-FFT
Espectro seal FM
FM
FM
Demodulator
Passband
FDATool
Seal demodulada
Seal demodulada
B-FFT
Espectro seal demodulada
209
B.7
************************************************************************
LABORATORIO MODULACION PAM
************************************************************************
REALIZADO POR: Jos Gabriel Fernndez Carazo
A21941
Escuela de Ingeniera Elctrica
Facultad de Ingeniera
Universidad de Costa Rica
************************************************************************
Ultima modificacin: Julio del 2007.
************************************************************************
MODULACION PAM
Random
Integer
Integer to Bit
Converter
M-PAM
Seal PAM
Random Integer
Generator
M-PAM
Modulator
Baseband
Seal aleatoria de enteros positivos Se convierten en bits
B-FFT
|u|
Abs
Seal PAM
Diagrama de Ojo
Seal PAM
M-PAM
M-PAM
Demodulator
Baseband
Bit to Integer
Converter
Bit to Integer
Converter
Seal reconstruida
Seal reconstruida
B-FFT
Espectro seal reconstruida
210
B.8
Random
Integer
Random Integer
Generator
Rectangular
QAM
Rectangular QAM
Modulator
Baseband
Seal aleatoria de enteros positivos
Seal QAM
B-FFT
Espectro seal QAM
Seal QAM
Re(u)
Im(u)
Cuadratura
Complex to
Real-Imag
Rectangular
QAM
Constelacin seal
QAM sin ruido
AWGN
AWGN
Channel
Seal reconstruida
sin ruido
Rectangular QAM
Demodulator
Baseband1
Fase
Seal QAM
Seal reconstruida
sin ruido en el canal
B-FFT
Espectro seal reconstruida
sin ruido en el canal
Constelacin seal
QAM con ruido
Rectangular
QAM
Rectangular QAM
Demodulator
Baseband
Seal reconstruida
con ruido
Seal reconstruida
con ruido en el canal
B-FFT
Espectro seal reconstruida
con ruido en el canal
211