Você está na página 1de 8

Anlisis de una Onda Seno Para poder generar ondas senosoidales que involucren parmetros tales como amplitud,

frecuencia, frecuencia de muestreo, tiempo y ngulo de fase, hay que definir la funcin senosoidal. El siguiente es el cuerpo de la funcin function [x]=senosoidal(amplitud,frecuencia,fm,tiempo,fase) % SENOSOIDAL crea una senosoidal % SENOSOIDAL(amp,fr,ph,samp,t) crea una senosoidal % amp = amplitud % fr = frecuencia % ph = fase % samp = frecuencia de muestreo % t = tiempo de muestreo for n=0:fm*tiempo-1 angulo=2*pi*frecuencia/fm; x(n+1)=amplitud*sin((angulo*n)+fase); % Como los vectores empiezan en 1, x arranca una % posicin despus end Para verificar que la funcin senosoidal qued guardada en la carpeta Work, escribir pwd, esta funcin devuelve todo el path de la funcin (D:\MATLAB6p5\Work\senosoidal.m) y al escribir dir debe aparecer la funcin senosoidal.m Siempre es importante tener en cuenta el teorema fundamental de muestreo el cual dice que para representar digitalmente una seal que contiene componentes de frecuencia hasta x Hz es necesario usar una frecuencia de muestreo de al menos 2x muestras por segundo. Vamos ahora a analizar dos ondas senosoidales que solo varan en su frecuencia, las dos seales van a tener los siguientes parmetros: una amplitud de 0.5, 1000 de frecuencia de muestreo durante 1 segundo y con un ngulo de fase 0; las dos ondas solo se van a diferenciar en sus frecuencias, una es a 440 Hz y la otra es a 441 Hz; se pide: graficar las ondas hasta nyquist y graficar sus correspondientes espectros. Nota: Para poder representar digitalmente estas seales, la frecuencia de muestreo debera ser como mnimo para 440 Hz, 880 Hz y para 441 Hz, 882 Hz, para nuestro ejemplo se esta tomando solo la mitad de la frecuencia de muestreo, la cual es 500 Hz, esta frecuencia corresponde a la frecuencia de Nyquist. A una variable x1 se asigna el resultado de la funcin senosoidal con todos sus parmetros

>> x1=senosoidal(0.5,440,500,1,0); A una variable x2 se asigna el resultado de la funcin senosoidal con todos sus parmetros >> x2=senosoidal(0.5,441,500,1,0); A una variable x se asigna el resultado de la suma de las dos ondas senosoidales >> x=x1+x2; A una variable xx se asigna el resultado de la multiplicacin de las dos ondas senosoidales >> xx=x1.*x2; Para poder graficar todas las ondas con sus resultados, se utiliza el comando subplot(cantidad de figuras, posicin, numero de la figura), seguido del comando plot(figura) y un ttulo para el grfico. >> subplot(4,1,1),plot(x1),grid on,zoom,title('Onda Seno 440 Hz') >> subplot(4,1,2),plot(x2),grid on,zoom,title('Onda Seno 441 Hz') >> subplot(4,1,3),plot(x),grid on,zoom,title('Onda Seno 440 Hz + Onda Seno 441 Hz') >> subplot(4,1,4),plot(xx),grid on,zoom,title('Onda Seno 440 Hz * Onda Seno 441 Hz')

Grficas de cada onda (440, 441, 440+441, 440*441) Los siguientes son los sonidos que resultaron de la anterior prctica:

440 441 440+441 440*441

El siguiente paso corresponde al anlisis de los espectros de cada una de estas ondas. Primero se asigna a una variable espx el valor absoluto de la transformada rpida de Fourier de la funcin seno a 440 Hz almacenada anteriormente en la variable x1 >> espx1=abs(fft(x1)); Seguidamente se hace el mismo proceso para las otras ondas generadas. >> espx2=abs(fft(x2)); >> espx=abs(fft(x)); >> espxx=abs(fft(xx)); Ahora se grafican las respuestas en una sola grfica >> subplot(4,1,1),plot(espx1),grid on,zoom,title('Espectro Onda Seno 440 Hz') >> subplot(4,1,2),plot(espx2),grid on,zoom,title('Espectro Onda Seno 441 Hz') >> subplot(4,1,3),plot(espx),grid on,zoom,title('Espectro de la Onda Seno 440 Hz + Onda Seno 441 Hz') >> subplot(4,1,4),plot(espxx),grid on,zoom,title('Espectro de la Onda Seno 440 Hz * Onda Seno 441 Hz')

