Sei sulla pagina 1di 13

PRÁCTICA No.

5
CONVOLUCIÓN EN TIEMPO CONTINUO (CONVOLUCIÓN INTEGRAL) Y DISCRETO
(CONVOLUCIÓN SUMA) EN MATLAB®

1. OBJETIVOS

1.1. Objetivo General

 Realizar la convolución entre señales en tiempo continuo y discreto, utilizando MATLAB®.

1.2. Objetivos Específicos

 Conocer los comandos, algoritmos y funciones necesarias para realizar la convolución


entre señales, en tiempo continuo y discreto, en MATLAB®.
 Identificar las características de la convolución en tiempo continuo y discreto.

2. JUSTIFICACIÓN

La realización de esta práctica le permitirá al estudiante conocer y aplicar los conocimientos


teóricos vistos en clase sobre la convolución en tiempo continuo (convolución integral) y la
convolución en tiempo discreto (convolución suma).

3. MARCO TEÓRICO

En el dominio del tiempo, la convolución puede considerarse como un método para encontrar
la respuesta de estado cero de un sistema LTI (Lineal Invariante en el tiempo, Linear Time –
Invariant). En otras palabras, la convolución representa la respuesta al impulso para sistemas
LTI, donde el término “respuesta al impulso” se refiere a la salida del sistema LTI debido a
una entrada de impulso aplicada en el tiempo 𝑡 = 0. La respuesta al impulso caracteriza por
completo el comportamiento de cualquier sistema LTI. Esto es una propiedad básica de
todos los sistemas LTI. En el caso en tiempo continuo, un impulso real de ancho cero y
amplitud infinita no puede generarse en realidad y suele aproximarse físicamente como un
pulso de gran amplitud y ancho estrecho; así la respuesta al impulso puede aproximarse
como el comportamiento del sistema en respuesta a una entrada de elevada amplitud y
extremada corta duración.

Esta operación de convolución, aunque difícil de calcular, incluso en casos simples, tiene un
valor teórico significativo. Nos permite no sólo determinar la respuesta del sistema para
casos muy generales, sino que también proporciona una manera de caracterizar sistemas
causales y estables, donde la causalidad se relaciona con la causa y efecto de la entrada y la
salida del sistema, dándonos las condiciones para el procesamiento en tiempo real, mientras
que la estabilidad representa una característica de mayor utilidad los sistemas. Estas dos
condiciones son de gran importancia práctica.

Teoría de Señales y Sistemas – Lab05, Convolución En Tiempo Continuo Y Discreto En MATLAB®


(@Autor Ángelo Joseph Soto Vergel)

Página 1 de 13
3.1. Convolución Integral o En Tiempo Continuo

Dadas dos señales continuas 𝑥(𝑡) y ℎ(𝑡), la convolución de estas señales está dada por:

𝑦(𝑡) = 𝑥(𝑡) ∗ ℎ(𝑡) = ∫ 𝑥(𝜏)ℎ(𝑡 − 𝜏)𝑑𝜏
−∞

La salida 𝑦(𝑡) está dada como la superposición ponderada de respuestas al impulso


recorridas en el tiempo por 𝜏.

Figura 1. Diagrama de bloques que representa la convolución en tiempo continuo.

En la integral de convolución, el tiempo 𝑡 determina el lugar relativo de ℎ(𝑡 − 𝜏) con respecto


a 𝑥(𝜏). La convolución producirá un resultado diferente de cero sólo para aquellos valores de
𝑡 sobre los cuales ℎ(𝑡 − 𝜏) y 𝑥(𝜏) se encuentren en alias. La respuesta 𝑦(𝑡) para todo tiempo
requiere la convolución para cada valor de 𝑡. Se debe evaluar el área del producto 𝑥(𝜏)ℎ(𝑡 −
𝜏) cuando 𝑡 varia. Variando las cantidades de 𝑡 para la función reflejada ℎ(−𝜏) pasándola por
𝑥(𝜏) por los valores seleccionados de 𝑡. Los pasos para desarrollar este procedimiento son
los siguientes:

a. Grafique 𝑥(𝜏) y ℎ(−𝜏) como funciones de 𝜏. La función ℎ(−𝜏) es la versión de ℎ(𝜏)


reflejada sobre el eje vertical.
b. Grafique ℎ(𝑡 − 𝜏) para un valor cualquiera de 𝑡, tal como 𝑡 < 0. Observe que ℎ(𝑡 − 𝜏)
es igual a ℎ(−𝜏) desplazada de tal forma que el origen de la gráfica de ℎ(−𝜏) se
encuentra en 𝜏 = 𝑡. El producto 𝑥(𝜏)ℎ(𝑡 − 𝜏) se determina mediante la multiplicación
de 𝑥(𝜏) y ℎ(𝑡 − 𝜏) punto por punto, respecto a 𝜏.
c. Desplace ℎ(𝑡 − 𝜏) hacia la derecha, hasta que no exista un traslape diferente de cero
entre ℎ(𝑡 − 𝜏) y 𝑥(𝜏). Suponga que el primer valor de 𝑡, para el que esto ocurre, es 𝑡 =
𝑎.
d. Continúe desplazando ℎ(𝑡 − 𝜏) hacia la derecha, hasta pasar por 𝑡 = 𝑎. Determine el
intervalo de tiempo 𝑎 ≤ 𝑡 < 𝑏 para el cual el producto 𝑥(𝜏)ℎ(𝑡 − 𝜏) tenga la misma
forma analítica. Integre el producto 𝑥(𝜏)ℎ(𝑡 − 𝜏) como una función de 𝜏, con los límites
de integración de 𝜏 = 𝑎 hasta 𝜏 = 𝑡. El resultado es la expresión para 𝑥(𝑡) ∗ ℎ(𝑡) para
𝑎 ≤ 𝑡 < 𝑏.
e. Desplace ℎ(𝑡 − 𝜏) hacia la derecha hasta pasar 𝑡 = 𝑏. Determine el siguiente intervalo
de tiempo 𝑏 ≤ 𝑡 < 𝑐 , para el que el producto 𝑥(𝜏)ℎ(𝑡 − 𝜏) tenga la misma forma

Teoría de Señales y Sistemas – Lab05, Convolución En Tiempo Continuo Y Discreto En MATLAB®


(@Autor Ángelo Joseph Soto Vergel)

Página 2 de 13
analítica. Integre el producto 𝑥(𝜏)ℎ(𝑡 − 𝜏) como una función de 𝜏, con los límites de
integración desde 𝜏 = 𝑏 hasta 𝜏 = 𝑡 , donde 𝑏 ≤ 𝑡 < 𝑐 . La integral se calcula
parcialmente.
f. Repita el patrón establecido en los pasos d y e, tantas veces como sea necesario,
hasta que 𝑥(𝑡) ∗ ℎ(𝑡) sea calculado para toda 𝑡.

Nota: Es importante aclarar que no siempre es necesario, en el procedimiento descrito,


graficar las funciones para identificar los intervalos de la convolución.

Un ejemplo de este procedimiento se muestra en la figura 2.

Figura 2. Convolución como proceso de deslizar una señal reflejada más allá de otra: 𝑥(𝑡 − 𝜏)ℎ(𝜏). Las
variables 𝜆 y 𝜏 se usan indistintamente.

3.2. Convolución Suma o En Tiempo Discreto

Considere un sistema lineal en tiempo discreto y una entrada arbitraria 𝑥[𝑛] a ese sistema.
Cualquier señal arbitraria 𝑥[𝑛] puede expresarse como una combinación lineal de muestras
desplazadas en la forma:

𝑥[𝑛] = ∑ 𝑥[𝑘]𝛿[𝑛 − 𝑘]
𝑘=−∞

Teoría de Señales y Sistemas – Lab05, Convolución En Tiempo Continuo Y Discreto En MATLAB®


(@Autor Ángelo Joseph Soto Vergel)

Página 3 de 13
Usando la propiedad de superposición de los sistemas lineales, se deduce que la salida 𝑦[𝑛]
puede expresarse como una combinación lineal de las respuestas del sistema cuando la
excitación está constituida por muestras unitarias desplazadas en el tiempo. Entonces, para
un sistema LTI:

𝑦[𝑛] = 𝑥[𝑛] ∗ ℎ[𝑛] = ∑ 𝑥[𝑘]ℎ[𝑛 − 𝑘]


𝑘=−∞

Figura 3. Diagrama de bloques que representa la convolución en tiempo discreto.

A menudo es muy útil graficar tanto 𝑥[𝑘] como ℎ[𝑛 − 𝑘] e identificar los intervalos apropiados
de corrimientos en el tiempo. Es conveniente también, definir una secuencia intermedia 𝑤𝑛 [𝑘]
como el producto de 𝑥[𝑘] y ℎ[𝑛 − 𝑘]. Este procedimiento se resume a continuación:

a. Graficar tanto 𝑥[𝑘] como ℎ[𝑛 − 𝑘] como una función de la variable independiente 𝑘.
Para determinar ℎ[𝑛 − 𝑘], refleje primero ℎ[𝑘] en torno a 𝑘 = 0 para obtener ℎ[−𝑘] y
luego recorra en el tiempo ℎ[−𝑘] en −𝑛.
b. Empiece con un corrimiento en el tiempo 𝑛 grande y negativo.
c. Escriba la forma funcional para 𝑤𝑛 [𝑘].
d. Aumente el corrimiento en el tiempo 𝑛 hasta que la forma funcional de 𝑤𝑛 [𝑘] cambie.
El valor de 𝑛 al cual ocurre el cambio define el fin del intervalo presente y el principio
del nuevo intervalo.
e. Permita que 𝑛 esté en un nuevo intervalo. Repita los pasos c y d hasta que identifique
todos los intervalos de corrimientos en el tiempo 𝑛 y las formas funcionales
correspondientes para 𝑤𝑛 [𝑘] . Esto suele implicar que 𝑛 crezca hasta un número
positivo muy grande.
f. Para cada intervalo de los corrimientos en el tiempo 𝑛, sume todos los valores de las
𝑤𝑛 [𝑘] correspondientes para obtener 𝑦[𝑛] sobre ese intervalo.

Nota: Es importante aclarar que no siempre es necesario, en el procedimiento descrito,


graficar las funciones para identificar los intervalos de la convolución.

El efecto de variar 𝑛 de −∞ a ∞ es deslizar ℎ[−𝑘] más allá de 𝑥[𝑘] de izquierda a derecha.


Un ejemplo que ilustra este procedimiento se muestra en la figura 4.

Teoría de Señales y Sistemas – Lab05, Convolución En Tiempo Continuo Y Discreto En MATLAB®


(@Autor Ángelo Joseph Soto Vergel)

Página 4 de 13
Figura 4. Convolución como proceso de deslizar una señal reflejada más allá de otra: 𝑥[𝑘]ℎ[𝑛 − 𝑘]. 𝒂) La
respuesta al impulso ℎ[𝑛] del sistema. 𝒃) La señal de entrada 𝑥[𝑛]. 𝒄) La entrada descrita como una
función de 𝑘. 𝒅) La respuesta al impulso reflejada y recorrida en el tiempo ℎ[𝑛 − 𝑘] descrita como una
función de 𝑘. 𝒆) La señal producto 𝑤𝑛 [𝑘] para el intervalo de corrimientos en el tiempo 2 ≤ 𝑛 ≤ 6. 𝒇) La
señal producto 𝑤𝑛 [𝑘] para el intervalo de corrimientos en el tiempo 6 < 𝑛 ≤ 11. 𝒈) La señal producto
𝑤𝑛 [𝑘] para el intervalo de corrimientos en el tiempo 11 < 𝑛 ≤ 15. 𝒉) La salida 𝑦[𝑛].

4. TRABAJO PREVIO

Resuelva de forma teórica los siguientes ejercicios:

a. Para las señales 𝑥[𝑛] y ℎ[𝑛] dadas, determine la convolución 𝑦[𝑛] = ℎ[𝑛] ∗ 𝑥[𝑛]:
1 𝑛
 𝑥[𝑛] = 1, −5 ≤ 𝑛 ≤ 5, ℎ[𝑛] = (2) 𝑢[𝑛]
