LabN 1 Final

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 35

Universidad Tecnológica de Panamá

Facultad de Ingeniería Electrica


Comunicaciones I
Laboratorio 1 – Análisis de Señales y Sistemas lineales
en el dominio del tiempo.
Laboratorio 2 – Análisis espectral usando la DFT/FFT

Presentado por: Mario Samudio (4-781-733)


Dominick Pérez (8-886-1481)
Elías Mendieta (9-746-1755)
Facilitador: Prof. Dr. Ing. Carlos A. Medina C.
Tabla de Contenido Panamá, 28.Agosto.2018
Resumen
1. Introducción………………………………………………………………………………....2
2. Métodos y materiales utilizados…………………………………………………………….2
3. Procedimientos experimentales……………………………………………………………..2
4. Resultados y Análisis
Experimento N°1……………………………………………………………………………3
Experimento N°2…………………………………………………………………………...14
5. Conclusiones………………………………………………………………………………..33
6. Recomendaciones…………………………………………………………………………..34
7. Referencias…………………………………………………………………………………34
8. Anexos……………………………………………………………………………………...34

Resumen

Las señales y los sistemas pueden representarse y analizarse tanto en el dominio del tiempo como en el dominio
de la frecuencia. Ambas representaciones brindan información valiosa para el estudio de las señales y los sistemas,
y son fundamentales para el análisis de los sistemas de comunicación. Por ello en este informe queremos mostrar
los resultados que obtuvimos al analizar algunas señales y sistemas lineales mediante conceptos teóricos y la
utilización de herramientas de análisis matemáticos y simulaciones en el software Matlab. En el realizado
laboratorio se procedió a la utilización de los conceptos de señales discretas de Fourier por medio del algoritmo
FFT (transformada rápida de Fourier) en el caso en que el número de muestras sea una potencia de 2, de lo
contrario se utiliza DFT, que se utiliza para cualquier intervalo de tiempo. Primero se procedió al cálculo de la
transformada de Fourier para un espectro de doble lado y luego de un solo lado de una señal dada. Luego se
procedió a la adición de ceros y ventanas para el mejoramiento de las componentes de frecuencia en el análisis
espectral. Ya para el siguiente paso se utilizaron estas herramientas para encontrar diferencias entre un análisis
espectral de una señal a diferentes frecuencias. En el subpunto cuatro se procuró obtener las respuestas del filtro
implementado para la reducción de la interferencia aditiva en la señal recibida. Todo esto referenciado a la función
de transferencia que refleja el filtro. Para las dos últimas partes se utilizaron también los gráficos de espectro de
magnitud y de fase para luego implementarlos en algún tipo de filtros comunes como lo son los filtros Butterworth.

Introducción

En los sistemas de comunicación se transmiten señales que portan información. Por ello este experimento se ha
realizado para entender de manera más clara el comportamiento de los sistemas lineales invariantes en el tiempo
sobre señales en el dominio del tiempo mediante la simulación de señales básicas de interés, como lo son: la
función pulso unitario, la función escalón unitario, la función rampa y la función rectangular. también se hace uso
de técnicas como la correlación y la convolución principalmente; ya que consisten en mover una señal y solaparla
Página 1
con otra. Una de las herramientas más útiles para ale análisis y diseño de sistemas LTI, es la transformada de
Fourier. Esta representación de señales implica la descomposición de estas en términos de componentes
sinusoidales o exponentes complejas. Con esta descomposición, se dice que una señal está representada en el
dominio de la frecuencia. En este Trabajo Práctico se estudiarán las propiedades fundamentales de la
Transformada de Fourier en tiempo Discreto en su uso para el análisis espectral de señales. Para algunas clases de
señales (nominalmente aquellas que son de longitud finita, o aquellas que tienen una transformada Z del tipo
racional) es posible implementar algoritmos que calculen exactamente la DTFT. Para estas señales se requerirá la
programación de funciones Matlab para el cómputo de la DTFT. Para el caso de señales de longitud infinita, o
que no tengan una Transformada Z racional, no es posible implementar algoritmos para el cómputo exacto de la
DTFT. En estos casos se debe recurrir al uso de funciones ventana que trunquen la señal a un número finito de
muestras, y permitan la implementación de algoritmos que aproximen la DTFT de la señal, se analizan las
características de los algoritmos Matlab para el cálculo de la Transformada de Fourier en Tiempo Discreto
(genéricamente denominados Transformada Discreta de Fourier (DFT)), en su versión conocida como
Transformada Rápida de Fourier (FFT: Fast Fourier Transform).

Métodos y Materiales Utilizados

Para el desarrollo del laboratorio utilizamos:


 Software MATLAB®
 Laptop o Computador de Escritorio

Los métodos de investigación utilizados para llevar acabo cada parte del laboratorio fueron:

1. Primeramente, un método analítico, que nos ayudo en entender según la indicación de cada parte; los
procedimientos mínimos esperados para la obtención de resultados específicos a partir de conceptos
teóricos.
2. Posteriormente utilizamos un método empírico, de escritura del código para obtener los resultados
esperados y de acuerdo a los lineamientos.

Procedimientos experimentales

Como toda experiencia de laboratorio, se debe realizar una lectura previa de los conceptos a tratarse de acuerdo a
los objetivos del laboratorio y a la explicación brindada por el asistente de laboratorio.
Esta experiencia de laboratorio se divide en 5 partes y a continuación mencionamos los detalles del procedimiento
utilizado para la obtención satisfactoria de los resultados.

