8
Para esta práctica se trabajó con Matlab para ver el análisis de dos señales, donde a una de ellas le agregábamos ruido y mostrábamos sus respectivas graficas. El código con el que se trabajo fue el siguiente: ti=0; %declaración de variable de tiempo inicial igual a cero tf=1; %declaración de variable de tiempo final igual a 1 fs=2000; %declaración de la frecuencia de muestreo igual a 2000 t=ti:1/fs:tf; %declaración del vector de tiempo con rango: desde cero, con incremento de uno sobre la frecuencia y hasta uno x=10*sin(2*pi*50*t)+20*cos(2*pi*100*t); %declaración de la señal senoidal y=x+10*rand(size(t)); %declaración de la señal senoidalcon instrucción Rand para agregar ruido N=length(y); %asignación del tamaño de la señal Y a la variable N f=(fs/N)*(0:N-1)-fs/2; %Se declara la función f que consta de la frecuencia de muestreo entre la amplitud de la señal, por la amplitud de la señal desde 0 hasta la amplitud máxima menos 1, menos la frecuencia de de muestreo entre 2 %se grafican las funciones subplot(2,1,1); %se usa la función subplot para dividir la ventana de grafico como una matriz en este caso será de dos renglones y una columna, y al final ponemos 1 para activar la primera grafica que aparecerá

lab. Sistemas de comunicaciones. p3

  • Upload
    knotlp

  • View
    3

  • Download
    1

Embed Size (px)

DESCRIPTION

previo 3 de lab de sistemas de comunicaciones

Citation preview

Anlisis bsico de seales con Matlab

Para esta prctica se trabaj con Matlab para ver el anlisis de dos seales, donde a una de ellas le agregbamos ruido y mostrbamos sus respectivas graficas.El cdigo con el que se trabajo fue el siguiente:ti=0;%declaracin de variable de tiempo inicial igual a cerotf=1;%declaracin de variable de tiempo final igual a 1fs=2000; %declaracin de la frecuencia de muestreo igual a 2000t=ti:1/fs:tf;%declaracin del vector de tiempo con rango: desde cero, con incremento de uno sobre la frecuencia y hasta uno

x=10*sin(2*pi*50*t)+20*cos(2*pi*100*t);%declaracin de la seal senoidaly=x+10*rand(size(t));%declaracin de la seal senoidalcon instruccin Rand para agregar ruido

N=length(y);%asignacin del tamao de la seal Y a la variable Nf=(fs/N)*(0:N-1)-fs/2;%Se declara la funcin f que consta de la frecuencia de muestreo entre la amplitud de la seal, por la amplitud de la seal desde 0 hasta la amplitud mxima menos 1, menos la frecuencia de de muestreo entre 2 %se grafican las funciones subplot(2,1,1);%se usa la funcin subplot para dividir la ventana de grafico como una matriz en este caso ser de dos renglones y una columna, y al final ponemos 1 para activar la primera grafica que aparecer

plot(1000*t(1:200),x(1:200),'k');%muestra la grafica de la seal X en el dominio del tiempo y se usa `k` para que la grafica sea de color negrotitle('Grafica x(t)');%Nombre que se le da a la graficaxlabel('tiempo(ms)');%identificacin que se le da a l eje Xylabel('amplitud');%identificacin que se le da a l eje Yaxis([0 100 -60 60 ]);%se usa axis para corregir la escala del grafico actual, de cero a 100 en el eje X y de -60 a 60 en el eje Ysubplot(2,1,2);%esta vez se usa subplot con valor final 2 para activar la segunda grafica que se mostraraplot(1000*t(1:200),y(1:200),'k');%muestra la grafica de la seal Y en el dominio del tiempo y se usa `k` para que la grafica sea de color negrotitle('Grafica y(t)');%Nombre que se le da a la graficaxlabel('tiempo(ms)');%identificacin que se le da a l eje Xylabel('amplitud');%identificacin que se le da a l eje Yaxis([0 100 -60 60]);%se corrige la escala del grafico, de cero a 100 en el eje X y de -60 a 60 en el eje Y

