You are on page 1of 11

Modulacin ASK

La modulacin por desplazamiento de amplitud o ASK (Amplitude Shift


Keying) se caracteriza porque la amplitud de la seal portadora representa
cada smbolo de informacin de la seal moduladora. Segn una tabla de
correspondencia, los valores de amplitud representan bits de informacin.
Como ya se sabe, las modulaciones ASK, FSK Y PSK comparten la misma
expresin, la cual es:

x c ( t )= Ac ak cos ( wc t++ k ) P D ( t k T s )
k

Sin embargo, en ASK el dato que nos interesa en la amplitud


que los valores de

ak

por lo

tendrn los valores de 0.

Modulador
En primer lugar se encuentra el convertidor de datos el cual pasa los valores
originales (1 y 0) en seales digitales en banda base

x i(t)

x q (t) . La

conversin es en base a una tabla de correspondencia que puede cambiar


segn la necesidad. A continuacin se despejara las ecuaciones de estas
dos seales:

x c ( t )= Ac ak cos ( wc t+ ) PD ( t k T s )
k

a k P D ( tk T s )
( cos ( wc t + ) )(0)sin ( wc t + )
k

x c ( t ) = Ac

En consecuencia se puede definir

x i( t)

x q (t)

como:

x i ( t )= a k P D ( tk T s )
k

x q ( t )=0
Finalmente,

x c ( t ) es la salida del modulador y es representada por:

x c ( t )=[ x i (t) cos ( w c t+ ) ]


A continuacin se muestra el codificador en diagrama de bloques:

Simulacion del modulador ASK en Matlab


En primer lugar es necesario definir algunas variables que sern utilizadas
en el programa.
%% Datos
M = 2;
Tb = 1;
Fb = 1/Tb;
Fc = 5;
Ac = 1;
n = log2(M); % Numero de bits por simbolo
%%
% Trama y vector de tiempo
trama= round(rand(1,5))
Ak = trama;

Ts = n*Tb;
%N = 1;
a = 1;
m = 1;
y = 1;
ask = [];
tiempo = [];
sen = [];
binario = [];

Se generaran las seales Ik y Qk:

% Creacion de los vectores con la informacion de la onda modulante


% y modulada
g=1;
for t=0:0.001:5
binario = [binario trama(y)];
tiempo = [tiempo t];
ask = [ask Ak(m)]; %Vector con los valores de la onda
modulante
sen = [sen Ac*cos(2*pi*Fc*t)]; %Vector con los valores de la
onda portadora
askconpor = ask.*sen; %Vector con los valores de la onda
modulada
if(t>0 && mod(t,Ts)== 0)
m=m+1;
end
if(t>0 && mod(t,Tb)== 0)
y=y+1;
end
a = a+1;
end

Densidad espectral de potencia


Partiendo de:

Gi ( f )= 2i
Gq ( f ) =0
Y

1
f
sinc2 + m2i (f )
fs
fs

a
p( k )=

1
, ak
M

2i = 2a=a2k m2a

2
A 2c M 2 1
2 (f f c ) ( M 1 )
Gc ( f )=
sinc
+
(f f c )
4
12 f s
fs
4

Demodulador:
Para el ASK se ha utilizado el decodificador coherente con un filtro
correlador y el decodificador de filtro adaptado. Para el caso de
decodificador coherente, el demodulador posee las siguientes partes:
multiplicacin por la seal de sincronismo, etapa de integracin, sample and
hold, regenerador de fase y un convertido de datos.

Para el caso de el filtro adaptado se tiene el siguiente diagrama de bloques:

Cdigo de demodulacin por filtro adaptado:

