-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathQAM.m
More file actions
23 lines (15 loc) · 716 Bytes
/
QAM.m
File metadata and controls
23 lines (15 loc) · 716 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function [ynoisy_qam, constDiag_qam] = QAM(M, bitsPerFrame_QAM, rayChan, SNR)
% function [ynoisy_qam] = QAM(M, bitsPerFrame_QAM, rayChan, SNR)
%% QAM
x = randi([0 M-1],bitsPerFrame_QAM,1); % Input signal
cpts = qammod(0:M-1,M);
constDiag_qam = comm.ConstellationDiagram('ReferenceConstellation',cpts, ...
'XLimits',[-M M],'YLimits',[-M M]);
y = qammod(x,M);
ynoisy_qam = awgn(y,SNR,'measured'); % Noise addition (SNR)
ynoisy_qam = rayChan(ynoisy_qam);
z = qamdemod(ynoisy_qam,M);
[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