M-ary PSK code from M-ary QAM code

조회 수: 25 (최근 30일)
Maaz Madha
Maaz Madha 2021년 3월 24일
Hi all.
My professor has handed a code for the M-ary QAM
% function for realizing M-QAM modulation %
function simSerMQAM = mQAM(M, EsN0dB)
j = sqrt(-1); % imaginary unit %
numSim = 7*10^5; % number of simulation symbols %
k = sqrt(1/((2/3)*(M-1))); % factor for normalizing energy %
m = [1:sqrt(M)/2]; % alphabets %
alphaMqam = [-(2*m-1) 2*m-1];
errSymsQAM = zeros(1, length(EsN0dB));
for ii = 1:length(EsN0dB)
infoSyms = randsrc(1,numSim,alphaMqam) + j*randsrc(1,numSim,alphaMqam);
infoSymsQAM = k*infoSyms; % normalization of energy to 1 %
noise = 1/sqrt(2)*[randn(1,numSim) + j*randn(1,numSim)]; % white guassian noise, 0dB
tranSymsQAM = infoSymsQAM + 10^(-EsN0dB(ii)/20)*noise; % additive white gaussian noise %
% demodulation %
tranSymsRe = real(tranSymsQAM)/k; % real part %
tranSymsIm = imag(tranSymsQAM)/k; % imaginary part %
% rounding to the nearest alphabet %
recSymsRe = 2*floor(tranSymsRe/2)+1;
recSymsRe(find(recSymsRe >max(alphaMqam))) = max(alphaMqam);
recSymsRe(find(recSymsRe <min(alphaMqam))) = min(alphaMqam);
% rounding to the nearest alphabet %
recSymsIm = 2*floor(tranSymsIm/2)+1;
recSymsIm(find(recSymsIm >max(alphaMqam))) = max(alphaMqam);
recSymsIm(find(recSymsIm <min(alphaMqam))) = min(alphaMqam);
demoSyms = recSymsRe + j*recSymsIm;
% counting the number of symbol errors %
errSymsQAM(ii) = size(find([infoSyms - demoSyms]),2);
end
simSerMQAM = errSymsQAM/numSim;
end
%To run in command window
simSerMQAM = errSymsQAM/numSim;
end
and wants up to produce a M-ary PSK code based on that. Problem is, neither I nor anyone from my peer group can understand this code and I have been wracking my brains on this without knowing what to do. I am hoping that someone would be kind enough to shed light on this and what it does because I don't know what to do with it.

답변 (0개)

카테고리

Help CenterFile Exchange에서 PHY Components에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by