📄 berperformancecomparisonsforlinearmudswithincreasingsnr.m
字号:
m = 3;
N = 2^m-1; %system processing gain
maxbits = 20000; %maxbits
maxusers = 10; % max number of users
S_tot = signature_matrix(m,maxusers);%generate signature matrix.
%S(:,k)=sk normalized to unit energy
noisevar = 1; % noise variance
maxSNR = 14; %SNR in dB for each user
for s=1:1:maxSNR %number of users
A = eye(maxusers)*sqrt(10^(s/10)); % Amplitude of each User
S = S_tot(:,1:maxusers); % Signature Matrix
totalbits = maxbits;
for num_bits = 1:totalbits
b(:,num_bits) = sign(normrnd(zeros(maxusers,1),1)); %generate random bit values for each user
b_frame = b(:,num_bits); %bits of users in num_bits'th frame duration
n = normrnd(0,sqrt(noisevar),N,1); %Assume zero mean AWGN
y_noisefree = S*A*b_frame; %generate received vector (after demodulation)
y = awgn(y_noisefree,s,'measured') ; %add noise to received signal
b_MMSE(:,num_bits) = MUD_MMSE(y,S,A,noisevar); %Multiuser Minimum
Mean Square Error Detection
b_MF(:,num_bits) = MUD_MF(y,S); %Single User Matched Filter Detection
b_Dec(:,num_bits) = MUD_Dec(y,S); %Multiuser Decorrelator
b_OD(:,num_bits) = MUD_OD(y,S,A); %Optimum Detector
end
e_MF = b-b_MF; % calculating error for MF
e_Dec = b-b_Dec; % calculating error for Dec
e_MMSE = b-b_MMSE; % calculating error for MMSE
e_OD = b-b_OD;% calculating error for OD
Pe_MF(s) = length(find(e_MF))/(maxusers*totalbits); % calculating the Probability of
error for MF
Pe_Dec(s) = length(find(e_Dec))/(maxusers*totalbits); % calculating the Probability of
error for Dec
Pe_MMSE(s) = length(find(e_MMSE))/(maxusers*totalbits);% calculating the
Probability of error for MMSE
Pe_OD(s) = length(find(e_OD))/(maxusers*totalbits);% calculating the Probability of
error for OD
s % for keeping of the increasing SNR loop
clear b b_MF b_MMSE b_Dec b_OD y_noisefree A S
end
s=1:maxSNR;
semilogy(s,Pe_MF,s,Pe_MMSE,s,Pe_Dec,s,Pe_OD)
legend('MF','MMSE','Dec','OD');
title('Comparison of Bit Error Probabilities');
xlabel(['increasing SNR, SNR in dB for N = ',num2str(N)]);
ylabel('Bit error Probability, P_b');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -