Está en la página 1de 19

UNIVERSIDAD EL BOSQUE

FACULTAD DE INGENIERÍA
PROGRAMA DE INGENIERÍA ELECTRÓNICA
ANÁLISIS DE SEÑALES

Laboratorio 1:
Señales en Tiempo Discreto con Matlab
OBSERVACION: Para la realización del Informe del Laboratorio utilice la
plantilla de la Bitácora Google Docs (Drive correo institucional) y siga las
instrucciones dadas en el documento.

CONTENIDO:
1. Introducción
2. Objetivos
3. Representación de señales
4. Señales básicas
5. Señales multicanal (matrices)
6. Combinación de funciones sinusoidales
7. Energía y potencia de señales
8. Mini tutorial de SIMULINK

DESARROLLO:

1. Introducción
Cómo inicio del laboratorio de análisis de señales y cómo refuerzo de la primera
meta de aprendizaje del curso (manejo de las señales en tiempo discreto) se ilustrarán
algunas propiedades de las señales en tiempo-discreto diferenciándolas de las señales
de tiempo continúo usando MATLAB. Una señal en tiempo-continuo toma valores en
todo punto en el tiempo, mientras que una señal en el tiempo-discreto está definida
solamente en valores enteros de la variable “tiempo”. Sin embargo, mientras una señal
en tiempo-discreto puede ser fácilmente guardada y procesada en un computador, es
imposible guardar los valores de una señal en tiempo continuo para todos los puntos a
lo largo de una línea real. En los computadores realmente no se puede almacenar ni
mostrar una señal continua pero se hace una aproximación asignando valores de la señal
a intervalos de tiempo pequeños muy inferiores a la unidad lo cual en el fondo es una
restricción de tiempo, y además, también se hace la restricción de los posibles valores
que puede tener en amplitud cuantizandola de acuerdo a las posibles clases de variables
permitidas en el software (UINT8,16,32, SINT8,16,32, LOGICAL, SINGLE DOUBLE), y se
grafican uniendo los puntos con líneas rectas dando la impresión de infinitos valores. En
las señales discretas se usan las mismas clases de variables pero la diferencia es que
cada valor de amplitud corresponde a un intervalo de tiempo discreto entero y su gráfica
muestra espacios vacíos entre muestras.

Entonces, realmente para procesar una señal continua en un computador se


requiere un proceso de conversión a discreta.

2. Objetivos
• Recordar la generación, la representación y el manejo de señales
continuas y discretas
• Realizar algunas operaciones entre señales
• Utilizar formas básicas de graficación, programación
• Conocer los fundamentos de SIMULINK

3. Representación de señales

Prácticamente todos los laboratorios de este curso usarán MATLAB. MATLAB


(MATrix LABoratory) es un ambiente computacional técnico para análisis numérico,
cálculos matriciales, procesamiento de señales, y gráficos entre muchas otras. MATLAB
es un producto de Mathworks, y su primera versión fue entregada en 1984. Fue primero
adoptado por la ingeniería de control y en las comunidades de matemática aplicada,
pero a medida de que los años pasaban, numerosas funciones (categorizadas en cajas
de herramientas, toolboxes) fueron embebidas haciendo de MATLAB una
extremadamente fuerte herramienta para científicos e ingenieros de muchas disciplinas.
Por ejemplo, MATLAB puede ser usado en un amplio rango de aplicaciones, tales como
las telecomunicaciones, procesamiento de señales e imágenes, control, matemáticas,
finanzas, bioingeniería, aeronáutica, y muchas más. En esta sección del laboratorio,
revisaremos algunas de sus funciones básicas. En donde se establecerá la diferencia
entre un script (programa principal) y una función (especie de subrutina) y se comenzará
en el importante proceso de obtener ayuda offline y online de las funciones provistas
por los toolboxes (cajas de herramientas) especializados preinstalados en el programa.

3.1. Iniciando con Matlab y obteniendo ayuda

Después de arrancar el programa, se obtendrá una ventana de comandos del


Matlab. Para obtener ayuda sobre un comando específico, como por ejemplo, para
obtener ayuda para la función nativa “plot” se escribiría:

>>help plot

