Matlab - Demodulador QPSK

 
Vista:

Demodulador QPSK

Publicado por particia (13 intervenciones) el 09/05/2011 22:16:52
Hola,

Estoy realizando un demodulador de QPSK, tengo un problema al asingar a un bit los dos simbolos correspondientes de la QPSK, para ello obtengo una parte real y una parte imaginaria de la señal y luego realizo el siguiente for:



QPSKRx=QPSKRx(:)

RealQPSKRx=real(QPSKRx)
ImagQPSKRx=imag(QPSKRx)

indice8=1;
for(indc=1:length(QPSKRx))
%simbolo 11
if(RealQPSKRx(indc)>= 0 && ImagQPSKRx(indc)>=0)
Y(indc)=1;
Y(indc+1)=1;
%simbolo 10
elseif(RealQPSKRx(indc)>= 0 && ImagQPSKRx(indc)<=0)
Y(indc)=1;
Y(indc+1)=0;
%simbolo 01
elseif(RealQPSKRx(indc)<= 0 && ImagQPSKRx(indc)>=0)
Y(indc)=0;
Y(indc+1)=1;
%simbolo 00
else
Y(indc)=0;
Y(indc+1)=0;

end
end


lo que yo quiero es que cuando el simbolo tiene una parte imaginaria y una parte real mayor que cero el numero que me salga sea 11 y asi con los consecutivos "elseif" pero no lo consigo,
¿alguien me podria echar una mano?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Demodulador QPSK

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 10/05/2011 04:54:26
Hola Patricia.

haz puesto parte de tu programa.
pero te ha faltado los datos QPSKRx=QPSKRx(:)
Sin ese dato no puedo ejecutar tu programa.

Me parece que quieres algo asi. Segun lo que escribes.
Caso contario explica mejor y trata de poner los datos de QPSKRx(:)

%==================================
QPSKRx=QPSKRx(:);
RealQPSKRx=real(QPSKRx);
ImagQPSKRx=imag(QPSKRx);

indice8=1;
for indc=1:length(QPSKRx)
if (RealQPSKRx(indc)>= 0 && ImagQPSKRx(indc)>=0)
Y(indc,indc)=1; Y(ind,indc+1)=1;%simbolo 11
else
if(RealQPSKRx(indc)>= 0 && ImagQPSKRx(indc)<=0)
Y(indc,indc)=1; Y(indc,indc+1)=0;%simbolo 10
else
if(RealQPSKRx(indc)<=0 && ImagQPSKRx(indc)>=0)
Y(indc,indc)=0; Y(indc,indc+1)=1;%simbolo 01
else
Y(dind,indc)=0; Y(indc,indc+1)=0; %simbolo 00
end
end
end
end
display(Y).
%========================================


Saludos.
JOSE JEREMIAS CABALLERO
ASESOR DE PROYECTOS CON MATLAB
PROFESOR DE METODOS NUMERICOS CON MATLAB
PROGRAMADOR EN MATLAB
[email protected]
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar