% Program 5-6
%
% Simulation program to realize DS-CDMA system
%
% dscdma.m
%
% Programmed by M.Okita and H.Harada
%
%**************************** Preparation part *****************************
% function ber=ds(b)
clear
nd=10; % number of symbol
ebn0=0:8; % Eb/No
user=4;
% number of users
% %******************** Generation of the spreading code *********************
m=64;
code=walsh(m);
%************************** Fading initialization **************************
x=randn(1,4);
y=randn(1,4);
alfa1=x+j.*y;
alfa2=x-j.*y;
ap=[0,0,-2,-3];
ap=10.^(ap/10);
r1=ap.*alfa1;
r2=ap.*alfa2;
tau=[0,1,3,7];
%**************************** START CALCULATION ****************************
for ii=1:length(ebn0) % simulation number of times
noe = 0;
nod = 0;
% while(noe<500)
for iii=1:1000
%****************************** Transmitter ********************************
data=rand(user,nd) > 0.5;
data1=2*data-1;
data2=spread(data1,zeros(size(data1)),code(2:user+1,:)); % spreading
if user == 1 % transmission
data3=data2;
else
data3=sum(data2);
end
%***************************** Fading channel ******************************
% x=randn(1,4);
% y=randn(1,4);
% alfa1=x+j.*y;
% alfa2=x-j.*y;
% ap=[0,0,-2,-3];
% ap=10.^(ap/10);
% r1=ap.*alfa1;
% r2=ap.*alfa2;
% tau=[0,1,3,7];
for i=1:length(tau)
data4(i,:)=delay1(data3,zeros(size(data3)),length(data3),tau(i));
data5(i,:)=r1(i).*data4(i,:);
end
data6=sum(data5);
%******************************** Receiver *********************************
spow = sum(rot90(data2.^2))/nd; % attenuation Calculation
attn = sqrt(0.5*spow*10^(-ebn0(ii)/10));
data7 = comb2(data6,zeros(size(data6)),attn);
b=2;
for jj=1:user
for j0=1:b
code0(jj,:)=delay2(code(2+jj-1,:),zeros(1,m),m,tau(j0));
data8(j0,:)=r2(j0).*data7(jj,:);
data9(j0,:)=despread(data8(j0,:),zeros(size(data8)),code0(jj,:)); % despreading
end
if b==1
data10(jj,:)=data9;
else
data10(jj,:)=sum(data9);
end
end
% data10=despread(data7,zeros(size(data7)),code(2:2+user-1,:));
demodata=data10>0;
%************************** Bit Error Rate (BER) ***************************
noe2 = sum(sum(abs(data(:,2:nd-1)-demodata(:,2:nd-1))));
nod2 = (nd-2)*user;
noe = noe + noe2;
nod = nod + nod2;
end
%******************************** Data file ********************************
ber(ii) = noe / nod;
fprintf('%d\t%d\t%d\t%e\n',ebn0(ii),noe,nod,ber(ii)); % fprintf: built in function
end
%******************************** end of file ********************************
semilogy(ebn0,ber);
% 0 1217 32000 3.803125e-002
% 1 1025 32000 3.203125e-002
% 2 781 32000 2.440625e-002
% 3 600 32000 1.875000e-002
% 4 430 32000 1.343750e-002
% 5 280 32000 8.750000e-003
% 6 221 32000 6.906250e-003
% 7 115 32000 3.593750e-003
% 8 54 32000 1.687500e-003
dscdma_simulation.rar_CDMA MATLAB 多径_DS-CDMA system_DS-CDMA 误码率_
版权申诉
5星 · 超过95%的资源 135 浏览量
2022-07-13
18:09:44
上传
评论
收藏 5KB RAR 举报
四散
- 粉丝: 54
- 资源: 1万+
最新资源
- 如何学习神经网络系统,课程体系都有哪些?+编程知识+技术开发+神经网络课程
- HIT-ICS大作业-程序人生-HELLO'SP2P
- 基于matlab的同步发电机仿真
- matlab+c++实现基于FMCW雷达的多天线定位系统+源码+开发文档+参考文档+项目解析(英特尔杯嵌入式大赛)
- 苹果cms电影一号影视网站模板
- 基于Pytorch实现的语音情感识别源代码+使用说明文档(高分项目)
- 基于Selenium的Java爬虫实战(内含谷歌浏览器Chrom和Chromedriver版本121.0.6122.0)
- sound-filed-master.zip
- Blender2Babylon-3.3x.zip
- 基于Selenium的Java爬虫实战(内含谷歌浏览器Chrom和Chromedriver版本121.0.6120.0)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