En la ventana de Matlab “Command Window”. Puede hacer una búsqueda por palabras
clave de un tópico en inglés usando el siguiente comando:

>>lookfor image
Donde se arroja resultados con un listado de todas las posibles opciones que pueden
ayudar a encontrar una función específica. Pero realmente la mejor herramienta offline
para obtener ayuda corresponde a la ayuda del producto como tal usando el icono de
ayuda o también siguiendo el menú o presionando la tecla F1. Allí se encuentran demos
y ejemplos de uso muy completos para aprender a usar funciones nativas de Matlab así
como las funciones de los toolboxes. La ayuda Online es muy efectiva y permite entrar
en contacto con programadores nuevos y expertos (Comunidad), conseguir programas
de uso gratuito y foros de todo tipo de aplicación sobre Matlab. La página principal que
ofrece éste soporte es www.mathworks.com y se accede en el menú ayuda en el enlace
de recursos web (web resources) y el intercambio de archivos (Matlab file exchange).

Informe de laboratorio:

Realice los procedimientos, No anexe ningún resultado de éste apartado en el


informe

3.2. Matrices y Operaciones

Todo elemento en Matlab es una matriz. Luego, por ejemplo, el comando


Matlab:

a = [1 2 3]

Crea una matriz nombrada “a” con dimensiones de 1 × 3 (fila x columna). La variable “a”
es almacenada en lo que es llamado el espacio de trabajo de Matlab “Matlab
workspace”. Alternativamente, la operación

b = a’

Guarda la transpuesta compleja de “a” en el vector “b”. En este caso, “b” es un vector 3
× 1.

Como cada elemento en Matlab es una matriz, la operación c = a*b, Calcula el producto
de la matriz de “a” y “b” para generar un valor escalar “c” de 14

=1*1 + 2*2 + 3*3 = 14.

A menudo, se quiere aplicar una operación a cada elemento del vector. Por ejemplo, se
puede querer elevar al cuadrado cada elemento de “a”. En este caso, se puede usar el
comando siguiente:

c = a.*a

El símbolo .* le dice a Matlab que la multiplicación debe ser aplicada a cada elemento
de “a”. Entonces la operación .* no es una operación matricial. La convención trabaja
con muchos comandos tales como la división y la potenciación respectivamente, ./, .^.
El resultado entonces es un vector “c” 1x3

= [1x1 2x2 3x3]


Algunas funciones y comandos básicos que se pueden usar como referencia futura
básica son:
v1=[4 3 7 -9 1 5];
v2=[4,3,7,-9,1,5];

% El producto por una constante (escalado en amplitud) es:


v3=5*(v2);
% La suma vectorial es:
v4=v3+v2;
% Las operaciones dato a dato (o elemento a elemento) son:
v5=v3./v1;
% Números complejo, magnitud y ángulo
sqrt(-1)
y= 2*(1+4*j);
pr=real(y);
pi=imag(y);
c = abs(y);
ca = angle(y);
x=conj(y);
z=y’;

Algunas matrices especiales que se utilizarán mucho durante el curso son:


% null matrix
M = [];
% matriz de ceros n x m, M=zeros(n,m);
M1=zeros(2,3)
% matriz de unos n x m, M=ones(n,m);
M2=ones(2,3)
% matriz identidad n x n, M=eye(n);
M3=eye(3,3)

También se puede sobre-escribir un número en una posición específica de una matriz:


M3(1,2) = 5

Para la creación de los vectores de tiempo tanto para emular señales continuas como
señales discretas:

% espaciamiento de tiempo. (10/0.1)+1 = # de datos generados % por el


vector, con escala de 0 a 10
t = 0:.1:10;
n = 0:10;
x = cos(2*t);
x1 = n.*cos(n);

Informe de laboratorio:

Realice los procedimientos, No anexe ningún resultado de éste apartado en el


informe
3.3. Creando señales continuas sinusoidales

En el siguiente ejemplo se creará una señal “análoga” a través de una


aproximación satisfactoria, usando una señal discreta con un muy pequeño paso de
tiempo.
𝑦(𝑡) = cos(𝑡) , 0 ≤ 𝑡 ≤ 10
t = 0:0.01:10;
y=cos(t);
plot(t,y)

