Red de conocimiento informático - Conocimiento del nombre de dominio - Cómo utilizar matlab para lograr una conversión descendente a banda base compleja

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

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));