Está en la página 1de 32

UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

FACULTADA DE INGENIERIA ELECTRONICA y ELCTRICA

LABORATORIO DE INT. A LAS TELECOMUNICACIONES

PRACTICA No.1
SIMULACIN DE PROCESAMIENTO DE SEALES
TEMA 1: PROCESAMIENTO DE SEALES Y FUNCIONES PERIDICAS,
USANDO MATLAB.
I. OBJETIVO:
Simular e investigar en forma experimental el procesamiento de seales usando
los comandos e instrucciones del software Matlab, desarrollando los ejercicios
propuestos en funcin de los ejercicios planteados.
II. EQUIPOS Y MATERIALES:
1. Matlab Versin 7a y versin 2014.
2. PC Pentium IV-actual.
3. Manual de Matlab.

III. PROCEDIMIENTO.
1. Desarrolle en el programa principal del Matlab los siguientes ejemplos y
anotar sus resultados.
1.1. Dada la funcin de transferencia mediante la transformada de
Laplace.

G(s) = 5(s + 4)/(s+2+4j)(s+2-4j)


Determine los polos y ceros mediante:

>> num=[5 20];


>> den=[1 4 20];
>> [z,p,k]=tf2zp(num,den)
z=
-4
p=
-2.0000 + 4.0000i
-2.0000 - 4.0000i
k=
5
>> [num,den]=zp2tf(z,p,k)
num =
0 5 20
den =
1 4 20
>> G=tf(num,den);
>> G=zpk(z,p,k)
Zero/pole/gain:
5 (s+4)
---------------
(s^2 + 4s + 20)
1.2.Dado un polinomio:

P = s4 + 4s3 + 4s2 + s + 20
Determine las races del Polinomio P mediante:

r=roots([1 4 4 1 20])

r=

-2.6545 + 1.2595i
-2.6545 - 1.2595i
0.6545 + 1.3742i
0.6545 - 1.3742i

Conociendo las races de P determine los coeficientes del


Polinomio, mediante:

>> p1=-2.6545+1.2595i;
>> p2=-2.6545-1.2595i;
>> p3=0.6545+1.3742i;
>> p4=0.6545-1.3742i;

%Los coeficientes del polinomio esta dada por


>>P=poly([p1,p2,p3,p4])

P=

1.0000 4.0000 4.0000 0.9997 20.0002

3. Respuesta a un impulse por la funcin de transferencia.


Y(s) = 1/(s + a)(s + b); donde a = 1, b = 2
Si calculamos ahora la antitransformada, desarrollando en fracciones simples
resulta que y(t) = e-t e -2t. Ingresemos los vectores numerador y denominador
y luego ejecutemos el comando:

num=1

num =

>> den=[1 3 2];


>> impulse(num,den)
%Es posible variar el tiempo de 0 a 12 seg. definiendo:

>>num=1;
>>den=[1 3 2];
>>t=0:0.1:12;
>>impulse(num,den,t)
RESPUESTA A UN ESCALON DE LA FUNCIN DE TRANFERENCIA.
Dada la funcin
G(s) = Y(s)/R(s) = 4 / s2 + 0.8s + 4
num=4
den=[1 0.8 4]

num =

den =

1.0000 0.8000 4.0000

>> step(num,den)

Construccin de arrays (escribir en el programa principal del matlab)


>> x=[0 .1*pi .2*pi .3*pi .4*pi .5*pi .6*pi .7*pi .8*pi .9*pi pi]
x=

Columns 1 through 8

0 0.3142 0.6283 0.9425 1.2566 1.5708 1.8850 2.1991

Columns 9 through 11

2.5133 2.8274 3.1416

>> y=sin(x)

y=

Columns 1 through 8

0 0.3090 0.5878 0.8090 0.9511 1.0000 0.9511 0.8090

Columns 9 through 11

0.5878 0.3090 0.0000

Se puede acceder a los elementos individuales del array anterior utilizando


