Primera Practica Ciii 2019
Primera Practica Ciii 2019
Primera Practica Ciii 2019
I. OBJETIVOS
1. Definir los fundamentos del manejo de señales discretas en el tiempo
2. Implementar el muestreo de señales
Las secuencias discretas son aquellas generadas a partir de un muestreo de señales cuya variable
independiente es continua. Por ejemplo, para el procesado discreto de una señal de voz se necesita una
secuencia discreta en donde estén almacenados los valores que toma la voz continua en instantes temporales
equiespaciados. El interés creciente del procesado discreto o digital de señales estriba en su versatilidad y
eficiencia para tratar señales diferentes y procesos complejos de gran carga computacional.
Analíticamente, las señales discretas, x[n], se consideran de longitud infinita, abarcando un eje de tiempos:
n . Sin embargo, los elementos numéricos empleados por Matlab son de tipo matricial M × N
donde M y N son valores enteros finitos. Por tanto, un vector, x, de tipo columna N × 1, o de tipo fila 1 × N
nos servirá para representar un intervalo de longitud finita N de la secuencia que deseamos generar,
conteniendo N valores de la misma. Además, es importante recordar que la indexación de un vector en Matlab
comienza en el elemento 1. Por tanto, si nuestro vector x está representando los valores de la secuencia x[n]
desde n = 0 hasta n = N −1, el valor del vector x en el índice 1, x(1) corresponderá con el valor de la secuencia
x[n] en el instante temporal 0. Por esta razón es más conveniente representar una secuencia x[n] a partir de
un par de vectores x que almacena los valores de la secuencia y el vector n (de números enteros) que almacena
los índices de cada elemento de la secuencia tal cuál se representa en una tabulación.
n 0 1 2 3 4 5 6 7
x[n] 0.5 1.2 5 -3 0 -2 1.2 9
3. Secuencias Básicas
Las secuencias básicas para el procesado discreto de señales son la secuencia impulso, la secuencia escalón
y las exponenciales reales y complejas.
La propiedad más importante de la secuencia impulso es que cualquier secuencia arbitraria x[n] puede
expresarse como:
donde los x[k] es la amplitud de la secuencia en n=k. Este aspecto es de interés al considerar sistemas
lineales discretos.
Si deseamos visualizar mediante Matlab un intervalo de la secuencia impulso unitario entre los instantes
0 n 39, la secuencia de comandos que introduciremos será:
>> d = zeros(40,1);
>> d(1) = 1;
>> stem(d)
Observe, que de esta manera, el valor de amplitud unitario en lugar de situarse en el instante 0 se sitúa
en el instante 1. Para etiquetar correctamente el eje horizontal, deberá crearse un vector que contenga el
intervalo de tiempos:
>> n = 0:39;
>> d = zeros(40,1);
>> d(1) = 1;
>> stem(n,d)
Las relaciones mías interesantes entre la secuencia impulso y la secuencia escalón vienen dadas a través
de:
Si deseamos visualizar mediante Matlab un intervalo de la secuencia escalón unitario entre los instantes
−50 n 49, una posible secuencia de comandos seria:
>> n = -50:49;
>> x = zeros(100,1);
>> x(51:100) = ones(50,1);
>> stem(n,x)
>> title(’u(n)’), xlabel(’n’)
Observe que la indexación en Matlab comienza siempre en 1. Así, el elemento x(51) se corresponde con
el valor u[0] de nuestra secuencia escalón analítica, mientras que el elemento x(1) se corresponde con
el valor u[−50].
c) Secuencias Exponenciales Reales: dadas las constantes reales A y α definimos una secuencia
exponencial como:
La exponencial será decreciente en amplitud a lo largo del tiempo siempre que | | < 1, mientras que
será creciente cuando | | > 1. Para el caso en que | | = 1 tenemos una secuencia constante
>> n = -9:40;
>> e = 2*(-0.9).^n;
>> stem(n,e)
>> title(´e(n)´), xlabel(´n´)
No siempre son secuencias periódicas. La condición de periodicidad para una secuencia x[n] es x[n] =
x[n + N] (siendo N una constante entera). Aplicada a nuestro caso, se traduce en:
siendo k una constante entera. Sólo en el caso en que la frecuencia wo cumpla la anterior condición, nos
encontraremos ante una secuencia sinusoidal periódica, de período N. Nótese que una secuencia
sinusoidal discreta puede proceder del muestreo de una señal continua. Dependiendo de como se efectué
este muestreo, los valores de las muestras seleccionadas en un período podrán coincidir (secuencia
periódica) o no (secuencia no periódica) con los valores elegidos en el resto de los períodos de la
sinusoide continua.
El conjunto de valores (wo+2 r), con r constante entera, generan todos la misma secuencia sinusoidal:
Por tanto, a la hora de realizar un análisis frecuencial de la secuencia x[n] = Acos(wo+2 r) sólo
necesitamos considerar el intervalo de frecuencias − < wo<
Visto lo anterior, para un valor de wo cercano a 0, la sinusoide presentaría pocas oscilaciones (frecuencia
baja), mientras que para valores de wo cercanos a ±π la sinusoide correspondiente oscilaría rápidamente
(frecuencias altas).
Como conclusión, dada una sinusoide periódica de período N, su frecuencia fundamental vendría dada
por 2π/N y sólo existiría un conjunto finito de N frecuencias armónicas, a saber: wk = 2 k/N, k = 1, 2,
. . . ,N.
e) Secuencias Exponenciales Complejas: una secuencia exponencial compleja viene dada por la
expresión x[n] = A n, siendo A = |A|ej y = | |ejwo .
Si | | <> 1, las partes real e imaginaria de x[n] serán secuencias sinusoidales que se van amortiguando (|
| < 1) o amplificando (| | > 1) con el tiempo. Para el caso | | = 1, la secuencia resultante se denomina
sinusoide compleja.
según la expresión anterior, para visualizar una exponencial compleja, x, tendremos la opción de
visualizar su parte real e imaginaria:
>> subplot(2,1,1), stem(n,real(x))
>> subplot(2,1,2), stem(n,imag(x))
a) Suma y Producto entre dos Secuencias: la suma y producto entre dos secuencias x[n] e y[n] se define
como la suma y producto muestra a muestra para −1 n +1:
Operando con secuencias truncadas, aparece un problema cuando están definidas en distintos intervalos
de tiempo. Una primera solución consiste en añadir ceros, convenientemente, a las secuencias truncadas
tal como se muestra en el siguiente ejemplo. Si deseamos sumar dos secuencias u1[n] y u2[n], definidas
en diferentes intervalos de tiempo, podemos proceder de la siguiente manera:
>> n = -10:50;
>> x1 = [u1 ; zeros(20,1)];
>> x2 = [zeros(10,1) ; u2];
>> x3 = x1 + x2;
>> x4 = x1 .* x2;
>> stem(n,x3)
>> title(’Suma’), xlabel(’n’), (replot)
>> stem(n,x4)
>> title(’Producto’), xlabel(’n’), (replot)
La otra solución, consiste en un nuevo truncamiento de las dos secuencias a operar, de tal manera que el
nuevo intervalo de tiempos sea el común de las dos secuencias.
>> n = 0:30;
>> x5 = u1(11:41);
>> x6 = u2(1:31);
>> x7 = x5 + x6;
>> x8 = x5 .* x6;
>> stem(n,x7)
>> title(’Suma ’), xlabel(’ n ’), replot
>> stem(n,x8)
>> title(’Producto ’), xlabel(’ n ’), replot
b) Cambio de Amplitud: dada x[n] y la constante real A, obtenemos una nueva secuencia y[n] = Ax[n],
donde cada muestra de x[n] queda multiplicada por la constante A. Cuando |A| > 1, la secuencia resultante
y[n] es una versión amplificada de la original, mientras que si |A| < 1, y[n] es una versión atenuada.
Además, si A < 0 también se produce un cambio de polaridad.
c) Desplazamiento: desplazamiento lineal: Dada x[n] y la constante entera no, la secuencia desplazada y[n]
= x[n − no] será una traslación de no unidades hacia la derecha si no > 0 o hacia la izquierda cuando no <
0. Al operar con secuencias truncadas, un desplazamiento origina la pérdida de un conjunto de valores
por un extremo del vector; por el otro extremo, habría que añadir tantos ceros como valores hayamos
perdido, tal como se muestra en el siguiente ejemplo. Considerando la secuencia exponencial truncada e
del inciso 4.a, el desplazamiento de 10 unidades hacia la derecha de dicho vector será de esta manera:
d) Reflexión: partiendo de x[n], la secuencia reflejada será x[−n]. Gráficamente, la reflexión consiste en
realizar un abatimiento de la señal respecto al eje de ordenadas. En MATLAB el operador “ 2 puntos”
ayuda a reflejar un vector. Además, deberá tenerse en cuenta el cambio del vector de índices temporales.
Continuando con la secuencia exponencial del ejercicio anterior, el proceso para reflejarla será:
>> n = -40:9;
>> er = e(length(e):-1:1);
>> stem(n,er)
>> title(’Reflexion’), xlabel(’ n ’), (replot)
Después de revisar el marco teórico y textos de la especialidad, sírvase desarrollar el presente cuestionario,
el mismo que será presentado OBLIGATORIAMENTE antes de la realización de la práctica y es parte de la
evaluación de la misma
Una señal contínua es una señal "suave" que está definida para todos los puntos de un intervalo
determinado del conjunto de los números reales.
Una señal discreta es una señal discontinua que está definida para todos los puntos de un intervalo
determinado del conjunto de los números enteros.
2. Describa el proceso que sigue una señal continua para ser convertida en discreta
3. ¿Qué se entiende por secuencia?
4. Que caracteriza a un controlador discreto
VI. ACTIVIDADES
a) Definir la variable de tiempo ’n’ según los límites temporales impuestos para la secuencia
truncada, así como un par de variables que indiquen el inicio y fin del eje de tiempos truncado,
es decir: ’ni’=n(1) y ’nf’=n(length(n)).
b) Rellenar la secuencia que se va a definir, ’s[n]’, con ceros mediante el comando s=zeros(n).
c) Colocar los valores de la secuencia deseada en las posiciones del eje adecuadas, para lo cual
tendremos en cuenta los límites temporales donde la secuencia deseada está definida, ’li’ y ’lf’:
>> si=max(li-ni+1,1);
>> sf=min(length(n),lf-ni+1);
>> s(si:sf)=secuencia deseada;
Con esta regla general se tiene en cuenta los posibles truncamientos de señales tanto por la
izquierda como por la derecha.
1. Genere y visualice en Matlab las siguientes secuencias impulso unitario en los intervalos temporales que
se especifican:
𝑋1[𝑛] = −32𝛿[𝑛] − 15 ≤ 𝑛 ≤ 25
𝑋2[𝑛] = −5𝛿[𝑛 − 50] + 2𝛿[𝑛 − 60] 45 ≤ 𝑛 ≤ 70
𝑋3[𝑛] = −4𝛿[𝑛 + 20] − 30 ≤ 𝑛 ≤ 0
2. Genere (usando la función zeros y el operador “:”) y visualice el tren periódico de impulsos:
𝑋[𝑛] = ∑∞
𝑘→∞ 𝛿[𝑛 − 4𝑘] − 20 ≤ 𝑛 ≤ 20
𝑑1[𝑛] = 5𝑠𝑒𝑛[𝜋𝑛/5] − 25 ≤ 𝑛 ≤ 25
𝜋𝑛 𝜋
𝑑2[𝑛] = −2 sin ( + ) − 30 ≤ 𝑛 ≤ 30
3 3
𝑛𝜋
𝑑3[𝑛] = 2cos ( ) 0 ≤ 𝑛 ≤ 30
5
6. Empleando el editor, programe una función para Matlab, gensen.m que genere sinusoides reales. La
cabecera de la función será:
function [s,n] = gensen(A,wo,fi,n0,n1);
% Entradas:
% A : amplitud
% wo: frecuencia en radianes
% fi: fase en radianes
% no: índice temporal de comienzo de la secuencia
% n1: índice temporal de finalización de la secuencia
% Salidas:
% s : la secuencia sinusoidal
% n : vector con los índices temporales
% 𝑠[𝑛] = 𝐴𝑠𝑒𝑛(𝜔𝑜 𝑛 + 𝑓𝑖)
7. Empleando el editor, programe una función para Matlab, genexp.m que genere exponenciales complejas.
La cabecera de la función será:
function [x,n] = genexp(absA,fasA,absa,fasa,n0,n1);
% Entradas:
% absA : valor absoluto de amplitud
% fasA: fase de amplitud
% absa: valor absoluto del exponente
% fasa: fase del exponente
% n0: índice temporal de comienzo de la secuencia
% n1: índice temporal de finalización de la secuencia
% Salidas:
Control III Ing. Lucy Delgado Barra
12
8. Empleando la función anterior con los siguientes valores: A = 5𝑒 𝑗𝜋/3 , wo = /4, no = 5 y n1 = 30,
represente dos exponenciales complejas, una creciente y otra decreciente y una sinusoide compleja. Salve
en el workspace la exponencial decreciente con el nombre ’ e ’ para utilizar más adelante.
9. Represente la secuencia resultante y[n] de restar las secuencias u2[n] y x1[n] de los ejercicios anteriores.
10. Represente la secuencia resultante z[n] de efectuar el producto entre d2[n] y u3[n].
En las funciones de desplazamiento, tenga en cuenta que el valor m puede ser mayor que la longitud de
la secuencia de entrada.
12. Para comprobar las funciones que acaba de programar, considere la secuencia:
x[n] 0.25n 0 n 29
a) efectué un desplazamiento lineal de 8 unidades a la derecha de dicha secuencia.
b) efectué un desplazamiento circular de 8 unidades a la izquierda de dicha secuencia.
c) Represente la secuencia reflejada.
VII. CONCLUSIONES
Emita al menos cinco conclusiones alrededor de las operaciones sobre señales discretas.
VIII. CUESTIONARIO/EJERCICIOS
2. Construya un formulario con las principales series trigonométricas (al menos 5 indicando y
graficando las condiciones de convergencia)