1 𝑛 1 𝑛
 𝑥[𝑛] = 𝛿[𝑛] + 2𝛿[𝑛 − 1] + (2) 𝑢[𝑛], ℎ[𝑛] = (2) 𝑢[𝑛]

Teoría de Señales y Sistemas – Lab05, Convolución En Tiempo Continuo Y Discreto En MATLAB®


(@Autor Ángelo Joseph Soto Vergel)

Página 5 de 13
b. Halle la convolución 𝑦[𝑛] = ℎ[𝑛] ∗ 𝑥[𝑛] para cada uno de los dos pares de secuencias
finitas dadas:
1 1 1 1
 𝑥[𝑛] = {1, − 2 , 4 , − 8 , 16} , ℎ[𝑛] = {1, −1,1, −1}
 𝑥[𝑛] = {1,2,3,0, −1}, ℎ[𝑛] = {2, −1,3,1, −2}

c. Determine gráficamente la convolución de los pares de señales mostrados en la figura.

d. Use la integral de convolución para hallar la respuesta 𝑦(𝑡) del sistema LTI con respuesta
al impulso ℎ(𝑡) a la entrada 𝑥(𝑡):
 𝑥(𝑡) = (2 + 𝑡)𝑒 −2𝑡 𝑢(𝑡), ℎ(𝑡) = 𝑒 −𝑡 𝑢(𝑡)
𝑡
 𝑥(𝑡) = 𝑒 −3𝑡 𝑢(𝑡), ℎ(𝑡) = 𝑟𝑒𝑐𝑡 (2)

5. ACTIVIDAD

Convolución en tiempo continuo y discreto

Sintaxis
 conv(u,v,shape)
 convnum(X,Y,DT,TY)
 convplot(X,H,TX,TH,TS)

Descripción
La función conv permite calcular la convolución de las señales u y v; el parámetro shape es
opcional y su uso no es relevante para el análisis objeto de esta práctica.

Teoría de Señales y Sistemas – Lab05, Convolución En Tiempo Continuo Y Discreto En MATLAB®


(@Autor Ángelo Joseph Soto Vergel)

Página 6 de 13
Es importante recordar que MATLAB® no realiza cálculos de forma continua, es otras
palabras, todos los cálculos realizados por MATLAB® se operan de forma discreta. Esto
implica que para realizar la convolución en tiempo continuo con la función conv será
necesario recurrir a modificaciones en cuanto al vector de tiempo que mostrará el resultado
de la convolución para que su representación sea la correcta.

Por otra parte, el comando convnum realiza la convolución numérica de las señales X y Y,
tanto en tiempo continuo como en tiempo discreto. El parámetro DT es el intervalo de
muestreo, por defecto tiene un valor de 1; TY es opcional y su uso no es objeto de estudio en
esta práctica.

Finalmente, está el comando convplot de la caja de herramientas “adsp”. Este comando


realiza una animación que permite visualizar el proceso de convolución entre dos señales X y
H, tanto en tiempo continuo como en tiempo discreto; sus parámetros TX y TH son las
duraciones de tiempo para las señales X y H respectivamente, y están en la forma [Tmin
Tmax]. TS es el intervalo de muestreo y es opcional, por lo cual, si no se especifica por
defecto es (MayorDuracion)/50.

