Está en la página 1de 10

UNIVERSIDAD DE CUENCA

FACULTAD DE INGENIERÍA

ESCUELA DE
INGENIERÍA EN ELECTRÓNICA Y TELECOMUNICACIONES
Pablo Briones
LABORATORIO DE PROCESAMIENTO DIGITAL DE SEÑALES
PRÁCTICA 1
SEÑALES EN TIEMPO DISCRETO
OBJETIVO GENERAL: Emplear los conceptos estudiados en la asignatura Procesamiento Digital de
Señales para el análisis de secuencias en tiempo discreto aplicando procedimientos analíticos, así como
herramientas informáticas.

OBJETIVOS ESPECIFICOS:
 Representar señales en tiempo discreto en términos de secuencias fundamentales impulso y
escalón.
 Analizar la periodicidad de señales en tiempo discreto.
 Desarrollar operaciones fundamentales con secuencias.
 Determinar las componentes par e impar de una señal en tiempo discreto.
 Determinar la potencia y energía de una señal en tiempo discreto.

MARCO TEORICO:
SEÑALES EN TIEMPO DISCRETO: Se representan matemáticamente como secuencia de números x =
{x[n]}, donde n siempre serán números enteros. Pueden ser expresadas como regla para cálculo o
listado de valores.
FUNCIONES SINGULARES:
0; 𝑛 ≠ 0
FUNCION IMPULSO: 𝛿[𝑛] = { .
1; 𝑛 = 0
1; 𝑛 ≥ 0
ESCALON UNITARIO: 𝑢[𝑛] = { .
0; 𝑛 < 0
𝑛; 𝑛 ≥ 0
FUNCION RAMPA: 𝑟[𝑛] = { .
0; 𝑛 < 0
SECUENCIA EXPONENCIAL: [𝑛]=𝐴𝛼𝑛

SEÑAL PERIODICA Y NO PERIODICA: una señal periódica en tiempo discreto su secuencia se repetirá
con una frecuencia f y un periodo fundamental N que siempre será un entero positivo, si N no lo es
será una señal no periódica.
𝑘
x[n] = x[n + N] ; 𝑓= .
𝑁

OPERACIONES FUNDAMENTALES:
CAMBIO DE NIVEL(escalado): 𝑦[𝑛]=𝐴𝑥[𝑛] ; A > 1 → Ganancia; A < 1 → Atenuación; A (-):
Cambio de polaridad.
DESPLASAMIENTO TEMPORAL: [𝑛]=[𝑛−𝑁] ; N>0 retardo hacia la derecha. N<0 adelanto hacia
la izquierda.
ABATIMIENTO: [𝑛]=[−𝑛].
ESCALADO TEMPORAL: [𝑛]=[𝑎𝑛]. Si a>1 es compresión; Si a<1 expansión.
ENERGIA Y POTENCIA: Si el valor encontrado es finito es una señal de energía. 𝐸 = ∑∞ 2
𝑛=−∞|𝑥(𝑛)| .
Si el valor encontrado es finito y diferente de cero se denomina señal de potencia.
1
𝑃 = lim ∑𝑁
𝑛=−𝑁|𝑥(𝑛)|
2
𝑁→∞ 2𝑁+1

SEÑAL PAR O IMPAR: simetría par [−𝑛]=[𝑛]; simetría impar 𝑥[−𝑛]=−𝑥[𝑛]. Cualquier señal se puede
expresar como una suma de una señal par y otra impar. [𝑛]=𝑥e[𝑛]+𝑥o[𝑛]
Componente par: xe[n]=12 {𝑥[𝑛] + 𝑥[−𝑛]}
1
Componente impar: xo[n]=2 {𝑥[𝑛] − 𝑥[−𝑛]} .[1]

PROCEDIMIENTO:
1. Determine de forma analítica la secuencia resultante acorde a las operaciones indicadas. A
continuación, realice las gráficas de las secuencias resultantes empleando Matlab u Octave

a) x[n]= 𝑢[𝑛] − 3𝛿[𝑛 − 1] −3≤𝑛≤3

Si n=-3
x[-3]= 𝑢[−3] − 3𝛿[−3 − 1] = 0-0 =0
Si n=-2
x[-2]= 𝑢[−2] − 3𝛿[−2 − 1] = 0-0= 0
Si n=-1
x[-1]= 𝑢[−1] − 3𝛿[−1 − 1] =0-0= 0
Si n=0
x[0]= 𝑢[0] − 3𝛿[0 − 1] = 1-0= 1
Si n=1
x[1]= 𝑢[1] − 3𝛿[1 − 1] =1-3=-2
Si n=2
x[2]= 𝑢[2] − 3𝛿[2 − 1] = 1-0= 1
si n=3
x[3]= 𝑢[3] − 3𝛿[3 − 1] = 1-0 =1
por lo que la secuencia x[n] resultante es:
x[n]=[0,0,0,1,-2,1,1 ]

En fig1. Se muestra la simulación de esta secuencia en Matlab.

Fig1. Simulación de la secuencia a


b) x[n]= 3𝑢[𝑛 − 3] + 𝛿[𝑛 − 2] + 𝑢[−𝑛] −3≤𝑛≤3

Si n=-3
x[-3]= 3𝑢[−3 − 3] + 𝛿[−3 − 2] + 𝑢[3]= 0 +0+1=1
Si n=-2
x[-2]= 3𝑢[−2 − 3] + 𝛿[−2 − 2] + 𝑢[2]=0+0+1=1
si n=-1
x[-1]= 3𝑢[−1 − 3] + 𝛿[−1 − 2] + 𝑢[1]= 0+0+1= 1
Si n=0
x[0]= 3𝑢[0 − 3] + 𝛿[0 − 2] + 𝑢[0]= 0+0+1=1
Si n=1
x[1]= 3𝑢[1 − 3] + 𝛿[1 − 2] + 𝑢[−1]=0+0+0=0
Si n=2
x[2]= 3𝑢[2 − 3] + 𝛿[2 − 2] + 𝑢[−2]= 0+1+0=1
Si n=3
x[3]= 3𝑢[3 − 3] + 𝛿[3 − 2] + 𝑢[−3]=3+0+0=3
Por lo que la secuencia es:
X[n]=[1,1,1,1,0,1,3]
En Fig2 se muestra la simulación de esta secuencia.

Fig2. Simulación de la secuencia b.


A continuación se adjunta la línea de comandos que se utilizó para las secuencias anteriores.
Codigo 1:

m=linspace(-3,3,7); creo un vector encerado con el rango de


muestras
f=[0,0,0,1,-2,1,1]; introduzco la secuencia a graficar
subplot(1,1,1)
stem(m,f,'filled') grafico

m=linspace(-3,3,7);
f=[1,1,1,1,0,1,3];
subplot(1,1,1)
stem(m,f,'filled')
2. Determine si las siguientes secuencias complejas son periódicas. Para las señales periódicas
determine su periodo y grafique las secuencias empleando Matlab.
a) 2𝑒 𝑗𝑛 ;
2𝜋𝑘 𝑘 1
=ωo=1 ; = ; N=2π por lo tanto N no es entero, asi que la señal no es periódica.
𝑁 𝑁 2𝜋
b) 2𝑒 𝑗𝜋𝑛 ;
2𝜋𝑘 𝑘 1
𝑁
=ωo=π ; 𝑁
= 2; N=2 por lo que es periódica.
(𝑗2𝜋𝑛+2)
c) 𝑒 ;
2𝜋𝑘 𝑘
𝑁
=ωo=2π ; 𝑁
= 1; N=1 por lo que es periódica.
𝑗8𝜋𝑛
d) 𝑒 3 ;
2𝜋𝑘 8𝜋 𝑘 4
𝑁
=ωo= 3 ; 𝑁
= 3; N=3 por lo que si es periódica.

Fig3.Grafica de la parte b),c),d)


Codigo:
b
m=linspace(0,10,11); %creo un vector con el rango de muestras
f=2*cos(pi*m); % introduzco la función de la parte real del
literal "b" con su respectiva frecuencia angular
subplot(3,1,1) %creo una matriz de grafico
stem(m,f,'filled') % grafico
c
m=linspace(0,10,11);
f=cos((2*pi*m)+2);
subplot(3,1,2)
stem(m,f,'filled')
d
m=linspace(0,10,11);
f=cos(((8/3)*pi*m));
subplot(3,1,3)
stem(m,f,'filled')

3. Desarrolle un programa empleando dicha herramienta que permita realizar y presentar las
gráficas correspondientes a tres operaciones fundamentales de su elección.

Se desarrolló una interfaz que utiliza como función predeterminada al escalón unitario, con la
que se podrá realizar operaciones como desplazamiento, escalado, inversión.
Para realizar un ejemplo colocamos como parámetros 3 para el desplazamiento, 3 para el
escalado y 1 para la inversión.
En la fig4 se puede observar la interfaz creada con los parámetros a modificarse.
Fig4. Interfaz de la aplicación.

En la fig5 podemos observar la gráfica producida por la aplicación.

Fig5. Grafica del resultado de la aplicación.

Como se observa la grafica presentada por la aplicación presenta una amplitud de 3, un


desplazamiento de 3, y una inversión de 1 como se configuro previamente.

Código de la aplicación: este código se mostrara en el anexo 1, al final del documento.

4. Obtenga de forma analítica las componentes par e impar de la siguiente secuencia. A


continuación, empleando Matlab u Octave, realice las gráficas de la secuencia original así como
los componentes par e impar

𝑥[𝑛] = 𝛿[𝑛 + 3] + 𝛿[𝑛 + 2]+ 𝛿[𝑛 +1]− 𝛿[𝑛 − 1]− 𝛿[𝑛 − 2]− 𝛿[𝑛 − 3] −5≤𝑛≤5

Para encontrar la componente par utilizamos la formula


xe[n]=1 {𝑥[𝑛] + 𝑥[−𝑛]}
2
xe[n]=12{𝛿[𝑛 + 3] + 𝛿[𝑛 + 2]+ 𝛿[𝑛 +1]− 𝛿[𝑛 − 1]− 𝛿[𝑛 − 2]− 𝛿[𝑛 − 3]+ 𝛿[-𝑛 - 3] + 𝛿[-𝑛 - 2]+ 𝛿[-𝑛 -
1]− 𝛿[-𝑛 + 1]− 𝛿[-𝑛 + 2]− 𝛿[-𝑛 + 3]}
Si n=-5
xe[-5]=12{𝛿[-5 + 3] + 𝛿[-5 + 2]+ 𝛿[-5 +1]− 𝛿[-5 − 1]− 𝛿[-5 − 2]− 𝛿[-5 − 3]+ 𝛿[5 - 3] + 𝛿[5 - 2]+ 𝛿[5
-1]− 𝛿[5 + 1]− 𝛿[5 + 2]− 𝛿[5 + 3]}
xe[-5]=0
Si n=-4
xe[-4]=12{𝛿[-4 + 3] + 𝛿[-4 + 2]+ 𝛿[-4+1]− 𝛿[-4 − 1]− 𝛿[-4 − 2]− 𝛿[-4 − 3]+ 𝛿[4 - 3] + 𝛿[4 - 2]+ 𝛿[4
-1]− 𝛿[4 + 1]− 𝛿[4 + 2]− 𝛿[4 + 3]}= 0

Si n=-3
xe[-3]=12{𝛿[-3 + 3] + 𝛿[-3 + 2]+ 𝛿[-3 +1]− 𝛿[-3 − 1]− 𝛿[-3 − 2]− 𝛿[-3 − 3]+ 𝛿[3 - 3] + 𝛿[3 - 2]+ 𝛿[3
-1]− 𝛿[3 + 1]− 𝛿[3 + 2]− 𝛿[3 + 3]}= 1

si n=-2
xe[-2]=12{𝛿[-2 + 3] + 𝛿[-2 + 2]+ 𝛿[-2 +1]− 𝛿[-2 − 1]− 𝛿[-2 − 2]− 𝛿[-2 − 3]+ 𝛿[2 - 3] + 𝛿[2 - 2]+ 𝛿[2
-1]− 𝛿[2 + 1]− 𝛿[2 + 2]− 𝛿[2 + 3]}=1

Si n=-1
xe[-1]=12{𝛿[-1 + 3] + 𝛿[-1 + 2]+ 𝛿[-1 +1]− 𝛿[-1 − 1]− 𝛿[-1 − 2]− 𝛿[-1 − 3]+ 𝛿[1 - 3] + 𝛿[1 - 2]+ 𝛿[1
-1]− 𝛿[1 + 1]− 𝛿[1 + 2]− 𝛿[1 + 3]} = 1

Si n=0
xe[0]=12{𝛿[0 + 3] + 𝛿[0 + 2]+ 𝛿[0 +1]− 𝛿[0 − 1]− 𝛿[0 − 2]− 𝛿[0 − 3]+ 𝛿[0 - 3] + 𝛿[0 - 2]+ 𝛿[0 -1]−
𝛿[0 + 1]− 𝛿[0 + 2]− 𝛿[0+ 3]}=0

Si n=1
xe[1]=12{𝛿[1 + 3] + 𝛿[1 + 2]+ 𝛿[1 +1]− 𝛿[1 − 1]− 𝛿[1 − 2]− 𝛿[1 − 3]+ 𝛿[-1 - 3] + 𝛿[-1 - 2]+ 𝛿[-1 -
1]− 𝛿[-1 + 1]− 𝛿[-1 + 2]− 𝛿[-1 + 3]}= -1

Si n=2
xe[2]=12{𝛿[2 + 3] + 𝛿[2 + 2]+ 𝛿[2 +1]− 𝛿[2 − 1]− 𝛿[2 − 2]− 𝛿[2 − 3]+ 𝛿[-2 - 3] + 𝛿[-2 - 2]+ 𝛿[-2 -
1]− 𝛿[-2 + 1]− 𝛿[-2 + 2]− 𝛿[-2 + 3]}= -1

Si n=3
xe[3]=12{𝛿[3 + 3] + 𝛿[3+ 2]+ 𝛿[3 +1]− 𝛿[3 − 1]− 𝛿[3 − 2]− 𝛿[3− 3]+ 𝛿[-3 - 3] + 𝛿[-3 - 2]+ 𝛿[-3 -1]−
𝛿[-3 + 1]− 𝛿[-3 + 2]− 𝛿[-3 + 3]}= -1

Si n=4
xe[4]=12{𝛿[4 + 3] + 𝛿[4 + 2]+ 𝛿[4 +1]− 𝛿[4− 1]− 𝛿[4 − 2]− 𝛿[4 − 3]+ 𝛿[-4 - 3] + 𝛿[-4 - 2]+ 𝛿[-4 -
1]− 𝛿[-4 + 1]− 𝛿[-4 + 2]− 𝛿[-4 + 3]} = 0

Si n=5
xe[5]=12{𝛿[5 + 3] + 𝛿[5 + 2]+ 𝛿[5 +1]− 𝛿[5 − 1]− 𝛿[5 − 2]− 𝛿[5 − 3]+ 𝛿[-5 - 3] + 𝛿[-5 - 2]+ 𝛿[-5 -
1]− 𝛿[-5 + 1]− 𝛿[-5 + 2]− 𝛿[-5 + 3]}= 0

Por lo que la secuencia de la parte par nos queda


xe[n]= [0,0,1,1,1,0,-1,-1,-1,0,0, ]
Y para la componente impar utilizamos:
xo[n]=12 {𝑥[𝑛] − 𝑥[−𝑛]}

Si n= -5
xo[-5]=12 {δ[−5 + 3] + δ[−5 + 2] + δ[−5 + 1] − δ[−5 − 1] − δ[−5 − 2] −
δ[−5 − 3] − δ[5 − 3] − δ[5 − 2] − δ[5 − 1] + δ[5 + 1] + δ[5 + 2] + δ[5 + 3]}= 0

Si n=-4
xo[-4]=12 {δ[−4 + 3] + δ[−4 + 2] + δ[−4 + 1] − δ[−4 − 1] − δ[−4 − 2] −
δ[−4 − 3] − δ[4 − 3] − δ[4 − 2] − δ[4 − 1] + δ[4 + 1] + δ[4 + 2] + δ[4 + 3]}=0

Si n=-3
xo[-3]=12 {δ[−3
+ 3] + δ[−3 + 2] + δ[−3 + 1] − δ[−3 − 1] − δ[−3 − 2] −
δ[−3 − 3] − δ[3 − 3] − δ[3 − 2] − δ[3 − 1] + δ[3 + 1] + δ[3 + 2] + δ[3 + 3]}=0

Si n=-2
xo[-2]=12 {δ[−2 + 3] + δ[−2 + 2] + δ[−2 + 1] − δ[−2 − 1] − δ[−2 − 2] −
δ[−2 − 3] − δ[−2 − 3] − δ[−2 − 2] − δ[−2 − 1] + δ[−2 + 1] + δ[−2 + 2] +
δ[−2 + 3]}= 0

Si n=-1
xo[-2] = 0
Si n=0
xo[0]=0
Si n=1
xo[1]=0
Si n=2
xo[2]=0
Si n=3
xo[3]=0
Si n=4
xo[4]=0
Si n=5
xo[5]=0
Por lo que la secuencia de la parte impar nos queda

xo[n]=[0,0,0,0,0,0,0,0,0,0,0]

Ahora procederemos a utilizar Matlab para graficar cada secuencia


A continuación se muestra la función original, en la fig6.