1. En la parte N°1 del laboratorio se nos pide la clasificación de las propiedades u operaciones que ocurren
en cada caso y la generación de los gráficos para entender mejor que ocurre con las señales. En orden;
debemos escribir la función del acápite (a) de acuerdo con la escritura en MATLAB.
2. La experiencia N°2, se divide en 6 partes y posteriormente se mencionarán los detalles del procedimiento
utilizado para la obtención satisfactoria de los resultados.

Página 2
Resultados y análisis

 Señales: Clasificación y operaciones

En esta parte del informe se presentan las gráficas resultantes y los códigos utilizados para la creación de la
señal x(t). A esta señal se la aplican diferentes propiedades y es evaluada en distintos intervalos de tiempo.

Gráficas de las operaciones sobre una señal. Secciones: Señales

Desarrollo de la sección:

t=0:0.1:2;
x=(2*abs(t).^1.3-(3.*abs(t)))./(exp(-4.*abs(t-1))+1);
subplot(5,1,1)
plot(t,x);
axis([-6 3 -2 2])
z=x(8);
subplot(5,1,2)
plot(0.7,z,'*');
axis([-6 3 -2 2])
subplot(5,1,3)
plot(-t,x);
axis([-6 3 -2 2])
subplot(5,1,4)
plot(0.5*t,x);
axis([-6 3 -2 2])

Página 3
subplot(5,1,5)
plot(-2*t-1,x)
axis([-6 3 -2 2]
Clasificación de la señal original

 Señal de tiempo continuo


 Señal analógica
Operaciones realizadas
Acápite Operación Realiza Tipo de Señal
Analógica Discreta
B Valor puntual

Analógica Continua
C Inversión en el tiempo

Escalamiento en el Analógica Continua


D
tiempo
Escalamiento e inversión Analógica Continua
E
en el tiempo

 Señales básicas de interés

Aquí se realizaron las 4 funciones impulso unitario, escalón unitario, rampa y la función rectangular.
Posteriormente fueron evaluadas para distintos tiempos (t-tao)

Funciones
a) 𝜹(𝒕 − 𝟑) (1)
b) 𝒖(𝒕 + 𝟐) (2)
c) 𝒓(𝒕 − 𝟏) (3)
d) 𝒓𝒆𝒄𝒕((𝒕 − 𝟏)/𝟑) (4)

Graficas de las funciones impulso unitario, escalón unitario, rampa y pulso rectangular.

Página 4
Desarrollo de la sección:

a) Función impulso unitario


function x = impuni(t,to)
x=zeros(size(t));
x(t==to) = 1;
end
b) Función escalón unitario
function x = escuni(t,to)
x=zeros(size(t));
x(t>=to) = 1;
end
c) Función rampa
Function x = rampa(t,to)
z = t - to
x = z.*escuni(t,to)
end
d) Función rectangular
function x = rectuni(t,to)
x=zeros(size(t));
x(abs(t)<=to/2)=1;
end

 Representación de señales por medio de un conjunto base

La parte N°3 del laboratorio N°1 consta de la representación de señales mediante conjuntos base, se utilizan
funciones base seno y coseno y se determinan los coeficientes de Fourier a mano, este calculo esta adjunto en
los anexos del informe.

A) Demostración de que las señales base dadas son ortogonales:


4
∫0 cos(0.5 𝜋 𝑡) sin(0.5 𝜋 𝑡) 𝑑𝑡 = 0 (5)

Gráficas de los conjuntos de señales base 1 y 2.

Página 5
Desarrollo de la sección:

t=0:0.01:4;
f0=cos(0*t);
f1=cos(0.5*pi*t);
f2=cos(0.5*pi*2*t);
f3=cos(0.5*pi*3*t);
f4=cos(0.5*pi*4*t);
f5=cos(0.5*pi*5*t);
q1=sin(0.5*pi*t);
q2=sin(0.5*pi*t*2);
q3=sin(0.5*pi*t*3);
q4=sin(0.5*pi*t*4);
q5=sin(0.5*pi*t*5);
subplot(2,1,1)
plot(t,f0,t,f1,t,f2,t,f3,t,f4,t,f5)
axis([0 4 -1.5 1.5])
title('Conjunto base 1');
xlabel('t');
ylabel('fi_1(t)');
grid on
subplot(2,1,2)
plot(t,q1,t,q2,t,q3,t,q4,t,q5)
axis([0 4 -1.5 1.5])
title('Conjunto base 2');
xlabel('t');
ylabel('fi_2(t)');
grid on

b) Obtención de los Coeficientes de la serie generalizada de Fourier correspondientes a las señales


base para la señal x(t) = 0.5 (t – 1)2 en el intervalo 0 ≤ t ≤4 s.

Gráficas de la señal x(t) y su aproximación por la serie de Fourier.

Página 6
Desarrollo de la sección:
t=0:0.01:4;
% Constantes de los coeficientes de la serie de Fourier
ao=7/6;
an=8/pi^2;
bn=-4/pi;
% Contadores inicializados
xa=0;
xb=0;
x1=0.5*(t-1).^2;

% Bucle para generar las sumatorias de senos y cosenos


for n=1:1:1000
xa=xa+(cos(n*(pi/2).*t))./n.^2;
xb=xb+(sin(n*(pi/2).*t))./n;
end

x2=ao+an*xa+bn*xb; %Función resultante


%generación del grafico N°1
subplot(2,1,1);
plot(t,x1)
axis([0 4 0 6]); % Estableciendo los límites de los ejes
title('Señal x(t)');
xlabel('t');
ylabel('x_1(t)');
grid on
%generación del grafico N°2
subplot(2,1,2);
plot(t,x2)
axis([0 4 0 6]); % Estableciendo los límites de los ejes
title('Aproximación de x(t)');
xlabel('t');
ylabel('x_2(t)');
grid on

Página 7
 Sistema LTI

En esta sección se observa el comportamiento de un filtro con respuesta h(t) que es utilizado para reducir la interferencia.
A Partir de esta se determina la señal de salida del filtro y(t).

Gráficas de las funciones


a) x(t)
b) h(t)
c) y(t)

Gráficas de la señal de entrada, la respuesta al impulso del filtro y la señal de salida

Desarrollo de la sección:

% Definición de variables
%q = Señal de entrada
%y = Respuesta de impulso al filtro
%z = Señal de salida

% Definición del valor inicial, el espaciado y el valor final de la escala


tq = 0:0.00001:0.2;
ty = 0:0.00001:0.2;
tz = 0:0.00001:0.2;

q = cos(100*pi*ty) + sin(400*pi*ty) - cos(800*pi*ty);


y = 400.*exp(-200*tq).*cos(400*pi*tq);

Página 8
% Función convolución
[z tz] = conv_n(q,tq,y,tz);

% Gráfica de la señal de entrada


subplot (3,1,1)
plot (tq, q);

title('Gráfica de la señal de entrada')


xlabel('t');
ylabel('x(t)');
axis ([0 0.2 -2.2 3])
grid on

% Gráfica de la respuesta al impulso del filtro


subplot (3,1,2)
plot (ty, y);

title('Gráfica de la respuesta al impulso del filtro')


xlabel('t');
ylabel('h(t)');
axis ([0 0.02 -270 400])
grid on
% Gráfica de la señal de salida
subplot (3,1,3)
plot (tz, z);

title('Gráfica de la señal de salida')


xlabel('t');
ylabel('y(t)');
axis ([0 0.2 -1.2 1.25])
grid on

 Detección de señales

En esta sección tenemos un sistema de comunicación que utiliza una fuente binaria, estos datos son transmitidos
mediante un transmisor que envía dicha información mediante un canal AWGN. Los correladores se utilizan para
recuperar la señal del transmisor y el comparador detecta si esta fue la señal transmitida.

Diagrama de bloques de sistema de comunicación binario.


Página 9
Gráficas de la señal transmitida, recibida, y las salidas de los correladores para el acápite (b).

Gráficas de la señal transmitida, recibida, y las salidas de los correladores para el acápite (c).
Página 10
Desarrollo de la sección:
b) Conjunto de señales antípodas con forma de pulso rectangular

t=0:0.01:5;
T=1;
t1=1.5; %Retraso
f=round(rand);
f(f==0)=-1;

%Señal de pulso rectangular con el valor aleatorio (1 o -1)


x=f.*((t>=0)&(t<=T));

%Referencia para el primer correlador


x1=1.*((t>=0)&(t<=T));

%Referencia para el segundo correlador


x2=-1.*((t>=0)&(t<=T));

%Ruido AWGN
n=awgn(0.*(t>=0),10);

%Señal con ruido y retraso


y=f.*((t>=t1)&(t<=T+t1))+n;

%Banco de correladores
[c1 tc1]=corr_n(y,t,x1,t);
[c2 tc2]=corr_n(y,t,x2,t);

if max(c1) > max(c2)


m='1';
else
m='-1';
end
%Señal x(t)
subplot(4,1,1)
plot(t,x)
axis([0 3 -2 2]);
grid on
title('Señal transmitida x(t)');
ylabel('x(t)');
%Señal con ruido y(t)
subplot(4,1,2)
plot(t,y)
axis([0 3 -2 2]);
grid on
title('Señal con ruido y(t)');
ylabel('y(t)');
%Señal de correlador 1
subplot(4,1,3)
plot(tc1,c1)
axis([0 3 -2 2]);
grid on

Página 11
title('Correlador 1');
ylabel('c_1(t)');
if m=='1'
legend('Símbolo estimado: 1');
end
%Señal de correlador 2
subplot(4,1,4)
plot(tc2,c2)
axis([0 3 -2 2]);
grid on
title('Correlador 2');
ylabel('c_2(t)');
if m=='-1'
legend('Símbolo estimado: -1');
end

c) Conjunto de señales ortogonales con forma de onda sinusoidal

t=0:0.01:5;
T=0.5;
t1=2*pi*(1/T)*(2.25); %Cantidad de retraso
f=round(rand); %Genera un 1 o un 0

%Ruido AWGN
n=awgn(0.*(t>=0),10);

%Declarando la señal y la señal con ruido y retraso


if f==0
x=sin(2*pi*(1/T)*t);
y=sin(2*pi*(1/T)*t-t1)+n;
else
x=cos(2*pi*(1/T)*t);
y=cos(2*pi*(1/T)*t-t1)+n;
end

%primer correlador
x1=sin(2*pi*(1/T)*t);

%segundo correlador
x2=cos(2*pi*(1/T)*t);
%Banco de correladores
[c1, tc1]=corr_n(y,t,x1,t);
[c2, tc2]=corr_n(y,t,x2,t);

%Comparación de máximos para detectar la señal


if max(c1) > max(c2)
m='cos'
r=tc2(find(c2==max(c2)))
else
m='sin'
r=tc1(find(c1==max(c1)))
end

Página 12
%Señal x(t)
subplot(4,1,1)
plot(t,x)
axis([0 3 -2 2]);
grid on
title('Señal transmitida x(t)');
ylabel('x(t)');
xlabel('Tiempo t');

%Señal con ruido y(t)


