基于Matlab的CDMA通信系统仿真(4)
- 16 -
通信系统综合设计与实践
3、仿真部分主程序:
%直接序列扩频主程序代码
function [ber] = dscdma(user,seq) % user: 同时进行扩频通信的用户数
% seq: 扩频码1:M-序列 2:Gold序列 3:正交Gold序列 % ber: 该用户数下的误码率
%************************** 初始化部分 ***************************** sr = 25600.0; % 符号速率
nSymbol=1000; %每种信噪比下发送的符号数 M = 4; % 4-QAM调制 br = sr * log2(M); % 比特速率 graycode=[0 1 3 2]; % Gray编码规则
%********************** 脉冲成形滤波器参数 ************************** delay = 10; % 升余弦滤波器时延 Fs = 8; % 滤波器过采样数 rolloff = 0.5; % 升余弦滤波器滚降因子 rrcfilter = rcosine(1,Fs,'fir/sqrt',rolloff,delay); %设计根升余弦滤波器
%********************** 扩频码产生参数 **********************
% user = user1; % 用户数 stage = 3; % m序列的阶数 ptap1 = [1 3]; % m序列1的寄存器连接方式 ptap2 = [2 3]; % m序列2的寄存器连接方式 regi1 = [1 1 1 ]; % m序列1的寄存器初始值 regi2 = [1 1 1]; % m序列2的寄存器初始值
%******************** 扩频码的生成 *********************
switch seq
case 1 % M-序列 code = mseq(stage,ptap1,regi1,user);
case 2 % Gold 序列 m1 = mseq(stage,ptap1,regi1); m2 = mseq(stage,ptap2,regi2); code = goldseq(m1,m2,user);
EbNo=0:2:10; % Eb/No 变化范围
- 17 -
通信系统综合设计与实践
case 3 % 正交 Gold 序列 m1 = mseq(stage,ptap1,regi1); m2 = mseq(stage,ptap2,regi2);
code = [goldseq(m1,m2,user),zeros(user,1)]; end
code = code * 2 - 1; clen = length(code);
%************************** 衰落信道参数 **************************
ts = 1 / Fs / sr/ clen; % 信道采样时间间隔
t=(0:nSymbol*Fs*clen-1+2*delay*Fs)*ts; % 每种信噪比下的符号传输时间 y = 160; % 多普勒频移 [Hz] %h=rayleigh(fd,t);
%**************************** 仿真开始 ****************************
for indx=1:length(EbNo) indx
%************************** 发射端 ******************************** data = randsrc(user,nSymbol,[0 :3]) ; % 产生各个用户的发射数据 data1=graycode(data+1); % Gray编码 data1 = qammod(data1,M); % 4-QAM 调制 [out] = spread(data1,code); % 扩频
out1=rcosflt(out.',sr,Fs*sr,'filter',rrcfilter);
% 通过脉冲成形滤波器
spow = sum(abs((out1)).^2) / nSymbol; % 计算每个用户信号功率 if user > 1 % 用户数大于1时,所有用户数据相加 out1=sum(out1.'); else
out1=out1.'; end
%******************** 通过瑞利衰落信道 ****************************** % out1=h.*out1;
%************************* 接收端 *********************************
sigma = sqrt(0.5 * spow * sr / br * 10^(-EbNo(indx)/10)); % 根据信噪比计算高斯白噪声方差 y=[];
- 18 -
通信系统综合设计与实践
for ii=1:user
y(ii,:)=out1+sigma(ii).*(randn(1,length(out1))+j*randn(1,length(out1))); % 加入高斯白噪声(AWGN)
%y(ii,:)=y(ii,:)./h; % 假设理想信道估计 end
y=rcosflt(y.',sr,Fs*sr,'Fs/filter',rrcfilter);
% 通过脉冲成形滤波器进行滤波
y=downsample(y,Fs); % 降采样 for ii=1:user
y1(:,ii)=y(2*delay+1:end-2*delay,ii); end
yd = despread(y1.',code); % 数据解扩 demodata = qamdemod(yd,M); % 4-QAM 解调 demodata=graycode(demodata+1); % Gray编码逆映射
[err,ber(indx)]=biterr(data,demodata,log2(M)); % 统计误比特率 end
主程序中spread函数的代码:
%扩频函数
function [out] = spread(data, code)
% **************************************************************** % data : 输入数据序列 % code : 扩频码序列
% out : 扩频后的输出数据序列
% ****************************************************************
switch nargin
case { 0 , 1 } %如果输入参数个数不对,提示错误 error('缺少输入参数'); end
- 19 -
通信系统综合设计与实践
相关推荐:
- [政务民生]2013年公共基础知识热点问题(七)
- [政务民生]检验检测机构资质认定评审准则及释义20
- [政务民生]关于印发重庆市房屋建筑和市政基础设施
- [政务民生]1、隧道洞身开挖支护施工技术交底书
- [政务民生]2015年山东省17地市中考语文试题分类汇
- [政务民生]2-高级会计师资格考试和评审流程图
- [政务民生]2018版中国清分机行业发展分析及前景策
- [政务民生]新课改高中政治探究
- [政务民生]2018-2024年中国新型组合房屋行业投资
- [政务民生]2015年上海市春季高考数学模拟试卷五
- [政务民生]灌砂法及环刀法测压实度(带计算过程)
- [政务民生]运筹学实验2求解非线性规划
- [政务民生]劝学、逍遥游默写(教师卷)
- [政务民生]《运筹学》 - 期末考试 - 试卷A - 答案
- [政务民生]八年级英语下册 Module 6 Hobbies测试
- [政务民生]2019年宪法知识竞赛试题库100题(含答
- [政务民生]自动化英文文献翻译
- [政务民生]公文格式实施细则
- [政务民生]高一地理上册课堂跟踪练习题6
- [政务民生]会计继续教育习题及答案
- 第三章 无约束最优化方法
- 泛读教程第三册答案
- 魏晋南北朝文学
- 幂的运算复习题
- 城市环境问题的成因与治理策略_以社会
- 钢结构行业产业链及竞争分析研究
- 新型热塑性弹性体增韧聚丙烯的研究
- 中国旅游地理B卷试题及答案
- (苏教版)五年级数学上册第三单元测试卷
- 不稳定性心绞痛诊断与治疗
- 俞氏国际后勤职能部门绩效考核办法
- GB7258-2017新标准考试题含答案
- 小学生汉字听写比赛活动方案
- 1.3《平抛运动》学案 教科版必修2
- 2011香港特别行政区公务员考试复习资料
- 考虑水力条件变化的城市给水管网可靠性
- 表面活性剂在油田开发和生产中的应用
- ITT内部培训资料-FI端吸泵的介绍
- 文明守纪,从我做起学生发言稿
- 初中读《聊斋志异》心得体会800字范文