subndices como x(1) que es el primer elemento en x y x(3) el tercer elemento
de x, igualmente y(5) el quinto elemento de y. Compruebe lo enunciado.
Para acceder a un tiempo de un bloque de elementos, se puede usar la
notacin de dos puntos: tal como >>x(1:5), se debe obtener los elementos del
array del primero al quinto. Compruebe el resultado.

>>x=(0:0.1:1)*pi
x=

Columns 1 through 8

0 0.3142 0.6283 0.9425 1.2566 1.5708 1.8850 2.1991

Columns 9 through 11

2.5133 2.8274 3.1416

>>x=linspace(0,pi,11); % Ambos arrays son similares. Verifique sus resultados.


x=

Columns 1 through 8

0 0.3142 0.6283 0.9425 1.2566 1.5708 1.8850 2.1991


Columns 9 through 11

2.5133 2.8274 3.1416

1.1. EVALUACIN DE FUNCIONES POLINOMICAS


>>x=linspace(-1,3);
>> p=[1 4 -7 -10];
>> v=polyval(p,x);
>> plot(x,v),title('x^3+4x^2-7x-10'),xlabel('x')

MULTIPLICACION DIVISION DE POLINOMIOS

>> a=[1 2 3 4];


>> b=[1 4 9 16];
>> c=conv(a,b)

c=

1 6 20 50 75 84 64

