Está en la página 1de 12

PRÁCTICA No.

3
SEÑALES PARES E IMPARES EN MATLAB®

1. OBJETIVOS

1.1. Objetivo General

 Calcular las partes par e impar de una señal utilizando MATLAB®.

1.2. Objetivos Específicos

 Identificar si una señal es par o impar.


 Conocer los comandos, algoritmos y funciones necesarias para calcular las partes par e
impar de señales en MATLAB®.
 Determinar las partes par e impar de señales en tiempo discreto y continuo, utilizando
MATLAB®.

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 identificación de las partes par e impar de señales en tiempo
continuo y discreto.

3. MARCO TEÓRICO

3.1. Señales pares e impares

Una señal x (t ) o x [ n ], se dice que será una señal par si satisface la condición:

x (−t )=x ( t ) para todo t


x [−n ] =x [ n ] para todo n

La señal x (t ) o x [ n ] se dice que será una señal impar si satisface la condición:

x (−t )=−x ( t ) para todo t


x [−n ] =−x [ n ] para todo n

En otras palabras, las señales pares son simétricas en torno al eje vertical u origen del
tiempo, en tanto que las señales impares son asimétricas en torno al origen del tiempo; un
ejemplo de estas señales se observa en la figura 1.

Teoría de Señales y Sistemas – Lab03, Señales Pares E Impares En MATLAB®


(@Autor Ángelo Joseph Soto Vergel)

Página 1 de 12
Las definiciones anteriores de señales par e impar suponen que las señales son de valor
real. Sin embargo, debe tenerse cuidado cuando la señal de interés es de valor complejo; en
tal caso es posible hablar de simetría conjugada. Una señal de valor complejo x (t ) se dice
que será conjugada simétrica si satisface la condición:

x (−t )=x ¿ ( t ), donde el asterisco denota complejo conjugado

Sea x ( t )=a (t ) + jb (t ), donde a (t) es la parte real de x (t ), b (t) es la parte imaginaria y j es la


¿
raíz cuadrada de −1. El complejo conjugado de x (t ) es entonces: x ( t ) =a ( t )− jb(t). De
acuerdo a lo anterior se concluye que la señal de valor complejo es conjugada simétrica si su
parte real es par y la parte imaginaria es impar; un análisis similar se aplica para señales
discretas.

Figura 1. Señal en par . Señal impar

3.2. Partes par e impar de una señal

Un hecho importante es que cualquier señal, que no sea par ni impar, puede ser expresada
como una suma de dos señales, una de las cuales es la parte par y la otra la parte impar.
Para ver esto, considere la señal:

1
x p ( t )= [ x (t ) + x (−t ) ]
2
1
x p [ n ] = {x [ n ] + x [−n ] }
2

Donde x p ( t ) se conoce como la parte par de x ( t ). En forma similar, la parte impar de x ( t ) está
dada por:

Teoría de Señales y Sistemas – Lab03, Señales Pares E Impares En MATLAB®


(@Autor Ángelo Joseph Soto Vergel)

Página 2 de 12
1
x i ( t )=
[ x ( t )−x (−t ) ]
2
1
x i [ n ] = { x [ n ]−x [ −n ] }
2
Es muy sencillo comprobar que x ( t ) es la suma de las dos. Para el caso de tiempo discreto
se cumplen definiciones completamente análogas. En resumen, tenemos las siguientes
identidades:

x ( t )=x p ( t ) + x i ( t )
x [ n ] =x p [ n ] + x i [ n ]

Observe que la suma de dos señales pares es par y de dos señales impares es impar, y
también que el producto de dos señales pares o dos impares es una señal par y que el
producto de una señal par y una señal impar es una señal impar; también se puede
demostrar que la derivada de cualquier función par es impar, y la derivada de una función par
es impar (la demostración de todo lo anterior se deja como un ejercicio).

4. TRABAJO PREVIO

Resuelva de forma teórica los siguientes ejercicios:

