Anda di halaman 1dari 19

Simple Book Example

TeXstudio Team

January 2013
ii
Contents

iii
iv CONTENTS
Chapter 1

The First Chapter

[12pt]article [top=3cm,bottom=3cm,left=2.5cm,right=2.5cm,headsep=10pt]geometry
[spanish, activeacute]babel
[utf8]inputenc [T1]fontenc
graphicx
float
lmodern
listings listingsutf8 literate= áá1 éé1 ı́ı́1 óó1 úú1 ÁÁ1 ÉÉ1 ÍÍ1 ÓÓ1 ÚÚ1
ÑÑ1 ññ1 ¿¿1 ¡¡1, backgroundcolor=white, frameround=fttt, rulecolor=gray!20,
language=Matlab, basicstyle=, columns=fixed, extendedchars=true, break-
lines=true, showtabs=false, showspaces=false, keywordstyle=blue, commentstyle=comentmt,
stringstyle=[RGB]178,29,206, numberstyle=gray!150, showstringspaces=false,
tabsize=2, captionpos=b, xleftmargin=9pt, framexleftmargin=5pt, framexbot-
tommargin=5pt, framextopmargin=5pt, frame=single, numbers=left, step-
number=1, numbersep=-10pt,
[dvipsnames]xcolor comentmtRGB34,139,34 themeRGB200,12,40
[backend=bibtex, style=numeric, bibencoding=ascii]biblatex sample.bib
etoolbox tikzpicture¿¡
tabularx circuitikz
tikz amsmath bm color
decorations.pathmorphing matrix arrows calc
block = [draw,rectangle,thick,minimum height=2em,minimum width=2em]
sum = [draw,circle,inner sep=0mm,minimum size=2mm] connector = [-¿,thick]
line = [thick] branch = [circle,inner sep=0pt,minimum size=1mm,fill=black,draw=black]
guide = [] snakeline = [connector, decorate, decoration=pre length=0.2cm,
post length=0.2cm, snake, amplitude=.4mm, segment length=2mm,thick,
magenta, -¿]
a4paper
hyperref hidelinks, colorlinks=true, allcolors=RoyalBlue,

1
2 CHAPTER 1. THE FIRST CHAPTER

pdfpages
amsthm definition
circuitikz
Contents

3
4 CONTENTS
List of Figures

5
6 LIST OF FIGURES
Índice de tablas

7
8 ÍNDICE DE TABLAS

RoyalBlue LABORATORIO 1

1.1 EJERCICIOS PRE-LABATORIO


RoyalBlue• Dibuje v(t) si Na = 10, a = [0 1 1 0 1 0 0 0 1 0], y hT (t)
se proporciona como se muestra en la siguiente figura 1.1.

RoyalBlue• Dibuje hR (t) si hT (t) Se proporciona como se muestra en la figura 1.1


y hR (t) esta adaptado a coincide con hT (t).

1.2 DESARROLLO DEL LABORATORIO