Ahora el siguiente programa calcula una señal sinusoidal con una duración de
cuatro períodos con desfase.

𝑥(𝑡) = 3cos⁡(3𝜋𝑡 + 𝜋/3)


A=3;
Wo=3*pi;
Thita=pi/3;
T=2*pi/Wo;
t = 0:0.01:4*T;
x=A*cos(Wo*t+Thita);
plot(t,x)

Como primera asignación se pide crear un nuevo script donde se generen tres señales
continuas con frecuencia de 4KHz, y que se visualicen dos periodos. Las primeras dos
señales, x1(t), y x2(t) son descritas por las siguientes expresiones

𝑥1 (𝑡) = 𝐴1 cos⁡(2𝜋(4000)(𝑡 − 𝑡𝑚1 ))

𝑥2 (𝑡) = 𝐴2 cos⁡(2𝜋(4000)(𝑡 − 𝑡𝑚2 ))

Las amplitudes y desplazamientos de tiempo son funciones de su edad y fecha de


nacimiento como se describe abajo.

A1 = su edad/10

A2 = 1.2 A1

Los tiempos de desplazamiento son definidos así,

37.2
𝑡𝑚1 = ( )𝑇
𝑀
41.3
𝑡𝑚2 = −( )𝑇
𝐷

Donde M es igual al mes de su nacimiento (de 1-Enero a 12-Diciembre), D al día de su


nacimiento (de 1 a 31), y T = 1/f = 250µS es el periodo de las señales. El vector de
tiempo, t, usado para generar las señales debe tener 25 valores por cada periodo.
Entonces el rango del vector de tiempo estará entre –T y T, o un periodo antes de t=0 y
uno después, y el paso de tiempo entre muestras debe ser de T/25.

La tercera señal es simplemente la suma de x1(t), y x2(t).

𝑥3 (𝑡) = 𝑥1 (𝑡) + 𝑥2 (𝑡)


Grafique las tres señales en una sola figura con la función Plot, genere una grilla y ponga
título a cada gráfica que la identifique con etiquetas en el eje y y en el eje x. la primera
gráfica debe ser roja, la segunda azul y la tercera verde (es decir el color de las curvas).
Nota: ver gráficos en dos dimensiones más adelante en ésta guía.

Realice una segunda figura con las tres gráficas en cuadros diferentes pero en la misma
figura usando los comandos subplot.

Realice los cálculos de los desfases en radianes de las tres señales, con una nueva figura
reescriba y grafique las señales en función del desfase en radianes.

𝑥(𝑡) = 𝐴𝑐𝑜𝑠(2𝜋(4000)𝑡 − 𝜑)

Reescriba las mismas señales en forma exponencial (fasorial) y grafíquelas en una nueva
figura,

𝑥 (𝑡) = 𝑅𝑒{𝐴𝑒 𝑗𝜑 𝑒 𝑗𝑤𝑡 }.

Como segunda asignación se solicita que realicen el script y grafiquen las señales
mostradas a continuación en los intervalos de tiempo solicitados con un tamaño de paso
apropiado (en el caso de señales complejas se debe graficar por aparte la parte real,
imaginaria, la magnitud y la fase):
3.1. 𝑥(𝑡) = 3𝑒 0.4𝑡 − 2 ≤ 𝑡 ≤ 5
3.2. 𝑦(𝑡) = 2𝑒 −0.9𝑡 − 2 ≤ 𝑡 ≤ 5
3.3. 𝑦(𝑡) = 2𝑒 𝑗𝜋𝑡+𝜋/3 ⁡𝑒𝑛⁡𝑢𝑛⁡𝑝𝑒𝑟𝑖𝑜𝑑𝑜
3.4. 𝑥(𝑡) = 2𝑒 𝑗𝜋𝑡 3𝑒 𝑗2𝜋𝑡 , 0 ≤ 𝑡 ≤ 5
3.5. 𝑦(𝑡) = 6𝑒 𝑗3𝜋𝑡 , 0 ≤ 𝑡 ≤ 5

Informe de laboratorio:

Anexe los procedimientos, agregue el código generado para cada uno de los ítems,
tareas solicitadas y los resultados del procedimiento en el informe, es decir, incluya
cada una de las gráficas y resultados si se solicitan.

