📄 errprob.m
字号:
function [err avp n1] = errprob(data,snr_in_dB,M,pn,h)
% ----------------------------------------------------------------------- %
global err
snr = 10^(snr_in_dB/10);;
Nusers = 3;
N = 100;
Nc = 31;
T = 1;
Tc = (T/Nc);
%chip duration of MC-DS-CDMA
Nsample = 1; ts = Tc/Nsample;
fs = 1/ts;
%To save run time, we can select fc to be [1:M]*10000;
%To ensure that bandwidth of subcarrier doesn't overlap each other.
for i = 1:M
fc(i) = 10000+(1/(2*Tc));
end;
error = 0;
iteration = 2;
for n = 1:iteration
for i = 1:N,
%Sampling time
t = [(i-1)*T:ts:i*T-ts];
datat = data(i,:);
%Transmitter
trans = transmitter(datat,t,Nsample,Nc,pn,M,fc,Nusers);
E = sum(trans.^2);
simga = sqrt(E/snr);
%For multicarrier system
hno=(randn(1,Nc)+j*randn(1,Nc));
for path = 1:M
noise = simga*hno;
rec(path,:) = conv(h(path),trans)+noise;
end;
%Receiver
z = multirece(rec,h,t,Nsample,Nc,pn,M,fc,Nusers);
%decision
if z(1)<1
decision = 0;
else
decision = 1;
end;
if decision ~= datat(1)
error = error+1;
end;
end;
p(n) = error/(Nusers*N);
end;
avp = sum(p(n))/iteration;
% ----------------------------------------------------------------------- %
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -