由于该楼层涉嫌违规,系统将其折叠并隐藏,以显示该楼层
%主程序
function [ber]=dscdma(user,seq )
%{
user:同时进行扩频通信的用户数
seq:扩频码选择:1.M序列2 .黄金序列3 .正交黄金序列
ber:此用户数的错误率
%}
%初始化
sr=256000.0;
nSymbol=1000;
M=4;
br=Sr*log2(m;
graycode=[0 1 3 2];
EbNo=0:1:10;
%脉冲成形滤波器参数
延迟=10;
Fs=8;
rolloff=0.5;
RCfilter=rcosine(1,Fs,' fir/sqrt ',rolloff,delay ); 设计%根升余弦滤波器
%扩频码生成参数
用户=4;
阶段=3;
ptap1=[1 3];
ptap2=[2 3];
regi1=[1 1 1];
regi2=[1 1 1];
%扩频码的生成
switch seq
case 1 %M序列
code=mseq(stage,ptap1,regi1,user );
第2类
m1=mseq(stage,ptap1,regi1); %Gold序列
m2=mseq(stage,ptap2,regi2);
code=goldseq(m1,m2,user );
第3类
m1=mseq(stage,ptap1,regi1); %正交Gold序列
m2=mseq(stage,ptap2,regi2);
code=[goldseq(m1,m2,user ),zeros ),1 ) ]
结束
代码=代码*2- 1;
clen=length (代码;
%衰落信道参数
ts=1/Fs/sr/clen; %采样间隔
t=(0: nsymbol * fs * clen-12 * delay * fs ) ts; 每%s/n的符号传输时间
fd=160; %多普勒频移【HZ】
h=Rayleigh(FD,t ); %衰落信道的生成
%开始模拟
for indx=1:长度(ebno )
%发送方
DATA=randsrc(user,nSymbol,0:3 ); %为每个用户生成发送数据
data1=graycode(data1;
data1=QAMmod(data1,m ); %4-QAM调制
[out]=spread(data1,code ); %扩散
out1=Rcosflt(out.',sr,Fs*sr,' filter ',rrcfilter ); 通过%脉冲成形过滤器
spow=sum(ABS () out1) ).^2)/nSymbol; 计算每个%用户的信号功率
国际足球甲级联赛
out1=sum(out1. ' ); %用户数大于1,将对所有用户数据进行加法运算
结束
通过zsdcb衰落信道
out1=h.*out1;
%接收方
%信噪比计算高斯白噪声方差
sigma=sqrt (0.5 * spow * Sr/br * 10 ^ (-ebno ) indx )/10 );
y=[];
for ii=1:用户
添加%高斯白噪声(AWGN )
y(ii, )=out1sigma(ii ).* ) randn(1,length ) out1) ) j*randn(1) 1,length ) out1) );
y(ii, )=y ) ii, )./h; %假设理想的信道估计
结束
y=Rcosflt(y.',sr,Fs*sr,' Fs/filter ',rrcfilter ); 用%脉冲成形滤波器过滤
y=downsample(y,Fs ); %下采样
for ii=1:用户
y1(3360,ii )=y )2*Delay1:end-2*Delay,ii );
结束
yd=despread(y1.',code ); %取消扩展数据
demodata=QAMdemod(yd,m ); %4-QAM解调
demodata=graycode(demodata1; %Gray编码反向映射
[err,ber(indx ) ]=biterr (数据(1, ),数据(1, ),log2(M ) m );
结束