DIVISIN
[>> [q,r]=deconv(c,b)
q=

1 2 3 4

r=

0 0 0 0 0 0 0

DERIVADA

>>h=polyder(q)

h=

3 4 3

2. Escribir en el block de notas depurador del Matlab los siguientes ejercicios y copiar
en el programa principal, para graficar las funciones peridicas:
2.1. Grafica de funciones trigonomtricas.
>> x=linspace(0,4*pi,60);
>> y=sin(x);
>> figure(1)
>> plot(x,y)
>> z=cos(x);
>> figure(2)
>> plot(x,z,x,y)

>> figure(3)
>> plot(x,y,x,y,'*')

>> figure(4)
>> plot(y,z)

>> figure(5)
>> plot(x,y,x,2*y.*z,'--')
>> grid
>> xlabel('Variable independiente x')
>> ylabel('Variable dependiente')
>> title('2sen(x)cos(x)sen(2x)')
>> figure(6)
>> plot3(y,z,x),grid

2.2. Generacin de seales discontinuas:


La idea es multiplicar aquellos valores en un array que desea mantener por
unos, y multiplicar los otros valores por ceros.
>> x=linspace(0,16,100);
>> y=sin(x);
>> z=(y>=0).*y;
>> z=z+0.5*(y<0);
>> z=(x<=14).*z;
>> plot(x,z)
>> xlabel('x'),ylabel('z=f(x)')
>> title('Seal Discontinua')
2.3. MANIPULACIN DE GRAFICOS: Se puede aadir lineas a una grafica
existente usando hold. Cuando fija hold on, Matlab no elimina las curvas
grfica existentes. Cuando se meten las nuevas ordenes plot. Fijando
hold off, se libera la ventana de la figura actual para nuevas grficas.
La orden hold sin argumentos conmuta el valor de hold.
% Ejemplo:
>> x=linspace(0,6*pi,60);
>> y=sin(x);
>> z=cos(x);
>> plot(x,y)
>> hold on
>> plot(x,z,'m')
>> hold off
% Observaremos que se mantiene la grafica anterior y aade la curva
coseno.

2.4. SUBDIVISIN DE VENTANA DE GRAFICAS (m,n,p)


Una ventana de figura, puede mantener ms de un conjunto de ejes. La
orden subplot(m,n,p) subdivide la ventana de la figura actual en una matriz
mxn de las reas de representacin grfica y escoge como activa el rea
p-sima la subgrfica se numeran de izquierda a derecha a lo largo de la
fila superior, luego la segunda fila.

>> x=linspace(0,4*pi,60);
>> y=sin(x)
>>z=cos(x);
>>a=2*sin(x).*cos(x);
>>b=sin(x)./(cos(x)+eps);
>>Subplot(2,2,1).
>>plot(x,y), axis ([0 4*pi -1 1]), title('sin(x)')
>>subplot(2,2,2)
>>plot(x,z), axis ([0 4*pi -1 1]), title('cos(x)')
>>subplot(2,2,3)
>>plot(x,a), axis ([0 4*pi -1 1]), title('2sin(x)cos(x)')
>>subplot(2,2,4)
>>plot(x,b)
>>axis ([0 4*pi -40 40]), title('tg=sin(x)/cos(x)')

IV. CUESTIONARIO.
1. Cambie el valor de las variables en cada uno de los ejercicios y desarrolle
nuevas aplicaciones, por lo menos 2 ejercicios adicionales de cada uno de
los ejercicios planteados como ejemplos.
2. Explique las funciones de cada una de las principales instrucciones y
comandos utilizados en los ejercicios anteriores.
3. Presentar su informe final con una breve introduccin terica, con el
resultado de cada ejercicio planteado y sus modificaciones experimentales.
BIBLIOGRAFA:
MATLAB Edicin de estudiante con tutorial de Duane Hanselman PRENTICE HALL.
Pagina WEB de la FIE
TEMA 2 : DESARROLLO DE LA SERIE DE FOURIER

I. OBJETIVO. Haciendo uso de Matlab, verificar la serie Trigonomtrica y Exponencial de


Fourier y desarrollar los ejercicios propuestos en el cuestionario.
II. PROCEDIMIENTO:
1. Desarrolle la serie trigonomtrica de Fourier de la funcin:
A; en 0 t
f(t)= -A; en t 2
Grafique la serie de Fourier f(t), en Matlab.
SOLUCION.
La funcin f(t) es una funcin impar cuya serie trigonomtrica de Fourier es:
f(t)= (4A/)[sen t + (1/3)sen 3t + (1/5)sen 5t .........]
Programando para mostrar la grfica de la serie de Fourier.

>> Fs=1000;
>> t=(1:100)/Fs;
>> w=2*pi*10;
>> f=(8/pi)*(sin(w*t)+(1/3)*sin(3*w*t)+(1/5)*sin(5*w*t)+(1/7)*sin(7*w*t)
+(1/9)*sin(9*w*t));
>> figure(1)
>> plot(t,f)
>> grid
A, para -/2 t /2
2. Desarrolle la serie trigonomtrica de Fourier, de f(t)=
-A, para /2 t 3/2
Dado que f(t) = funcin par cuyo serie trigonomtrica de Fourier esta dada por:
f(t)= (4.A/)[cos.t - (1/3)cos. t + (1/5)cos.5t - (1/7)cos.7 t + (1/9)cos.9t .] + ... (De
acuerdo al criterio del ejercicio 1).

>> figure(2)
Fs=1000;
>> t=(-100:100)/Fs;
>>
>> w=2*pi*10;
>> A=4;
>> f=(4*A/pi)*(cos(w*t)-(1/3)*cos(3*w*t)+(1/5)*cos(5*w*t)-(1/7)*cos(7*w*t)
+(1/9)*cos(9*w*t)-(1/11)*cos(11*w*t)+(1/13)*cos(13*w*t)-(1/15)*cos(15*w*t)
+(1/17)*cos(17*w*t));
>> plot(t,f)
>> grid

3. De acuerdo al problema 2, la expresin general de la serie trigonomtrica de


Fourier para funcin f(t) par, esta dado por:
f(t)=(4.A/)(1/n).sen(n/2).cos.nwt.
Desarrolle mediante la instruccin de control de flujo FOR del Matlab:
SOLUCION.
>> figure(3)
>> Fs=100;
>> t=(-100:100)/Fs;
>> w=2*pi;
>> A=2;
>> f=0;
>> for n=1:1000;
f=f+(4*A/(n*pi))*(sin(n*0.5*pi))*cos(n*w*t);
>> end;
>> plot(t,f)
>> xlabel('t(sec)')
>> ylabel('amplitud')
>> title('funcion par onda cuadrada')
>> grid
TEMA 3 : DESARROLLO DE LA TRANSFORMADA RPIDA DE FOURIER

I. OBJETIVO. Haciendo uso de Matlab, desarrollar la transformada de funciones no


peridicas y la transformada Rpida de Fourier FFT de seales muestreadas y mostrar las
grficas correspondientes en el dominio del tiempo y la frecuencia.

II. PROCEDIMIENTO:
1. Desarrolle la transformada de fourier usando matlab cuya expresin es:
>> N=128;
>> t=linspace(0,3,N);
>> f=2*exp(-20*t);
>> figure(1)
>> plot(t,f)
>> xlabel('Time seg'),ylabel('f(t)'),grid
>> axis([0 0.3 0 2]);

>> Ts=t(2)-t(1);
>> Ws=2*pi/Ts;
>> F=fft(f);
>> Fp=F(1:N/2+1)*Ts;
>> W=Ws*(0:N/2)/N;
>> figure(2)
>> plot(W,abs(Fp),'+')
>> xlabel('Frequency,rad/s'),ylabel('|F(W)|')
Verifique la grfica de Transformada de Fourier desarrollada:
>> N=128;
>> t=linspace(0,3,N);
>> Ts=t(2)-t(1);
>> Ws=2*pi/Ts;
>> W=Ws*(0:N/2)/N;
>> Fa=2./(20+j*W);
>> figure(3)
>> plot(W,abs(Fa))
>> xlabel('frequency,rad/s'),ylabel('|F(W)')
2. Desarrolle la transformada rpida de fourier de una seal muestreada
X(k) = X(n) e-j (2/4) nk Donde k = 0,1,2,3,.....
Cuyo desarrollo esta dada por el siguiente programa:
>> m=[0,1,2,3,4,5];
>> Xn=[1,2,3,4,5,6];
>> Xk=fft(Xn);
>> Xmag=abs(Xk);
>> Xphase=angle(Xk);
>> figure(1)
>> plot(m,Xmag),axis([0 5 0 23]);

>> figure(2)
>> stem(m,Xmag)
>> figure(3)
>> stem(m,Xphase)

3. Para la suma de dos seales senoidales contaminado con ruido desarrolle la


grfica en el dominio del tiempo y su respectiva transformada de fourier.
t=0:0.001:0.6;
x=sin(2*pi*50*t)+sin(2*pi*120*t);
y=x+2*randn(size(t));
figure(4)
plot(y(1:50))

>> t=0:0.001:0.6;
>> x=sin(2*pi*50*t)+sin(2*pi*120*t);
>> y=x+2*randn(size(t));
>> figure(4)
>> plot(y(1:50))
>> Y=fft(y,512);
>> Pyy=Y.*conj(Y)/512;
>> f=1000*(0:255)/512;
>> figure(5)
>> plot(f,Pyy(1:256))

4. Desarrolle la transformada de fourier de la suma de tres seales senoidales:


>> figure (6)
>> Fs=100;
>> t=(1:100)/Fs;
>> s1=5*sin(2*pi*t*5);s2=10*sin(2*pi*t*15);s3=7*sin(2*pi*t*30);
>> s=s1+s2+s3;
>> plot(t,s);
>> S=fft(s,512);
>> w=(0:255)/256*(Fs/2);
>> figure (7)
>> plot(w,abs([S(1:256)]));

5. Desarrolle la grfica de la funcin de muestreo Sa(x):

>>figure(8)
>> fplot('5*sin(x)./x',[-30 30 -.2 6])
>> title('Fplot of f(x)=5*sin(x)/x')
>> xlabel('x')
6. Disee un ecualizador digital usando el comando ELLIP de Filtros IIR y grafique
la ondas en el dominio del tiempo y su respectiva transformada de Fourier.
FILTROS Y ECUALIZADOR DIGITAL Cuya solucin es:

>> Fs=10000;
>> t=(1:8000)/Fs;
>> f1=sin(2*pi*t*500);f2=sin(2*pi*t*1500);f3=sin(2*pi*t*3000);f4=sin(2*pi*t*4000);
>> s=f1+f2+f3+f4;
>> figure(9)
>> plot(t,s)
>> axis([0 0.01 -4 4]);

>> [b,a]=ellip(4,0.1,40,[100 1000]*2/Fs);


>> [H,W]=freqz(b,a,512);
>> figure(10)
>> plot(W*Fs/(2*pi),abs(H))
>> sf1=filter(b,a,s);
>> figure(11)
>> plot(t,sf1);
>>sf1=filter(b,a,s);
>> xlabel('Tiempo(seg)');ylabel('Forma de onda vs tiempo')
>> axis([0 0.01 -4 4]);
>> axis([0 0.01 -4 4])

>> S1=fft(s,513);
>> SF1=fft(sf1,513);
>> w=(0:255/256*(Fs/2));
>> figure(12)
>> plot(w,abs([S1(1:256)' SF1(1:256)']))
>> title('SF1(1:256)')
>> xlabel('Frecuencia (Hz)'); ylabel('Magn. de transformada de Fourier (Hz)');

>> [b,a]=ellip(4,0.1,40,[1000 2000]*2/Fs);


>> [H,w]=freqz(b,a,512);
>> figure(13)
>> plot(w*Fs/(2*pi),abs(H));

>> sf2=filter(b,a,s);
>> figure(14)
>> plot(t,sf2)
>> xlabel('tiempo(seg)');ylabel('forma de onda vs tiempo');
>> axis([0 0.01 -4 4])sf2=filter(b,a,s);
>> [b,a]=ellip(4,0.1,40,[2500 3500]*2/Fs);
>> [H,w]=freqz(b,a,512);
>> figure(16)
>> plot(w*Fs/(2*pi),abs(H));

>> sf3=filter(b,a,s);
>> figure(17)
>> plot(t,sf3)
>> xlabel('tiempo(seg)');ylabel('forma de onda vs tiempo');
>> axis([0 0.01 -4 4])
>> S3=fft(s,513);
>> SF3=fft(sf3,513);
>> w=(0:255)/256*(Fs/2);
>> figure(18)
>> plot(w,abs([S3(1:256)' SF3(1:256)']))
>> xlabel('frecuencia(en Hz)');ylabel('magn. de transformada de Fourier')

>> [b,a]=ellip(4,0.1,40,[3500 4500]*2/Fs)

b=
Columns 1 through 8

0.0252 0.0847 0.1307 0.1582 0.1740 0.1582 0.1307 0.0847

Column 9

0.0252

a=
Columns 1 through 8

1.0000 5.5893 14.5573 23.0754 24.3399 17.4748 8.3401 2.4252

Column 9

0.3314

>> [H,w]=freqz(b,a,512);
>> figure(19)
>> plot(w*Fs/(2*pi),abs(H));
>> sf4=filter(b,a,s);
>> figure(20)
>> plot(t,sf4);
>> xlabel('tiempo(seg)');ylabel('forma de onda vs tiempo');
>> axis([0 0.01 -4 4])

>> S4=fft(s,513);
>> SF4=fft(sf4,513);
>> w=(0:255)/256*(Fs/2);
>> figure(21)
>> plot(w,abs([S4(1:256)' SF4(1:256)']))
>> xlabel('frecuencia(en Hz)');ylabel('magn. de transformada de Fourier')

>> zf5=0.8*sf1+0.5*sf2+0.2*sf3+0.4*sf4;
>> figure(22)
>> plot(t,zf5)
>> xlabel('tiempo(seg)');ylabel('forma de onda vs tiempo');
>> axis([0 0.01 -4 4])
>> S5=fft(s,513);
>> ZF5=fft(zf5,513);
>> w=(0:255)/256*(Fs/2);
>> figure(23)
>> plot(w,abs([S5(1:256)' ZF5(1:256)']));
>> xlabel('frecuencia(en Hz)');ylabel('magn. de transformada de Fourier')

7. Verifique la respuesta en frecuencia de otros filtros..

>> f=[0 .4 .4 .6 .6 1];


>> H=[0 0 1 1 0 0];
>> fs=1000;
>> fhz=f*fs/2;
>> figure(24)
>> plot(fhz,H),title('Desired Frequency Response')
>> xlabel('Frequency (Hz)'),ylabel('magnitud')
>> N=8;
>> [Bh,Ah]=yulewalk(N,f,H)

Bh =

Columns 1 through 8

0.0237 -0.0000 -0.0198 -0.0000 0.0239 -0.0000 -0.0194 0.0000

Column 9

0.0236

Ah =

Columns 1 through 8

1.0000 -0.0000 2.2748 -0.0000 2.2605 -0.0000 1.1053 0.0000

Column 9

0.2304

>> n=256;
>> hh=freqz(Bh,Ah,n);
>> hy=abs(hh);
>> ff=fs/(2*n)*(0:n-1);
>> figure(25)
>> plot(fhz,H,ff,hy);
>> title('actual vs desired frequency response')
>> xlabel('Frequency (Hz)'),ylabel('magnitud')
>> N=4;
>> passband=[.4 .6];ripple=.1;
>> [Bb,Ab]=butter(N,passband);
>> [Bc,Ac]=cheby1(N,ripple, passband);
>> h=[abs(hh) abs(freqz(Bb,Ab,n)) abs(freqz(Bc,Ac,n))];
>> figure(26)
>> plot(ff,h)
>> title('YuleWalk, Butterworth and Chebyshev filters')

>> figure(27)
>> plot(ff(2:n),20*log10(h(2:n,:)))
>> title('YuleWalk, Butterworth and Chebyshev filters')
>> xlabel('Frequency (Hz)')
>> ylabel('Magnitude in dB')
III. CUESTIONARIO FINAL
1. Dada la expresin de la serie de Fourier trigonomtrica, desarrolle la grfica de f(t).
Usando el criterio de problema 3.
Dada la serie:
f(t)= A/2 - (1/n) sen(nwot). Si f(t)= At en t (0,1).
2. Desarrolle la exponencial de Fourier, si f(t)=Asen.t en el intervalo t [0, 1].
Grafique la S.E.F.
3. Programe en Matalb la siguiente serie trigonomtrica.
F(t)= (4.A/(n)2).cos.nt ; n= impar de la onda triangular.
4. Grafique la serie exponencial de Fourier de la funcin f(t)=A.e-2t en t [0.1].
5. Presentar informe del desarrollo de los ejercicios planteados y los propuestos en el
cuestionario.
ylabel('f(x)')
6. Desarrolle la transformada rpida de fourier de la funcin Sa(t).
7. Si f(t)=( ej wt + e-jwt)/ 2. Determine su transformada rpida de fourier.
8. Dado f(t) = Asenwt . Desarrolle su transformada rpida de fourier.
9. Desarrolle la transformada de Fourier de la seal muestreada m=[0, 1, 2, 3] y
Xm=[2, 3, 4, 5].
10. Explique en detalle la transformada discreta de Fourier DFT. Desarrolle 3 ejemplos
de la transformada funciones discretas y su aplicacin en el procesamiento de
seales.
11. Qu es la transformada rpida de Fourier FFT?. Desarrolle 5 ejemplos.
12. Explique sobre los fundamentos de los filtros digitales FIR y IIR