Вы находитесь на странице: 1из 16

UNIVERSIDAD DE CUENCA

FACULTAD DE INGENIERÍA

ESCUELA DE
INGENIERÍA EN ELECTRÓNICA Y TELECOMUNICACIONES
LABORATORIO DE PROCESAMIENTO DIGITAL DE SEÑALES
PRÁCTICA 1
SEÑALES EN TIEMPO DISCRETO

Bryan A. Vintimilla
alexis.vintimilla@ucuenca.edu.ec

Resumen. En esta práctica sobre Análisis de las señales en tiempo discreto,


haremos uso de los conocimientos aprendido en la materia de procesamiento
digital de señales sobre algunos problemas planteados en la práctica donde el
objetivo es analizarlos de forma analítica y grafica haciendo uso del software
Matlab, posteriormente se procede a investigar y aprender sobre el uso de la
herramienta guide del mismo software para realizar interfaces graficas que logren
analizar y realizar ciertas operaciones fundamentales sobre las señales discretas.
Palabras Clave: Tiempo discreto, Matlab, GUI, interfaz, grafica, potencia y
energía de una señal.

1 Marco Teórico

Una señal se define como una cantidad física que varía con el tiempo, el espacio o
cualquier otra variable o variables independientes. Matemáticamente, describimos una
señal como una función de una o más variables independientes.

Un sistema se puede definir también como un dispositivo físico que realiza una
operación sobre una señal. Por ejemplo, un filtro que se usa para reducir el ruido y las
interferencias que corrompen una señal también se denomina sistema. En este caso, el
filtro realiza algunas operaciones sobre la señal cuyo efecto es reducir (filtrar) el ruido
y la interferencia presentes en la señal deseada.

Señales continuas vs. Señales discretas. El valor de una señal, en tiempo continuo
o discreto, puede ser continuo o discreto. Si una señal toma todos los valores posibles
en un intervalo tanto finito como infinito, se dice que es continua. Por el contrario, si
toma valores de un conjunto finito de valores se dice que es discreta. Normalmente,
estos valores son equidistantes y por tanto pueden expresarse como un múltiplo de la
distancia entre dos valores sucesivos. Una señal en tiempo discreto, que toma valores
en un conjunto discreto se denomina señal digital.

Señales de tiempo discreto son definidas solamente a valores discretos del tiempo,
estas pueden tomar todos los valores posibles ya que son secuencias de números reales
o complejos, y también las Señales Digitales, son señales de tiempo discreto que toman
solo valores dentro de un conjunto finito de posibles valores

Señales periódicas y aperiódicas, cuando se trata de una señal discreta, la condición


𝑥[𝑛] = 𝑥[𝑛 + 𝑘𝑛], con 𝑘 = 1,2,3, … determina la periodicidad o no de la señal, el valor
entero constante N es entonces el periodo fundamental de la señal.
La frecuencia fundamental, en radianes/seg, está relacionada con el periodo
fundamental por:
Señales discretas:
2𝜋
𝜔0 =
𝑁

La simetría par e impar de secuencias de señales discretas de definen como:

 Simetría par(even): 𝑥[−𝑛] = 𝑥[𝑛]


 Simetría impar(odd): 𝑥[−𝑛] = −𝑥[𝑛]

Cualquier señal se puede expresar como una suma de dos componentes, una par y la
otra impar
𝑥[𝑛] = 𝑥𝑒 [𝑛] + 𝑥𝑜 [𝑛]

Donde la parte par se puede determinar mediante


1
𝑥𝑒[𝑛] = {𝑥[𝑚] + 𝑥[−𝑛]}
2

Mientras que la parte impar se obtiene mediante

1
𝑥𝑜 [𝑛] = {𝑥[𝑛] − 𝑥[−𝑛]}
2

2 Objetivos

 Objetivo Principal:

o 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 Específicos:

o Representar señales en tiempo discreto en términos de secuencias


fundamentales impulso y escalón
o Analizar la periodicidad de señales en tiempo discreto
o Desarrollar operaciones fundamentales con secuencias
o Determinar las componentes par e impar de una señal en tiempo
discreto
o Determinar la potencia y energía de una señal en tiempo discreto

3 Desarrollo de la practica

3.1 Señales discretas fundamentales

 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) 𝑥[𝑛] = 𝑢[𝑛] − 3𝛿[𝑛 − 1] −3≤𝑛≤3

𝑛 = −3 𝑥[−3] = 𝑢[−3] − 3𝛿[−4] = 0


𝑛 = −2 𝑥[−2] = 𝑢[−2] − 3𝛿[−3] = 0
𝑛 = −1 𝑥[−1] = 𝑢[−1] − 3𝛿[−2] = 0
𝑛=0 𝑥[0] = 𝑢[0] − 3𝛿[−1] = 1
𝑛=1 𝑥[1] = 𝑢[1] − 3𝛿[0] = −2
𝑛=2 𝑥[2] = 𝑢[2] − 3𝛿[1] = 1
𝑛=3 𝑥[3] = 𝑢[3] − 3𝛿[2] = 1

Fig. 1. Secuencia resultante de 𝑥[𝑛] = 𝑢[𝑛] − 3𝛿[𝑛 − 1]

Análisis: en este caso valor evaluando la función dad apara cada valor del intervalo y
así obtener los valores del resultado de la suma de funciones.

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

𝑛 = −3 3𝑢[−6] + 𝛿[−5] + 𝑢[−3] = 1


𝑛 = −2 3𝑢[−5] + 𝛿[−4] + 𝑢[−2] = 1
𝑛 = −1 3𝑢[−4] + 𝛿[−3] + 𝑢[−1] = 1
𝑛=0 3𝑢[−3] + 𝛿[−2] + 𝑢[0] = 1
𝑛=1 3𝑢[−2] + 𝛿[−1] + 𝑢[1] = 0
𝑛=2 3𝑢[−1] + 𝛿[0] + 𝑢[2] = 1
𝑛=3 3𝑢[0] + 𝛿[1] + 𝑢[3] = 3

Fig. 2. Secuencia resultante de 𝑥[𝑛] = 3𝑢[𝑛 − 3] + 𝛿[𝑛 − 2] + 𝑢[−𝑛]

Análisis: para este segundo caso se realiza el mismo procedimiento obteniendo como
resultado la gráfica que se presenta en la figura 2 que es la suma de dos señales
desplazadas y una señal invertida en el tiempo.
3.2 Análisis de la periodicidad de señales en tiempo discreto

 Determine si las siguientes secuencias complejas son periódicas. Para las


señales periódicas determine su periodo y grafique las secuencias empleando
Matllab.

a) 2𝑒 𝑗𝑛

𝜔0 = 1 2𝑒 𝑗𝑛 = 2 cos(𝑛) + 2 sin(𝑛)
𝑘
𝜔0 = 2𝜋𝑓 = 2𝜋 = 1 → 𝑛 = 2𝜋 𝒏𝒐 𝒑𝒆𝒓𝒊𝒐𝒅𝒊𝒄𝒂
𝑛

Análisis: en esta parte de la práctica se pide analizar la periodicidad de las funciones


dadas y si son periódicas realizar su grafica en Matlab, esta señal no es periódica
debido a que 𝑁 = 2𝜋 y no es un valor discreto.

b) 2𝑒 𝑗𝜋𝑛
𝜔0 = 𝜋 2𝑒 𝑗𝜋𝑛 = 2 cos(𝜋𝑛) + 2 sin(𝜋𝑛) = 2cos(𝜋𝑛)
𝑘
𝜔0 = 2𝜋𝑓 = 2𝜋 = 𝜋 → 𝑛 = 2 𝒑𝒆𝒓𝒊𝒐𝒅𝒊𝒄𝒂
𝑛

Fig. 3. Secuencia resultante de la señal periódica 𝑦[𝑛] = 2𝑒 𝑗𝜋𝑛

Análisis: esta señal es periódica con periodo 𝑁 = 2 como se observa en la figura 3

c) 𝑒 (𝑗2𝜋𝑛+2)
𝜔0 = 2𝜋 𝑒 (𝑗2𝜋𝑛+2) = cos(2𝜋𝑛 + 2) + 𝑗 sin(2𝜋𝑛 + 2)
𝑘
𝜔0 = 2𝜋𝑓 = 2𝜋 = 2𝜋 → 𝑛 = 1 𝒑𝒆𝒓𝒊𝒐𝒅𝒊𝒄𝒂
𝑛
Fig. 4. Secuencia resultante de la señal periódica 𝑦[𝑛] = 𝑒 (𝑗2𝜋𝑛+2)