Nota: Se puede obtener los mismos resultados de la función convnum usando la rutina conv
con la siguiente sintaxis: ts*conv(u,v), donde ts es el intervalo de muestreo. Las
funciones convnum y conv no dan el principio o duración de la convolución, por lo tanto,
para graficar sus resultados se debe conocer el intervalo en se extiende la convolución.
Ejemplo 1: Cálculo de la convolución en tiempo continuo
Calcule la convolución entre las señales: 𝑥(𝑡) = 3cos(0.5𝜋𝑡) y ℎ(𝑡) = 2tri(𝑡 − 1).
Comandos
%% Convolución en Tiempo Continuo
ts = 0.005; %Intervalo de muestreo
tx = -1:ts:1; %Variable de tiempo para la señal x(t)
th = 0:ts:2; %Variable de tiempo para la señal h(t)
x = 3*cos(0.5*pi*tx); %Generación de señal x(t)
h = 2*tri(th-1); %Generación de la señal h(t)
y1 = ts*conv(x,h); %Calcula la convolución
y2 = convnum(x,h,ts); %Calcula la convolución con ADSP Toolbox
ty = -1:ts:3; %Variable de tiempo para la convolución y(t)
subplot(2,2,1),plot(tx,x),grid on
xlabel('Tiempo (s)'),ylabel('Amplitud'),title('Señal Original x(t)')
subplot(2,2,2),plot(th,h),grid on
xlabel('Tiempo (s)'),ylabel('Amplitud'),title('Señal Original h(t)')
subplot(2,2,3),plot(ty,y1),grid on
xlabel('Tiempo (s)'),ylabel('Amplitud'),title('Señal de Convolución
y(t)=x(t)*h(t)')
subplot(2,2,4),plot(ty,y2),grid on
xlabel('Tiempo (s)'),ylabel('Amplitud'),title('Señal de Convolución con ADSP
Toolbox y(t)=x(t)*h(t)')

Teoría de Señales y Sistemas – Lab05, Convolución En Tiempo Continuo Y Discreto En MATLAB®


(@Autor Ángelo Joseph Soto Vergel)

Página 7 de 13
Gráfica

Ejemplo 2: Cálculo de la convolución en tiempo discreto


Calcule la convolución entre las señales: 𝑥[𝑛] = (0.8)𝑛 𝑢[𝑛] y ℎ[𝑛] = (0.4)𝑛 𝑢[𝑛].
Comandos
%% Convolución en Tiempo Discreto
n = 0:20; %Variable de tiempo discreto
x = (0.8).^n; %Generación de la señal x[n]
h = (0.4).^n; %Generación de la señal h[n]
y1 = conv(x,h); %Calcula la convolución y[n]=x[n]*h[n]
y2 = convnum(x,h); %Calcula la convolución con ADSP Toolbox
ny = 0:40; %Variable de tiempo para la convolución y[n]
subplot(2,2,1),stem(n,x),grid on
xlabel('Tiempo (s)'),ylabel('Amplitud'),title('Señal Original x[n]')
subplot(2,2,2),stem(n,h),grid on
xlabel('Tiempo (s)'),ylabel('Amplitud'),title('Señal Original h[n]')
subplot(2,2,3),stem(ny,y1),grid on
xlabel('Tiempo (s)'),ylabel('Amplitud'),title('Señal de Convolución
y[n]=x[n]*h[n]')
subplot(2,2,4),stem(ny,y2),grid on
xlabel('Tiempo (s)'),ylabel('Amplitud'),title('Señal de Convolución con ADSP
Toolbox y[n]=x[n]*h[n]')

Teoría de Señales y Sistemas – Lab05, Convolución En Tiempo Continuo Y Discreto En MATLAB®


(@Autor Ángelo Joseph Soto Vergel)

Página 8 de 13
Gráfica

Automatizando un poco los cálculos


Recordando que las funciones vistas no dan el inicio o duración de la convolución, se pretende dar solución a
este problema programando funciones que tomen como entrada unas señales continuas o discretas
cualesquiera, y ofrezca como salida su convolución sin necesidad de conocer el intervalo de duración de dicha
convolución para poder graficarla. Esta nueva función debe, además, visualizar las tres señales.

Para ello, se tomará como base el código de la función conv_322.m desarrollada en 1998 por CDR Thad
Welch y que está disponible en la página oficial de MATLAB® como una contribución de Marco Suarez. Si se
quiere ver su código original, visitar el enlace:

https://www.mathworks.com/matlabcentral/fileexchange/47088-conv-322-m?focused=3823053&tab=function
Comandos
Para el ejemplo que nos ocupa, vamos a crear una función llamada ConvCon que permitirá calcular la
convolución de dos señales continuas. Para ello, copie las siguientes sentencias en un fichero nuevo, desde el
editor de MATLAB®, y guárdelo con el nombre ConvCon.m:

function ConvCon(x,x_start,h,h_start,ts)
%""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
% PROPÓSITO:
% Calcular numéricamente y graficar la convolución integral de dos señales.
% y(t) = x(t)*h(t).
% La entrada, x(t), y la respuesta al impulso, h(t), serán graficadas, así
% como la señal de convolución, y(y).
%

Teoría de Señales y Sistemas – Lab05, Convolución En Tiempo Continuo Y Discreto En MATLAB®


(@Autor Ángelo Joseph Soto Vergel)

Página 9 de 13
% USO:
% ConvCon(x,x_start,h,h_start,ts)
%
% ARGUMENTOS DE ENTRADA:
% x ---------> Versión de la señal de entrada.
% x_start ---> Tiempo de inicio de la señal de entrada en segundos
% h ---------> Versión de la señal respuesta al impulso.
% h_start ---> Tiempo de inicio de la señal de respuesta al impulso en
% segundos.
% ts --------> Intervalo de tiempo entre muestras (en segundos)
%
% ARGUMENTOS DE SALIDA: NO HAY
%
% COMENTARIOS:
% Las señales 'x' y 'h' deben ser funciones definidas numéricamente, con
% una única variable independiente, que debe ser 't'. El tiempo de muestreo
% 'ts' debe ser el mismo que el de las señales 'x' y 'h'
%
% VER TAMBIÉN:
% ConvDis
%""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
% (C) NOMBRE ALUMNO, 2017.
% Versión 1.0
%""""""""""""""""""""""""""""""""""""""""
expand = 0.1;
total_length = length(x)+length(h)-1;
t = x_start+h_start+ts*(0:total_length-1);
t_min = min([x_start h_start t]);
t_max = max([x_start+ts*length(x) h_start+ts*length(h) t]);

y = ts*conv(x,h);
y_min = min([x h y]);
y_max = max([x h y]);
tmin = t_min-expand*(t_max-t_min);
tmax = t_max+expand*(t_max-t_min);
ymin = y_min-expand*(y_max-y_min);
ymax = y_max+expand*(y_max-y_min);

x_time=x_start+ts*(0:length(x)-1);
h_time=h_start+ts*(0:length(h)-1);

subplot(3,1,1)
plot([tmin x_time(1)-ts x_time x_time(length(x_time))+ts tmax],[0 0 x 0 0],'r')
grid on, title('Señal de Entrada, x(t)')
ylabel('Amplitud'), xlabel('Tiempo (segundos)')
axis([tmin tmax min(x)-0.1 max(x)+0.1])

subplot(3,1,2)
plot([tmin h_time(1)-ts h_time h_time(length(h_time))+ts tmax],[0 0 h 0 0],'g')
grid on, title('Señal Respuesta al Impulso, h(t)')
xlabel('Tiempo (segundos)'), ylabel('Amplitud')
axis([tmin tmax min(h)-0.1 max(h)+0.1])

Teoría de Señales y Sistemas – Lab05, Convolución En Tiempo Continuo Y Discreto En MATLAB®


(@Autor Ángelo Joseph Soto Vergel)

Página 10 de 13
subplot(3,1,3)
plot([tmin t(1)-ts t tmax],[0 0 y 0],'b')
grid on, title('Convolución y(t)= x(t)*h(t)')
xlabel('Tiempo (segundos)'),ylabel('Amplitud')
axis([tmin tmax ymin ymax])

end

Finalmente, vamos a crear una función llamada ConvDis que permitirá calcular la convolución entre señales
discretas. Para ello, copie las siguientes sentencias en un fichero nuevo, desde el editor de MATLAB®, y
guárdelo con el nombre ConvDis.m:

function ConvDis(x,x_start,h,h_start)
%""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
% PROPÓSITO:
% Calcular numéricamente y graficar la convolución suma de dos señales.
% y[n] = x[n]*h[n].
% La entrada, x[n], y la respuesta al impulso, h[n], serán graficadas, así
% como la señal de convolución, y[n].
%
% USO:
% ConvCon(x,x_start,h,h_start)
%
% ARGUMENTOS DE ENTRADA:
% x ---------> Versión de la señal de entrada.
% x_start ---> Tiempo de inicio de la señal de entrada en segundos
% h ---------> Versión de la señal respuesta al impulso.
% h_start ---> Tiempo de inicio de la señal de respuesta al impulso en
% segundos.
%
% ARGUMENTOS DE SALIDA: NO HAY
%
% COMENTARIOS:
% Las señales 'x' y 'h' deben ser funciones definidas numéricamente, con
% una única variable independiente, que debe ser 'n'.
%
% VER TAMBIÉN:
% ConvCon
%""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
% (C) NOMBRE ALUMNO, 2017.
% Versión 1.0
%""""""""""""""""""""""""""""""""""""""""
total_length = length(x)+length(h)-1;
n = x_start+h_start+(0:total_length-1);
nmin = min([x_start h_start n])-1;
nmax = max([x_start+length(x) h_start+length(h) n])+1;

y = conv(x,h);
ymin = min([x h y])-1;
ymax = max([x h y])+1;
x_time=x_start+(0:length(x)-1);
h_time=h_start+(0:length(h)-1);

Teoría de Señales y Sistemas – Lab05, Convolución En Tiempo Continuo Y Discreto En MATLAB®


(@Autor Ángelo Joseph Soto Vergel)

Página 11 de 13
subplot(3,1,1)
stem([nmin x_time(1)-1 x_time x_time(length(x_time))+1 nmax],[0 0 x 0 0],'r')
grid on, title('Señal de Entrada, x[n]')
ylabel('Amplitud'), xlabel('Tiempo (segundos)')
axis([nmin nmax min(x)-0.1 max(x)+0.1])

subplot(3,1,2)
stem([nmin h_time(1)-1 h_time h_time(length(h_time))+1 nmax],[0 0 h 0 0],'g')
grid on, title('Señal Respuesta al Impulso, h[n]')
xlabel('Tiempo (segundos)'), ylabel('Amplitud')
axis([nmin nmax min(h)-0.1 max(h)+0.1])

subplot(3,1,3)
stem([nmin n(1)-1 n nmax],[0 0 y 0],'b')
grid on, title('Convolución y[n]= x[n]*h[n]')
xlabel('Tiempo (segundos)'),ylabel('Amplitud')
axis([nmin nmax ymin ymax])

end
Gráfica
Solucionando los ejemplos 1 y 2 con las funciones creadas, se obtienen los siguientes resultados:

>> ConvCon(x,-1,h,0,ts)

Teoría de Señales y Sistemas – Lab05, Convolución En Tiempo Continuo Y Discreto En MATLAB®


(@Autor Ángelo Joseph Soto Vergel)

Página 12 de 13
>> ConvDis(x,0,h,0)

6. EVALUACIÓN

a. Comprobar las propiedades de la convolución, conmutativa, distributiva respecto de la


suma y asociativa, visualizando sus resultados; para ello haga uso de señales
cualesquiera de su preferencia.

NOTA: Se deberá entregar un informe en formato pdf de los resultados en forma individual a
la siguiente semana de terminado la sesión de la práctica.

7. BIBLIOGRAFÍA

Ambardar, A. (2002). Procesamiento de Señales Analógica y Digitales (2da ed.). México.


Barchiesi, J. V. (2008). Procesamiento Digital de Señales. Retrieved from
http://www.euv.cl/archivos_pdf/senales.pdf
Haykin, S., & Van Veen, B. (2001). Señales y Sistemas (1ra ed.).
Kamen, E. W., & Heck, B. S. (2008). Fundamentos de Señales y Sistemas Usando la Web y
MATLAB (3ra ed.). México.
Morón, J. (2011). Señales y Sistemas (1ra ed.). Venezuela: Fondo Editorial Biblioteca
Universidad Rafael Urdaneta.
Oppenheim, A. V., & Willsky, A. S. (1998). Señales y Sistemas (2da ed.).
The MathWorks Inc. (2017). MathWorks - Makers of MATLAB and Simulink. Retrieved April
10, 2017, from https://www.mathworks.com/

Teoría de Señales y Sistemas – Lab05, Convolución En Tiempo Continuo Y Discreto En MATLAB®


(@Autor Ángelo Joseph Soto Vergel)

Página 13 de 13

Potrebbero piacerti anche