-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathAPSK.m
More file actions
25 lines (16 loc) · 827 Bytes
/
APSK.m
File metadata and controls
25 lines (16 loc) · 827 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
function [ynoisy_apsk, constDiag_apsk] = APSK(M, radii, bitsPerFrame_APSK, rayChan, SNR)
% function [ynoisy_apsk] = APSK(M, radii, bitsPerFrame_APSK, rayChan, SNR)
%% APSK
modOrder = sum(M);
x = randi([0 modOrder-1],bitsPerFrame_APSK,1); % Input signal
cpts = apskmod(x,M,radii);
constDiag_apsk = comm.ConstellationDiagram('ReferenceConstellation',cpts, ...
'XLimits',[-2*radii(3) 2*radii(3)],'YLimits',[-2*radii(3) 2*radii(3)]);
y = apskmod(x,M,radii);
ynoisy_apsk = awgn(y,SNR,'measured'); % Noise addition (SNR)
ynoisy_apsk = rayChan(ynoisy_apsk);
z = apskdemod(ynoisy_apsk,M,radii);
[num,rt] = symerr(x,z); % Compute number of symbol errors and symbol error rate
fprintf("Number of symbol errors: %f\n", num);
fprintf("Symbol error rate: %f\n", rt);
end