dji_droneid/matlab/updated_scripts/transmit/to_qpsk.m

27 wiersze
770 B
Matlab

function [samples] = to_qpsk(bitvec)
assert(iscolumn(bitvec) || isrow(bitvec), "Bit vector must be a row or column vector");
assert(mod(length(bitvec), 2) == 0, "Length of bit vector must be an even number")
% Keep the power of each point at 1.0
amplitude = 1/sqrt(2);
samples = zeros(length(bitvec) / 2, 1);
for idx=1:2:length(bitvec)
bits = bitvec(idx:idx+1);
if (bits == [0, 0])
sample = amplitude + amplitude * 1j;
elseif (bits == [0 1])
sample = amplitude - amplitude * 1j;
elseif (bits == [1 0])
sample = -amplitude + amplitude * 1j;
else
sample = -amplitude - amplitude * 1j;
end
samples((idx + 1) / 2) = sample;
end
end