aboutsummaryrefslogtreecommitdiff
path: root/octave/cohpsk_plots.m
diff options
context:
space:
mode:
Diffstat (limited to 'octave/cohpsk_plots.m')
-rw-r--r--octave/cohpsk_plots.m141
1 files changed, 0 insertions, 141 deletions
diff --git a/octave/cohpsk_plots.m b/octave/cohpsk_plots.m
deleted file mode 100644
index 9fc9a11..0000000
--- a/octave/cohpsk_plots.m
+++ /dev/null
@@ -1,141 +0,0 @@
-% cohpsk_plots.m
-% David Rowe Feb 2017
-%
-% Generate some plots for chps modem blog post
-
-rand("seed",1);
-
-% Multipath with simple unfiltered BPSK signal
-
-N = 100; % number of symbols
-M = 4; % oversample rate
-
-tx_bits = rand(1,N) > 0.5;
-tx_symbols = 2*tx_bits - 1;
-tx = zeros(1,N*M);
-
-for i=1:N
- tx((i-1)*M+1:i*M) = tx_symbols(i);
-end
-
-h = [0 0 0 0 0.5]; % model of second path
-
-rx1 = tx;
-rx2 = filter(h,1,tx);
-rx = rx1 + rx2;
-
-% Multipath in time domain
-
-figure(1); clf;
-subplot(311)
-plot(rx1, "linewidth", 4)
-axis([0 10*M+1 -2 2]);
-subplot(312)
-plot(rx2, "linewidth", 4)
-axis([0 10*M+1 -2 2]);
-subplot(313)
-plot(rx, "linewidth", 4)
-axis([0 10*M+1 -2 2]);
-xlabel('Time');
-print("cohpsk_multipath_time.png", "-dpng", "-S600,440", "-F:8")
-
-% Multipath channel magnitude and phase response against frequency
-
-h = [1 0 0 0 0.5]; % model of two path multipath channel
-H = freqz(h,1,100);
-
-figure(2); clf;
-subplot(211)
-plot(20*log10(abs(H)), "linewidth", 4)
-title('Amplitude (dB)');
-subplot(212)
-plot(angle(H), "linewidth", 4)
-title('Phase (rads)');
-%axis([0 500 -2 2]);
-xlabel('Frequency');
-print("cohpsk_multipath_channel.png", "-dpng", "-S600,440", "-F:8")
-
-% Effective of 1 sample multipath for different symbols lengths
-
-h = [1 0 0 0 0.5]; % model of two path multipath channel
-M1 = 2;
-M2 = 20;
-tx1 = zeros(1,N*M1);
-tx2 = zeros(1,N*M2);
-for i=1:N
- tx1((i-1)*M1+1:i*M1) = tx_symbols(i);
- tx2((i-1)*M2+1:i*M2) = tx_symbols(i);
-end
-
-rx1 = filter(h,1,tx1);
-rx2 = filter(h,1,tx2);
-
-figure(3); clf;
-subplot(211)
-plot(rx1, "linewidth", 4)
-axis([0 10*M1+1 -2 2]);
-title('1ms multipath with 2ms symbols')
-subplot(212)
-plot(rx2, "linewidth", 4)
-axis([0 10*M2+1 -2 2]);
-title('1ms multipath with 20ms symbols')
-xlabel('Time');
-print("cohpsk_multipath_symbol_length.png", "-dpng", "-S600,440", "-F:8")
-
-% DBPSK --------------------------------------------------
-
-N = 10;
-tx_bits = rand(1,N) > 0.5;
-bpsk = 2*tx_bits - 1;
-prev_bpsk = 1;
-for i=1:N
-
- % BPSK -> DBPSK
-
- dbpsk(i) = bpsk(i) * (-prev_bpsk);
- prev_bpsk = bpsk(i);
-
- % oversampling
-
- tx_bpsk((i-1)*M+1:i*M) = bpsk(i);
- tx_dbpsk((i-1)*M+1:i*M) = dbpsk(i);
-end
-
-figure(4); clf;
-subplot(211);
-plot(tx_bpsk, "linewidth", 4)
-axis([0 10*M+1 -2 2]);
-title('Tx BPSK');
-subplot(212);
-plot(tx_dbpsk, "linewidth", 4)
-axis([0 10*M+1 -2 2]);
-title('Tx DBPSK');
-print("cohpsk_dbpsk1.png", "-dpng", "-S600,440", "-F:8")
-
-dbpsk *= -1;
-
-prev_rx = 1;
-for i=1:N
-
- % rx DBPSK -> PSK
-
- bpsk(i) = dbpsk(i) * (prev_rx);
- prev_rx = bpsk(i);
-
- % oversampling
-
- rx_bpsk((i-1)*M+1:i*M) = bpsk(i);
- rx_dbpsk((i-1)*M+1:i*M) = dbpsk(i);
-end
-
-figure(5); clf;
-subplot(211);
-plot(rx_dbpsk, "linewidth", 4)
-axis([0 10*M+1 -2 2]);
-title('Rx DBPSK with 180 deg phase shift');
-subplot(212);
-plot(rx_bpsk, "linewidth", 4)
-axis([0 10*M+1 -2 2]);
-title('Rx BPSK');
-print("cohpsk_dbpsk2.png", "-dpng", "-S600,440", "-F:8")
-