Las graficas representan a la misma seal senoidal en el dominio del tiempo, pero a una le agregamos ruido por eso sus comportamientos se muestran diferentes %Obtencion de la transformada x=fft(x)/N;%Usamos fft(); para calcular la transformada de Fourier continua de un vector y N puntos o valores. Para lasy=fft(y)/N;dos seales que generamos.Para obtener la magnitud correspondiente a la teora se considera el factor de ajuste que es 1/N por tratarse de una seal peridica%espectro bilateral xx=fftshift(x);%Usamos la instruccin ffshift( ); para considerar en el espectro frecuencias positivas y negativas en ambasyy=fftshift(y);seales

ARGX=(180/pi)*angle(xx);ARGY=(180/pi)*angle(yy); %Se utiliza ARG para obtener el argumento de la transformada MAGX=abs(xx); % Se utilize MAG para obtener la magnitud de la transformada de la seal MAGY=abs(yy);%Magnitud de la transformada f1=-150;%se declara el nuevo rango de frecuencias para las graficas de los espectros de las sealesf2=150;

ff1=abs(round((f1+fs/2)*length(yy)/fs))+1; %Se obtiene el valor absoluto de las ff2=abs(round((f2+fs/2)*length(yy)/fs))+1; transformadas dentro de las nuevas frecuencias declaradas ms la frecuencia de muestreo por la amplitud de la transformada entre la frecuencia de muestreo

subplot(2,1,1);%Dividimos otra vez la pantalla de grafica y con valor de 1 al final activamos la primera grafica a mostrarplot(f(ff1:ff2),MAGX(ff1:ff2),'k');%graficamos el espectro para la seal original X con color negrotitle('Espectro x(t)');%Nombre que se le da a la graficaxlabel('frecuencia(Hz)');%identificacin que se le da a l eje Xylabel('magnitud x(f)');%identificacin que se le da a l eje Yaxis([f1 f2 0 15]);%se corrige la escala del grafico, de -150 a 150 en el eje X y de cero a 15 en el eje Ysubplot(2,1,2);%usamossubplot con valor final 2 para activar la segunda grafica que se mostraraplot(f(ff1:ff2), MAGY(ff1:ff2),'k');%graficamos el espectro para la seal con ruido Y con color negrotitle('Espectro y(t)');%Nombre que se le da a la graficaxlabel('frecuencia(Hz)');%identificacin que se le da a l eje Xylabel('magnitud y(t)');%identificacin que se le da a l eje Yaxis([f1 f2 0 15]);%se corrige la escala del grafico, de -150 a 150 en el eje X y de cero a 15 en el eje Y

En estas graficas se muestran la magnitud de las transformadas de Fourier de las dos seales, donde se puede ver que el efecto de ruido no se distingue en la segunda seal por lo que las dos graficas son similares

%se obtienen los espectros de fasesubplot(2,1,1);%Dividimos otra vez la pantalla de grafica y con valor de 1 al final activamos la primera grafica a mostrarplot(f(ff1:ff2),ARGX(ff1:ff2),'k');%graficamos el espectro de fase para la seal original X con color negrotitle('Espectro de fase x(t)');%Nombre que se le da a la graficaxlabel('frecuencia (Hz)');%identificacin que se le da a l eje Xylabel('ARGX (f)(grados)');%identificacin que se le da a l eje Yaxis([ f1 f2 -200 200]);%se corrige la escala del grafico, de -150a 150 en el eje X y de -200 a 200 en el eje Y

grid; % usamos grid para dibuja la grilla o cuadricula en la representacin del grficosubplot(2,1,2);%usamossubplot con valor final 2 para activar la segunda grafica que se mostraraplot(f(ff1:ff2),ARGY(ff1:ff2),'k');%graficamos el espectro de fase para la seal original Y con color negrotitle('Espectro de fase t(y)');%Nombre que se le da a la graficaxlabel('frecuencia(Hz)');%identificacin que se le da a l eje Xylabel('ARGY(f)(grados)');%identificacin que se le da a l eje Yaxis([f1 f2 -200 200]);%se corrige la escala del grafico, de -150a 150 en el eje X y de -200 a 200 en el eje Y

grid; % usamos grid para dibuja la grilla o cuadricula en la representacin del grfico

Aqu se muestra las graficas de los espectros de fase de las dos seales, donde en la primera distinguimos las transiciones de la frecuencia de +-50 y +-100 Hz y en la segunda no se puede hacer alguna distincin debido al ruido de la seal.%FIN del programa