subplot(4,1,2)
plot(t,y)
axis([0 3 -2 2]);
grid on
title('Señal con ruido y(t)');
ylabel('y(t)');
xlabel('Tiempo t');
%Señal de correlador 1
subplot(4,1,3)
plot(tc1,c1)
axis([0 5 -2.5 2.5]);
grid on
title('Correlador 1');
ylabel('c_1(t)');
xlabel('Tiempo t');
%Leyenda para mostrar la señal estimada
if m=='sin'
legend(['Señal estimada: sin(', num2str(round(2*pi*(1/T)*100)/100),'t)']);
end
%Señal de correlador 2
subplot(4,1,4)
plot(tc2,c2)
axis([0 5 -2.5 2.5]);
grid on
title('Correlador 2');
ylabel('c_2(t)');
xlabel('Tiempo t');
%Leyenda para mostrar la señal estimada
if m=='cos'
legend(['Señal estimada: cos(', num2str(round(2*pi*(1/T)*100)/100),'t)']);
end.

Experimento N°2:

1. Uso de FFT y FFTSHIFT en Matlab

a. Señal x(t) de 1000-puntos (N) de longitud (en el tiempo) que contiene una onda coseno de 100 Hz con
amplitud 0.8 y una onda seno de 200 Hz con amplitud 1.2. Usando una frecuencia de muestreo de 1 kHz.
b. Calcule la transformada discreta de Fourier de la señal
c. Calcule el espectro de amplitud de doble lado X2. Luego el espectro de un solo lado X1 basado en P2 y
el número de puntos de la señal.
d. Defina el dominio de la frecuencia de doble lado f2 (soporte). Sugerencia: considere usar linspace.

Página 13
e. Defina el dominio de la frecuencia de un solo lado f1 (soporte). Sugerencia: considere usar linspace.
f. En una sola figura usando tres gráficas (una debajo de la otra), grafique la señal en el dominio del tiempo,
y los espectros de amplitud de doble lado P2 (use fftshift) y de un solo lado P1 de la señal.

 Desarrollo de la Sección a

N=1000;
Fs=1000;
dt=1/Fs;
a=0.8;
b=1.2;
T=N*dt;
df=1/T;
t=(0:N-1).*dt;
x=(a*cos(2*pi*100.*t))+(b*sin(2*pi.*200.*t));
plot(t,x,'Color','r');
axis([0 0.08 -2 2]);
ylabel('x(t)');

Grafica de la señal x(t) de 1000 puntos de la Parte 1 sección a.

 Desarrollo de la Sección b
%%
X=fft(x)/N; X=abs(X);
tt=(-N/2:N/2-1);
X2=fftshift(X);
plot(tt,X2); ylabel('X(F)');

Transformada de Fourier de la señal x(t) y su espectro de frecuencia de doble lado.


Página 14
 Desarrollo de la Sección c
%%
X2=fftshift(X);
X1=X(1:N./2);
tt2=(1:N/2);
subplot(2,1,1);plot(tt,X2) ;
subplot(2,1,2);plot(tt2,X1) ;

Transformada de Fourier de la señal x(t) y su espectro de frecuencia de doble lado y de un solo lado.

 Desarrollo de la Sección d

El soporte de doble lado utilizado fue tt=(-500:499), este soporte cuenta con 1000 valores.

 Desarrollo de la Sección e

El soporte un lado utilizado fue tt2=(1:500),este soporte cuenta con 500 valores.

 Desarrollo de la Sección f

%%
subplot(3,1,1);plot(t,x);
axis([0 0.04 -2 2]);
ylabel('x(t)');
subplot(3,1,2);
plot(tt,X2);
ylabel('X(F)');
subplot(3,1,3);
plot(tt2,X1);
ylabel('X(F)/2');

Página 15
Graficas de la señal x(t) en el tiempo y los espectros de amplitud de doble lado P2 y de un lado P1

2. Adición de ceros y ventanas (rectangular, Hamming)

a. Forme una señal x(t) de 1000-puntos (N) de longitud (en el tiempo) que contiene una onda seno de 100
Hz con amplitud 1 y una onda seno de 202.5 Hz con amplitud 1. frecuencia de muestreo de 1 kHz.
b. Calcule la transformada discreta de Fourier de la señal y grafique el espectro.

Desarrollo de la Sección a
clc
clear
N=1000;
Fs=1000;
dt=1/Fs;
a=0.8;
b=1.2;
T=N*dt;
df=1/T;
t=(0:N-1).*dt;
x=(a*sin(2*pi*100.*t))+(b*sin(2*pi.*202.5.*t));
plot(t,x,'Color','r');
axis([0 0.08 -2 2]);
ylabel('x(t)');

Página 16
Grafica de la señal x(t) de 1000 puntos de la Parte 2 sección a.

Desarrollo de la Sección b
%%
X=fft(x)/N; X=abs(X);
tt=(-N/2:N/2-1);
X2=fftshift(X);
plot(tt,X2); ylabel('X(F)');

Grafica de la transformada de Fourier de la señal x(t) de la parte 2, sección b

3. Análisis espectral – relación entre la resolución de frecuencia y la fuga espectral


Una señal x(t) consiste de tres sinusoides con frecuencias de f1 = 4 kHz, f2 = 5 kHz y f3 = 6 kHz.

a. Forme la señal x(t) con N =100 muestras a una razón de muestreo de 20 kHz y una duración de 5 ms.
¿Cuál es la resolución de frecuencia df?
b. Grafica de la señal xn versus el índice de muestra n.