a. Determine las partes par e impar de las señales siguientes:


 x ( t )=u ( t )
π
 (
j Ω 0 n+
2 )
x [ n ] =e
 x [ n ] =δ [ n ]

b. Determine y grafique las partes par e impar de la señal mostrada en la figura. Identifique
sus partes cuidadosamente.

5. DESARROLLO DE LA PRÁCTICA

Partes par e impar de una señal

Teoría de Señales y Sistemas – Lab03, Señales Pares E Impares En MATLAB®


(@Autor Ángelo Joseph Soto Vergel)

Página 3 de 12
Sintaxis
 syms var1… varN
 sym
 double(x)
 subs(f, var, valor)
 fplot(f,xinterval)
 plot(x,y)

Descripción
syms permite crear variables y funciones simbólicas, y es muy necesario para poder realizar
operaciones matemáticas no numéricas; esto debido a que los cálculos en MATLAB® por
defecto se realizan en formato numérico. Hay otros comandos que podrían necesitarse en
ese mismo contexto como sym que convierte una variable numérica a simbólica y double
que convierte a variable simbólica a numérica.

subs(f, var, valor) se utiliza para hacer una sustitución simbólica simple de var en
valor en la expresión f; para el caso que compete a esta práctica utilizaremos el comando
subs para evaluar una función en un punto distinto a t.

Finalmente, se hace necesario la utilización del comando fplot para dibujar señales
definidas en forma simbólica, y que podemos indicar como parámetro el intervalo donde
queremos ver la señal; en su contraparte, para dibujar señales definidas en forma numérica
se usa el comando plot definiendo en sus parámetros la señal y la variable de tiempo en
cada eje correspondiente.
Ejemplo 1: Señal de tiempo continuo
Calcule la parte par e impar de la siguiente señal continua:

Comandos
Es posible generar la señal utilizando cualquier combinación de comandos de los descritos en la práctica 1. Es
importante mencionar que si se desea trabajar con variables simbólicas para los cálculos matemáticos de las
partes par e impar se hace imprescindible la utilización de comandos propios de MATLAB® pues estos permiten
realizar operaciones con variables simbólicas. Las funciones de la adsp toolbox quedan excluidas por su
incapacidad de trabajar con variables simbólicas. A continuación, se muestran dos posibles algoritmos que
permiten dar solución al problema planteado, uno utilizando variables simbólicas y otro utilizando variables
numéricas.
%% Ejemplo 1: Calculo de la parte par e impar de una señal análoga

Teoría de Señales y Sistemas – Lab03, Señales Pares E Impares En MATLAB®


(@Autor Ángelo Joseph Soto Vergel)

