aboutsummaryrefslogtreecommitdiff
path: root/octave/apsk_ser.m
diff options
context:
space:
mode:
Diffstat (limited to 'octave/apsk_ser.m')
-rw-r--r--octave/apsk_ser.m56
1 files changed, 0 insertions, 56 deletions
diff --git a/octave/apsk_ser.m b/octave/apsk_ser.m
deleted file mode 100644
index c357a64..0000000
--- a/octave/apsk_ser.m
+++ /dev/null
@@ -1,56 +0,0 @@
-function [svec] = apsk_ser(Esvec, M)
-% Return approx (uncoded) SER for 16 or 32 APSK, or plot SERs if no args
-% USAGE apsk_ser(); OR SERvec = apsk_ser(Esvec_dBs, M)
-% VK5DSP, July 2020
-
-% Fit 3rd order polys to data in Figure 3 of
-% "Perf anal of APSK mod for DVB-S2 trans over nonlinear channels"
-% by Wonjin Sung et al;
-% Published in Int. J. Satellite Communications Networking, 2009
-% (see Fig 1 for constellation diagrams and bit mappings)
-
-% from the Figure data, we get 2 polynomials ...
-%{
-Fig3_Es = [10 12.5 15 17.5 20 21];
-Fig3_16_SER = [2e-1 8e-2 2.5e-2 3e-3 1e-4 2e-5];
-Fig3_32_SER = [4e-1 2.8e-1 1.5e-1 4e-2 1e-2 4e-3 1.05e-5];
-
-p16 = polyfit(Fig3_Es, log10(Fig3_16_SER), 3)
-p32 = polyfit([Fig3_Es 25], log10(Fig3_32_SER), 3)
-%}
-
-p16 = [-0.001816729857582 0.053322736530042 -0.653699203208837 2.315143765468362];
-p32 = [-0.001418894437779 0.049903575028137 -0.669130206501662 2.743251206655785];
-
-if nargin==0
- EStest = 10:21;
- EStest2 = 10:25;
- SER16 = polyval(p16, EStest);
- SER32 = polyval(p32, EStest2);
- figure(55);
- semilogy(EStest, 10.^SER16, 'b', EStest2, 10.^SER32, 'g')
- title('Approx Symb Error Rates for APSK')
- xlabel('Es/N0 (dB)')
- ylabel('SER'); grid on;
- legend('16APSK','32APSK'); legend('boxoff')
-elseif nargin~=2,
- error('usage is apsk_ser(Esvec, M)');
-
-else
- if (M~=16)&&(M~=32)
- error('M must be 16 or 32')
- end
- if min(Esvec)<8,
- error('Es/No values should be > 8 dB');
- end
- if (M==16) && (max(Esvec)>23),
- error('Es/No values should be < 23 dB');
- end
- if (M==32) && (max(Esvec)>27),
- error('Es/No values should be < 27 dB');
- end
-
- if M==16, svec = 10.^polyval(p16, Esvec); end
- if M==32, svec = 10.^polyval(p32, Esvec); end
-
-end