3.3. Con una consulta de los comandos heaviside y gauspuls, grafique


una función paso y una impulso continua respectivamente, en el
intervalo −𝟓 ≤ 𝐭 ≤ 𝟏𝟎.

Informe de laboratorio:

Anexe los procedimientos, agregue el código generado y las gráficas correspondientes

3.4. Utilizando lazos de programación sobre MATLAB

Pese a que MATLAB no fue pensado para éste tipo de programación, si lo soporta. No
todas las veces es posible, pero usualmente los ciclos se pueden reemplazar por
operaciones entre matrices como se muestra en algunos ejemplos:

% Uso del ciclo for


for i=1:10,
x(k) = cos(i);
end;

% otra forma de hacerlo


n = 1:10;
x = cos(n);

% Uso de if
a = [1 2 3];
if(a <= 2),
b = 1;
elseif(a >=4)
b = 2;
else
b = 3;
end;

% Uso de if-elesif-else
A=5;
B=3;
if A==B
disp('A=B')
elseif A>B
disp('A mayor que B')
else
disp('A menor que B')
end

% Uso de switch-case
A=-8;
switch A
case 0
disp('A es 0')
case 1
disp('A es 1')
otherwise
disp('A es distinto de 0 y 1')
end

% Asignar un valor externo ingresado desde el teclado a una variable


T = input('Ingrese el valor de T: ')
% Uso de while
A=[3 4 5 6 7 8];
b=1;
while(1)
H=A(b)
b=b+1;
if b>length(A)
break
end
end

Informe de laboratorio:
Realice los procedimientos, No anexe ningún resultado de éste apartado en el
informe

3.5. Gráficos en dos dimensiones sobre MATLAB

MATLAB es una herramienta muy confiable y poderosa en el tema de la graficación. Una


gráfica es construida como un conjunto de puntos en dos y tres dimensiones. Estos
puntos son (típicamente) conectados con una línea sólida. Comúnmente se usan las
funciones para hacer gráficas pero en MATLAB se utilizan para graficar vectores o
matrices y no funciones. Más adelante veremos cómo graficar funciones.
Comandos estudiados:
plot
xlabel
ylabel
title
grid
axis
subplot
stem

El comando más comúnmente usados para graficar es plot, el cual crea gráficas lineales
de vectores y matrices; plot(t,y) grafica el vector t sobre el eje-x versus el vector y sobre
el eje-y. La gráfica tiene opciones como el ancho de la línea, el tipo de línea, el color de
la línea entre otras de la curva que se está graficando con el comando plot(t,y,'option').
Las opciones de tipo de línea es por defecto la línea sólida '-' (default), '--' línea
interrumpida, '-.' Línea punteada, ':'. Los puntos en y pueden dejarse sin conectar y
delinearse con una variedad de símbolos: + . * o x. Los siguientes colores son ejemplos
de las opciones disponibles (entre otros):
% r Red (rojo)
% b Blue (azul)
% g Green (verde)
% w White (Blanco)
% k Black (negro)

Por ejemplo, plot(t,y,'--') usa una línea punteada con guiones, plot(t,y,'*') usa
* en todos los puntos definidos en t y y sin conectar los puntos, y plot(t,y,'g') usa
una línea solida verde. Las opciones pueden ser usadas a la vez, por ejemplo,
plot(t,y,'g:') grafica una línea verde punteada. Para graficar dos o más gráficas
sobre el mismo conjunto de ejes, use el comando plot(t1,y1,t2,y2), lo cual grafica
y1 versus t1 y y2 versus t2.
Los comandos para etiquetar los ejes y darle título a la gráfica son:
xlabel('tiempo (seg)')
ylabel('respuesta a la función paso')
title('Mi gráfica')

Finalmente, para adicionar una grilla a la gráfica y así facilitar la lectura de sus valores.
Se debe introducir el comando grid. Un problema que se puede encontrar muy seguido
cuando se está graficando es que MATLAB escalará los ejes en una forma automática
que puede ser diferente a como se quiere que aparezca. Se puede sobreescribir la
autoescala de los ejes usando los comandos de configuración de eje siguiente:
axis([xmin xmax ymin ymax]);
Donde xmin, xmax, ymin, y ymax son números correspondiente a los límites deseados
de los ejes. Para retornar a la escala automática, simplemente se escribe el comando
axis. Para señales en tiempo discreto, se usa el comando stem el cual grafica cada punto
con una pequeño círculo y una línea recta conocido como lollypop. Para graficar y(n)
versus n, se escribe stem(n,y). El comando puede ser modificado graficando los círculos
rellenos. Específicamente, la tercera línea en stem
n=1:20;
y=sin(pi/8*n);
h = stem(n,y,'o');

Puede ser reemplazada por:


h = stem(x,y,'.');
set(h,'markersize',18);
Para crear círculos cerrados.
2
Realice la siguiente figura: 𝑦 = 𝑥𝑒 −𝑥 , −3 ≤ 𝑥 ≤ 3

Ahora, realice las siguientes figuras, incluyendo las leyendas, etiquetas, título y tipos de gráficas
teniendo en cuenta el color:

Por último grafique las siguientes ecuaciones:


Informe de laboratorio:

Anexe los procedimientos, tareas solicitadas y los resultados del procedimiento en el


informe.

3.6. Cargando (Loading) y Guardando (Saving) Datos

Cuando se usa MATLAB, Ud puede querer comúnmente cerrar un programa pero salvar
los vectores y matrices que se han creado con los valores que haya definido en un
momento dado. Para guardar el workspace escriba el comando:

>>save nombredelArchivo

Donde " nombredelArchivo" es el nombre con el que guardará el archivo .mat, para
recuperar las variables escriba el comando:

>> load nombredelArchivo

Informe de laboratorio:

Realice los procedimientos, No anexe ningún resultado de éste apartado en el informe

4. Señales básicas
En esta sección se realizarán algunos programas de generación y graficado de señales
básicas y se plantearán algunas preguntas y ejercicios para retar su conocimiento.

EL IMPULSO UNITARIO
Para una señal de 20 datos
IMPULSO= [zeros(9,1);1; zeros(10,1)];
O también utilizando operadores lógicos
N=-10:10;
IMPULSO1=(n==0);

Formas de Graficarlo
plot(IMPULSO,'.');
figure
stem(IMPULSO);
figure
stem(n,IMPULSO1);

Realice una comparación de ellos.


EL ESCALON UNITARIO
ESCALON = [zeros(9,1);ones(11,1)];
plot(ESCALON,'.');
stem(ESCALON);

n=-10:10;
ESCALON1= (n>=0);
stem(n, ESCALON1)

LA RAMPA
n=(-9:1:10)';
RAMPA =[zeros(9,1); n(10:20)];
plot(n,RAMPA,'.');
figure
stem(n,RAMPA);

Note que se incluye un vector columna.


FUNCION SINC(X) CONTINUA
x = linspace(-5,5);
y = sinc(x);
plot(x,y); grid

OTRA SEÑAL BÁSICA CONTINUA


Fs = 10000;
t = 0:1/Fs:1.5;
x = sawtooth(2*pi*50*t);
plot(t,x), axis([0 0.2 -1 1]); grid

¿Cómo se llama la señal generada?


Recuerde que se pueden realizar algunas operaciones básicas sobre estas señales tales
como reflexión, escalamiento en el tiempo, desplazamiento en el tiempo, etc.

EJERCICIOS PROPUESTOS PARA REALIZAR


4.1. Genere y grafique la función signo sgn(t).
4.2. Realice el reflejo en el tiempo para las funciones básicas impulso, escalón,
rampa y sinc(x).
4.3. Trabaje con las funciones básicas descritas en la sección 4: escalándolas
en amplitud, desplazándolas e invirtiéndolas en amplitud. Para ello manipule las
variables temporales y las funciones definidas. Indique en su informe las
operaciones realizadas y los valores adoptados en cada uno de las operaciones
realizadas
4.4. Genere una función pulso continua entre -1 y 1 y con una amplitud de 2.
4.5. Genere una función triangular continua entre -1 y 1 y con una amplitud
de 1.
4.6. Genere una función sinusoidal continua de 10 voltios de amplitud, una
frecuencia de 10 Hz y una fase de 30 grados y grafique dos periodos completos.
4.7. Diseñe un programa en MATLAB (.m) que genere una señal de tiempo
discreto x[n] y luego realice la operación x[an-k], donde a y k son constantes de
un digito dadas por el usuario desde el teclado, así mismo los valores de x son
dados por el usuario desde el teclado, pero el tiempo está limitado para x[n]
entre -5 y 5. Adicionalmente se debe graficar la señal original, x[n] y la señal
"transformada" x[an-k].

