Está en la página 1de 11

DEPARTAMENTO DE ELECTRICA Y ELECTRONICA

CARRERA DE INGENIERÍA ELECTRONICA E INSTRUMENTACION


SISTEMAS DE COMUNIACION
JEFFERSON STALYN NUÑEZ QUISHPE
Jsnunez3@espe.edu.ec
ID: l00358542
TEMA: Proyecto de unidad
Una aplicación en Matlab que permita escoger la modulación y
demodulación entre ASK, OOK, FSK y PSK.
Datos de ingreso:
-Una cadena de [1 0 1 0 1 0 1] (datos variables)
-frecuencia de la portadora
Se va a graficar los datos, la señal portadora,
señal modulada, y la señal demodulada

• CODIGO
%%%%%%%%%%%%%%%%%%%%%%% PROYECTO FINAL%%%%%%%%%%%%%%%%%%%%%%%%
clc;
clear all;
close all;
disp('1.- Modulacion y demodulacion ASK');
disp('2.- Modulacion y demodulacion OOK');
disp('3.- Modulacion y demodulacion FSK');
disp('4.- Modulacion y demodulacion PSK');
x=input('Ingrese el tipo de Modulacion y Demodulacion: \n');

switch x
case 1
disp('Ingrese la cadena de bits(1 y 0)');
a11=input(' Ingresar el valor del primer bit: \n');
b11=input(' Ingresar el valor del segundo bit: \n');
c11=input(' Ingresar el valor del tercer bit: \n');
d11=input(' Ingresar el valor del cuarto bit: \n');
e11=input(' Ingresar el valor del quinto bit: \n');
f11=input(' Ingresar el valor del sexto bit: \n');
g11=input(' Ingresar el valor del septimo bit: \n');
%fprintf('\n\n\n');
x=[ a11 b11 c11 d11 e11 f11 g11]; %información binaria

%x=input(' Ingresar el valor : ');


%fprintf('\n\n\n');
periodo_bit=0.000001; % periodo de bit
disp(' Información binaria en el transmisor :');
disp(x);

%representación de la transmisión de información binaria como señal


digital
bits=[];
for n=1:1:length(x)
if x(n)==1;
senal=ones(1,100);
else x(n)==0;
senal=zeros(1,100);
end
bits=[bits senal];

end
t1=periodo_bit/100:periodo_bit/100:100*length(x)*(periodo_bit/100);
subplot(3,1,1);
plot(t1,bits,'lineWidth',2.5);grid on;
axis([ 0 periodo_bit*length(x) -2 2]);
ylabel('amplitud[voltios]');

xlabel(' tiempo[segundos]');
title('transmisión de información como señal digital');

%Modulación binaria ASK


A1=10; % Amplitud de la señal portadora de información 1
A2=5; % Amplitud de la señal portadora de información 0
vb=1/periodo_bit; % velocidad de bits
fp=vb*10; % Frecuencia de portadora
t2=periodo_bit/99:periodo_bit/99:periodo_bit;ss=length(t2);
m=[];
for (i=1:1:length(x))
if (x(i)==1)
y=A1*cos(2*pi*fp*t2);
else
y=A2*cos(2*pi*fp*t2);
end
m=[m y];
end

t3=periodo_bit/99:periodo_bit/99:periodo_bit*length(x);
subplot(3,1,2);
plot(t3,m);
xlabel('tiempo[segundos]');
ylabel('amplitud[voltios]');
title('Forma de onda para la modulación binaria ASK ');

%Demodulación binaria ASK


mn=[];
for n=ss:ss:length(m)
t=periodo_bit/99:periodo_bit/99:periodo_bit;
y=cos(2*pi*fp*t); % Señal de portadora
mm=y.*m((n-(ss-1)):n);
t4=periodo_bit/99:periodo_bit/99:periodo_bit;
z=trapz(t4,mm); % Integración
zz=round((2*z/periodo_bit));
if(zz>7.5) % nivel lógico =(A1+A2)/2=7.5
a=1;
else
a=0;
end
mn=[mn a];
end
disp(' Información binaria en el receptor :');
disp(mn);