Análisis: esta señal es periódica con periodo 𝑁 = 1 como se observa en la figura 4

𝑗8𝜋𝑛
d) 𝑒 3
8𝜋 𝑗8𝜋𝑛8𝜋𝑛 8𝜋𝑛
𝜔0 = 𝑒= cos (
3 ) + 𝑗 sin ( )
3 3 3
𝑘 8𝜋
𝜔0 = 2𝜋𝑓 = 2𝜋 = →𝑛=3 𝒑𝒆𝒓𝒊𝒐𝒅𝒊𝒄𝒂
𝑛 3
𝑗8𝜋𝑛
Fig. 5. Secuencia resultante de la señal periódica 𝑦[𝑛] = 𝑒 3

Análisis: esta señal también es periódica con periodo 𝑁 = 3 como se observa en la


figura 5

3.3 Operaciones básicas con señales

 Investigue la característica de la herramienta GUI disponible en Matlab, para


el desarrollo de programas con interfaces gráficas.
 A continuación, desarrolle un programa empleando dicha herramienta que
permita realizar y presentar las gráficas correspondientes a tres operaciones
fundamentales de su elección.

o Multiplicación por un escalar


o Suma de funciones
o Inversión en el tiempo

 Interfaz GUI
Fig. 6. Creación de la interfaz gráfica con la herramienta GUI

 Codificación en Matlab

function varargout = graficar(varargin)

% --- Executes on button press in pushbutton1.


function pushbutton1_Callback(hObject, eventdata,
handles)
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version
of MATLAB
% handles structure with handles and user data (see
GUIDATA)

n = linspace(0,8,9);
%definimos el intervalo en donde se grafica el vector
y1 = [0 5 2 4 8 1 2 3 6];
%Definimos un vector a ser presentado
axes(handles.axes4);
%lo mandamos a graficar en el axes 1
stem(n,y1,'filled','B')
grid on
a = [];
%creamos un vector vacio
escalar = str2num(get(handles.edit1,'string'));
%tomamos el valor del escalar ingresado
for i=1:9
%accedemos a un bucle para llenar el vector con el valor
del escalar
a(i) = escalar;
i=i+1;
end
axes(handles.axes5);
%graficamos el vector escalar
stem(n,a,'filled','Y')
grid on
y2 = y1*escalar
%hacemos la operacion
axes(handles.axes1);
%graficamos el resultado
stem(n,y2,'filled','R')
grid on
a1 = 'y1 = [0,5,2,4,8,1,2,3,6]';
set(handles.edit6,'string',a1);
%presentamos en los espacios de texto los resultados
analiticos
a2 = horzcat('Escalar = ',get(handles.edit1,'string'));
set(handles.edit7,'string',a2);
%presentamos en los espacios de texto los resultados
analiticos
a3 = horzcat('y2 =',y2);
set(handles.edit4,'string',a3);
%presentamos en los espacios de texto los resultados
analiticos

% --- Executes on button press in pushbutton2.


function pushbutton2_Callback(hObject, eventdata,
handles)
% hObject handle to pushbutton2 (see GCBO)
% eventdata reserved - to be defined in a future version
of MATLAB
% handles structure with handles and user data (see
GUIDATA)

n = linspace(0,8,9);
%definimos el intervalo en donde se grafica el vector
y1 = [0,5,2,4,8,1,2,3,6];
%Definimos un vector a ser presentado
axes(handles.axes4);
%presentamos la funcion original en el axes4
stem(n,y1,'filled','B')
grid on
y2 = [2,3,1,0,3,4,2,1,0];
%definimos un segundo vector a ser sumado
axes(handles.axes5);
%lo presentamos en el axes5
stem(n,y2,'filled','Y')
grid on
y3 = y1+y2;
%realizamos la operacion de suma
axes(handles.axes1)
%presentamos el resultado en el axes1
stem(n,y3,'filled','B')
grid on
y = 'y1+y2 = [2,8,3,4,11,5,4,4,6]';
set(handles.edit3,'string',y);
%presentamos en los espacios de texto los resultados
analiticos
a1 = 'y1 = [0,5,2,4,8,1,2,3,6]';
set(handles.edit6,'string',a1);
%presentamos en los espacios de texto los resultados
analiticos
a2 = 'y2 = [2,3,1,0,3,4,2,1,0]';
set(handles.edit7,'string',a2);
%presentamos en los espacios de texto los resultados
analiticos
% --- Executes on button press in pushbutton3.
function pushbutton3_Callback(hObject, eventdata,
handles)
% hObject handle to pushbutton3 (see GCBO)
% eventdata reserved - to be defined in a future version
of MATLAB
% handles structure with handles and user data (see
GUIDATA)

