Sei sulla pagina 1di 15

ESCUELA POLITECNICA DEL EJERCITO ESPE-L PRACTICA CON MATLAB

OBJETIVOS: Realizar la siguiente practica de matlab para observar las diferencias que se presentan en cada uno de los siguientes casos. Observar la diferencia que existe al aplicar diferentes valores de amplitud y frecuencias.

MARCO TEORICO: SEALES Y SISTEMAS Definimos una seal como una funcin matemtica que depende de una o ms variables independientes, y cuyo valor nos da informacin sobre el fenmeno fsico al que est asociada. Igualmente definimos un sistema como cualquier transformacin realizada sobre una seal.

Las seales discretas se representan con una secuencia de nmeros denominados muestras. Una muestra de una seal o secuencia se denota por x[n] siendo n entero en el intervalo < n < (x[n]=x[nT]) x[n] est definida nicamente para valores enteros de n. Una seal en tiempo discreto se representa como {x[n]} Las seales discretas se pueden representar como una secuencia de nmeros entre parntesis {x[n]} = { 0.2, 2.2, 1, 1,0.2, 3.7, 2.9}; x(n) = (1 4)n La flecha indica la muestra con ndice n=0

Desarrollo:
1. Se desea generar 2 periodos de una sinusoide analgica de amplitud 1 frecuencia 200 hz, muestreada a 1khz Sabemos que una sinusoide continua de frecuencia expresin: queda definida por la siguiente

ESCUELA POLITECNICA DEL EJERCITO ESPE-L


( ) Donde frecuencia ( ) ( ( )

son, respectivamente, la amplitud y fase del sistema. Si muestreamos auna obtenemos: ) ( )= ( ).

Sustituyendo en nuestro caso tendramos: ( ) ( ) ( )

De forma inmediata se comprueba que el periodo de la seal discreta es de 5 muestras, como nos piden dos periodos el nmero de muestras a generar es de 10. Las instrucciones de matlab para generar y dibujar la seal son: n=0:9; Fm=1000; Fa=200; x=cos(2*pi*Fa*n/Fm); stem(n,x) xlabel('n') ylabel('x(n)') grid on Con estas se obtiene la siguiente figura 1,34:

ESCUELA POLITECNICA DEL EJERCITO ESPE-L


2. Realice la misma operacin, pero ahora la sinusoide a muestrear es de 1.2Hz. n=0:9; Fm=1000; Fa=1200; x=cos(2*pi*Fa*n/Fm); stem(n,x) xlabel('n') ylabel('x(n)') grid on

3. suponga sobre la grfica obtenida sobre la grfica 2.63 los puntos obtenidos en el 1.62 Qu ocurre?? Que consecuencias se puede obtener sobre las grficas. Con el siguiente cdigo podemos obtener ambas grficas, donde en lugar de emplear la instruccin hold on hemos utilizado la opcin plot para suponer mltiples graficas (Figura 1.36) plot(n,x,'o',n,xx,'+') legend('Fa=200Hz','Fa=1200Hz') xlabel('n') ylabel('x(n)')

ESCUELA POLITECNICA DEL EJERCITO ESPE-L

n=0:9; t=0:0.01:9; Fa1=200; Fa2=1200; Fs=1000; xt1=cos(2*pi*Fa1*t/Fs); xt2=cos(2*pi*Fa2*t/Fs); x1=cos(2*pi*Fa1*n/Fs); x2=cos(2*pi*Fa2*n/Fs); plot(t,xt1,'k-',t,xt2,'k:',n,x1,'ko',n,x2,'k+') xlabel('n') Se observa que los puntos de las dos seales coinciden. La razn es que la segunda seal (la componente de 1.2KHz)no cumple el teorema de muestreo. Mediante la relacin siguiente podemos determinar la frecuencia aparente obtenida tras el muestreo.

Siendo Fm una frecuencia en el intervalo [-Fm/2. Fm/2].

ESCUELA POLITECNICA DEL EJERCITO ESPE-L

4. Repita el aparto anterior pero ahora la seal a muestrear es la suma de cuatro sinusoides de amplitud uno y frecuencias 100, 200 y 600 y 2100 Hz. Utilice seales de tipo coseno. Comente los resultados. El siguiente cdigo me permite calcular las secuencias y representar el espectro de la suma. En lugar de utilizar un bucle para calcular cada una de las secuencias hemos utilizado las propiedades de Matlab, para trabajar con matrices de datos y la funcin sum que al ser aplicada sobre una matriz suma sus elementos por columnas. N=1000; n=0:N-1; Fa=[100, 200, 600, 2100]'; %tenemos un vector de frecuencias Fm=1000; x=cos(2*pi*Fa*n/Fm); %calculamos todas las sinusoides x=sum(x); %sumamos las sinusoides plot(-N/2:N/2-1,abs(fftshift(fft(x)))); xlabel('FRECUENCIA') grid on La grafica se muestra en la figura 1.39. Interpretamos esa grfica. Las frecuencias analgicas de 600 Hz y 2100 Hz no verifican el teorema de muestreo por lo que aplicando la ecuacin (1.7) obtenemos que las frecuencias aparentes correspondientes son:

ESCUELA POLITECNICA DEL EJERCITO ESPE-L

Independientemente de que se trate de frecuencias positivas y negativas, cada una de estas seales est representada en el espectro de 2 picos. Por lo que observamos picos en frecuencias 100,200 y 400, sin embargo para amplitud en frecuencia 100 es el doble. Esto es debido a que para esta frecuencia contribuyen las frecuencias analgicas de 100 Hz y 2100 Hz, que por efecto de aliasing se corresponden la misma frecuencia aparente

5. Repita el apartado anterior pero sustituyendo la frecuencia de 2100Hz por una de 1900Hz.Obtendriamos el mismo resultado si hubisemos generado las seales con funciones seno? N=1000;

ESCUELA POLITECNICA DEL EJERCITO ESPE-L


n=0:N-1; Fa=[100,200,600,1900]'; Fm=1000; x=cos(2*pi*Fa*n/Fm); xx=sin(2*pi*Fa*n/Fm); x=sum(x); xx=sum(xx); subplot (211) plot(-N/2:N/2-1,abs(fftshift(fft(x)))); xlabel('Frecuencia (Hz)') title('a') grid on subplot(212) plot(-N/2:N/2-1,abs(fftshift(fft(x)))); xlabel('Frecuencia (Hz)') title('b') grid on

6. Genere una seal cuadrada de 100 puntos con una frecuencia de 150Hz y muestreada a 1000hz. Represente el espectro de la seal y explique el resultado Sabemos que una seal cuadrada analogica esta formada por una suma infinita de armonicos decrece a medida que aumenta la frecuencia del mismo. Nuestra seal contendr armnicos a las frecuencias: 150hz,450hz,750hz,1050hz,1350hz,1650hz,1950hz.. como la frecuencia de muestreo es de 1khz para que no se produzca aliasing, las frecuencias analgicas debern estar

ESCUELA POLITECNICA DEL EJERCITO ESPE-L


comprendidas en el intervalo [-500hz,.,500hz+. En nuestra seal cuadrada esto no se verifica a partir de la frecuencia de 750hz. Veamos cules sern las frecuencias aparentes obtenidas para cada uno de los armnicos para ello utilizamos la expresin (1,7). En la prctica podemos obtener las frecuencias aparentes sin mas que restar a la seal mltiplos de la frecuencia de muestreo hasta que nos encontremos en el intervalo de frecuencias determinado por la frecuencia de muestreo. Frecuencia original 150HZ Frecuencia aparente 150Hz no produce aliasing 450hz no produce aliasing -250Hz 50Hz 350HZ -450Hz -50hz

450Hz

750Hz 1050Hz 1350Hz 1650Hz 1950Hz N=1000; n=0:N-1; F=150; Fm=1000; x=square(2*pi*F*n/Fm); subplot(211) stem(n(1:50),x(1:50)) xlabel('n') ylabel('x(n)') title('(a)') subplot(212) plot(-N/2:N/2-1,abs(fftshift(fft(x)))); xlabel('Frecuencia') title('(b)')

ESCUELA POLITECNICA DEL EJERCITO ESPE-L

7. Escriba una funcin que acepte como parmetros un vector de muestras, el numero de bits del cuantificador y el rango de entrada, y devuelva la seal cuantificada por redondeo. Considrese que el intervalo de entrada es bipolar. Programacin: function y=cuanti(x,bits,m) % x: seal de entrada % bits: numero de bits del cuantificador % m: rango de entrada del cuantificador % la cuantificacion se realiza por redondeo. resol=2*m/(2^bits-1); nivel=x/resol; %Resolucion del cuantificador. %Determinamos el numeo de %niveles del cuantificador %correspondientes (no enteros). %Redondeamos al nivel mas proximo(entero) %Exprsamos la seal cuantizada en las %la unidades de la seal original.

nivel=round(nivel); y=nivel*reol;

8. La siguiente ecuacin en diferencias recursiva permite calcular el valor de la raz cuadrada de A, tomando como condicin inicial x(-1) una aproximacin burda a dicha raz. Para valores de A 1, x(-1)=1 es una aproximacin adecuada. ( ) [ ( ) ( )]

ESCUELA POLITECNICA DEL EJERCITO ESPE-L


a) Escriba un programa que permita calcular el valor de la raz cuadrada de 2. Compruebe que a partir de un pequeo nmero de iteraciones el valor almacenado en x(n) coincide b) Repita el procedimiento anterior cuantificando el resultado de cada iteracin antes de realimentar de nuevo el sistema. Muestre las graficas obtenidas para un cuantificador de 4, 5, 6, 8 y 12 bits, si el intervalo de entrada al cuantificador es de SOLUCION: a) El siguiente programa muestra la implementacin recursiva de la ecuacin en diferencias del sistema, mediante un bucle. El bucle finalizara cuando la diferencia entre el valor calculado con esta expresin y el valor real sea menor que 1/10000. clear A=2; valor_exacto=sqrt(2); n=1; x(n)=1; %condicion inicial error=1/10000; while(abs(x(n)-valor_exacto)>=error) n=n+1; x(n)=0.5*(A/x(n-1)+x(n-1)); end Si ejecutamos disp(x). Matlab nos devuelve por pantalla

