16Qam

Solo disponible en BuenasTareas
  • Páginas : 5 (1229 palabras )
  • Descarga(s) : 0
  • Publicado : 4 de septiembre de 2012
Leer documento completo
Vista previa del texto
INSTITUTO POLITÉCNICO NACIONAL
ESCUELA SUPERIOR DE INGENIERIA MECÁNICA Y ELÉCTRCIA
UNIDAD CULHUACAN

MODULACIÓN DIGITAL
Dra.: Clara Cruz Ramos

Modulador 8 Q AM

 Cruz de Luna Luis Manuel
 García Alcántara Sebastián
 Javier Alcántara Ulises
 Nava Romero Enrique

6CM1 12-Abril-12
-------------------------------------------------
OBJETIVO GENERAL
 Desarrollar unprograma modulador 16Q AM a partir de la teoría estudiada en clase.

-------------------------------------------------
OBJETIVOS ESPECIFICIOS

* Utilizar el entorno de desarrollo de Matlab.
* Plasmar las ecuaciones en código.
* Generar las señales.
* Modular las señales.

-------------------------------------------------
INTRODUCCIÓN

QAM

Combinación de modulación en fasey modulación en amplitud.
La eficiencia espectral de QAM es la misma que PSK. QAM tiene mejor eficiencia en potencia

16QAM

 La amplitud varia entre tres valores
 La fase varia entre cuatro valores (16 estados)

16QAM-modulador

16QAM-tensiones

16QAM-Fasorial y Constelación


-------------------------------------------------
DESARROLLO
 Desarrollando el programa en elentorno estructural de Matlab:

 Se la señal portadora x1, la cual es una señal senoidal en un tiempo S de frecuencia fr y
amplitud a, las cuales son definidas por el usuario:
te=2*pi*t;
x1=a*sin(fr*te);

 Se genera la señal de pulso, en este caso se utiliza una señal binaria aleatoriamente
C=dec2bin(round(10000*rand(1)));
%C='101010101010';
fprintf('\n\nSeñal binaria generada %s \n \n',C)w = (S*2)/length(C);
D=0;z=0;
k=-(w/2);
for i=1:length(C)
if C(1,i) == '1';
D (1,i-z)=k;
else
z=z+1;
end
k=k+w;
end
x2 = pulstran(t,D,'rectpuls',w);

 Se declaran las condiciones y se contruye la señal

P=0;A=0;k=0;M=0;
w=length(t)/length(C);
z=floor(length(C)/4);
for i = 1 :4:z*4

for j = i : i
k=k+1;
b1=C(1,j);
b2=C(1,j+1);b3=C(1,j+2);
b4=C(1,j+3);
end
if (b1 == '0') && (b2 == '0') && (b3 == '0')&& (b4 == '0')
P(1,k)=-135;
A(1,k)=.311;
elseif (b1 == '0') && (b2 == '0') && (b3 == '0')&& (b4 == '1')
P(1,k)=-165;
A(1,k)=.850;
.
.
.
W=t(1:w);
Ms=(A(1,k)*(sin((fr*te*W)+(P(1,k)*pi/180))));
if k==1
M=Ms;
else
M=[M Ms];
end

 Al correr el programa seobtienen la modulacion siguiente:

-------------------------------------------------
CODIGO COMPLETO
clc,clf,clear
fprintf('--ONDA SENOIDAL--\n');
a=input('Ingresa la amplitud deseada...\n');
fr=input('Ingresa la frecuencia deseada...\n');
S=input('Ingresa segundos que deseas...\n');
%----------------------------------------
%---------------------------------------
T=1/fr;
t=0:T/1000:S*2;te=2*pi;
x1=a*sin(fr*te*t);
subplot (311)
plot(t,x1,'linewidth',2)
xlabel('Time (s)'); ylabel('Amplitude'); title('Carrier Signal')
axis([0,S*2,-a-1,a+1]);
grid on
hold on

%C=dec2bin(round(10000*rand(1)));
C='101010101010';
fprintf('\n\nSeñal binaria generada %s \n \n',C)
w = (S*2)/length(C);
D=0;z=0;
k=(w/2);
for i=1:length(C)
if C(1,i) == '1';
D (1,i-z)=k;else
z=z+1;
end
k=k+w;
end
x2 = pulstran(t,D,'rectpuls',w);
subplot(312),plot(t,x2,'linewidth',2);
xlabel('Time (s)'); ylabel('Amplitude'); title('Binary Signal')
axis([0,S*2,-.5,1.5]);
grid on
hold on

P=0;A=0;k=0;M=0;
w=length(t)/length(C);
z=floor(length(C)/4);
for i = 1 :4:z*4

for j = i : i
k=k+1;
b1=C(1,j);
b2=C(1,j+1);b3=C(1,j+2);
b4=C(1,j+3);
end

if (b1 == '0') && (b2 == '0') && (b3 == '0')&& (b4 == '0')
P(1,k)=-135;
A(1,k)=.311;

elseif (b1 == '0') && (b2 == '0') && (b3 == '0')&& (b4 == '1')
P(1,k)=-165;
A(1,k)=.850;

elseif (b1 == '0') && (b2 == '0') &&...
tracking img