n = linspace(0,8,9);
%definimos el intervalo en donde se grafica el vector
y1 = [0,5,2,4,8,1,2,3,6];
%Definimos un vector a ser presentado
y2 = y1(9:-1:1);
%llenamos el vector y2 con la inversion en el tiempo de
y1
axes(handles.axes1)
%presentamos y2 en el axes1 como resultado
stem(n,y2,'filled','G')
grid on
axes(handles.axes4)
%presentamos la funcion original en el axes4
stem(n,y1,'filled','R')
grid on
y = 'y1[-n] =[6,3,2,1,8,4,2,5,0]';
set(handles.edit5,'string',y);
%presentamos en los espacios de texto los resultados
analiticos
a1 = 'y1[n] = [0,5,2,4,8,1,2,3,6]';
set(handles.edit6,'string',a1);
%presentamos en los espacios de texto los resultados
analiticos

% --- Executes on button press in pushbutton4.


function pushbutton4_Callback(hObject, eventdata,
handles)
% hObject handle to pushbutton4 (see GCBO)
% eventdata reserved - to be defined in a future version
of MATLAB
% handles structure with handles and user data (see
GUIDATA)
n = linspace(0,8,9);
%definimos el intervalo en donde se grafica el vector
y1 = [0,5,2,4,8,1,2,3,6];
%Definimos un vector a ser presentado
axes(handles.axes1)
%presentamos la funcion y1 en el axes1
stem(n,y1,'filled','y')
grid on

% --- Executes on button press in pushbutton5.


function pushbutton7_Callback(hObject, eventdata,
handles)
% hObject handle to pushbutton7 (see GCBO)
% eventdata reserved - to be defined in a future version
of MATLAB
% handles structure with handles and user data (see
GUIDATA)
cla(handles.axes1,'reset')
%reiniciamos los axes y se muestran en blanco
cla(handles.axes4,'reset')
cla(handles.axes5,'reset')
set(handles.edit1,'string','')
%tambien limpiamos los editores donde se muestra el texto
set(handles.edit3,'string','')
set(handles.edit4,'string','')
set(handles.edit5,'string','')
set(handles.edit6,'string','')
set(handles.edit7,'string','')
Análisis: en este código solo presentamos la configuración de los 5 botones que se
utilizan en la interfaz gráfica debido a que el código en su totalidad es demasiado
extenso.

 Funcionamento Interfaz GUI

Fig. 7. Funcionamiento de la interfaz gráfica con la herramienta GUI

Análisis: con el uso de la interfaz gráfica GUI podemos mostrar de forma analítica y
grafica los resultados de distintas operaciones fundamentales sobre señales en tiempo
discreto

3.4 Componentes par e impar de una señal en tiempo discreto

 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
Fig. 8. Función 𝑥[𝑛] = [0,0,1,1,1,0, −1, −1, −1,0,0]

Análisis: mediante la herramienta Matlab graficamos la función original x[n] para


poder observar su comportamiento en el tiempo

 Componente par:

1
𝑥𝑒 [𝑛] = {𝑥[𝑛] + 𝑥[−𝑛]}
2
1
𝑥𝑒 [𝑛] = {𝛿[𝑛 + 3] + 𝛿[𝑛 + 2] + 𝛿[𝑛 + 1] − 𝛿[𝑛 − 1] − 𝛿[𝑛 − 2]
2
− 𝛿[𝑛 − 3] + 𝛿[3 − 𝑛] + 𝛿[2 − 𝑛] + 𝛿[1 − 𝑛]
− 𝛿[𝑛 + 1] − 𝛿[𝑛 + 2] + 𝛿[𝑛 + 3]}

