INF-MCU UNIVERSIDAD FRANCISCO DE PAULA SANTANDER PROGRAMA DE INGENIERÍA ELECTRÓNICA SISTEMAS DE COMUNICACIONES II Versión: 1.0 Página: 1 de 4 LABORATORIO MODULACION DIGITAL “ASK, FSK, PSK” Gustavo Hernández 1161026 José Daniel Albarracín 1161055 I. INTRODUCCION La industria de las comunicaciones electrónicas ha venido reemplazando poco a poco las técnicas convencionales analógicas de modulación, como son AM (modulación de amplitud), FM (modulación de frecuencia) y PM (modulación de fase) por sistemas digitales de comunicaciones. Esto, debido a las ventajas que presenta la modulación digital: mayor inmunidad al ruido, sencillez de procesamiento, alta seguridad de los datos y multicanalización. En esencia las modulaciones digitales constan en el procesamiento de algunos parámetros de una onda portadora en función a otra señal conocida generalmente como onda moduladora la cual es una señal digital binaria (de “1” y “0”) que porta la información, para que la misma sea transmitida por un canal. Dentro de este tipo de modulaciones se pueden considerar entre las más resaltantes ASK, FSK y PSK para los sistemas de comunicación digitales. II. OBJETIVO GENERAL Se tiene como objetivo realizar simulaciones en matlab para poder conocer y entender más sobre los diferentes tipos de modulaciones digitales, puntualmente sobre ASK, PSK y FSK. III. OBJETIVOS ESPECIFICO Realizar la programación script en Matlab para las modulaciones digitales ASK, PSK y FSK. Analizar y entender las simulaciones sobre los diferentes tipos de modulación ASK, PSK y FSK. Analizar las gráficas resultantes para entender el comportamiento de cada modulación. Realizar comparaciones de las gráficas resultantes de las modulaciones ASK, PSK y FSK. IV. DESARROLLO DEL INFORME MODULACION ASK En la modulación digital de amplitud (ASK), la amplitud de la portadora sinusoidal se conmuta entre dos valores en respuesta al código PCM. Por ejemplo, el valor 0 se puede transmitir como una amplitud de A volts, mientras que el estado 1 se transmite como una señal sinusoidal de amplitud de B volts. La señal ASK resultante consiste en impulsos modulados, llamados marcas, que representan el estado 1, y espacios que representan el estado 0. Función: ASK([Tren de pulsos binarios],Frecuencia) Ejemplo: ASK([1 0 1 1 0 1 0 0 0 1 ],2) INF-MCU UNIVERSIDAD FRANCISCO DE PAULA SANTANDER PROGRAMA DE INGENIERÍA ELECTRÓNICA SISTEMAS DE COMUNICACIONES II Versión: 1.0 Página: 2 de 4 Código Matlab: function ASK(g,f) %Modulación ASK %Ejemplo: %Ask([1 0 1 1 0 1 0 0 0 1 ],2) if nargin > 2 error('Demasiados argumentos de entrada' ) %%Determina el número de argumentos de entrada o en una función definida elseif nargin==1 %%por el usuario o en una función interna. f=1; end if f<1; error('Frecuencia debe ser mayor que 1' ); %%Verifica que la frecuencia ingresada no sea menos a 1. end t=0:2*pi/99:2*pi; %%Definimos el periodo. cp=[];sp=[]; mod=[];mod1=[];bit=[]; for n=1:length(g); %Definimos un For para que evalue cada columna del dato ingresado. if g(n)==0;%%Apartir de aquí empezamos a verificar si el dato leido es un 0 o un 1 die=ones(1,100);%% y vamos armando la grafica del tren de pulsos y tambien la de la Ask resultante se=zeros(1,100); else g(n)==1;%%Cuando es un 1 multiplicamos la amplitud por 2 die=2*ones(1,100); se=ones(1,100); end c=sin(f*t);%%Definimos una senoidal cp=[cp die];%%Almanaremos cada valor evaluado de cada ciclo en un vector en las proximas lineas de codigo mod=[mod c]; bit=[bit se]; end ask=cp.*mod;%Armamos la dada representativa de la ASK %GRAFICAMOS LAS 2 SEÑALES subplot(2,1,1);plot(bit, 'LineWidth',1.5);grid on; title('Señal Binaria'); axis([0 100*length(g) -2.5 2.5]); subplot(2,1,2);plot(ask, 'LineWidth',1.5);grid on; title('Modulación ASK'); axis([0 100*length(g) -2.5 2.5]); Figura 1. Grafica de la señal ASK MODULACION PSK En la modulación BPSK la fase de la portadora conmuta de acuerdo al estado de la señal binaria. En este tipo de modulación el desfase es de 180º si se transmite un 0 y de 0º si se transmite un 1 Función: PSK([Tren de pulsos binarios],Frecuencia) Ejemplo: PSK([1 0 0 1 0 1 1 0 1 1],2) Código Matlab: function PSK(g,f) %Modulación PSK %Ejemplo para ingresar datos: %PSK([1 0 0 1 0 1 1 0 1 1],2) if nargin > 2 %%Determina el número de argumentos de entrada o en una función definida error('Demasiados argumento de entrada' ); %%por el usuario o en una función interna. elseif nargin==1 f=1; end if f<1; error('Frecuencia tiene que se mayor que 1' ); %%Verifica que la frecuencia ingresada no sea menos a 1. INF-MCU UNIVERSIDAD FRANCISCO DE PAULA SANTANDER PROGRAMA DE INGENIERÍA ELECTRÓNICA SISTEMAS DE COMUNICACIONES II end t=0:2*pi/99:2*pi; %Establecemos el periodo cp=[];sp=[]; mod=[];mod1=[];bit=[]; for n=1:length(g);%Definimos un For para que evalue cada columna del dato ingresado. if g(n)==0; die=-ones(1,100); %Modulante %% Invertimos la face de la señal la phase de la señal se=zeros(1,100); %Señal else g(n)==1; die=ones(1,100); %Modulante se=ones(1,100); %Señal end c=sin(f*t);%%Definimos una senoidal cp=[cp die];%%Almanaremos cada valor evaluado de cada ciclo en un vector en las proximas lineas de codigo mod=[mod c]; bit=[bit se]; end bpsk=cp.*mod;%Armamos la dada representativa de la PSK %GRAFICAMOS LAS 2 SEÑALES subplot(2,1,1);plot(bit, 'LineWidth',1.5);grid on; title('Señal Binaria'); axis([0 100*length(g) -2.5 2.5]); subplot(2,1,2);plot(bpsk, 'LineWidth',1.5);grid on; title('Modulación PSK'); axis([0 100*length(g) -2.5 2.5]); Figura 2. Grafica de la señal PSK Versión: 1.0 Página: 3 de 4 MODULACION FSK En la modulación FSK la frecuencia de la portadora cambia de acuerdo al valor de la modulante. Esto es, para un 0 se tendrá una frecuencia f0 y para un 1 se tendrá una frecuencia f1. Función: PSK([Tren de Frecuencia2) pulsos binarios], Frecuencia1, Ejemplo: PSK([1 0 0 1 0 1 1 0 1 1], 1, 2) Código Matlab: function FSK(g,f0,f1) %FSK modulación %Ejemplo:(f0 y f1 deben ser enteros) %FSK([1 0 0 1 0 1 1 0 1 1],1,2) if nargin > 3 %%Determina el número de argumentos de entrada o en una función definida error('Demasiados argumentos de entrada' ) elseif nargin==1 f0=1;f1=2; elseif nargin==2 f1=2; end val0=ceil(f0)-(f0);%% El comando ceil redondea cada elemento del Xnúmero entero más cercano mayor val1=ceil(f1)-(f1); %%o igual que ese elemento. if val0 ~=0 || val1 ~=0; error('Frecuencia debe ser un entero' );%%Se verifica que las frecuencias sean enteros. end if f0<1 || f1<1; error('Frecuencia debe ser mayor que 1' ); %%Verifica que la frecuencia ingresada no sea menos a 1. end t=0:2*pi/99:2*pi; %%Definimos el periodo. cp=[];sp=[];%% Inicializamos los vectores que almacenaran las variables. mod=[];mod1=[];bit=[]; INF-MCU UNIVERSIDAD FRANCISCO DE PAULA SANTANDER PROGRAMA DE INGENIERÍA ELECTRÓNICA SISTEMAS DE COMUNICACIONES II for n=1:length(g);%Definimos un For para que evalue cada columna del dato ingresado. if g(n)==0; die=ones(1,100);%para 0 mantiene la frecuencia f0 y para 1 varia la frecuencia con f1. c=sin(f0*t);%%Definimos una senoidal se=zeros(1,100); else g(n)==1; die=ones(1,100); c=sin(f1*t);%%Definimos una senoidal se=ones(1,100); end cp=[cp die];%Almanaremos cada valor evaluado de cada ciclo en un vector en las proximas lineas de codigo. mod=[mod c]; bit=[bit se]; end fsk=cp.*mod; %%Armamos la dada representativa de la PSK %GRAFICAMOS LAS 2 SEÑALES subplot(2,1,1);plot(bit, 'LineWidth',1.5);grid on; title('Señal Binaria'); axis([0 100*length(g) -2.5 2.5]); subplot(2,1,2);plot(fsk, 'LineWidth',1.5);grid on; title('Modulación FSK'); axis([0 100*length(g) -2.5 2.5]); Figura 3. Grafica de la señal SK Versión: 1.0 Página: 4 de 4 V. CONCLUSIONES