Working Kerr effect; PDM; speedups; removed unused files
[4yp.git] / theoreticalPSK.m
CommitLineData
1eeb62fb
AIL
1function theoreticalPSK(EbN0_db, M, varargin)
2 %% Plot theoretical curve
3 EbN0 = 10 .^ (EbN0_db ./ 10);
4 if M == 2 || M == 4
5 %% BPSK: bit error when noise Nr > sqrt(Eb)
6 %% Pr(Nr > sqrt(Eb))
7 %% = Pr(Z > sqrt(Eb) / sqrt(N0/2))
8 %%
9 %% QPSK = 2 BPSKs, one real and one imaginary, each with one bit
10 %% so BER is the same as BPSK (assuming Gray code)
11 ber_th = qfunc(sqrt(2 * EbN0));
12 semilogy(EbN0_db, ber_th, varargin{:});
13 else
14 %% Approximation: J.G. Proakis and M. Salehi, 2000, Contemporary
15 %% Communication Systems using MATLAB (Equations
16 %% 7.3.18 and 7.3.19), Brooks/Cole.
17 ber_ap = 2 * qfunc(sqrt(EbN0 * log2(M) * 2) * sin(pi / M)) / log2(M);
18 semilogy(EbN0_db, ber_ap, varargin{:});
19 end
20end