📄 ber_snr.m
字号:
function [BER] = BER_SNR(k)
% clear,clc;
%[1]initial Parameter
% k=10;% k=10;% m=k;% k 用户数
Lc=32;%扩频增益
x_num=5000;%信息序列长度
SNRindB=1:8;
Tc=1;
Ts=Lc*Tc;
% NumOfErrorBit=0;
for i=1:length(SNRindB)
SNRline=10^(SNRindB(i)/10);
Sigma=1;%噪声标准差
Eb=Sigma^2*SNRline; %信号能量
Pow=Eb/Ts;%信号功率
x=GenSignal(x_num);%产生信号,信号长度已经确定,均匀分布
%[2]spread spectrum
PNcode=walsh_sequence_generator(Lc);%产生用户PN序列
c=PNcode(1,:)';
y=dsmod(c,x);
%加入其他用户信息作为干扰
for j=2:k
xtemp=GenSignal(x_num);
ctemp=PNcode(j,:)';
ytemp=dsmod(ctemp,xtemp);
y=y+ytemp;
end
y=sqrt(Pow)*y;
%[3]Add AWGN
AWGN=Sigma*randn(1,Lc*x_num);
y=y+AWGN;
%[4]despread spectrum
r=dsdemode(c,y);
%[5]decision
r=sign(r);
Errorbit=length(find(abs(r-x)>1e-004));
% Errorbit=length(find(r-x));
BER(i)=Errorbit/length(r);
end
% semilogy(SNRindB,BER,'r*-');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -