Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
See discussions, stats, and author profiles for this publication at: https://www.researchgate.net/publication/271839748 DIGITAL MODULATIONS IN MATLAB Technical Report · October 2014 CITATIONS 0 READS 11,110 1 author: Rogelio Rafael Salinas Urtiz Universidad de Colima 1 PUBLICATION 0 CITATIONS SEE PROFILE All content following this page was uploaded by Rogelio Rafael Salinas Urtiz on 05 February 2015. The user has requested enhancement of the downloaded file. https://www.researchgate.net/publication/271839748_DIGITAL_MODULATIONS_IN_MATLAB?enrichId=rgreq-44b39e7d5147c66467c6220e3a743272-XXX&enrichSource=Y292ZXJQYWdlOzI3MTgzOTc0ODtBUzoxOTM1NDQ2ODM2MTQyMTFAMTQyMzE1NjA1NjM1Mg%3D%3D&el=1_x_2&_esc=publicationCoverPdf https://www.researchgate.net/publication/271839748_DIGITAL_MODULATIONS_IN_MATLAB?enrichId=rgreq-44b39e7d5147c66467c6220e3a743272-XXX&enrichSource=Y292ZXJQYWdlOzI3MTgzOTc0ODtBUzoxOTM1NDQ2ODM2MTQyMTFAMTQyMzE1NjA1NjM1Mg%3D%3D&el=1_x_3&_esc=publicationCoverPdf https://www.researchgate.net/?enrichId=rgreq-44b39e7d5147c66467c6220e3a743272-XXX&enrichSource=Y292ZXJQYWdlOzI3MTgzOTc0ODtBUzoxOTM1NDQ2ODM2MTQyMTFAMTQyMzE1NjA1NjM1Mg%3D%3D&el=1_x_1&_esc=publicationCoverPdf https://www.researchgate.net/profile/Rogelio-Salinas-Urtiz-2?enrichId=rgreq-44b39e7d5147c66467c6220e3a743272-XXX&enrichSource=Y292ZXJQYWdlOzI3MTgzOTc0ODtBUzoxOTM1NDQ2ODM2MTQyMTFAMTQyMzE1NjA1NjM1Mg%3D%3D&el=1_x_4&_esc=publicationCoverPdf https://www.researchgate.net/profile/Rogelio-Salinas-Urtiz-2?enrichId=rgreq-44b39e7d5147c66467c6220e3a743272-XXX&enrichSource=Y292ZXJQYWdlOzI3MTgzOTc0ODtBUzoxOTM1NDQ2ODM2MTQyMTFAMTQyMzE1NjA1NjM1Mg%3D%3D&el=1_x_5&_esc=publicationCoverPdf https://www.researchgate.net/institution/Universidad_de_Colima2?enrichId=rgreq-44b39e7d5147c66467c6220e3a743272-XXX&enrichSource=Y292ZXJQYWdlOzI3MTgzOTc0ODtBUzoxOTM1NDQ2ODM2MTQyMTFAMTQyMzE1NjA1NjM1Mg%3D%3D&el=1_x_6&_esc=publicationCoverPdf https://www.researchgate.net/profile/Rogelio-Salinas-Urtiz-2?enrichId=rgreq-44b39e7d5147c66467c6220e3a743272-XXX&enrichSource=Y292ZXJQYWdlOzI3MTgzOTc0ODtBUzoxOTM1NDQ2ODM2MTQyMTFAMTQyMzE1NjA1NjM1Mg%3D%3D&el=1_x_7&_esc=publicationCoverPdf https://www.researchgate.net/profile/Rogelio-Salinas-Urtiz-2?enrichId=rgreq-44b39e7d5147c66467c6220e3a743272-XXX&enrichSource=Y292ZXJQYWdlOzI3MTgzOTc0ODtBUzoxOTM1NDQ2ODM2MTQyMTFAMTQyMzE1NjA1NjM1Mg%3D%3D&el=1_x_10&_esc=publicationCoverPdf Universidad de Colima Facultad de Telemática Colima, col. A 24 de Octubre del 2014 Gráficas de Modulaciones Digitales Comunicaciones Digitales Profr. Ismael Amezcua Valdovinos Sem/Gpo. 5°G INGENIERÍA EN TELEMÁTICA ALUMNO SALINAS URTIZ ROGELIO RAFAEL Facultad de Telemática * Comunicaciones Digitales * Gráficas de Modulaciones de Pulsos Digitales Página 2 de 12 Introducción Dentro de los temas abarcados en este segundo parcial fueron las modulaciones digitales entre ellas encontramos tales como: PAM, PWM, PPM, PCM, ASK, FSK, PSK y QAM. Como primera instancia fue la investigación de su funcionamiento, análisis matemático y representación. Por lo tanto ahora se debe realizar una ejemplificación mediante un programa de análisis de señales como Octave o Matlab para poder demostrar cómo se pueden realizar algunas de estas modulaciones en base a ciertos valores de entrada. En mi caso seleccioné el software Matlab dado a su amplia utilización y más amplia cantidad de fuentes de información sobre el mismo. Desarrollo Modulación ASK Es una modulación de amplitud donde la señal moduladora, los datos, son digitales. Los dos valores binarios se representan con dos amplitudes diferentes y es usual que una de las dos amplitudes sea cero; es decir uno de los dígitos binarios se representa mediante la presencia de la señal portadora a amplitud constante, y el otro dígito se representa mediante la ausencia de la señal portadora. En este caso la señal moduladora 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. Este tipo de modulación se conoce también con el nombre de “modulación OOK (On-Off Keying), donde A=0 volts Facultad de Telemática * Comunicaciones Digitales * Gráficas de Modulaciones de Pulsos Digitales Página 3 de 12 function ASK(g,f) %Modulación ASK %Ejemplo: %ASK([0 0 1 1 0],2) %La función para modulación ASK recibe 2 parámetros %Recibe un vector de elementos en binarios para la señal de entrada %Y recibe un valor para la frecuencia if nargin > 2 %%Número de argumentos de entrada de la función en este caso "g" y "f" se evalua si son más de 2 error('Demasiados argumentos de entrada') elseif nargin==1 %%En caso de que solo se coloque el argumento de la entrada en binario el valor de la frecuencia valdrá 1 f=1; end if f<1; %%Si la f es menos que 1 no se puede trabajar dado que no es un valor visiblemente válido para una frecuencia error('Frecuencia debe ser mayor que 1'); end t=0:2*pi/99:2*pi; %%Aquí se maneja como "T" el Periodo de nuestra señal cp=[];sp=[]; mod=[];mod1=[];bit=[]; for n=1:length(g); %%Con este ciclo for se recorre desde 1 hasta "n" elementos que tenga nuestro vector de la señal binaria de entrada para generar modulación if g(n)==0; %%Si el valor es cero entonces die=ones(1,100); %% Si es cero se mantienen los valores La función "ONES" nos genera un vector 2D de todos unos en este caso de 1-by-100 se=zeros(1,100); %% Con la función ZEROS no genera un vector 2D de ceros todos en este caso 1-by-100 else g(n)==1; die=2*ones(1,100); %amplitud 2 para un uno de la secuencia de entrada (En dado caso de que se se=ones(1,100); %amplitud 2 para un cero de la secuencia de entrada end %%Todo este proceso se realiza con cada iteración dado que va ligado con cada uno de los bits de entrada c=sin(f*t); %% Aquí se nos genera la señal modulada en ASK cp=[cp die]; %%Aquí es donde se nos localizan los unos y ceros evaluados mod=[mod c]; %%Aquí se ubica la modulación en base a la señal bit=[bit se]; end ask=cp.*mod; %%Se realiza el producto punto de vectores en CP donde están los ceros y unos y la modulación %%Con subplot generamos nuestro plano en este caso los 3 valores nos %%indican las filas, columnas y puntos eje (cruce) o "axes" %%En el plot nos genera un plano de 2 dimensiones en los ejes x,y %%Grid on nos permite mostrar el cuadriculado en la imagen de gráfica %%Se coloca un título a la página para identificarla %%El comando AXIS nos permite modificar los ejes y apariencia de la gráfica %%para el primer valor en este caso CERO es el valor mínimo en "x" %%El 100*length(g) es como valor máximo de "x" que todo ira en proporción %%de la cantidad de valores que le demos de entrada %%Los otros 2 son los valores mínimos y máximos respectivamente del eje "y" subplot(2,1,1);plot(bit,'LineWidth',1.5); grid on; title('Señal Binaria'); axis([0 100*length(g) -3 3]); Facultad de Telemática * Comunicaciones Digitales * Gráficas de Modulaciones de Pulsos Digitales Página 4 de 12 subplot(2,1,2);plot(ask,'LineWidth',1.5);grid on; title('Modulación ASK'); axis([0 100*length(g) -3 3]); Diferentes resultados arrojados Datos de entrada g = [1 1 0 1 0 1] f = 2 Fueron 6 bits de entrada entonces el eje “x” se expande desde 100 * 6 que es la cantidad de bits entonces el valor máximo es 600 La altura mínima es -3 y la máxima es 3 que se ve reflejada. El valor de Grid On nos permite visualizarla cuadrícula punteada. La parte del comando axis se ve reflejado en los ejes Facultad de Telemática * Comunicaciones Digitales * Gráficas de Modulaciones de Pulsos Digitales Página 5 de 12 Datos de entrada g = [1 1 0 1 0 1] f = 3 El valor de “f” nos indica la frecuencia que se está manejando en este caso es de 3 ciclos como tal. Datos de entrada g = [1 1 0 1 0 1 1 0 0 1 0] f = 1 Se introduce una señal de 11 términos con un frecuencia de 1 Para los “1” en binario queda de 2 la amplitud Para los de “0” queda de 1 Facultad de Telemática * Comunicaciones Digitales * Gráficas de Modulaciones de Pulsos Digitales Página 6 de 12 Modulación PSK La modulación por desplazamiento de fase o PSK es una forma de modulación angular que consiste en hacer variar la fase de portadora entre un número de valores discretos. Transmitir por desplazamiento en fase (PSK) es otra forma de modulación angular, modulación digital de amplitud constante. El PSK es similar a la modulación en fase convencional, excepto que con PSK la señal de entrada es una señal digital binaria y son posibles un número limitado de fases de salida Desplazamiento que se da en base al valor de cambio Facultad de Telemática * Comunicaciones Digitales * Gráficas de Modulaciones de Pulsos Digitales Página 7 de 12 function PSK(g,f) %Modulación PSK %Ejemplo para ingresar datos: %PSK([1 0 1 1 0],2) %La función para modulación PSK recibe 2 parámetros %Recibe un vector de elementos en binarios para la señal de entrada %Y recibe un valor para la frecuencia if nargin > 2 %%Número de argumentos de entrada de la función en este caso "g" y "f" se evalua si son más de 2 error('Demasiados argumento de entrada'); elseif nargin==1 %%En caso de que solo se coloque el argumento de la entrada en binario el valor de la frecuencia valdrá 1 f=1; end if f<1; %%Si la f es menos que 1 no se puede trabajar dado que no es un valor visiblemente válido para una frecuencia error('Frecuencia tiene que se mayor que 1'); end t=0:2*pi/99:2*pi; %%Aquí se maneja como "T" el Periodo de nuestra señal cp=[];sp=[]; mod=[];mod1=[];bit=[]; for n=1:length(g); %%Con este ciclo for se recorre desde 1 hasta "n" elementos que tenga nuestro vector de la señal binaria de entrada para generar modulación if g(n)==0; %%Si el valor es cero entonces die=-ones(1,100); %%Cambio de fase por entrada en cero (Maneja la función ONES en negativa por los 180° de cambio de fase) se=zeros(1,100); %%Se utiliza la función ZEROS explicada en ASK else g(n)==1; die=ones(1,100); %%Cambio de fase por entrada en uno se=ones(1,100); end %%Proceso generado de manera iterativa con el FOR c=sin(f*t); %señal para modular cp=[cp die]; %%Aquí es donde se nos localizan los unos y ceros evaluados mod=[mod c]; %%Aquí se ubica la modulación en base a la señal bit=[bit se]; end bpsk=cp.*mod; %%Se realiza el producto punto de vectores en CP donde están los ceros y unos y la modulación %%El mostrado de las gráficas sigue la misma regla en comandos que %%con las de ASK manejando el subplot, grid on y el axis para %%Adaptación del plano a necesidades. subplot(2,1,1);plot(bit,'LineWidth',1.5);grid on; title('Señal Binaria'); axis([0 100*length(g) -3 3]); subplot(2,1,2);plot(bpsk,'LineWidth',1.5);grid on; title('Modulación PSK'); axis([0 100*length(g) -3 3]); Facultad de Telemática * Comunicaciones Digitales * Gráficas de Modulaciones de Pulsos Digitales Página 8 de 12 Diferentes resultados arrojados Datos de entrada g = [1 1 0 0 1 0 1] f = 2 El valor de “f” en este caso es de 2 por lo tanto vemos 2 ciclos ya que es su frecuencia de ocurrencia. En las marcas rojas podemos ver como al darse el cambio de valor binario ya sea de uno a cero o viceversa se puede apreciar el resultado afectado en la modulación por fase. Datos de entrada g = [1 0 1 0 0 1] f = 3 f Facultad de Telemática * Comunicaciones Digitales * Gráficas de Modulaciones de Pulsos Digitales Página 9 de 12 Modulación FSK Es un tipo de modulación de frecuencia cuya señal modulante es un flujo de pulsos binarios que varía entre valores predeterminados. En los sistemas de modulación por salto de frecuencia. La señal moduladora hace variar la frecuencia de la portadora, de modo que la señal modulada resultante codifica la información asociándola a valores de frecuencia diferentes Señal Generada Facultad de Telemática * Comunicaciones Digitales * Gráficas de Modulaciones de Pulsos Digitales Página 10 de 12 function FSK(g,f0,f1) %FSK modulación %Ejemplo:(f0 y f1 deben ser enteros) %FSK([1 0 1 1 0],1,2) if nargin > 3 %%Se evalua que realmente se hayan introducido los 3 parámetros de la función error('Demasiados argumentos de entrada') elseif nargin==1 %%Si solamente se ingresa la cadena de entrada en binario los valores se dan por defecto a 1 y 2 f0=1;f1=2; elseif nargin==2 %Si se introducen 2 parámetros el tercero se vuelve 2 (f1) f1=2; end %%Se redondean al valor más próximo cada unas de las frecuencias ingresadas %%Y se les resta su valor entero original val0=ceil(f0)-(f0); val1=ceil(f1)-(f1); if val0 ~=0 || val1 ~=0; %%Se evalua que los valores sean enteros error('Frecuencia debe ser un entero'); end if f0<1 || f1<1; %%Se verifica que las frecuencias sean mayores de 1 error('Frecuencia debe ser mayor que 1'); end t=0:2*pi/99:2*pi; %%Aquí se maneja como "T" el Periodo de nuestra señal cp=[];sp=[]; mod=[];mod1=[];bit=[]; for n=1:length(g); %%Con este ciclo for se recorre desde 1 hasta "n" elementos que tenga nuestro vector de la señal binaria de entrada para generar modulación if g(n)==0;%%Si el valor es cero entonces die=ones(1,100); %% Si es cero se mantienen los valores La funcion "ONES" nos genera un vector 2D de todos unos en este caso de 1-by-100 c=sin(f0*t); %%señal para modular se=zeros(1,100); %% Con la función ZEROS no genera un vector 2D de ceros todos en este caso 1-by-100 else g(n)==1; %%En caso de que sea 1 se obtiene la señal para modular en base a la 2da frecuencia obtenida die=ones(1,100); c=sin(f1*t); se=ones(1,100); end %%Proceso generado de manera iterativa con el FOR cp=[cp die]; %%Aquí es donde se nos localizan los unos y ceros evaluados mod=[mod c]; %%Aquí se ubica la modulación en base a la señal bit=[bit se]; end ask=cp.*mod; %%Se realiza el producto punto de vectores en CP donde están los ceros y unos y la modulación Facultad de Telemática * Comunicaciones Digitales * Gráficas de Modulaciones de Pulsos Digitales Página 11 de 12 %%El mostrado de las gráficas sigue la misma regla en comandos que %%con las de ASK manejando el subplot, grid on y el axis para %%Adaptación del plano a necesidades. subplot(2,1,1);plot(bit,'LineWidth',1.5);grid on; title('Señal Binaria'); axis([0 100*length(g) -3 3]); subplot(2,1,2);plot(ask,'LineWidth',1.5);grid on; title('Modulación FSK'); axis([0 100*length(g) -3 3]); Diferentes resultados arrojados Datos de entrada g = [1 1 0 0 1 0 1] f1 = 1 f2 = 3 Para la modulación por cambio de frecuencia vemos que tenemos 1 y 3 para los valores negativos se da el cambio de frecuencia a “1” y cuando es positivo la entrada se da el cambio a “3”. f2 f1 Facultad de Telemática * Comunicaciones Digitales * Gráficas de Modulaciones de Pulsos Digitales Página 12 de 12 Datos de entrada g = [0 1 1 0 1 0] f1 = 2 f2 = 4 Aquíse puede apreciar mejor manejando frecuencias de 2 y 4 podemo ver los cambios en base a las entradas en 1 y 0 de la señal binaria. Conclusión Este trabajo nos ayudó para poder así ir manejando un software para señales ya que será de utilidad para la realización del proyecto integrador tanto en la asignatura de comunicaciones digitales como en la de análisis de señales. Así mismo esto nos ayuda a conocer mejor las distintas modulaciones digitales que hay como se ven ya en un graficador. View publication stats https://www.researchgate.net/publication/271839748
Compartir