70 lines
1.4 KiB
Matlab
70 lines
1.4 KiB
Matlab
% cohpsk_demod_plot.m
|
|
% David Rowe May 2015
|
|
%
|
|
% Plot Octave outputs from cohpsk_demod, c2dec, to visualise what's going on
|
|
% when errors hit the system
|
|
|
|
#{
|
|
$ ./cohpsk_get_test_bits - 5600 | ./cohpsk_mod - - | ./ch - - --No -40 | ./cohpsk_demod - - -o cohpsk_demod.txt | ./cohpsk_put_test_bits -
|
|
octave> cohpsk_demod_plot("../build_linux/src/cohpsk_demod.txt")
|
|
#}
|
|
|
|
function cohpsk_demod_plot(fn)
|
|
Nc=7; Nd=2; Ns=6;
|
|
|
|
load(fn);
|
|
|
|
Ncf = 100; % number of codec frames to plot
|
|
Nmf = Ncf/2; % number of modem frames to plot
|
|
Nms = Nmf*Ns; % number of modem symbols to plot
|
|
|
|
figure(1)
|
|
clf;
|
|
|
|
% plot combined signals to show diversity gains
|
|
|
|
combined = rx_symb_log_c(:,1:Nc);
|
|
for d=2:Nd
|
|
combined += rx_symb_log_c(:, (d-1)*Nc+1:d*Nc);
|
|
end
|
|
plot(combined*exp(j*pi/4)/sqrt(Nd),'+')
|
|
title('Scatter');
|
|
axis([-2 2 -2 2])
|
|
|
|
figure(2)
|
|
clf;
|
|
subplot(211)
|
|
plot(rx_phi_log_c(1:Nms,:))
|
|
title('phase')
|
|
axis([1 Nms -pi pi])
|
|
subplot(212)
|
|
plot(rx_amp_log_c(1:Nms,:))
|
|
title('amplitude')
|
|
axis([1 Nms 0 1])
|
|
|
|
figure(3)
|
|
subplot(211)
|
|
plot(rx_timing_log_c)
|
|
title('rx timing');
|
|
subplot(212)
|
|
stem(ratio_log_c)
|
|
title('Sync ratio');
|
|
|
|
figure(4)
|
|
plot(f_est_log_c - 1500)
|
|
title('freq offset est');
|
|
axis([1 Nmf -50 50])
|
|
|
|
figure(5)
|
|
y = 1:Nms;
|
|
x = 1:Nc*Nd;
|
|
z = 20*log10(rx_amp_log_c(1:Nms,:));
|
|
mesh(x,y,z);
|
|
grid
|
|
title('Channel Amplitude dB');
|
|
a = min(min(z));
|
|
b = max(max(z));
|
|
axis([1 Nc*Nd 1 Nms a b])
|
|
end
|
|
|