Cómo utilizar matlab para lograr una conversión descendente a banda base compleja
borrar todo;
cerrar todo
clc;
biteSize = 1000
rowBit = round (rand(1, bitSize));
Modulación QPSK, cada 2 bits corresponden a un símbolo
signalLength = bitSize/2;
IQBit = reshape( rowBit , 2, signalLength);
Modulación QPSK: símbolo de mapeo: 11 10 01 00
map = [1 1*1i;p>
1-1; * 1i; 10
-1 1*1i; 01
-1*-1*1i]; 00
señal = ceros(1, longitud de señal)
para i = 1: longitud de señal
si IQBit(1,i)==1 amp; > señal(i) = mapa(1);
elseif IQBit(1,i)==1 amp IQBit(2,i)==0
señal( i ) = mapa(2);
elseif IQBit(1, i)==0 amp IQBit(2, i)==1
señal(i) = mapa (3);
elseif IQBit(1,i)==0 amp; IQBit(2,i)==0
señal(i) = mapa(4); ) ;
end
end
Upconversion
Experimenta el canal inalámbrico, suponiendo que no haya desvanecimiento
rcvSignal = señal;
Conversión descendente
Demodulación QPSK
rcvIQBit = zeros(2, signalLength);
para i = 1: signalLength p>
min = Inf;
minIndex = 0;
para j = 1:4
diff = abs(rcvSignal(i) - mapa (j));
if (diff lt; min)
min = diff
minIndex = j
end<; /p>
fin
si minIndex == 1
rcvIQBit(1, i) = 1
rcvIQBit(2, i) = 1; ;
elseif minIndex == 2
rcvIQBit(1, i) = 1;
rcvIQBit(2, i) = 0;
elseif minIndex == 3
rcvIQBit(1, i) = 0
rcvIQBit(2, i) = 1;
elseif minIndex == 4
rcvIQBit(1, i) = 0
rcvIQBit(2, i) = 0; >
fin
fin
rcvRowBit = reshape(rcvIQBit, 1, bitSize
error = suma(abs(rcvRowBit - rowBit));