𝑥𝑒 [𝑛] = 0

Fig. 8. Función 𝑥𝑒 [𝑛] = 0

Análisis: la componente par de la función original da como resultado cero, esto quiere
decir entonces que la componente impar será exactamente igual a la gráfica original.

 Componente impar:
1
𝑥𝑜 [𝑛] = {𝑥[𝑛] − 𝑥[−𝑛]}
2

1
𝑥𝑜 [𝑛] = {𝛿[𝑛 + 3] + 𝛿[𝑛 + 2] + 𝛿[𝑛 + 1] − 𝛿[𝑛 − 1] − 𝛿[𝑛 − 2]
2
− 𝛿[𝑛 − 3] − 𝛿[3 − 𝑛] − 𝛿[2 − 𝑛] − 𝛿[1 − 𝑛]
+ 𝛿[−1 − 𝑛] + 𝛿[−2 − 𝑛] + 𝛿[−3 − 𝑛]}

𝑥𝑜 [𝑛] = [0,0,1,1,1,0, −1, −1, −1,0,0]

Fig. 8. Función 𝑥𝑜 [𝑛] = [0,0,1,1,1,0, −1, −1, −1,0,0]

Análisis: como se predijo antes, la componente impar es exactamente igual a la gráfica


original x[n].

3.5 Potencia y energía de una señal en tiempo discreto

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


figura 1

Fig. 8: Señal discreta periódica


𝑁−1
1
𝑃= ∑(|𝑥[𝑛]|)2
𝑁
𝑛=0

2
1 1
𝑃 = ∑(|𝑥[𝑛]|)2 = {(|𝑥[0]|)2 + (|𝑥[1]|)2 + (|𝑥[2]|)2
3 3
𝑛=0

1 2 5
𝑃= (1 + 0.52 + 02 ) = ≅ 0.416666
3 12

Análisis: al ser una señal periódica con periodo 𝑁 = 3 usamos la formula ya


predefinida para el cálculo de potencia de señales periódicas dando como resultado
un valor finito.

4 Conclusiones

Gracias a los conceptos estudiados en la asignatura de procesamiento digital de señal,


se pudo analizar diferentes señales en tiempo discreto y así mismo realizar operaciones
fundamentales sobre las mismas, conocimos sus características y aplicamos los
procedimientos analíticos para resolver diferentes problemas dentro de la práctica.

Se hizo uso de la herramienta Matlab generando conocimientos y destreza en la


herramienta GUIDE para generar interfaces gráficas, se aprendió sobre su manejo y
funcionamiento y se empleó en la práctica para mostrar ciertas operaciones
fundamentales.

Usando Matlab se pudo representar varias señales discretas de forma gráfica,


especialmente para casos de señales impulso unitario y la señal escalón.

Con la formula descrita para hallar el periodo de las señales en tiempo discreto se
analizó la periodicidad sobre varios ejercicios y así mismo se representó su grafica en
Matlab donde se pudo observar el periodo hallado de forma analítica.
Con la herramienta GUIDE se logró programar una interfaz gráfica donde se
desarrollan operaciones fundamentales con secuencias para diferentes señales en
tiempo discreto y mostrando de forma gráfica y analítica sus resultados mediante la
interfaz gráfica creada por el propio usuario, también se logró desarrollar habilidad
sobre esta herramienta para realizar proyectos futuros.

Haciendo uso de las fórmulas para hallar las componentes par e impar de diferentes
señales se logró analizar sus resultados de forma analítica y grafica las mismas que
quedaron representadas en esta práctica.
Con el entendimiento de lo que significa hallar la potencia y la energía de las señales
discretas se logró obtener estos valores para una señal específica y analizar su
significado e importancia en la vida real.

Referencias

1. Kurose. J, Ross. K., Computer Networking; A Top-Down Approach, Pearson, 7ma Edición,
2015
2. Tanenbaum. S, Redes de Computadores, Pearson, 4ta Edición, 2003
3. del Rosario, E. Señales Pares e Impares – Señales y Sistemas. [online] Blog.espol.edu.ec.
Available at: http://blog.espol.edu.ec/telg1001/senales-pares-e-impares/, 2018

Вам также может понравиться