Página 17
c. DFT de 256 puntos (para la FFT) de la señal xn de longitud N. Grafica de la magnitud del espectro de un
solo lado de la señal con respecto a una frecuencia normalizada f/Fs, esto es, sobre el rango 0 ≤ f/Fs ≤ 1.
d. Use la ifft y calcule la transformada inversa FFT de 256 puntos del resultado en la parte (c) y verifique
que recupera la señal original en el tiempo incluyendo los ceros que han sido añadidos a la cola. En una
misma figura, grafique (una debajo de la otra) las señales de la parte (b) y (d) usando un mismo rango
horizontal [0, 256].
e. Construya una ventana wn Hamming de longitud N y aplíquela a la señal xn. En una misma figura,
grafique (una debajo de la otra) las señales de la parte (b) y la señal xn wn usando la misma escala
vertical para ambas.
f. Repita la parte (c) para la señal con ventana Hamming xn wn. Discuta el intercambio entre reducir los
niveles de los lóbulos laterales (lóbulos más pequeños) y la pérdida de la resolución de frecuencia.
g. Repita las partes (c) y (f) cuando N se reduce a N = 50, N = 25 y N = 10. Para ambas señales, con
ventana rectangular y Hammig, discuta la pérdida de la resolución de frecuencia a medida que los datos
registrados son menores.
h. Muestre en una misma figura, las gráficas (en arreglo de dos columnas) correspondientes a los casos de
ventana rectangular (columna 1) y ventana Hamming (columna 2).

 Desarrollo de la Sección a
%%a
clear; clc;
N=100;
fs=20000;
dt=1/fs;
T=0.005;
df=1/T;
t=0:dt:T-dt;
f1=4000;
f2=5000;
f3=6000;
x=sin(2*pi*f1.*t)+sin(2*pi*f2.*t)+sin(2*pi*f3.*t);
xn=x(1:N);
n=0:1:N-1;

Grafica de la señal x(t) de 100 muestras y una razón de muestreo de 20 kHz de la Parte 3 sección a

Página 18
 Desarrollo de la Sección b
%% b
figure(1)
subplot(2,1,1);
stem(n, xn);
xlabel('n muestras');
ylabel('x(n)');
title('Senal x(t) muestreada con 100 puntos');
grid on;

 Desarrollo de la Sección c
%c
nx=256;
xf=fft(xn/nx,nx);
xf1=abs(xf);
xf2=xf1(1:nx/2);
xf2(2:end-1)=2*xf2(2:end-1);
f=fs/((nx/2));
df1=f/fs;
fx=0:df1:1-df1;
subplot(2,1,2);
plot(fx, xf2, 'r');
xlabel('f(Hz)');
ylabel('|x(f)|');
title('Espectro de magnitud de x(t) con 256 puntos');
grid on;

Espectro de magnitud de la señal x(t), con el calculo de la DFT de 256 puntos de la parte 3 sección c

 Desarrollo de la Sección d
%% d
figure(2)
n1=0:1:nx-1;
xt=ifft(xf*nx,nx);
subplot(2,1,1);
stem(n1,xt,'r');
xlabel('n muestras');
ylabel('x(n)');
title('Senal x(t) recuperada con 256 puntos');
grid on;
axis([0 256 -4 4]);
Nc=256;
Página 19
fsc=20000;
dtc=1/fsc;
Tc=Nc*dtc;
dfc=1/T;
tc=0:dtc:Tc-dtc;
xc=sin(2*pi*f1.*tc)+sin(2*pi*f2.*tc)+sin(2*pi*f3.*tc);
xnc=xc(1:Nc);
nc=0:1:Nc-1;
subplot(2,1,2);
stem(nc, xnc);
xlabel('n muestras');
ylabel('x(n)');
title('Senal x(t) con 256 puntos');
grid on;
axis([0 256 -4 4]);

Parte 3 Sección d. Transformada Inversa (FFT) del resultado de la parte (c) y verificación que se recupera la
señal original de la sección a

 Desarrollo de la Sección e
%% e
L=50;
nw=0:1:L;
wn=hamming(L, 'periodic');
[z tz]=conv_n(xn, n,wn,nw);
xw=z;
nz=0:1:(N+L)-2;
figure(3)
subplot(2,1,1);

Página 20
stem(nz,xw,'r');
xlabel('n muestras');
ylabel('x(n)*xw');
title('Senal x(n)*xw');
grid on;
na=0:1:(N+L)-2;
N1=149;
fs1=20000;
dt1=1/fs;
T1=N1*dt1;
df1=1/T1;
t1=0:dt1:T1-dt;
x1=sin(2*pi*f1.*t1)+sin(2*pi*f2.*t1)+sin(2*pi*f3.*t1);
xn11=x1(1:N1);
subplot(2,1,2);
stem(na,xn11);
xlabel('n muestras');
ylabel('x(n)');
title('Senal x(n) de 150 muestras');
grid on;

Parte 3, Sección e. Ventana Wn de longitud N y aplicación a la señal xn y en la misma figura la señal obtenida de
la parte (b)

 Desarrollo de la Parte f
%% f
figure(4);
nwfft=256;
xwf=fft(xw/nwfft,nwfft);
xwf1=abs(xwf);
xwf2=xwf1(1:(nwfft/2));

Página 21
xwf2(2: end-1)=2*xwf2(2:end-1);
f11=fs/(nwfft/2);
df11=f11/fs;
fx11=0:df11:1-df11;
plot(fx11, xwf2)
xlabel('f(Hz)');
ylabel('|x(n)*xw|');
title('Espectro de magnitud de la senal x(n)*xw con 256 muestras');
grid on;

Parte 3, Sección f. Grafica de 256 puntos de la señal de la parte c, la señal XnWn

 Desarrollo de la Parte g

Parte 3, Sección g. Grafica de la función x(t) con 50 muestras