Grficas de los espectros de cada onda (440, 441, 440+441, 440*441)

Las grficas expresan las simetras de las energias de todas las ondas. Hay otra manera de graficar los espectros por medio de la funcin stem(varible), esta funcin muestra la figura en forma de barras de tal manera que en algunos casos es ms fcil observar que sucede en la grfica. En la siguiente figura se muestra un zoom hecho en cada grfica con el fin de poder establecer en que valores estn exactamente los espectro. >> subplot(4,1,1),stem(espx1),grid on,zoom,title('Espectro Onda Seno 440 Hz') >> subplot(4,1,2),stem(espx2),grid on,zoom,title('Espectro Onda Seno 441 Hz') >> subplot(4,1,3),stem(espx),grid on,zoom,title('Espectro de la Onda Seno 440 Hz + Onda Seno 441 Hz') >> subplot(4,1,4),stem(espxx),grid on,zoom,title('Espectro de la Onda Seno 440 Hz * Onda Seno 441 Hz')

Grficas de los espectros de cada onda (440, 441, 440+441, 440*441) Ya con todos estos datos, se podra preguntar cul es la frecuencia de anlisis, definida por la frecuencia de muestreo sobre la longitud de la seal y su intervalo de muestreo, definida a su vez como la unidad sobre la frecuencia de muestreo

Ejemplo: Respuesta frecuencial con MATLAB

Dada la siguiente funcin de transferencia

a) Encontrar con MATLAB la ecuacin de la respuesta ante una entrada

b) Representar la entrada y la salida en una grfica. a) Lo primero que debemos hacer es sustituir s por

, en la funcin de transferencia:

La entrada del sistema es del tipo

. En nuestro caso .

sustituimos en la FdT iscrona y mediante MATLAB obtenemos la ganancia y la fase Introducimos la FdT como un nmero complejo . Con la instruccin abs calculamos la ganancia y con angle el desfasaje:

Segn lo obtenido la ecuacin de la salida es: b) Para la representacin de la respuesta usaremos el comando lsim. Primero creamos el modelo tf de manera habitual. Definimos la ecuacin de la entrada y el vector de tiempo. Finalmente representamos la entrada y la salida con plot.

A partir de aqu tambin podemos calcular la ganancia, dividiendo los valores mximos de la salida y la entrada. De esta forma obtenemos prcticamente el mismo valor que el obtenido en el apartado a

Ejemplo: Sistema de segundo orden Dado un sistema de segundo orden, realizar unas grficas en 3D y 2D donde se vea claramente la diferencia entre un sistema sin amortiguamiento, subamortiguado, crticamente amortiguado y sobreamortiguado

%En este ejemplo variaremos el parametro zeta en un sist.de 2orden %--------------------------------------------------------------------------clear all; %Declaracion de los parametros: wn=1;%la frecuencia sera fija zeta=[0 0.5 1 2];% Variaremos zeta t=0:15/200:(15-15/200); %Por cada parametro zeta almacenaremos la respuesta %del sistema en una matriz y: for n=1:length(zeta) num=wn^2; den=[1 2*zeta(n)*wn wn^2]; W=tf(num,den); y(:,n)=step(W,t); end; %Representacion en 3D de la respuesta figure(1); mesh(zeta,t,y); xlabel('\zeta'); ylabel('t'); zlabel('y(t)'); title('Respuesta de un sistema de segundo orden variando \zeta'); %Representacion en 2D de la respuesta figure(2) plot(t,y);xlabel('t');ylabel('y(t)'); title('Respuesta de un sistema de segundo orden variando \zeta'); legend('\zeta=0 (sin amortiguamiento)',... '\zeta=0.5 (Subamortiguado)',... '\zeta=1 (Criticamente Amortiguado)','\zeta=2 (Sobreamortiguado)');

Fuente: http://usuarios.lycos.es/automatica/temas/tema3/pags/Sis12ord/ejem2orden.htm

Você também pode gostar