DQPSK Modeluation&Demodulation Problem
1 view (last 30 days)
Show older comments
Was trying to do DQPSK but when I was demodulating, everything looks good except the "01" input. My code will output "10" for both "01" & "10" input.
Thank you! Following is my code.
bit_transmit=round(rand(10,1));
qpsk_transmission=1+1j;
for bit_index1=1:2:length(bit_transmit)
bit_index2 = bit_index1+1;
if bit_transmit(bit_index1) == 1 && bit_transmit(bit_index2)==1
new_symbol = qpsk_transmission(end)*exp(1j*pi); %11
end
if bit_transmit(bit_index1) == 0 && bit_transmit(bit_index2)==1
new_symbol = qpsk_transmission(end) * (-1j); %01
end
if bit_transmit(bit_index1) == 0 && bit_transmit(bit_index2)==0
new_symbol = qpsk_transmission(end) ; %00
end
if bit_transmit(bit_index1) == 1 && bit_transmit(bit_index2)==0
new_symbol = qpsk_transmission(end) * (1j); %10
end
qpsk_transmission=[qpsk_transmission, new_symbol];
end
qpsk_received = qpsk_transmission*exp(1j*rand()*2*pi);
ref = qpsk_received(1);
bit_received=[];
for symbol_index=2:length(qpsk_received)
cur = qpsk_received(symbol_index);
angle_diff = angle(cur/ref);
if abs(angle_diff) < pi/4
bitI = 0;
bitQ = 0;
else if abs(angle_diff) < 3*pi/4
bitI =1;
bitQ = 0;
else if abs(angle_diff) < 5*pi/4
bitI = 1;
bitQ = 1;
else if abs(angle_diff)<7*pi /4
bitI = 0;
bitQ = 1;
end
end
end
end
bit=[bitI bitQ];
bit_received=[bit_received,bit];
%
ref = qpsk_received(symbol_index);
end
bit_transmit'
qpsk_transmission
qpsk_received
bit_received
0 Comments
Answers (0)
See Also
Categories
Find more on Waveform Generation in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!