% Filtro Adaptado
Wc = 2*pi*Fc;
Eb = Ac*Ac*Tb/4; %Energia de Bit
K = Ac/Eb;
Vopt = K*Eb; %Voltaje utilizado para el comparador
k=length(trama);
dem=[];
figure(2)
col = 'b';
muestra=[];
for i=0:k-1
t = (i)*Tb:0.00001:(i+1)*Tb; %Vector tiempo de cada bit
j = i; %Valor que ayudara a modificar el color de la grafica
m = trama(i+1); %Bit que ingresa al demodulador
if(m==1)
dem1 = K*Ac*Ac*(((cos(Wc*t)/2)).*((t-(i)*Tb))); %Ecuacuion
utilizada para el primer tramo de la onda cuando ingresa el bit 1
else
dem1 = zeros(1,length(t)); % Cuando ingresa un bit 0 la salida del
filtro adaptado es 0
end
dem = [dem dem1]; %Vector en donde se guardan los valores de la
salida del vector en un determinado tiempo
plot(t,dem1,col);
hold on
if (mod(j,3) == 0)
col = 'r';
elseif (mod(j,3) == 1);
col = 'g';
else
col = 'b';
end;
a = length(dem);
muestra = [muestra dem(a)];
dem=[];
end
figure(2)
col = 'b';
for i=0:k-1
t = (i+1)*Tb:0.00001:(i+2)*Tb; %Vector tiempo de cada bit
j = i; %Valor que ayudara a modificar el color de la grafica
m = trama(i+1); %Bit que ingresa al demodulador
if(m==1)
dem1 = K*Ac*Ac*(((cos(Wc*t)/2)).*((i+2)*Tb-t));%Ecuacuion
utilizada para el primer tramo de la onda cuando ingresa el bit 1
else
dem1 = zeros(1,length(t)); %Cuando ingresa un bit 0 la salida del
filtro adaptado es 0
end

dem = [dem dem1]; %Vector en donde se guardan los valores de la


salida del vector en un determinado tiempo
plot(t,dem1,col);
hold on
if (mod(j,3) == 0)
col = 'r';
elseif (mod(j,3) == 1);
col = 'g';
else
col = 'b';
end;
dem=[];
end
grid on
title('Salida Filtro Adaptado')

Demodulacion por filtro correlador:


%% Filtro Correlador
figure(3)
col = 'b';
muestra = []; %Vector donde se guardaran los valores de muestra
for i=0:k-1
t = (i)*Tb:0.00001:(i+1)*Tb; %Vector tiempo de cada bit
m = trama(i+1); %Bit que ingresa al demodulador
if(m==1)
dem1 = (K*Ac*Ac/2)*((t-(i*Tb))+(sin(2*Wc*t)/(2*Wc))); %Ecuacion de
la salida del demodulador cuando ingresa un bit 1
else
dem1 = zeros(1,length(t)); % Cuando ingresa un bit 0 la salida del
demodulador es 0
end
dem = [dem dem1];
plot(t,dem1,col,'LineWidth',3);
hold on
a = length(dem);
muestra = [muestra dem(a)];
dem=[];
end
% Algoritmo utilizado para graficar la caida del filtro correlador
for i=1:length(muestra)
x = [i*Ts i*Ts];
y = [muestra(i) 0];
plot(x,y,'b','LineWidth',3)
hold on
end
grid on
title('Salida Filtro Correlador')
axis([ 0 length(trama)*Tb -1 2*K*Eb+0.5])

%% Muestreo

figure(4)
subplot(2,1,1)
stem(muestra)
grid on
title('Muestreo')
axis([ 0 length(trama)*Tb 0 2*K*Eb+1])

%% Regenerar Onda
reg = [];
for i=1:k
t=(i)*Tb:0.0001:(i+1)*Tb;
if (muestra(i) > Vopt)
reg = [reg ones(1,length(t))];
reg_d = ones(1,length(t));
else
reg = [reg zeros(1,length(t))];
reg_d = zeros(1,length(t));
end
subplot(2,1,2)
plot(t,reg_d,'b','LineWidth',3)
hold on
reg_d = [];
end
x = [];
y = [];
for i=1:length(reg)-1
if(reg(i) ~= reg(i+1))
x = [i/10000+1 i/10000+1];
y = [reg(i) reg(i+1)];
subplot(2,1,2)
plot(x,y,'b','LineWidth',3)
hold on
x = [];
y = [];
end
end

Ejemplo de modulacin-demodulacion de una trama aleatoria 2-ASK

Ingreso de valores:

You might also like