%Representación de información binaria como señal digital ASK después de


la demodulación
bits=[];
for n=1:length(mn);
if mn(n)==1;
senal=ones(1,100);
else mn(n)==0;
senal=zeros(1,100);
end
bits=[bits senal];

end
t4=periodo_bit/100:periodo_bit/100:100*length(mn)*(periodo_bit/100);
subplot(3,1,3)
plot(t4,bits,'lineWidth',2.5);grid on;
axis([ 0 periodo_bit*length(mn) -2 2]);
ylabel('amplitud[voltios]');
xlabel(' tiempo[segundos]');
title('Forma de onda para la demodulación binaria ASK ');
case 2
disp('Ingrese la cadena de bits (1 y 0)');
a11=input(' Ingresar el valor del primer bit: \n');
b11=input(' Ingresar el valor del segundo bit: \n');
c11=input(' Ingresar el valor del tercer bit: \n');
d11=input(' Ingresar el valor del cuarto bit: \n');
e11=input(' Ingresar el valor del quinto bit: \n');
f11=input(' Ingresar el valor del sexto bit: \n');
g11=input(' Ingresar el valor del septimo bit: \n');
%fprintf('\n\n\n');
x=[ a11 b11 c11 d11 e11 f11 g11]; %información binaria

%x=input(' Ingresar el valor : ');


%fprintf('\n\n\n');
periodo_bit=0.000001; % periodo de bit
disp(' Información binaria en el transmisor :');
disp(x);
%representación de la transmisión de información binaria como señal
digital
bits=[];
for n=1:1:length(x)
if x(n)==1;
senal=ones(1,100);
else x(n)==0;
senal=zeros(1,100);
end
bits=[bits senal];

end
t1=periodo_bit/100:periodo_bit/100:100*length(x)*(periodo_bit/100);
subplot(3,1,1);
plot(t1,bits,'lineWidth',2.5);grid on;
axis([ 0 periodo_bit*length(x) -2 2]);
ylabel('amplitud[voltios]');

xlabel(' tiempo[segundos]');
title('transmisión de información como señal digital');

%Modulación binaria ASK


A1=10; % Amplitud de la señal portadora de información 1
A2=0; % Amplitud de la señal portadora de información 0
vb=1/periodo_bit; % velocidad de bits
fp=vb*10; % Frecuencia de portadora
t2=periodo_bit/99:periodo_bit/99:periodo_bit;ss=length(t2);
m=[];
for (i=1:1:length(x))
if (x(i)==1)
y=A1*cos(2*pi*fp*t2);
else
y=A2*cos(2*pi*fp*t2);
end
m=[m y];
end

t3=periodo_bit/99:periodo_bit/99:periodo_bit*length(x);
subplot(3,1,2);
plot(t3,m);
xlabel('tiempo[segundos]');
ylabel('amplitud[voltios]');
title('Forma de onda para la modulación binaria ASK ');

%Demodulación binaria ASK


mn=[];
for n=ss:ss:length(m)
t=periodo_bit/99:periodo_bit/99:periodo_bit;
y=cos(2*pi*fp*t); % Señal de portadora
mm=y.*m((n-(ss-1)):n);
t4=periodo_bit/99:periodo_bit/99:periodo_bit;
z=trapz(t4,mm); % Integración
zz=round((2*z/periodo_bit));
if(zz>7.5) % nivel lógico =(A1+A2)/2=7.5
a=1;
else
a=0;
end
mn=[mn a];
end
disp(' Información binaria en el receptor :');
disp(mn);

%Representación de información binaria como señal digital ASK después de


la demodulación
bits=[];
for n=1:length(mn);
if mn(n)==1;
senal=ones(1,100);
else mn(n)==0;
senal=zeros(1,100);
end
bits=[bits senal];