Observamos que con muy pocas iteraciones el resultado converge al valor de . Para otro valor de A. por ejemplo A = 356 obtenemos la secuencia Observamos que la convergencia es rpida b) Veamos cmo se modifican los resultados al cuantificar cada operacin tras cada iteracin. En este caso vamos a fijar el nmero de iteraciones en 15, independiente del nmero de bits considerado, y mostraremos en una grfica los resultados. El programa utilizado es el siguiente: %Cuantificacin Clear A=2;

ESCUELA POLITECNICA DEL EJERCITO ESPE-L


m=5; valor_exacto=sqrt(2); n=1; N=10; %numero de iteraciones x(:,n)= *1, 1,1,1,1+; % condicin inicial j=1; for(bits=[4, 5, 6, 8, 12]) for (n=2:N) x(j,n)=cuanti(0.5*(A/x(j,n-1)+x(j,x-1)),bits,m); end j=j+1; n=1:N; plot(n,x(1,:),k-,n,x(,:),k:,n,x(3:),k.-,n,x(4,:),k--,n,x(5,:),k-) legend(*b=4 valor= num2str(x(1,N))+, *b=5 valor= num2str(x(2,N))], \dots *b=6 valor= num2str(x(3,N))+, *b=8 valor= num2str(x(4,N))+, \dots *b=12 valor= num2str(x(5,N))+) xlabel(iteracion) ylabel(valor aproximado de la raiz)

9. En esta prctica se estudiaran los conceptos de estabilidad y linealidad bsicos a la hora de analizar sistemas discretos. Determine si los sistemas definidos por las ecuaciones en diferencias siguientes verifican las propiedades de linealidad, invarianza temporal y estabilidad

ESCUELA POLITECNICA DEL EJERCITO ESPE-L


a) b) c) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) clear close all N=100; x1=sin(2*pi*0.1*(0:N-1)); x2=sin(2*pi*0.3*(0:N-1)); alfa=3; beta=0.5; x3=alfa*x1+beta*x2; x4=[1 zeros(1,N-1)]; ret=5; x5=[zeros(1,ret) x1(1:N-ret)]; y1(1)=x1(1); y2(1)=x2(1); y3(1)=x3(1); y4(1)=x4(1); y5(1)=x5(1); for(n=2:N) y1(n)=((n-1)/n)*y1(n-1)+x1(n)/n; y2(n)=((n-1)/n)*y2(n-1)+x2(n)/n; y3(n)=((n-1)/n)*y3(n-1)+x3(n)/n; y4(n)=((n-1)/n)*y4(n-1)+x4(n)/n; y5(n)=((n-1)/n)*y5(n-1)+x5(n)/n; end plot(y3,'ro') title('Linealidad del sistema 2') hold on plot(alfa*y1+beta*y2,'g*'); xlabel('n') disp('Pulse una tecla') pause clf stem(y4,'r') title('Estabilidad del sistema 2')

ESCUELA POLITECNICA DEL EJERCITO ESPE-L


xlabel('n') disp('Pulse una tecla') pause clf plot(y5,'ro') title('Invarianza temporal sistema 2') plot([zeros(1,ret) y1(1:N-ret)],'g*'); xlabel('n') disp('Pulse una tecla') pause

ESCUELA POLITECNICA DEL EJERCITO ESPE-L

10. La primera aplicacin de la auto correlacin de una seal es determinar las posibles repeticiones de patrones en las seal. Para probar este punto se va a generar una sinusoide de frecuencia igual a 100hz con amplitud 1 y muestreada a 1Khz (consideremos una secuencia de 100 puntos). Determinar la autocorrelacin de esta seal normalizada a uno y represntela junto a la secuencia .qu conclusiones se puede sacar? %Generacin de la seal n=0:99; x=cos(2*pi*n*0.1); %clculo de la autocorrelacin y=xcorr(x,'coeff'); %Respuesta de las dos seales subplot(211),stem(x,'k'),title('(a)') subplot(212),stem(y,'k'),title('( b)') xlabel('Muestras') Podemos que la autocorrelacin tiene una longitud doble a la seal temporal.

ESCUELA POLITECNICA DEL EJERCITO ESPE-L

CONCLUSIONES: Se pudo observar que existe una gran diferencia al utilizar diferentes valores de frecuencia al graficar una funcin. Se pudo observar que en el procesamiento de seales el aliasing es el efecto que causa que seales continuas distintas se tornen indistinguibles cuando se muestrean digitalmente. El aliasing produce que la seal original no puede ser reconstruida de forma unvoca a partir de la seal digital.

RECOMENDACIN Se recomienda seguir realizando estas prcticas ya que podemos observar las diferentes situaciones que se presentan o sus semejanzas.

Potrebbero piacerti anche