Informe de laboratorio:
Anexe los procedimientos, tareas solicitadas y los resultados del procedimiento en
el informe.

5. Combinación de funciones sinusoidales


En este paso trataremos de establecer la periodicidad de una señal que es sumatoria de
varias señales sinusoidales continuas.
Definir un vector de tiempo:
t=[0:.0001:.02];
%el vector va desde 0 hasta 0.02, con datos tomados cada 0.0001

Ahora se definen las funciones sinusoidales


f1=100; f2=200; f3=300; %frecuencias de las ondas
x1=sin(2*pi*f1*t); %ondas
x2=2*sin(2*pi*f2*t+pi/3);
x3=5*sin(2*pi*f3*t+pi/6);
plot(t,x1,t,x2,t,x3) %grafica de señales

% Luego calcular la suma de todas y verificar si es periódica la


% suma.
x=x1+x2+x3;
figure
plot(t,x); grid

NOTA: para el ejemplo anterior observe y determine la frecuencia de la suma. Calcule el


periodo y compare.

Informe de laboratorio:

Anexe los resultados de los procedimientos.

6. Energía y potencia de señales


Genere un pulso rectangular entre -pi y pi con los siguientes comandos:
t=[-pi:pi/100:pi];
x = square(t);
plot(x); grid;

Ahora calcule la energía.


E=cumsum(x.^2);
plot(t,E); grid

Haga el análisis del resultado (Cuanto da la energía finalmente?)


6.1. Genere una señal sinusoidal con una frecuencia cualquiera, calcule la potencia.
Para ello diseñe una estrategia para lograrlo, además hágalo por medio de un
archivo .m
6.2. Ahora calcule la energía/potencia de los siguientes ejemplos de señales
continuas y discretas:
t=0:0.1:30;
x = exp(-.1*t).*sin(2/3*t);
plot(t,x)
grid
axis([0 30 -1 1]);
ylabel('x(t)')
xlabel('Tiempo (seg)')
title('Figura 1')

Ejemplo de señal Discreta


n = -2:6;
x = [0 0 1 2 1 0 -1 0 0];
stem(n,x);grid
xlabel('n')
ylabel('x[n]')
title('Figura 2')
Otra:
n=0:30;
x = exp(-.1*n).*sin(2/3*n);
stem(n,x)
axis([0 30 -1 1]);
ylabel('x[n]')
xlabel('n')
title('Figura 3')

Otra forma de graficar, con división de la pantalla


n = -10:30;
OMEGA1 = pi/3;
OMEGA2 = 1;
x1 = cos(OMEGA1*n);
x2 = cos(OMEGA2*n); clf
subplot(2,1,1);stem(n,x1)
xlabel('n')
ylabel('x[n]')
title('Figura 4')
axis([-10,30,-1.5,1.5]);
subplot(2,1,2);stem(n,x2)
xlabel('n')
ylabel('x[n]')
title('Figura 5')
axis([-10,30,-1.5,1.5]);

Informe de laboratorio:

Anexe los resultados de los procedimientos y los cálculos solicitados.


7 Mini tutorial de SIMULINK

Simulink es un paquete de software que lo habilita a Usted para modelar, simular, y


analizar sistemas cuyas salidas cambian en el tiempo. Tales sistemas son usualmente
conocidos como sistemas dinámicos. Simulink puede ser usado para explorar el
comportamiento de un amplio rango de sistemas dinámicos del mundo real, incluyendo
circuitos eléctricos, sistemas de absorción de impactos, sistemas de amortiguamiento,
y muchos otros sistemas eléctricos, mecánicos, y termodinámicos.