Fig6. Simulación de la secuencia original.

Ahora procederemos a graficar las componentes para e impar, como se demostró en el


análisis, la par es igual que la original, y la impar es una secuencia nula.
Fig7. Componentes par e impar de la secuencia original.

Es observable que la suma de estas secuencias es la original

Codigo3:
m=linspace(-5,5,11); parte par
f=[0,0,1,1,1,0,-1,-1,-1,0,0];
subplot(2,1,1)
stem(m,f,'filled')

m=linspace(-5,5,11); parte impar


f=[0,0,0,0,0,0,0,0,0,0,0];
subplot(2,1,2)
stem(m,f,'filled')

5. De forma analítica calcule la potencia de la señal periódica mostrada en la figura

Figura. Señal periódica discreta.

Expresión para calcular la potencia de una señal periódica discreta:


𝑁−1
1
𝑃 = ∑|𝑥(𝑛)|2
𝑁
𝑛=0
Donde N es el periodo de la señal, en nuestro caso es 3.
Entonces procedo a calcular la sumatoria con cada valor de n dentro del periodo
|𝑥(0)|2 +|𝑥(1)|2 +|𝑥(2)|2 =1+0.25+0= 1.25
1
𝑃 = 3 (1.25)=0.4167 que es la potencia de la señal
Empleando Matlab, calcule la potencia de la señal periódica mostrada en la figura. Use la
expresión determinada en el punto anterior

A continuación se muestra la captura de la implementación de la potencia en Matlab.

Fig8.Captura del resultado en Matlab

Código:
y=[1,0.5,0] %creo el vector de la secuencia periódica
sum=0
n=3 %periodo
for x=1:n %recorro los valores del vector de secuencia
sum=sum+(y(x)^2) %sumo los valores del vector al cuadrado
end
pot=(1/n)*sum %divido para el periodo

CONCLUSIONES:
1) Se logró encontrar las secuencias resultantes a partir de la suma de dos funciones elementales tales
como el escalón y el impulso.
2) Gracias al ejercicio 2, pudimos determinar la periodicidad de señales complejas, encontrando su
periodo fundamental y verificando que este sea entero. En el literal c) se pudo notar que la fase no
afecta al periodo fundamental.
3) Aprendimos de forma general el uso de la herramienta GUI de Matlab para aplicarlo en tres
operaciones fundamentales de las señales.
4) Se determinó analíticamente las componentes par e impar, pero para una mejor comprensión se
decidió implementarlo en Matlab, de esta manera queda más claro que sumando las secuencias par e
impar obtenidas en Matlab nos quedaba la secuencia original.
5) Logramos determinar la potencia de una señal discreta y periódica, implementando una ecuación
encontrada en el libro guía, y se implementó un algoritmo basado en esta fórmula en Matlab para
verificar el resultado obtenido de forma analítica.

BIBLIOGRAFIA:
[1]Oppenhein. A, Tratamiento de señales en tiempo discreto. Madrid. PRENTICE HALL, 3ra Edición,
2011

ANEXO: código del punto 3


function varargout = prac1dsp(varargin)

gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @prac1dsp_OpeningFcn, ...
'gui_OutputFcn', @prac1dsp_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end

function prac1dsp_OpeningFcn(hObject, eventdata, handles, varargin)


handles.output = hObject;
guidata(hObject, handles);

function varargout = prac1dsp_OutputFcn(hObject, eventdata, handles)

varargout{1} = handles.output;

function pushbutton1_Callback(hObject, eventdata, handles)


figure
D=handles.edit1;
E=handles.edit2;
A=handles.edit3;
n=linspace(-10,10,21);
eu=E*ustep(A*n+D);
eu1=eu
stem(n,eu1,'filled');
grid on

function edit1_Callback(hObject, eventdata, handles)


Val=get(hObject,'String');
NewVal = str2double(Val);
handles.edit1=NewVal;
guidata(hObject,handles);

function edit1_CreateFcn(hObject, eventdata, handles)


if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end

function edit2_Callback(hObject, eventdata, handles)


Val=get(hObject,'String');
NewVal = str2double(Val);
handles.edit2=NewVal;
guidata(hObject,handles);
function edit2_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end

function edit3_Callback(hObject, eventdata, handles)


Val=get(hObject,'String');
NewVal = str2double(Val);
handles.edit3=NewVal;
guidata(hObject,handles);

function edit3_CreateFcn(hObject, eventdata, handles)


if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end

También podría gustarte