Está en la página 1de 13

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 READS

0 3,755

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.


Universidad de Colima
Facultad de Telemática

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

Colima, col. A 24 de Octubre del 2014


Facultad de Telemática
* Comunicaciones Digitales *

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

Gráficas de Modulaciones de Pulsos Digitales Página 2 de 12


Facultad de Telemática
* Comunicaciones Digitales *

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]);

Gráficas de Modulaciones de Pulsos Digitales Página 3 de 12


Facultad de Telemática
* Comunicaciones Digitales *

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

La parte del comando axis


se ve reflejado en los ejes

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 visualizar la cuadrícula punteada.

Gráficas de Modulaciones de Pulsos Digitales Página 4 de 12


Facultad de Telemática
* Comunicaciones Digitales *

Datos de entrada
g = [1 1 0 1 0 1]
f=3

Para los “1” en


binario queda
de 2 la
amplitud
Para los de “0”
queda de 1

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

Gráficas de Modulaciones de Pulsos Digitales Página 5 de 12


Facultad de Telemática
* Comunicaciones Digitales *

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

Gráficas de Modulaciones de Pulsos Digitales Página 6 de 12


Facultad de Telemática
* Comunicaciones Digitales *

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]);

Gráficas de Modulaciones de Pulsos Digitales Página 7 de 12


Facultad de Telemática
* Comunicaciones Digitales *

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

Gráficas de Modulaciones de Pulsos Digitales Página 8 de 12


Facultad de Telemática
* Comunicaciones Digitales *

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

Gráficas de Modulaciones de Pulsos Digitales Página 9 de 12


Facultad de Telemática
* Comunicaciones Digitales *

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

Gráficas de Modulaciones de Pulsos Digitales Página 10 de 12


Facultad de Telemática
* Comunicaciones Digitales *

%%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

f2 f1

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”.

Gráficas de Modulaciones de Pulsos Digitales Página 11 de 12


Facultad de Telemática
* Comunicaciones Digitales *

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.

Gráficas de Modulaciones de Pulsos Digitales Página 12 de 12

View publication stats

También podría gustarte