Simulink provee una completa librería que permite seleccionar bloques de librerías de
bloques estándares (Simulink Blocks) y un editor gráfico que permite interconectarlos.
Se puede modelar prácticamente cualquier sistema dinámico virtualmente simplemente
seleccionando e interconectando los bloques Simulink apropiados. Un diagrama de
bloques Simulink es una forma de caracterizar completamente sistemas dinámicos.
Cada bloque representa un sistema dinámico elemental que produce una salida, ya sea
continua o discreta.

Para crear un nuevo modelo, en el menú File/New/Model (versión 2009b), aparece el


editor de simulink en blanco; luego se necesita la librería de bloques para construir el
nuevo modelo, en el menú view/Library Browser se encuentra ésta biblioteca de todos
los posibles bloques de Simulink (ver figura 3), desde los básicos hasta los especializados
(conocidos como Toolboxes). El primer ejercicio de Simulink consiste en construir el
modelo continuo que visualizará una señal senosoidal su integral en un osciloscopio
cómo el mostrado en la figura 2.

Figura 2. Señal Seno continua y su integral.

La señal seno está en Simulink/Sources de la librería de bloques de Simulink. El


Osciloscopio (Scope) está en Simulink/Sinks de la misma librería. El bloque integrador
está en Simulink/Continuous. El multiplexor se puede encontrar en
Simulink/Commonly Used Blocks (ver áreas resaltada dentro del círculo rojo).
Figura 3. Librería de Simulink.

Una vez encontrado el bloque, para anexarlo a su modelo, basta con arrastrarlo de la
librería y soltarlo (Ubicándolo adecuadamente), en el editor en blanco recién creado (ver
figura 4).

Figura 4. Estructura del modelo

Si ustedes notan, todos los bloques según su función tienen una(s) flecha(s) entrando, y
otra(s) flechas(s) saliendo para interconectar el bloque con los demás bloques en la
estructura (ver figura 5). Hay dos formas de interconectar los bloques, haciendo click en
un el puerto de salida que quiero conectar, sostener el click y soltarlo encima del puerto
de entrada del siguiente bloque, o hacer click en el bloque fuente, presionar la tecla
CTRL, mantenerla presionada y hacer click en el bloque destino. En el caso de querer
conectar una línea con un bloque, se debe seleccionar la línea origen, luego hacer click
derecho y sostener con el ratón sobre la línea y al mismo tiempo presionar y sostener
la tecla CTRL (debe aparecer una línea punteada) y luego soltar el click sobre el puerto
de entrada del bloque destino. Una vez interconectados los bloques (deberá quedar
como la figura 2), se debe guardar el proyecto en la carpeta activa del directorio actual
de Matlab.

Figura 5. Puertos de entrada y salida de un bloque.


Una vez el modelo tiene la apariencia deseada, es necesario configurar los parámetros
del bloque, y los parámetros de simulación. Inicialmente se debe ajustar los parámetros
de los bloques utilizados que para el ejemplo solo se necesita el bloque de la onda seno
(Sine Wave), y se modifican haciendo doble click sobre el bloque y escoger la frecuencia,
amplitud, desfase y valor DC (bias). Ajústelos según la figura 6.

Figura 6. Parámetros del bloque Onda Seno (Sine Wave).

Finalmente, el parámetro de tiempo de parada de simulación define cuanto tiempo va


a ejecutar el sistema, y debe ser controlado. Este parámetro se encuentra en la barra
superior izquierda del editor de simulación, y para el ejemplo se debe cambiar mientras
el bloque scope esté abierto (doble click sobre el bloque) para que se vea reflejado en
la visualización (ver figura 7).

Figura 7. Parámetro de tiempo de parada de simulación.

Por último, haciendo click en la flecha verde al lado del tiempo de simulación de parada
se ejecuta el modelo.

Después de visualizar en tiempo continuo una onda seno y su integración, se propone


como segundo ejercicio buscar y construir un modelo para visualizar en tiempo discreto
una onda seno discreta de 1 Hz, con amplitud 1, sin desfase, tiempo de muestreo de 0.1
Segundos, y también la misma onda desplazada una muestra a la derecha, tal como se
muestra en la figura 8, con una configuración de la onda seno mostrada en la figura 9.
Incluya los resultados en el informe. Se muestra un impulso discreto para que lo
visualicen también.
Figura 8. Modelo para visualización de tiempo discreto.

