发布时间 : 星期日 文章基于MATLAB的扩频通信系统仿真毕业论文更新完毕开始阅读
黄河科技学院毕业论文 第
end
iout((1:para),jj)=isi; qout((1:para),jj)=isq; count2=count2+ml;
26 页
end
扩频部分
function [iout, qout] = spread(idata, qdata, code1) %变量含义说明
% idata 输入序列实部 % qdata 输入序列虚部 % iout 输出序列实部 % qout 输出序列虚部 % code1 扩频码序列 switch nargin case { 0 , 1 }
error('lack of input argument'); case 2
code1 = qdata; qdata = idata; end
[hn,vn] = size(idata); [hc,vc] = size(code1); if hn > hc
error('lack of spread code sequences'); end
iout = zeros(hn,vn*vc); qout = zeros(hn,vn*vc); for ii=1:hn
iout(ii,:) = reshape(rot90(code1(ii,:),3)*idata(ii,:),1,vn*vc);
黄河科技学院毕业论文 第
end
信道仿真部分
27 页
qout(ii,:) = reshape(rot90(code1(ii,:),3)*qdata(ii,:),1,vn*vc);
实现高斯白噪声代码函数
function [iout, qout] = comb2(idata, qdata, attn)
%各变量含义说明 % idata 输入序列实部 % qdata 输入序列虚部 % iout 输出序列实部 % qout 输出序列虚部
% attn 根据信噪比得到的信号衰减水平
v = length(idata); h = length(attn);
iout = zeros(h,v); qout = zeros(h,v); for ii=1:h
iout(ii,:) = idata + randn(1,v) * attn(ii); qout(ii,:) = qdata + randn(1,v) * attn(ii); end
黄河科技学院毕业论文 第
28 页
接收机的解扩部分函数
function [iout, qout] = despread(idata, qdata, code1) %各变量含义说明
% idata 输入序列实部 % qdata 输入序列虚部 % iout 输出序列实部 % qout 输出序列虚部 % code1 扩频码序列
switch nargin case { 0 , 1 }
error('lack of input argument'); case 2
code1 = qdata; qdata = idata; end
[hn,vn] = size(idata); [hc,vc] = size(code1);
vn = fix(vn/vc);
iout = zeros(hc,vn); qout = zeros(hc,vn);
for ii=1:hc iout(ii,:)
rot90(flipud(rot90(reshape(idata(ii,:),vc,vn)))*rot90(code1(ii,:),3));
=
黄河科技学院毕业论文 第
qout(ii,:)
rot90(flipud(rot90(reshape(qdata(ii,:),vc,vn)))*rot90(code1(ii,:),3));
end
接收机解调部分的函数
29 页
=
function [demodata]=qpskdemod(idata,qdata,para,nd,ml) %各变量含义说明
% idata 输入数据的实部 % qdata 输入数据的虚部 % demodata 解调后的数据 % para 并行的信道数 % nd 输入数据个数 % ml 调制阶数 demodata=zeros(para,ml*nd);
demodata((1:para),(1:ml:ml*nd-1))=idata((1:para),(1:nd))>=0; demodata((1:para),(2:ml:ml*nd))=qdata((1:para),(1:nd))>=0;
%误码率分析
noe2 = sum(sum(abs(data-demodata))); nod2 = user * nd * ml; noe = noe + noe2; nod = nod + nod2;
% fprintf('%d\\t%e\\n',ii,noe2/nod2); end
%数据文件 ber = noe / nod;