Documentos de Académico
Documentos de Profesional
Documentos de Cultura
RESUMEN._ El presente artculo tiene como fin simular algunos modelos de modulacin
digital en Matlab 7.1 como son ASK, OOK, FSK, QPSK, 8PSK. Las funciones tendrn
como parmetro de ingreso el vector de bits y la frecuencia de la portadora. Asimismo,
programar una interfaz grfica (GUIDE) que genere bits aleatorios (hasta 10) para su
posterior modulacin.
INTRODUCCIN
La industria de las comunicaciones electrnicas ha venido reemplazando poco a poco las
tcnicas convencionales analgicas de modulacin, como son AM (modulacin de
amplitud), FM (modulacin de frecuencia) y PM (modulacin de fase) por sistemas
digitales de comunicaciones. Esto, debido a las ventajas que presenta la modulacin digital:
mayor inmunidad al ruido, sencillez de procesamiento, alta seguridad de los datos y
multicanalizacin.
Algunas de las modulaciones digitales son: ASK (amplitude shift keying), OOK (On-Off
keying), FSK (frequency shift keying), BPSK (binary phase shift keying), QPSK
(quadrature phase shift keying), 8PSK (8 phase shift keying).
En los sistemas de radio digital las seales de modulacin y demodulacin son pulsos
digitales.
Funcin askd(g,f) y ookd(g,f)
En la modulacin digital de amplitud (ASK), la amplitud de la portadora sinusoidal se
conmuta entre dos valores en respuesta al cdigo PCM. Por ejemplo, el valor 0 se puede
transmitir como una amplitud de A volts, mientras que el estado 1 se transmite como una
seal sinusoidal de amplitud de B volts. La seal ASK resultante consiste en impulsos
modulados, llamados marcas, que representan el estado 1, y espacios que representan el
estado 0. Este tipo de modulacin se conoce tambin con el nombre de modulacin OOK
(On-Off Keying), donde A=0 volts [2].
Las funciones askd y ookd permiten ingresar un vector binario g y la frecuencia f de la
portadora. Estas funciones se muestran a continuacin:
function askd(g,f)
%Modulation ASK
%Example:
%askd([1 0 1 1 0],2)
if nargin > 2
error('Too many input arguments')
elseif nargin==1
f=1;
end
if f<1;
error('Frequency must be bigger than 1');
end
t=0:2*pi/99:2*pi;
cp=[];sp=[];
mod=[];mod1=[];bit=[];
for n=1:length(g);
if g(n)==0;
die=ones(1,100);
se=zeros(1,100);
else g(n)==1;
die=2*ones(1,100);
se=ones(1,100);
end
c=sin(f*t);
cp=[cp die];
mod=[mod c];
bit=[bit se];
end
ask=cp.*mod;
subplot(2,1,1);plot(bit,'LineWidth',1.5);grid on;
title('Binary Signal');
axis([0 100*length(g) -2.5 2.5]);
subplot(2,1,2);plot(ask,'LineWidth',1.5);grid on;
title('ASK modulation');
axis([0 100*length(g) -2.5 2.5]);
function ookd(g,f)
%Modulation OOK
% Example:
% ookd([1 1 0 1 0],2)
if nargin > 2
error('Too many input arguments');
elseif nargin==1
f=1;
end
if f<1;
error('Frequency must be bigger than 1');
end
t=0:2*pi/99:2*pi;
cp=[];sp=[];
mod=[];mod1=[];bit=[];
for n=1:length(g);
if g(n)==0;
die=zeros(1,100); %Modulante
se=zeros(1,100); %Seal
else g(n)==1;
die=ones(1,100);
%Modulante
se=ones(1,100);
%Seal
end
c=sin(f*t);
cp=[cp die];
mod=[mod c];
bit=[bit se];
end
ook=cp.*mod;
subplot(2,1,1);plot(bit,'LineWidth',1.5);grid on;
title('Binary Signal');
axis([0 100*length(g) -2.5 2.5]);
subplot(2,1,2);plot(ook,'LineWidth',1.5);grid on;
title('OOK modulation');
axis([0 100*length(g) -2.5 2.5]);
Funcin bpskd(g,f)
En la modulacin BPSK la fase de la portadora conmuta de acuerdo al estado de la seal
binaria. En este tipo de modulacin el desfase es de 180 si se transmite un 0 y de 0o si se
transmite un 1.
La funcin bpskd se muestra a continuacin:
function bpskd(g,f)
%Modulation BPSK
%Example:
%bpskd([1 0 1 1 0],2)
if nargin > 2
error('Too many input arguments');
elseif nargin==1
f=1;
end
if f<1;
error('Frequency must be bigger than 1');
end
t=0:2*pi/99:2*pi;
cp=[];sp=[];
mod=[];mod1=[];bit=[];
for n=1:length(g);
if g(n)==0;
die=-ones(1,100); %Modulante
se=zeros(1,100); %Seal
else g(n)==1;
die=ones(1,100);
%Modulante
se=ones(1,100);
%Seal
end
c=sin(f*t);
cp=[cp die];
mod=[mod c];
bit=[bit se];
end
bpsk=cp.*mod;
subplot(2,1,1);plot(bit,'LineWidth',1.5);grid on;
title('Binary Signal');
axis([0 100*length(g) -2.5 2.5]);
subplot(2,1,2);plot(bpsk,'LineWidth',1.5);grid on;
title('ASK modulation');
axis([0 100*length(g) -2.5 2.5]);
Funcin fskd(g,f0,f1)
En la modulacin 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.
La funcin que simula la modulacin fsk se muestra a continuacin:
function fskd(g,f0,f1)
%FSK modulation
%Example:(f0 and f1 must be integers)
%fskd([1 0 1 1 0],1,2)
if nargin > 3
error('Too many input arguments')
elseif nargin==1
f0=1;f1=2;
elseif nargin==2
f1=2;
end
val0=ceil(f0)-f0;
val1=ceil(f1)-f1;
if val0 ~=0 || val1 ~=0;
error('Frequency must be an integer');
end
if f0<1 || f1<1;
error('Frequency must be bigger than 1');
end
t=0:2*pi/99:2*pi;
cp=[];sp=[];
mod=[];mod1=[];bit=[];
for n=1:length(g);
if g(n)==0;
die=ones(1,100);
c=sin(f0*t);
se=zeros(1,100);
else g(n)==1;
die=ones(1,100);
c=sin(f1*t);
se=ones(1,100);
end
cp=[cp die];
mod=[mod c];
bit=[bit se];
end
ask=cp.*mod;
subplot(2,1,1);plot(bit,'LineWidth',1.5);grid on;
title('Binary Signal');
axis([0 100*length(g) -2.5 2.5]);
subplot(2,1,2);plot(ask,'LineWidth',1.5);grid on;
title('FSK modulation');
axis([0 100*length(g) -2.5 2.5]);
Funcin qpskd(g,f)
Para la modulacin QPSK, se tiene un smbolo (fase) por cada dos bits. La siguiente
funcin simula esta modulacin.
function qpskd(g,f)
%Modulation QPSK
%Example: g is a binay vector; f is the carrier frequency.
%qpskd([1 0 1 1 0 0],2)
if nargin > 2
error('Too many input arguments');
elseif nargin==1
f=1;
end
if f<1;
error('Frequency must be bigger than 1');
end
%*-*-*-*-*-*
l=length(g);
r=l/2;
re=ceil(r);
val=re-r;
if val~=0;
error('Please insert a vector divisible for 2');
end
%*-*-*-*-*-*
t=0:2*pi/99:2*pi;
cp=[];sp=[];
mod=[];mod1=[];bit=[];
for n=1:2:length(g);
if g(n)==0 && g(n+1)==1;
die=sqrt(2)/2*ones(1,100);
die1=-sqrt(2)/2*ones(1,100);
se=[zeros(1,50) ones(1,50)];
elseif g(n)==0 && g(n+1)==0;
die=-sqrt(2)/2*ones(1,100);
die1=-sqrt(2)/2*ones(1,100);
se=[zeros(1,50) zeros(1,50)];
elseif g(n)==1 && g(n+1)==0;
die=-sqrt(2)/2*ones(1,100);
die1=sqrt(2)/2*ones(1,100);
se=[ones(1,50) zeros(1,50)];
elseif g(n)==1 && g(n+1)==1;
die=sqrt(2)/2*ones(1,100);
die1=sqrt(2)/2*ones(1,100);
se=[ones(1,50) ones(1,50)];
end
c=cos(f*t);
s=sin(f*t);
cp=[cp die]; %Amplitude cosino
sp=[sp die1]; %Amplitude sino
mod=[mod c];
end
bpsk=cp.*mod+sp.*mod1;
subplot(2,1,1);plot(bit,'LineWidth',1.5);grid on;
title('Binary Signal')
axis([0 50*length(g) -1.5 1.5]);
subplot(2,1,2);plot(bpsk,'LineWidth',1.5);grid on;
title('QPSK modulation')
axis([0 50*length(g) -1.5 1.5]);
Funcin epsk(g,f)
function epsk(g,f)
%Modulation 8PSK
%Example: g is a binay vector; f is the carrier frequency.
%epsk([1 0 1 1 1 0],2)
if nargin > 2
error('Too many input arguments');
elseif nargin==1
f=1;
end
if f<1;
error('Frequency must be bigger than 1');
end
%*-*-*-*-*-*
l=length(g);
r=l/3;
re=ceil(r);
val=re-r;
if val~=0;
t=0:2*pi/149:2*pi;
cp=[];sp=[];
mod=[];mod1=[];bit=[];
for n=1:3:length(g);
if g(n)==0 && g(n+1)==1 && g(n+2)==1
die=cos(pi/8)*ones(1,150);
die1=sin(pi/8)*ones(1,150);
se=[zeros(1,50) ones(1,50) ones(1,50)];
die1=sin(5*pi/8)*ones(1,150);
se=[zeros(1,50) zeros(1,50) zeros(1,50)];
end
c=cos(f*t);
s=sin(f*t);
cp=[cp die]; %Amplitude cosino
sp=[sp -die1]; %Amplitude sino
mod=[mod c];
subplot(2,1,2);plot(opsk,'LineWidth',1.5);grid on;
title('8PSK modulation')
INTERFAZ GRFICA
La herramienta GUIDE de Matlab permite crear una simptica interfaz grfica para cambiar
de modulacin con un par de clics. El entorno de esta interfaz se muestra en la siguiente
figura:
pg
454-481
As como con el 8PSK, los datos que estn entrando se dividen en grupos de tres bits
(tribits): los flujos de bits I, Q y C, cada uno con una tasa de bits igual a un tercio de la tasa
de datos que estn entrando. Nuevamente, los bits I y Q determinan la polaridad de la seal
PAM, a la salida de los convertidores de nivel 2 a 4, y el canal C determina la magnitud.
Debido a que el bit C se alimenta sin invertir a los convertidores de niveles 2 a 4 canal I/Q,
las magnitudes de las seales PAM, I/Q, siempre son iguales. Sus polaridades dependen de
la condicin lgica de los bits I/Q y, por consiguiente, pueden ser diferentes. La figura 6
muestra la tabla de verdad para los convertidores de niveles 2 a 4, canal I y Q; son iguales.
Ejemplo 2:
. La
. La salida es
Figura 6. Tabla de verdad para los convertidores del nivel 2 a 4 canal I/Q
Por tanto, el mnimo ancho de banda requerido para 8-QAM es fb/3, al igual que en el 8PSK.
Receptor de QAM de ocho
Un receptor de 8-QAM es casi idntico al receptor de 8-PSK. Las diferencias son os niveles
PAM, en la salida de los detectores de producto, y las seales binarias a la salida de los
convertidores analgico a digital. Debido a que hay dos amplitudes de transmisin posibles,
con 8-QAM, que son diferentes de aqullas factibles con el 8-PSK, los cuatro niveles de
PAM demoduladas son diferentes de aquellos en 8-PSK. En consecuencia, el factor de
conversin para los convertidores analgico a digital, tambin tienen que ser diferentes.
Adems, con el 8-QAM las seales de salida binarias del convertidor analgico a digital,
del canal I, son los bits I y C, y las seales de salida binarias del convertidor analgico a
digital, del canal Q, son los bits Q y C.
QAM DE DIECISIS
As como el 16-PSK, el 16-QAM es un sistema M-ario, en donde M=16. Acta sobre los
datos de entrada en grupos de cuatro ( 2 4=16 ). Como con el 8-QAM, tanto la fase y la
amplitud de la potadora transmisora son variados.
El
diagrama
a
bloques para un transmisor de 16-QAM se muestra en la figura 9. Los datos de entrada
binaria se dividen en cuatro canales: el I, I, Q y Q. La tasa de bits da cada canal es igual a
un cuarto de la tasa de bits de entrada ( fb/4 ). Los cuatro bits se introducen en forma serial
de derivador de bits; luego se introducen simultneamente y en paralelo con los canales I,
I, Q y Q. Los bits I y Q determinan la polaridad a la salida de los convertidores de niveles
de 2 a 4 ( un 1 lgico = positivo y un 0 lgico = negativo ). Los bits I y Q determinan la
magnitud ( un 1 lgico = 0.821 V y un 0 lgico = 0.22 V ). En consecuencia, los
convertidores de niveles 2 a 4 generan una seal PAM de nivel 4. Dos polaridades y dos
magnitudes son posibles s la salida de cada convertidor de niveles 2 a 4. Son 0.22V y
0.821V. Las seales PAM modulan a las portadoras en fase y en cuadratura, en los
moduladores en producto. Son posibles cuatro salidas para cada modulador de producto.
Para el modulador de producto I son
,
,
,
,
,
. El sumador lineal combina las salidas de los moduladores de
producto lineal de canal I y Q y produce las 16 condiciones de salida necesarias para el 16QAM. La figura 10 muestra la tabla de verdad para los convertidores de nivel 2 a 4 y
canales I y Q.
Ejemplo 3:
Para una entrada de quabits de I = 0, I = 0, Q = 0, y Q =0 (0000), determine la amplitud y
fase de salida para el modulador de 16-QAM, mostrado en la figura 9.
Solucin: Las entradas al convertidor de nivel 2 a 4 canal I, son I = 0 e I = 0. De la figura
10 la salida es 0.22 V. Las entradas al convertidor de nivel 2 a 4 canal Q son Q = 0, Q =
0. Nuevamente, de la figura 10, la salida es 0.22V.
En consecuencia las dos entradas al modulador de producto canal I son: -0.22 V y
La salida es
. La salida es
Figura 10. Las tablas de verdad para los convertidores de nivel 2 a 4 canan Q: a) canal I; b) canal Q
Para los cdigos de cuabits que quedan el procedimiento es el mismo. Los resultados se
muestran en la figura 11.
FIGURA 11. Modulador de 8-QAM: a) tabla de verdad; b) diagrama fasorial; c) diagrama de constelacin
en donde
por tanto
MODULACIONES M-ARIAS
Gonzlez C. Y. Venuska
Mezoa R. Mariangela
Resumen
El contenido de este mdulo engloba las caractersticas ms relevantes de las modulaciones
m-arias, adems de la simulacin de cada modulacin en LabVIEW.
Hasta el mdulo anterior (Modulaciones Binarias) habamos considerado las tcnicas de
modulacin cuando slo se empleaba un bit a la vez del mensaje de entrada. Aqu tomaremos
en consideracin los diferentes tipos de modulacin cuando se toman smbolos para producir
cambios sobre la seal portadora.
El trmino M-ario deriva de la palabra binario. La letra M representa la cantidad de
condiciones posibles (smbolos) para una determinada cantidad de variables binarias
consideradas. En los casos anteriores de modulacin (OOK, PRK, FSK, etc) habamos
trabajado con bits individuales (1 y 0), por lo que se podra decir que estos mtodos son Marios en donde M =2.
Si los smbolos provienen de combinaciones de bits, se puede usar la siguiente ecuacin para
relacionar el nmero de bits con el nmero de smbolos:
En donde:
N = Cantidad de bits codificados
M = Cantidad de condiciones posibles de salida con N bits.
Entonces, si por ejemplo tomamos la modulacin digital binaria FSK tendramos dos posibles
variantes: 1 lgico o un 0 lgico, as que M = 2:
16
32
El ancho de banda de cada seal modulada M-aria estar relacionado con la tasa de smbolos
fs y con la tasa de bits fb de la siguiente forma:
00
01
10
11
Cada par de bits (dibits) genera una fase posible de salida. Tenemos entonces la siguiente
ecuacin que define este tipo de modulacin:
En donde:
Los parmetros bp y bi siguen el mismo lineamiento que para las modulaciones binarias: para
un 1 lgico tienen valor de +1 y para un 0 lgico tienen valor de 1.
Para una de las cuatro fases posibles de salida, la portadora tiene exactamente la misma
amplitud, lo que evidencia el tipo de modulacin con amplitud constante.
Bases
y constelacin para QPSK La separacin angular entre dos puntos adyacentes es de 90..
La ecuacin de la seal modulada en funcin de las bases ortonormales quedar as:
Fase
de salida para 8-PSK
Sus bases y Constelacin seran:
Los datos que llegan antes del modulador se dividen en combinaciones de tres bits (tribits). Se
definen entonces dos bases ortonormales para representar la seal:
Siendo a una constante y k1 y k2 seales Non-Return to Zero (NRZ) multinivel con tiempo de
duracin N*tb. Su constelacin es como sigue:
Su constelacin:
Simulacin en LabVIEW
para observar los tipos de modulacin previamente explicados, se debe descargar el codigo
fuente del VI m-arias.vi a travs del siguiente enlace: marias.zip