Por último, gracias por el empeño puesto en la solución de los problemas, por no copiar
los resultados y por dedicar el tiempo necesario para lograr los procedimientos
solicitados. Por favor incluir las observaciones que consideren clave en la práctica y una
frase final que destaque los principales resultados de la práctica en las conclusiones.

Figura 9. Configuración de la onda seno discreta.

Informe de laboratorio:

Anexe los resultados de los procedimientos.

8. Adquisición de Señales Analógicas usando la NI USB-6211.


8.1. Conecte la tarjeta de Adquisición Ni USB-6211 al puerto USB del computador.
8.2. Ejecute la aplicación “Measurement & Automation Explorer” o NI-MAX.
8.3. Haga click en el “Devices and Interfaces” y verifique que su computador haya reconocido
la tarjeta NI USB-6211.
8.4. Identifique el nombre del dispositivo que fue asignado por el sistema a su tarjeta de
adquisición.
8.5. Haga click sobre el nombre de su dispositivo “DevXX”, seleccione la pestaña “Test
Panels” y seleccione en “Input Configuration” RSE. Cierre la pantalla.
8.6. Cierre la aplicación.
8.7. Ejecute Matlab.
8.8. Cree un archivo tipo script y transcriba el siguiente segmento de código:

%------------------------------------------
% DAQ NI USB-6211
%------------------------------------------
clear all
close all
clc

%d = daq.getDevices; % name od the device in the list command


%window
signal = daq.createSession('ni'); %create session for ni
signal.addAnalogInputChannel('Dev1',0,'Voltage');
Fs=100; %change properties by default
Timeduration=0.1; %segundos
signal.Rate = Fs;
signal.DurationInSeconds = Timeduration; %time duration in
%seconds for acquisition
signal_adq = signal.startForeground(); % Run the acquisition
%and plot the acquired data

8.9. En el código creado, parametrice (cambie) para que la señal a adquirir tenga las
siguientes características:
• Tiempo de Adquisición = 2 segundos. (Timeduration)
• Frecuencia de Muestreo 1Khz.
• La señal a adquirir debe ser tomada del canal analógico 1.
8.9.1. Para verificar si el código esta bien implementado, abra nuevamente la aplicación
“Measurement & Automation Explorer”, haga click sobre “Devices and Interfaces”
y haga click botón izquierdo y seleccione “Create New”, se desplegará una nueva
pantalla y seleccione “Simulated NI-DAQmx Device or Modular Instrument”, en la
ventana de search escriba “USB-6211” copie el nombre del nuevo dispositivo y
presione “Ok”. En el programa de arriba cambie el nombre del dispositivo. Este
procedimiento le podrá activar un simulador de la tarjeta de adquisición para que
pueda probar su código antes de conectar la señal real.
8.9.2. Haga click sobre el nombre de su dispositivo “DevXX”, seleccione la pestaña “Test
Panels” y seleccione en “Input Configuration” RSE. Cierre la pantalla. Cierre la
aplicación
8.9.3. Ejecute el código transcrito en MatLab y compruebe su funcionamiento.

8.10. En el generador de señales configure para obtener una señal cuadrada con 50%
de duty-cycle con amplitud A=5V, y frecuencia de 200Hz. Verifique en el osciloscopio
que la señal se haya configurado correctamente.
8.11. Conecte la señal a la entrada correspondiente en la tarjeta de adquisición y
verifique su funcionamiento. Anote sus observaciones, cambie las formas de onda.
8.12. Incluya el código generado y fotos del montaje realizado.

BIBLIOGRAFÍA
Signals and Systems, an introduction to analog and digital signal processing, Alan
Oppenheim. (1983). Prentice-Hall
Signal and Systems - General. B. Girod R. Rabenstein A. Stenger – Jhon Wiley & Sons.
(2001).
Digital Signal Processing. Schaum's Outline. Mcgraw-Hill (1999).
Digital Image Processing Using Matlab. González.
Digital Signal processing with applications, VISE, PURDUE University.
Digital Signal Processing using Matlab v4. Ingle and Proakis. ()PWS publishing Company.
Using Simulink, Version 5. The Math Works. 2002.

También podría gustarte