4. Una señal de un solo tono s = sin(400πt) se transmite a un amplificador de audio y bocina para producir
una señal de advertencia. Un filtro con respuesta al impulso h = 400 e–200tcos(400πt) u(t) se ha diseñado
para reducir la interferencia aditiva en la señal recibida.
a. Determine la señal de salida del filtro, y, cuando se recibe la señal de entrada x = [cos(100 t) +
sin(400πt) – cos(800πt)] u(t).
Página 22
b. Determine el espectro de magnitud de las señales de entrada y salida, y la magnitud de la respuesta en
frecuencia del filtro.
c. En una misma figura gráfica de las señales del tiempo x, h, y (en la primera columna) y sus espectros de
magnitud correspondientes en la segunda columna.

Gráficas de señales de entrada, salida y respuestas del filtro, Parte 4 secciones a, b, c.

Desarrollo de la Sección a:
N=512;
fs=1000;
dt=1/fs;
T=N*dt;
t=0:dt:T-dt;
t1=(0:dt:T-dt)/9;
s=sin(400*pi.*t);
u=(0).*(t<0)+(1).*(t>=0);
h=((400*(exp(-200.*t))).*(cos(400*pi.*t))).*u;
ht1=((400*(exp(-200.*t1))).*(cos(400*pi.*t1))).*u;
x=(cos(100*pi.*t)+sin(400*pi.*t)-cos(800*pi.*t)).*(u);
xt1=(cos(100*pi.*t1)+sin(400*pi.*t1)-cos(800*pi.*t1)).*(u);
% a
[z tz]=conv_n(x,t,h,t);
y=z;
[z1 tz1]=conv_n(xt1,t1,ht1,t1);
yt1=z1;

Página 23
Desarrollo de la sección b:
xf=fft(x/N);
x1=abs(xf);
x2=x1(1:(N/2)+1);
x2(2: end-1)=2*x2(2:end-1);
hf=fft(h/N);
h1=abs(hf);
h2=h1(1:(N/2)+1);
h2(2: end-1)=2*h2(2:end-1);
N1=2*N-1;
yf=fft(y/N1, N1);
y1=abs(yf);
y2=y1(1:(N1/2)+1);
y2(2:end-1)=2*y2(2:end-1);

Desarrollo de la sección c:
subplot(3,2,1)
plot(t1,xt1)
xlabel('t(s)');
ylabel('|x(t)|');
title('Senal de entrada x(t)');
subplot(3,2,3)
plot(t1,ht1,'r')
xlabel('t(s)');
ylabel('h(t)');
title('Respuesta del filtro al impulso ');
tz2=tz1/10;
subplot(3,2,5)
plot(tz1,yt1, 'g')
xlabel('t(s)');
ylabel('y(t)');
title('Senal de salida y(t)');
fx1=(fs/2)*(linspace(0,1,length(x2)));
subplot(3,2,2)
plot(fx1,x2,'r');
xlabel('f(Hz)');
ylabel('x(f)');
title('Espectro de magnitud de un lado de x(t)');
fh1=(fs/2)*(linspace(0,1,length(h2)));
subplot(3,2,4)
plot(fh1,h2,'m')
xlabel('f(Hz)');
ylabel('h(f)');
title('Respuesta en frecuencia del filtro');
fy1=(fs/2)*(linspace(0,1,length(y2)));
subplot(3,2,6)
plot(fy1,y2,'b')
xlabel('f(Hz)');
ylabel('y(f)');
title('Espectro de magnitud de un solo lado de la salida');

Página 24
5. Considerando la señal periódica rectangular x(t), con periodo T0, definida por:

a. Se Genera la señal x para al menos 6 periodos usando la función pulstran.


b. Se Determina los espectros de magnitud y fase de la señal.
c. En una misma figura, se muestran las gráficas de la señal x(t) y los espectros de un solo lado de
magnitud y fase de la señal.

Gráficas de señal x utilizando la función pulstran, demostrando sus espectros de magnitud y fase. Parte 5,
secciones a, b, c.

Desarrollo de la sección a:
T = 60;
N = 1000; % numero de muestras
dt = T/N; % periodo de muestreo
t = (0:N-1)*dt-40;
df = 1/T;
Fs = 1/dt;
f = (0:N-1)*df;
To = 10;
to = 1;
d = (-3:3)*To;
y = pulstran(t,d,'rectpuls',2*to);

Página 25
Desarrollo de la sección b:
%%
Y = fft((y)/N);
Y2 = abs(fftshift(Y));
Y1 = Y2(end/2+1:end);
Q = ceil((N+1)/2);
fQ = (Q-1)*df;
f2 = f-fQ;
f1 = f2(end/2+1:end);
P = angle(fftshift(Y));

Desarrollo de la sección c:
Q = ceil((N+1)/2);
fQ = (Q-1)*df;
f2 = f-fQ; %eje f doble lado
f1 = f2(end/2+1:end); %eje f de un solo lado
figure
subplot (3,1,1), plot (t,y, 'b'), title('Pulsos generados'),
xlabel('t(s)'), ylabel('Amplitud'), axis([-40 40 -0.5 1.5]);
subplot (3,1,2), plot (f1,Y1,'g'), title('Espectro de Magnitud'),
xlabel('f(Hz)'), ylabel('Magnitud'), axis([-3 4 -0.05 0.25]);
subplot (3,1,3), plot (f2,P,'r'), title('Espectro de fase'),
xlabel('f(Hz)'), ylabel('Fase (rad/s)'), axis([-4 4 -5 5]);

6. Considere la siguiente señal:

Gráfica de la señal en el intervalo -5≤ t≤50 ms. Parte 6, sección a.

Desarrollo de la sección a:
N = 1000;
T = 50e-3;
dt = T/N;
fs = 1/dt;
df = 1/T;
t = (-N:N).*dt;
f = (-N:N).*df;
for i = 1:length(t)
Página 26
if (t(i)>=0 & t(i)<=45e-3)
x(i) = cos(2*47*t(i)*pi) + cos(2*219*t(i)*pi);
else
x(i) = 0;
end
end
figure (1)
plot(t,x,'r');
title('x vs t');
xlabel('t(s)');
ylabel('x(t)');
grid on;
axis([-5e-3 50e-3 -2 2]);

Gráfica de la señal muestreada resultante (stem). esta gráfica se muestra con la del punto a en una sola figura.
Parte 6, sección b.
Desarrollo de la sección b:
%% b
figure (2)
subplot(2,1,1);
plot(t,x,'r');
title('Gráfica de la señal x vs. t');
xlabel('t(s)');
ylabel('x(t)');
grid on;
axis([-5e-3 50e-3 -2 2]);
subplot(2,1,2);
stem(t,x,'r');
title('Gráfica de la señal x vs. t');
xlabel('t(s)');
ylabel('x(t)');
grid on;
axis([-5e-3 50e-3 -2 2]);

Página 27
Gráficas de espectros de amplitud y fase de la señal x(t). Parte 6, sección c.

desarrollo de la sección c:
%% c
X1 = fft(x).*dt;
X = fftshift(X1);
subplot(2,1,1);plot(f,abs(X),'m');
title('Espectro de Magnitud de la señal X(f)');
xlabel('f(Hz)');
ylabel('|Y(f)|');
grid on;
axis([-0.2e4 0.2e4 0 0.0215]);
subplot(2,1,2);plot(f,angle(X),'m');
title('Espectro de Fase de la señal X(f)');
xlabel('f(Hz)');
ylabel('°');
grid on;
axis([-500 500 -3 3]);

Página 28
Gráfica de la respuesta en frecuencia del filtro pasa bajas Butterworth de orden 4 y frecuencia de corte de 100
Hz. Parte 6, sección d.

Desarrollo de la sección d:
%% d
[B,A] = butter(4,100/fs,'low');
figure (5)
freqz(B,A);
title('Respuesta en Frecuencia del Filtro Pasa Baja de orden 8, con fc = 100Hz');

Gráfica de la respuesta al impulso del filtro de la sección d. Parte 6, sección e.


Página 29
Desarrollo de la sección e:
%% e
figure (6)
impz(B,A);
title('Respuesta al impulso');
axis([0 1000 -1.5e-3 6e-3]);
grid on;

Gráfica de la señal x(t) a través del filtro. Grafica de la señal de salida y(t), espectro de magnitud y de
fase. Parte 6, sección f.

Desarrollo de la sección f:
%% f
y = filter(B,A,x);
Y1 = fft(y).*dt;
Y = fftshift(Y1);
subplot(3,1,1);
plot(t,y);
grid on;
title('y(t)');
xlabel('t(seg)');
ylabel('y(t)');
axis([0 0.05 -4 4]);
subplot(3,1,2);
plot(f,abs(Y));
grid on;
title('Espectro de Magnitud de Y(F)');
xlabel('f(Hz)');
ylabel('|Y(f)|');
Página 30
axis([-0.2e4 0.2e4 0 0.06]);
subplot(3,1,3);
plot(f,phase(Y));
grid on;
title('Espectro de Fase de Y(F)');
xlabel('f(Hz)');
ylabel('°');
axis([-0.2e4 0.2e4 -2 8]);

Gráfica de la respuesta en frecuencia del filtro pasa bajas Butterworth de orden 8 y frecuencia de corte de 100
Hz. Parte 6, sección g.1.

Desarrollo de la sección g.1:


%% d
[B,A] = butter(8,100/fs,'low');
figure (5)
freqz(B,A);
title('Respuesta en Frecuencia del Filtro Pasa Baja de orden 8, con fc = 100Hz');

Página 31
Gráfica de la respuesta al impulso del filtro de orden 8. Parte 6, sección g.2.

Desarrollo de la sección g.2:


%% e
figure (6)
impz(B,A);
title('Respuesta al impulso');
axis([0 2000 -2.5e-2 3e-2]);
grid on;

Gráfica de la señal x(t) a través del filtro de orden 8. Grafica de la señal de salida y(t), espectro de
magnitud y de fase. Parte 6, sección g.3.
Página 32
Desarrollo de la sección g.3:
y = filter(B,A,x);
Y1 = fft(y).*dt;
Y = fftshift(Y1);
subplot(3,1,1);
plot(t,y);
grid on;
title('y(t)');
xlabel('t(seg)');
ylabel('y(t)');
axis([0 0.05 -4 4]);
subplot(3,1,2);
plot(f,abs(Y));
grid on;
title('Espectro de Magnitud de Y(F)');
xlabel('f(Hz)');
ylabel('|Y(f)|');
axis([-0.2e4 0.2e4 0 0.06]);
subplot(3,1,3);
plot(f,phase(Y));
grid on;
title('Espectro de Fase de Y(F)');
xlabel('f(Hz)');
ylabel('°');
axis([-0.2e4 0.2e4 -2 8]);

Conclusiones

Para el análisis de las señales, es importante saber que toda señal es un vector y por lo tanto, puede representarse
en función de otras señales ortogonales entre sí. De esta forma usamos la serie generalizada de Fourier, para
obtener una aproximación de una señal dada, usando conjuntos de senos y cosenos que son funciones ortogonales.
Además, existen varias operaciones útiles que se pueden realizar sobre una señal, que son importantes para el
análisis de estas.
Efectos como el escalamiento, el desplazamiento y la inversión en el tiempo, son cosas de requerida comprensión,
ya que están muy presentes en el procesamiento de señales, en técnicas como la correlación y la convolución
principalmente; ya que consisten en mover una señal y solaparla con otra. la convolución, además de mover la
señal, la invierte, La correlación es muy útil para detectar una señal porque las compara con una referencia e indica
mediante una forma característica, cuando la señal es correcta.
Luego de haber observado y analizado también los resultados del segundo experimento los resultados, obtenidos
gracias a nuestro programa Matlab, podemos concluir de acuerdo con cada sección realizada lo siguiente:

Las señales de tipo LTI y periódicas en todo intervalo de tiempo pueden tener varias formas de analizarlas de
acuerdo con las definiciones de DFT, ya que como sabemos podemos tener expansión en el tiempo, así como
también expansión en frecuencia, también podemos tener espectro de un solo lado, pero también de doble lado,
podemos tener respuesta ante un filtro y respuesta al impulso del filtro. Etc.

Todo esto conlleva a que las señales pueden tener diferentes puntos formas de tratarlas a conveniencia propia, ya
que con esta herramienta de trabajo (Matlab), podemos observar la señal de salida de un sistema ante una entrada
conocida.

Página 33
Recomendaciones

1. Para utilizar MATLAB de una manera adecuada, se debe tener conocimientos previos de programación.
2. En la escritura de los códigos, tener extremo cuidado con errores de escritura puesto que, aunque en
ciertos casos el código no compilara; en otros si, dándonos un resultado confuso o no deseado.
3. Al momento de realizar la programación en Matlab, resulta de gran ayuda conocer los resultados
esperados para cada sección, por ende, se debe realizar una lectura y búsqueda previa de los gráficos y
cálculos a realizar en la experiencia.
4. Es recomendable utilizar variables en vez de asignar los valores de una función inmediatamente, ya que
en ciertos subpuntos se desea ver cómo cambia el comportamiento de los resultados ante distintos
valores de entrada.

Referencias

[1] https://www.mathworks.com/matlabcentral/
[2] Carlos A. Medina. Fundamentos de Ingeniería de Comunicación. Editorial UTP

Anexos

 Representación de señales por medio de un conjunto base

Sean las siguientes funciones base sobre el intervalo de tiempo 0 ≤ t ≤4 s:

𝝋𝟐𝒊 (𝒕) = 𝐜𝐨𝐬(𝟎. 𝟓 𝝅 𝒊 𝒕) , 𝟎 ≤ 𝒊 ≤ 𝟓 (6)

𝝋𝟐𝒊−𝟏 (𝒕) = 𝐬𝐢𝐧(𝟎. 𝟓 𝝅 𝒊 𝒕) , 𝟏 ≤ 𝒊 ≤ 𝟓 (7)

c) Demostración de ortogonalidad.

Dos funciones f1 y f2 seccionalmente continúas definidas en el intervalo [a, b] son ortogonales en dicho
intervalo si la integral de su producto en ese intervalo es cero.
4
∫0 cos(0.5 𝜋 𝑡) sin(0.5 𝜋 𝑡) 𝑑𝑡 (5)

1
𝑠𝑒𝑛 𝑢 cos 𝑣 = [sen (u + v) + sen (u – v)] (8)
2

4
∫0 cos(0.5 𝜋 𝑡) sin(0.5 𝜋 𝑡) 𝑑𝑡 (9)

1 4
= 2 ∫0 [sin(0.5𝜋𝑡 + 0.5𝜋𝑡) + 𝑠𝑖𝑛(0.5𝜋𝑡 − 0.5𝜋𝑡)]𝑑𝑡 (10)

1 4
= 2 ∫0 [sin(𝜋 𝑡) + 𝑠𝑖𝑛(0)]𝑑𝑡 (11)

1
= 2𝜋
[−cos(𝜋 𝑡)]40 (12)

1
= − 2𝜋 (1 − 1) = 0 (13)

Página 34
d) Obtención de los Coeficientes de la serie generalizada de Fourier correspondientes a las señales
base para la señal x(t) = 0.5 (t – 1)2 en el intervalo 0 ≤ t ≤4 s.
𝜋
𝑇 = 4, 𝜔 =
2
2 𝑑+𝑇
𝑎0 = ∫ 𝑓(𝑡)𝑑𝑡
𝑇 𝑑
2 𝑑+𝑇
𝑎𝑛 = ∫ 𝑓(𝑡) cos 𝑛𝜔𝑡 𝑑𝑡
𝑇 𝑑
2 𝑑+𝑇
𝑏𝑛 = ∫ 𝑓(𝑡) sin 𝑛𝜔𝑡 𝑑𝑡
𝑇 𝑑
4
2 4 2
1 4 2 1 𝑡3 2
7
𝑎0 = ∫ 0.5(𝑡 − 1) 𝑑𝑡 = ∫ (𝑡 − 2𝑡 + 1)𝑑𝑡 = [ − 𝑡 + 𝑡] =
4 0 4 0 4 3 0
3

1 4 𝑛𝜋𝑡 1 2 𝑛𝜋𝑡 4 8
𝑎𝑛 = ∫ (𝑡 2 − 2𝑡 + 1) cos 𝑑𝑡 = [( )2 2 cos ] = 2 2
4 0 2 4 𝑛𝜋 2 0 𝑛 𝜋
4
1 4 𝑛𝜋𝑡 1 −2𝑡 2 4𝑡 1 −32 16 −4
𝑏𝑛 = ∫ (𝑡 2 − 2𝑡 + 1) sin 𝑑𝑡 = [ + ] = [ + ]=
4 0 2 4 𝑛𝜋 𝑛𝜋 0 4 𝑛𝜋 𝑛𝜋 𝑛𝜋

Página 35

También podría gustarte