Página 4 de 12
syms t; %Variable simbólica de tiempo
x = (t+2)*(heaviside(t+2)-heaviside(t+1))-t*(heaviside(t+1)-heaviside(t))
+t*(heaviside(t)-heaviside(t-1))+heaviside(t-1); %Generación de señal
xp = (x + subs(x,t,-t))/2; %Calculo de la parte par de la señal
xi = (x - subs(x,t,-t))/2; %Calculo de la parte impar de la señal
xr = xp+xi; %Reconstrución de la señal original a partir de la suma de sus partes
par e impar
subplot(2,2,1),fplot(x,[-3 3]),grid on,title('Señal Original x(t)'),ylim([-0.1
1.1]) %Grafica señal original
subplot(2,2,2),fplot(xr,[-3 3]),grid on,title('Señal Reconstruida x(t)=xp(t)
+xi(t)'),ylim([-0.1 1.1]) %Grafica señal reconstruida
subplot(2,2,3),fplot(xp,[-3 3]),grid on,title('Parte Par xp(t) de la Señal
x(t)'),ylim([-0.1 1.1]) %Grafica parte par
subplot(2,2,4),fplot(xi,[-3 3]),grid on,title('Parte Impar xi(t) de la Señal
x(t)'),ylim([-0.1 1.1]) %Grafica parte impar
___________________________________________________________________________________

%% Ejemplo 1: Calculo de la parte par e impar de una señal análoga adsp toolbox
t = -3:0.005:3; %Variable de tiempo
x = (t+2).*(ustep(t+2)-ustep(t+1))-t.*(ustep(t+1)-ustep(t))+t.*(ustep(t)-ustep(t-
1))+ustep(t-1); %Generación de señal
xp = (x + x(end:-1:1))/2; %Calculo de la parte par de la señal
xi = (x - x(end:-1:1))/2; %Calculo de la parte impar de la señal
xr = xp+xi; %Reconstrución de la señal original a partir de la suma de sus partes
par e impar
subplot(2,2,1),plot(t,x),grid on,title('Señal Original x(t)'),ylim([-0.1 1.1])
%Grafica señal original
subplot(2,2,2),plot(t,xr),grid on,title('Señal Reconstruida x(t)=xp(t)
+xi(t)'),ylim([-0.1 1.1]) %Grafica señal reconstruida
subplot(2,2,3),plot(t,xp),grid on,title('Parte Par xp(t) de la Señal x(t)'),ylim([-
0.1 1.1]) %Grafica parte par
subplot(2,2,4),plot(t,xi),grid on,title('Parte Impar xi(t) de la Señal
x(t)'),ylim([-0.1 1.1]) %Grafica parte impar
Gráfica

Teoría de Señales y Sistemas – Lab03, Señales Pares E Impares En MATLAB®


(@Autor Ángelo Joseph Soto Vergel)

Página 5 de 12
Ejemplo 2: Señal de tiempo discreto
Calcule la parte par y la parte impar de la siguiente señal discreta:

Comandos
En este caso, por tratarse de una secuencia discreta, no es necesario utilizar el cálculo simbólico, y basta con
emplear el cálculo matricial.
Esto quiere decir que las secuencias discretas se tratan, en MATLAB®, como vectores. Al utilizar vectores para
representar secuencias surge un problema cuando esas secuencias son de longitud infinita, es decir, con
infinitas muestras no nulas, al ser imposible trabajar con la totalidad de la señal.
%% Ejemplo 2: Calculo de la parte par e impar de una señal discreta adsp toolbox
n = -5:5;
x = -1.*ustep(n+5)+2.*ustep(n);
xp = (x + x(end:-1:1))/2; %Calculo de la parte par de la señal
xi = (x - x(end:-1:1))/2; %Calculo de la parte impar de la señal
xr = xp+xi; %Reconstrución de la señal original a partir de la suma de sus partes
par e impar
subplot(2,2,1),stem(n,x),grid on,title('Señal Original x[n]'),ylim([-1.1 1.1])
%Grafica señal original
subplot(2,2,2),stem(n,xr),grid on,title('Señal Reconstruida
x[n]=xp[]n+xi[n]'),ylim([-1.1 1.1]) %Grafica señal reconstruida
subplot(2,2,3),stem(n,xp),grid on,title('Parte Par xp[n] de la Señal x[n]'),ylim([-

Teoría de Señales y Sistemas – Lab03, Señales Pares E Impares En MATLAB®


(@Autor Ángelo Joseph Soto Vergel)

Página 6 de 12
1.1 1.1]) %Grafica parte par
subplot(2,2,4),stem(n,xi),grid on,title('Parte Impar xi[n] de la Señal
x[n]'),ylim([-1.1 1.1]) %Grafica parte impar
Gráfica

Ejemplo 3: Programando una función en MATLAB®


Nos plantemos ahora automatizar los cálculos anteriores, programando funciones que tomen como entrada una
señal continua o una señal discreta cualquiera, y ofrezca como salida sus partes par e impar, visualizando,
además, las cuatro señales contando con la comprobación (la suma de su parte par e impar).

Para programar funciones en MATLAB® se debe crear un fichero cuya primera línea es:
function [VarSal1,VarSal2,...] = NombreFuncion(VarEnt1,VarEnt2,...)

Luego, guardar ese fichero con la extensión .m. A partir de ese momento, existe una nueva función de
MATLAB® llamada NombreFuncion que podemos ejecutar desde la línea de comandos, como cualquiera de
las predefinidas en MATLAB®, siempre y cuando estemos en el directorio en el que guardamos el fichero,
pasándole los correspondientes valores de las variables de entrada, y obteniendo los valores de las diferentes
variables de salida (si es que las hay, en ambos casos).

Para el ejemplo que nos ocupa, vamos a crear una función llamada ParImparCon que permitirá calcular las
partes par e impar de una señal continua definida simbólicamente. Para ello, copie las siguientes sentencias en
un fichero nuevo, desde el editor de MATLAB®, y guárdelo con el nombre ParImparCon.m:

function ParImparCon(x,I)
%""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
% PROPÓSITO:
% Programa que calcula las partes Par e Impar de una Señal Continua,
% visualizando además, las cuatro señales (La señal original, la parte par,
% la parte impar y la suma de la parte par e impar)
%
% USO:
% ParImparCon(x,I)
%
% ARGUMENTOS DE ENTRADA:

Teoría de Señales y Sistemas – Lab03, Señales Pares E Impares En MATLAB®


(@Autor Ángelo Joseph Soto Vergel)

Página 7 de 12
% x ---> Señal Continua.
% I ---> Intervalo (de la variable independiente) donde se representarán
% las señales. Ej: [-3 3]
%
% ARGUMENTOS DE SALIDA: NO HAY
%
% COMENTARIOS:
% La señal 'x' debe ser una función simbólica, de una única variable
% independiente, que debe ser 't'.
%
% VER TAMBIÉN:
% ParImparDis ParImparConN
%""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
% (C) NOMBRE ALUMNO, 2017.
% Versión 1.0
%""""""""""""""""""""""""""""""""""""""""
syms t;% Definición de variable independiente simbólica.
xPAR = (x + subs(x,t,-t))/2; % Parte Par de la señal.
xIMPAR = (x - subs(x,t,-t))/2; % Parte Impar de la señal.
xSUMA = xPAR + xIMPAR; %Reconstrucción de la señal original
F = figure(1);
set(F,'name','PARTE PAR Y PARTE IMPAR (SEÑALES CONTINUAS)');
subplot(2,2,1),fplot(x,I),grid on,title('SEÑAL ORIGINAL x(t)'); %Grafica señal
original
subplot(2,2,2),fplot(xSUMA,I),grid on,title('SEÑAL RECONSTRUIDA x(t)=xp(t)+xi(t)');
%Grafica señal reconstruida
subplot(2,2,3),fplot(xPAR,I),grid on,title('PARTE PAR xp(t) DE LA SEÑAL x(t)');
%Grafica parte par
subplot(2,2,4),fplot(xIMPAR,I),grid on,title('PARTE IMPAR xi(t) DE LA SEÑAL x(t)');
%Grafica parte impar

Ahora, vamos a crear una función llamada ParImparConN que permitirá calcular las partes par e impar de una
señal continua definida numéricamente. Para ello, copie las siguientes sentencias en un fichero nuevo, desde el
editor de MATLAB®, y guárdelo con el nombre ParImparConN.m:

function ParImparConN(x,t)
%""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
% PROPÓSITO:
% Programa que calcula las partes Par e Impar de una Señal Continua,
% visualizando además, las cuatro señales (La señal original, la parte par,
% la parte impar y la suma de la parte par e impar)
%
% USO:
% ParImparCon(x,I)
%
% ARGUMENTOS DE ENTRADA:
% x ---> Señal Continua.
% t ---> Vector temporal para definir la señal continua Ej: [-3:0.05:3]
%
% ARGUMENTOS DE SALIDA: NO HAY
%
% COMENTARIOS:

Teoría de Señales y Sistemas – Lab03, Señales Pares E Impares En MATLAB®


(@Autor Ángelo Joseph Soto Vergel)

Página 8 de 12
% La señal 'x' debe ser una función definida numéricamente, de una única variable
% independiente, que debe ser 't'.
%
% VER TAMBIÉN:
% ParImparDis ParImparCon
%""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
% (C) NOMBRE ALUMNO, 2017.
% Versión 1.0
%""""""""""""""""""""""""""""""""""""""""
xPAR = (x + x(end:-1:1))/2; %Calculo de la parte par de la señal
xIMPAR = (x - x(end:-1:1))/2; %Calculo de la parte impar de la señal
xSUMA = xPAR + xIMPAR; %Reconstrucción de la señal original
F = figure(1);
set(F,'name','PARTE PAR Y PARTE IMPAR (SEÑALES CONTINUAS)');
subplot(2,2,1),plot(t,x),grid on,title('SEÑAL ORIGINAL x(t)'); %Grafica señal
original
subplot(2,2,2),plot(t,xSUMA),grid on,title('SEÑAL RECONSTRUIDA x(t)=xp(t)+xi(t)');
%Grafica señal reconstruida
subplot(2,2,3),plot(t,xPAR),grid on,title('PARTE PAR xp(t) DE LA SEÑAL x(t)');
%Grafica parte par
subplot(2,2,4),plot(t,xIMPAR),grid on,title('PARTE IMPAR xi(t) DE LA SEÑAL x(t)');
%Grafica parte impar

Finalmente, vamos a crear una función llamada ParImparDis que permitirá calcular las partes par e impar de
una señal discreta. Para ello, copie las siguientes sentencias en un fichero nuevo, desde el editor de MATLAB®,
y guárdelo con el nombre ParImparDis.m:

function ParImparDis(x,n)
%""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
% PROPÓSITO:
% Programa que calcula las partes Par e Impar de una Señal Discreta,
% visualizando además, las cuatro señales (La señal original, la parte par,
% la parte impar y la suma de la parte par e impar)
%
% USO:
% ParImparDis(x,n)
%
% ARGUMENTOS DE ENTRADA:
% x ---> Muestras de la Señal Discreta.
% n ---> Vector temporal discreto a que se refieren las muestras. Ej: [-3:3]
%
% ARGUMENTOS DE SALIDA: NO HAY
%
% COMENTARIOS:
% Las muestras de la señal 'x' deben corresponder estar centradas respecto
% del origen, esto es, el vector 'n' debe ser de la forma: [-L...0...L]
%
% VER TAMBIÉN:
% ParImparCon ParImparConN
%""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
% (C) NOMBRE ALUMNO, 2017.
% Versión 1.0

Teoría de Señales y Sistemas – Lab03, Señales Pares E Impares En MATLAB®


(@Autor Ángelo Joseph Soto Vergel)

Página 9 de 12
%""""""""""""""""""""""""""""""""""""""""
xPAR = (x + x(end:-1:1))/2; %Calculo de la parte par de la señal
xIMPAR = (x - x(end:-1:1))/2; %Calculo de la parte impar de la señal
xSUMA = xPAR+xIMPAR; %Reconstrución de la señal original a partir de la suma de sus
partes par e impar
F = figure(1);
set(F,'name','PARTE PAR Y PARTE IMPAR (SEÑALES DISCRETAS)');
subplot(2,2,1),stem(n,x),grid on,title('SEÑAL ORIGINAL x[n]'); %Grafica señal
original
subplot(2,2,2),stem(n,xSUMA),grid on,title('SEÑAL RECONSTRUIDA x[n]=xp[]n+xi[n]');
%Grafica señal reconstruida
subplot(2,2,3),stem(n,xPAR),grid on,title('PARTE PAR xp[n] DE LA SEÑAL x[n]');
%Grafica parte par
subplot(2,2,4),stem(n,xIMPAR),grid on,title('PARTE IMPAR xi[n] DE LA SEÑAL x[n]');
%Grafica parte impar;

Partes Par e Impar De Una Señal Con ADSP Toolbox


Sintaxis
 [E,O,T]=evenodd(X,tn)

Descripción
evenodd genera la parte par, E, e impar, O, de X durante una duración simétrica T, tn es el
índice de tiempo para X. tn es opcional y su valor por defecto es un vector de tiempo que
inicia en 0 e incrementa a intervalos unitarios. Por otra parte, si el espaciamiento de
muestreo es 1, se supone una señal de tiempo discreto.
Ejemplo 4: Partes par e impar con ADSP Toolbox
Dar solución a los ejemplos 1 y 2 con la función evenodd.
Comandos
%% Partes Par e Impar De Una Señal Con ADSP Toolbox
t = -3:0.005:3; %Variable de tiempo
xt = (t+2).*(heaviside(t+2)-heaviside(t+1))-t.*(heaviside(t+1)-heaviside(t))
+t.*(heaviside(t)-heaviside(t-1))+heaviside(t-1); %Generación de señal
n = -5:5;% Variable de tiempo discreto
xn = -1.*ustep(n+5)+2.*ustep(n);%Generación de señal x[n]
[Par, Impar, tt] = evenodd(xt,t); %Calculo de la parte par e impar de la señal x(t)
[Parn, Imparn, nn] = evenodd(xn,n); %Calculo de la parte par e impar de la señal
x[n]
subplot(3,2,1),plot(t,xt),grid on,title('Señal Original x(t)'),ylim([-1.1 1.1])
subplot(3,2,2),plot(tt,Par),grid on,title('Parte Par de x(t)'),ylim([-1.1 1.1])
subplot(3,2,3),plot(tt,Impar),grid on,title('Parte Impar de x(t)'),ylim([-1.1 1.1])
subplot(3,2,4),stem(n,xn),grid on,title('Señal Original x[n]'),ylim([-1.1 1.1])
subplot(3,2,5),stem(nn,Parn),grid on,title('Parte Par de x[n]'),ylim([-1.1 1.1])
subplot(3,2,6),stem(nn,Imparn),grid on,title('Parte Impar de x[n]'),ylim([-1.1
1.1])
Gráfica

Teoría de Señales y Sistemas – Lab03, Señales Pares E Impares En MATLAB®


(@Autor Ángelo Joseph Soto Vergel)

Página 10 de 12
6. EVALUACIÓN

a. Calcule las partes par e impar de las siguientes señales continuas, utilizando las
funciones ParImparCon y evenodd:
 x 1 ( t )=sin ( t ), representado en el intervalo [ −4 π , 4 π ].
 x 2 ( t )=|cos ( t )|, representado en el intervalo [ −3 π , 3 π ].
 x 3 ( t )=4∗{t∗[ u ( t )−u ( t−1 ) ] + (−t+ 2 )∗[u ( t−1 )−u ( t−2 ) ]}, en el intervalo [ −4 , 4 ].

b. Calcule las partes par e impar de la siguiente secuencia discreta, utilizando las
funciones ParImparDis y evenodd:

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.

Teoría de Señales y Sistemas – Lab03, Señales Pares E Impares En MATLAB®


(@Autor Ángelo Joseph Soto Vergel)

Página 11 de 12
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.).
Sistemas y Circuitos, Practica 2: Señales - Curso Académico 07/08. (2011). Madrid:
Departamento de Teoría de la Señal y Comunicaciones, Universidad Carlos III de
Madrid. Retrieved from http://www.tsc.uc3m.es/docencia/SyC/docs/Practica2_SyC_07-
08.pdf
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 – Lab03, Señales Pares E Impares En MATLAB®


(@Autor Ángelo Joseph Soto Vergel)

Página 12 de 12

También podría gustarte