end
t4=periodo_bit/100:periodo_bit/100:100*length(mn)*(periodo_bit/100);
subplot(3,1,3)
plot(t4,bits,'lineWidth',2.5);grid on;
axis([ 0 periodo_bit*length(mn) -2 2]);
ylabel('amplitud[voltios]');
xlabel(' tiempo[segundos]');
title('Forma de onda para la demodulación binaria ASK ');

case 3
disp('Ingrese la cadena de bits (1 y 0)');
a11=input(' Ingresar el valor del primer bit: \n');
b11=input(' Ingresar el valor del segundo bit: \n');
c11=input(' Ingresar el valor del tercer bit: \n');
d11=input(' Ingresar el valor del cuarto bit: \n');
e11=input(' Ingresar el valor del quinto bit: \n');
f11=input(' Ingresar el valor del sexto bit: \n');
g11=input(' Ingresar el valor del septimo bit: \n');
%fprintf('\n\n\n');
x=[ a11 b11 c11 d11 e11 f11 g11]; %información binaria

%x=input(' Ingresar el valor : ');


%fprintf('\n\n\n');
periodo_bit=0.000001; % Periodo de bit
disp(' Información binaria en el transmisor :');
disp(x);

%representación de la transmisión de información binaria como señal


digital
bits=[];
for n=1:1:length(x)
if x(n)==1;
senal=ones(1,100);
else x(n)==0;
senal=zeros(1,100);
end
bits=[bits senal];
end
t1=periodo_bit/100:periodo_bit/100:100*length(x)*(periodo_bit/100);
subplot(3,1,1);
plot(t1,bits,'lineWidth',2.5);grid on;
axis([ 0 periodo_bit*length(x) -2 2]);
ylabel('amplitud[voltios]');
xlabel(' tiempo[segundos]');
title('Representación de la transmisión de información binaria como señal
digital');

%Modulación binaria FSK


A=5; % Amplitud de la señal portadora
vb=1/periodo_bit; % velocidad de bit
f1=vb*8; %frecuencia de la señal portadora de información 1
f2=vb*2; %frecuencia de la señal portadora de información 0
t2=periodo_bit/99:periodo_bit/99:periodo_bit;ss=length(t2);
m=[];
for (i=1:1:length(x))
if (x(i)==1)
y=A*cos(2*pi*f1*t2);
else
y=A*cos(2*pi*f2*t2);
end
m=[m y];
end
t3=periodo_bit/99:periodo_bit/99:periodo_bit*length(x);
subplot(3,1,2);
plot(t3,m);
xlabel('tiempo[segundos]');
ylabel('amplitud[voltios]');
title('Forma de onda para la modulación binaria FSK ');

%Demodulación binaria FSK


mn=[];
for n=ss:ss:length(m)
t=periodo_bit/99:periodo_bit/99:periodo_bit;
y1=cos(2*pi*f1*t); % Amplitud de la señal portadora de información 1
y2=cos(2*pi*f2*t); % Amplitud de la señal portadora de información 0
mm=y1.*m((n-(ss-1)):n);
mmm=y2.*m((n-(ss-1)):n);
t4=periodo_bit/99:periodo_bit/99:periodo_bit;
z1=trapz(t4,mm); % Integración
z2=trapz(t4,mmm); % Integración
zz1=round(2*z1/periodo_bit);
zz2= round(2*z2/periodo_bit);
if(zz1>A/2) % nivel lógico = (0+A)/2 ó (A+0)/2 o 2.5 ( en este caso)
a=1;
else(zz2>A/2)
a=0;
end
mn=[mn a];
end
disp(' Información binaria en el receptor :');
disp(mn);

% representación de la información binaria después de la modulación


bits=[];
for n=1:length(mn);
if mn(n)==1;
senal=ones(1,100);
else mn(n)==0;
senal=zeros(1,100);
end
bits=[bits senal];

end
t4=periodo_bit/100:periodo_bit/100:100*length(mn)*(periodo_bit/100);
subplot(3,1,3)
plot(t4,bits,'LineWidth',2.5);grid on;
axis([ 0 periodo_bit*length(mn) -2 2]);
ylabel('amplitud[voltios]');
xlabel(' tiempo[segundos]');
title('Forma de onda para la demodulación binaria FSK');

%fin del programa


case 4
disp('Ingrese la cadena de bits (1 y 0)');
a11=input(' Ingresar el valor del primer bit: \n');
b11=input(' Ingresar el valor del segundo bit: \n');
c11=input(' Ingresar el valor del tercer bit: \n');
d11=input(' Ingresar el valor del cuarto bit: \n');
e11=input(' Ingresar el valor del quinto bit: \n');
f11=input(' Ingresar el valor del sexto bit: \n');
g11=input(' Ingresar el valor del septimo bit: \n');
%fprintf('\n\n\n');
x=[ a11 b11 c11 d11 e11 f11 g11]; %información binaria

%x=input(' Ingresar el valor : ');


%fprintf('\n\n\n');
periodo_bit=.000001; % periodo de bit
disp(' Información binaria en el transmisor :');
disp(x);

%representación de la transmisión de información binaria como señal


digital
bits=[];
for n=1:1:length(x)
if x(n)==1;
se=ones(1,100);
else x(n)==0;
se=zeros(1,100);
end
bits=[bits se];

end
t1=periodo_bit/100:periodo_bit/100:100*length(x)*(periodo_bit/100);
subplot(3,1,1);
plot(t1,bits,'lineWidth',2.5);grid on;
axis([ 0 periodo_bit*length(x) -2 2]);
ylabel('amplitud[Votios]');
xlabel(' tiempo[segundos]');
title('transmisión de información como señal digital');
%Modulación PSK
A=5; % Amplitud de la señal portadora
vb=1/periodo_bit; % velocidad de bit
f=vb*2; % Frecuencia de portadora
t2=periodo_bit/99:periodo_bit/99:periodo_bit;
ss=length(t2);
m=[];
for (i=1:1:length(x))
if (x(i)==1)
y=A*cos(2*pi*f*t2);
else
y=A*cos(2*pi*f*t2+pi); %A*cos(2*pi*f*t+pi) means - A*cos(2*pi*f*t)
end
m=[m y];
end
t3=periodo_bit/99:periodo_bit/99:periodo_bit*length(x);
subplot(3,1,2);
plot(t3,m);
xlabel('tiempo[segundos]');
ylabel('amplitud[Voltios]');
title('Forma de onda para la modulación PSK ');

%Demodulación PSK
mn=[];
for n=ss:ss:length(m)
t=periodo_bit/99:periodo_bit/99:periodo_bit;
y=cos(2*pi*f*t); % señal portadora
mm=y.*m((n-(ss-1)):n);
t4=periodo_bit/99:periodo_bit/99:periodo_bit;
z=trapz(t4,mm); % intregación
zz=round((2*z/periodo_bit));
if(zz>0) % nivel lógico = (A+A)/2=0
%porque A*cos(2*pi*f*t+pi) significa -A*cos(2*pi*f*t)
a=1;
else
a=0;
end
mn=[mn a];
end
disp(' Informacion binaria recibida :');
disp(mn);

%Representación de la información binaria como señal digital


%después de la demodulation PSK
bits=[];
for n=1:length(mn);
if mn(n)==1;
senal=ones(1,100);
else mn(n)==0;
senal=zeros(1,100);
end
bits=[bits senal];

end
t4=periodo_bit/100:periodo_bit/100:100*length(mn)*(periodo_bit/100);
subplot(3,1,3)
plot(t4,bits,'LineWidth',2.5);grid on;
axis([ 0 periodo_bit*length(mn) -2 2]);
xlabel(' tiempo[segundos]');
ylabel('amplitud[Voltios]');
title('Forma de onda para la demodulación PSK');

%fin del programa

end

Fig 1. Menú para escoger la clase de modulación

Fig 2. Código binario


Fig 3. Modulación y demodulación 00K
Fig 3. Modulación y demodulación FSK

BIBLIOGRAFIA

[1] Software a utilizarse Matlab

También podría gustarte