1.2.1 Paso 1: Digital Channel
;
[connector] (F1) -— node an ((L1.north)); [connector] (L1.south) —-
node abn (F2); Canal Digital
Para comenzar, primero simularemos el sistema de comunicación digital
ideal que se muestra en la Figura 1.2.1.
La data source genera un mensaje que consiste en Na bits seleccionados
aleatoriamente, que son transmitidos sobre el canal digital. Para este lab-
oratorio consideraremos un canal digital ideal, por lo que los bits recibidos
son idénticos a los bits transmitidos. El receptor de datos muestra los bits
recibidos e muestra el número de bits de mensajes que se recibieron incor-
rectamente. Como el canal es ideal, este número debe ser cero. Si no es ası́,
entonces tiene un error en su simulador, que debe corregir antes de pasar
al siguiente paso. Encontrar el número de errores será aún más útil en fu-
turos laboratorios, donde se espera que calcule la probabilidad de error para
canales no ideales. Ingrese el código de MATLAB que figura a continuación
en un archivo .m de MATLAB y ejecútelo.
[caption=Source code for the power spectral density compute exam-
ple.m,label=programa1] Na = 10; a = randi(1, Na); disp(sprintf(’Transmitted
Message:
ah = a;
disp(sprintf(’ReceivedMessage: nErrs = sum(xor(a, ah)); disp(sprintf(’Number
of errors: Respuesta del algoritmo ??: Transmitted Message: 1111111111
ReceivedMessage: 1 1 1 1 1 1 1 1 1 1 Number of errors: 0 Podemos verificar
que el siguiente algoritmo por ser un canal digital ideal no presenta errores.
1.2. DESARROLLO DEL LABORATORIO 9

Pregunta 1 Explica cómo la declaración


nErrs = sum(xor(a, ah)); determina la cantidad de errores. Intente configu-
rar manualmente ah en algo diferente a a antes de ejecutar esta declaración.

Explicación: Para entender como funciona la declaración anterior, revisamos


la compuerta lógica xor.
Donde tiene la siguiente tabla de verdad: De la siguiente tabla concluimos
que, cuando los bits de entrada sean diferentes, nos dará como resultado 1
lógico, esto es aplicado en el algoritmo ?? donde compara los bits de entrada
y los bits de salida, posteriormente hace una suma, el cual sera la cantidad
de bits diferentes, es decir en numero de errores.
Modificamos el algoritmo ??, de tal modo que nos de errores. [cap-
tion=Verficación de los errores, con 10 errores example errores.m,label=programa2]
Na = 10; a = randi(1, Na); disp(sprintf(’Transmitted Message:
ah = a*0;
disp(sprintf(’ReceivedMessage: nErrs = sum(xor(a, ah)); disp(sprintf(’Number
of errors: Obtenemos como respuesta lo siguiente Transmitted Message: 1
1 1 1 1 1 1 1 1 1 ReceivedMessage: 0 0 0 0 0 0 0 0 0 0 Number of errors:
10 Donde podemos observar que ahora nos da 10 errores, esto es por que los
bits de entrada son diferente a las de la salida.

1.2.2 Paso 2: Ideal Discrete-time Channel


Reemplace el ‘Digital Channel’ del Paso 1 con la combinación de un Sym-
bol Mapper, un Ideal Discrete-time Channel y un Decision Device, como se
muestra en la Figura 1.2.2 . El canal ideal de tiempo discreto simplemente
pasa las amplitudes transmitidas sin distorsión, por lo que rn = vn . ; &&
;
[connector] (F1) – node an (L1); [connector] (L1) -— node vn ((L2.north));
[connector] (L2.south) —- node rn (L3); [connector] (L3) – node abn (F2);
Canal ideal tiempo discreto
Debe escribir el código para implementar el Symbol Mapper y el Deci-
sion Device como se describe en la sección de Introduccion de este manual
de laboratorio. No debe cambiar la fuente de datos. Mantenga Na = 10
y a = [0 1 1 0 1 0 0 0 1 0]. Verifique que no haya errores de
transmisión antes de continuar con el Paso 3.
Implementamos el siguiente código: [caption=Canal ideal de tiempo dis-
creto tiempo discreto.m,label=programa3] Na = 10; a = [0 1 1 0 1 0 0 0
1 0]; disp(sprintf(’Transmitted Message:
V=[+1 -1]; for n=1:Na if a(n)==1 vn(n)=V(2); elseif a(n)==0 vn(n)=V(1);
else end end disp(sprintf(’Message Mapped:
10 ÍNDICE DE TABLAS

rn = vn;
Vr=[0 1]; for n=1:length(rn) if rn(n)==-1 an(n)=Vr(2); elseif rn(n)==1
an(n)=Vr(1); else an(n)=NaN; end end
disp(sprintf(’ReceivedMessage: nErrs = sum(xor(a, an)); disp(sprintf(’Number
of errors: Tenemos como respuesta: Transmitted Message: 0 1 1 0 1 0 0 0
1 0 Message Mapped: 1-1-1 1-1 1 1 1-1 1 ReceivedMessage: 0 1 1 0 1 0 0 0 1
0 Number of errors: 0

1.2.3 Paso 3: Ideal Baseband Channel


; &&&[block](L4)Detector;
;
[connector] (F1) – node an (L1); [connector] (L1) – node vn (L2); [connec-
tor] (L2) – node v(t) (L3); [connector] (L3) – node r0 (t) (L4); [connector] (L4)
– node rn (L5); [connector] (L5) – node abn (F2); Canal ideal en bandabase
Reemplace el ‘Discrete-time Channel’ del Paso 2 con la combinación
de un Transmit Filter, un Ideal Baseband Channel y un Detector, como se
muestra en la Figura 6. El Ideal Baseband Channel transmite la señal de
banda base sin distorsión, de modo que ro (t) = v(t).
Agregue el Transmit Filter y el Detector a su simulador. Use T = 1ms
para la duración del sı́mbolo del pulso rectangular que se muestra en la Figura
2.
Debido a que es imposible procesar señales analógicas en una computa-
dora digital, en MATLAB debemos trabajar con una versión muestreada
de la señal. La señal de banda base v(t) se muestreará con un perı́odo de
muestreo de Ts = T /η segundos por muestra, o η = T /T s muestras por
sı́mbolo (bit), donde η es la relación de sobremuestreo. Usaremos η = 64
para este laboratorio. Las muestras están dadas por
vm = v(mT s) (1.1)
Sin embargo, como no podemos generar v(t), no podemos muestrearlo. En
cambio debemos generar directamente sus muestras. La forma más útil
(aunque no necesariamente la más fácil o más eficiente) de hacer esto es
generar primero un tren de impulsos muestreado basado en las amplitudes
vn, y generar una versión muestreada de hT (t), y luego realizar un con-
volución de tiempo discreto de los dos. Esto se ilustra en la Figura 7, para
v = [1 − 1 1] con Na = 3 y η = 4.
Para generar el tren de impulso muestreado puede usar upsample(v,eta)
dónde eta = η. El pulso muestreado es solo h unos (vea la función MATLAB
ones ()). Use la función MATLAB conv() para realizar la convolución en
tiempo discreto.
1.2. DESARROLLO DEL LABORATORIO 11

Tenemos el siguiente código: [caption=Canal ideal de banda base banda base.m,label=programa4


Na = 10; a = [0 1 1 0 1 0 0 0 1 0]; disp(sprintf(’Transmitted Message:
V=[+1 -1]; for n=1:Na if a(n)==1 vn(n)=V(2); elseif a(n)==0 vn(n)=V(1);
else end end disp(sprintf(’Message Mapped:
T=0.001; eta=64; tiempo=T/eta:T/eta:T*Na; for i=1:Na*eta index=ceil(i/(eta));
v(i)=vn(index); end
r0=v;
unos=ones(1,eta); rnc=conv(r0,unos); rnc=rnc(1:length(v)); for n=eta:eta:length(v)
rn(n/64)=round(rnc(n)/max(rnc)); end
Vr=[0 1]; for n=1:length(rn) if rn(n)==-1 an(n)=Vr(2); elseif rn(n)==1
an(n)=Vr(1); else an(n)=NaN; end end
disp(sprintf(’ReceivedMessage: nErrs = sum(xor(a, an)); disp(sprintf(’Number
of errors: Respuesta: Transmitted Message: 0 1 1 0 1 0 0 0 1 0 Message
Mapped: 1-1-1 1-1 1 1 1-1 1 ReceivedMessage: 0 1 1 0 1 0 0 0 1 0 Number
of errors: 0
Pregunta 2 Dibuje (plot) v(t) vs t (en segundos). Asegúrese de que su es-
cala de tiempo sea correcta (pista: ¿cuánto tiempo debe durar su señal, y
esto coincide con lo que se muestra en su gráfico?). Use el comando MAT-
LAB ylim() para mostrar el eje y sobre el intervalo [−1.1, 1.1]. Compara tu
gráfica con tu dibujo del prelaboratorio. Para implementar el detector, de-
berá generar una versión muestreada de hR (t), y usar conv() para realizar
una convolución en tiempo discreto de este con su señal recibida, dando una
versión sobremuestreada de r(t).

titulo=strcat(’”’,sprintf(’plot(v), title(titulo) xlabel(’tiempo(s)’), ylabel(’v(t)’);


grid on;
Pregunta 3 Dibuje (plot) r(t) vs t (en segundos). De su gráfica, ¿Cuáles
son los valores de r(t) en los primeros cuatro ejemplos de muestreo, t =
[n + 1]T para n = 0,1,2, 3?.
Realice un submuestreo de r(t) por un factor de η, asegurándose de man-
tener solo las muestras en los instantes de muestreo correctos.

titulo=strcat(’”’,sprintf(’plot(rn), title(titulo) xlabel(’tiempo(s)’), ylabel(’rn(t)’);


grid on;
Pregunta 4 Compare sus primeros cuatro valores de rn con los valores de
la pregunta 3. ¿Son idénticos? Sugerencia: si no lo son, probablemente esté
muestreando en los momentos equivocados.
12 ÍNDICE DE TABLAS

Figure 1.1: Pulso rectangular

Figure 1.2: v(t) para a = [0 1 1 0 1 0 0 0 1 0]

(0,0) node[xor port] (myand) (myand.in 1) node[anchor=east] a (myand.in 2)


node[anchor=east] ah (myand.out) node[anchor=west] nErrs;

Figure 1.3: Circuito lógico XOR

a ah nErrs
0 0 0
0 1 1
1 0 1
1 1 0

Table 1.1: Lógica de la compuerta xor

Figure 1.4: v en función del tiempo

Figure 1.5: rn en función del tiempo


1.2. DESARROLLO DEL LABORATORIO 13

Transmitted Message: 0 1 1 0 1 0 0 0 1 0 Detector Baseband Channel: 1-1-1


1-1 1 1 1-1 1 ReceivedMessage: 0 1 1 0 1 0 0 0 1 0 Number of errors: 0 En
definitiva podemos concluir que la gráfica 1.5 corresponde a los 4 primeros
valores recibidos del detector, son idénticos.

Pregunta 5 Compare sus valores de abn con an . ¿Son idénticos?.

Comparación de los valor donde la linea 1 es an y la linea 2 es abn . Podemos


comprobar que son idénticos. Transmitted Message: 0 1 1 0 1 0 0 0 1 0
ReceivedMessage: 0 1 1 0 1 0 0 0 1 0

1.2.4 Paso 4: Ideal Bandpass Channel


; &&&[block](L6)Detector; &&&[block](L5)Demodulator;
;
[connector] (F1) – node an (L1); [connector] (L1) – node vn (L2); [con-
nector] (L2) – node v(t) (L3); [connector] (L3) – node vc (t) (L4); [connector]
(L4) – node rc (t) (L5); [connector] (L5) – node r0 (t) (L6); [connector] (L6)
– node rn (L7); [connector] (L7) – node abn (F2); Ideal Bandpass Channel
Agregue el modulador y el demodulador para finalizar la simulación del
sistema en la Figura 1.2.4. Use una frecuencia portadora de fc = 2kHz. Util-
ice un canal de paso de banda ideal, que no introduzca ninguna distorsión,
de modo que

rc (t) = vc (t) (1.2)


Tenemos el siguiente código: [caption=Ideal Bandpass Channel band pass channel.m,label=pro
Na = 10; a = [0 1 1 0 1 0 0 0 1 0]; disp(sprintf(’Transmitted Message:
V=[+1 -1]; for n=1:Na if a(n)==1 vn(n)=V(2); elseif a(n)==0 vn(n)=V(1);
else end end disp(sprintf(’Message Mapped:
T=0.001; eta=64; tiempo=T/eta:T/eta:T*Na; for i=1:Na*eta index=ceil(i/(eta));
v(i)=vn(index); end
fc=2000; for i=1:length(v) vc(i)=v(i)*cos(2*pi*fc*tiempo(i)); end
rc=vc;
for i=1:length(v) r0(i)=rc(i)*cos(2*pi*fc*tiempo(i)); end
unos=ones(1,eta); rnc=conv(r0,unos); rnc=rnc(1:length(v)); for n=eta:eta:length(v)
rn(n/64)=round(rnc(n)/max(rnc)); end
Vr=[0 1]; for n=1:length(rn) if rn(n)==-1 an(n)=Vr(2); elseif rn(n)==1
an(n)=Vr(1); else an(n)=NaN; end end
disp(sprintf(’ReceivedMessage: nErrs = sum(xor(a, an)); disp(sprintf(’Number
of errors: Respuesta: Transmitted Message: 0 1 1 0 1 0 0 0 1 0 Message
14 ÍNDICE DE TABLAS

Mapped: 1-1-1 1-1 1 1 1-1 1 ReceivedMessage: 0 1 1 0 1 0 0 0 1 0 Number


of errors: 0

Pregunta 6 Dibuje (plot) vc (t) vs t (en segundos).

titulo=strcat(’”’,sprintf(’plot(vc), title(titulo) xlabel(’tiempo(s)’), ylabel(’vc(t)’);


grid on;

Pregunta 7 Dibuje (plot) ro (t) vs t (en segundos).

titulo=strcat(’”’,sprintf(’plot(r0), title(titulo) xlabel(’tiempo(s)’), ylabel(’r0(t)’);


grid on;

Pregunta 8 Dibuje (plot) r(t) vs t (en segundos).

titulo=strcat(’”’,sprintf(’plot(rn), title(titulo) xlabel(’tiempo(s)’), ylabel(’rn(t)’);


grid on;

Pregunta 9 Compare sus valores de abn con an . ¿Son idénticos?.

Comparación de los valor donde la linea 1 es an y la linea 2 es abn . Podemos


comprobar que son idénticos. Transmitted Message: 0 1 1 0 1 0 0 0 1 0
ReceivedMessage: 0 1 1 0 1 0 0 0 1 0
1.2. DESARROLLO DEL LABORATORIO 15

Figure 1.6: vc en función del tiempo

Figure 1.7: r0 en función del tiempo

Figure 1.8: rn en función del tiempo

Anda mungkin juga menyukai