-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathQPSK.m
More file actions
26 lines (17 loc) · 795 Bytes
/
QPSK.m
File metadata and controls
26 lines (17 loc) · 795 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
26
function [ynoisy_qpsk, constDiag_qpsk] = QPSK(M, bitsPerFrame_QPSK, rayChan, SNR)
% function [ynoisy_qpsk] = QPSK(M, bitsPerFrame_QPSK, rayChan, SNR)
%% QPSK
x = randi([0 M-1],bitsPerFrame_QPSK,1); % Input signal
qpskmod = comm.QPSKModulator;
qpskdemod = comm.QPSKDemodulator;
cpts = qpskmod(x);
constDiag_qpsk = comm.ConstellationDiagram('ReferenceConstellation',cpts, ...
'XLimits',[-M M],'YLimits',[-M M]);
y = qpskmod(x);
ynoisy_qpsk = awgn(y,SNR,'measured'); % Noise addition (SNR)
ynoisy_qpsk = rayChan(ynoisy_qpsk);
z = qpskdemod(ynoisy_qpsk);
[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