基于MATLAB的扩频通信仿真之令狐文艳创作Word格式文档下载.docx

上传人:b****3 文档编号:7858684 上传时间:2023-05-09 格式:DOCX 页数:15 大小:62.11KB
下载 相关 举报
基于MATLAB的扩频通信仿真之令狐文艳创作Word格式文档下载.docx_第1页
第1页 / 共15页
基于MATLAB的扩频通信仿真之令狐文艳创作Word格式文档下载.docx_第2页
第2页 / 共15页
基于MATLAB的扩频通信仿真之令狐文艳创作Word格式文档下载.docx_第3页
第3页 / 共15页
基于MATLAB的扩频通信仿真之令狐文艳创作Word格式文档下载.docx_第4页
第4页 / 共15页
基于MATLAB的扩频通信仿真之令狐文艳创作Word格式文档下载.docx_第5页
第5页 / 共15页
基于MATLAB的扩频通信仿真之令狐文艳创作Word格式文档下载.docx_第6页
第6页 / 共15页
基于MATLAB的扩频通信仿真之令狐文艳创作Word格式文档下载.docx_第7页
第7页 / 共15页
基于MATLAB的扩频通信仿真之令狐文艳创作Word格式文档下载.docx_第8页
第8页 / 共15页
基于MATLAB的扩频通信仿真之令狐文艳创作Word格式文档下载.docx_第9页
第9页 / 共15页
基于MATLAB的扩频通信仿真之令狐文艳创作Word格式文档下载.docx_第10页
第10页 / 共15页
基于MATLAB的扩频通信仿真之令狐文艳创作Word格式文档下载.docx_第11页
第11页 / 共15页
基于MATLAB的扩频通信仿真之令狐文艳创作Word格式文档下载.docx_第12页
第12页 / 共15页
基于MATLAB的扩频通信仿真之令狐文艳创作Word格式文档下载.docx_第13页
第13页 / 共15页
基于MATLAB的扩频通信仿真之令狐文艳创作Word格式文档下载.docx_第14页
第14页 / 共15页
基于MATLAB的扩频通信仿真之令狐文艳创作Word格式文档下载.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于MATLAB的扩频通信仿真之令狐文艳创作Word格式文档下载.docx

《基于MATLAB的扩频通信仿真之令狐文艳创作Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于MATLAB的扩频通信仿真之令狐文艳创作Word格式文档下载.docx(15页珍藏版)》请在冰点文库上搜索。

基于MATLAB的扩频通信仿真之令狐文艳创作Word格式文档下载.docx

基于MATLAB/Simulink所建立的扩频通信系统的仿真模型,能够反映扩频通信系统的动态工作过程,可进行波形观察、品剖分析和性能分析等,同时能根据研究和设计的需要扩展仿真模型,实现以扩频通信为基础的现代通信的模拟仿真,为系统的研究和设计提供强有力的平台。

图2为基于MATLAB/Simulink的扩频通信系统的仿真模型。

图2基于Simulink的扩频通信系统的仿真模型

2.1随机整数发生器(RandomIntegergenarator)

随机整数发生器(RandonIntegergenerator)作为仿真系统的信源,随机整数发生器产生二进制随机信号,采用时间、初始状态可自由设置,从而满足扩频通信系统所需信源的要求。

2.2PN序列发生器(PNSequenceGenerator)

用PN序列发生器(PNSequenceGenerator)产生伪随机码,对基带信号进行扩频。

扩频过程通过信息码与PN码进行双极性变换后相乘加以实现。

解扩过程与扩频过程相同,即将接收的信号用PN码进行第二次扩频处理。

2.3最小相移键控调制(M-PSKModulatorPassband)

对基带信号进行数字调制,将频谱从基带搬移至频带,以实现远距离传输的效果。

2.4加性高斯白噪声信道(AWGNChannel)

信号通过加性高斯白噪声信道,以达到对信号的传输后进行再进行解扩解调的目的。

改信道信噪比参数设置为负数,可验证扩频通信系统具有良好的抗噪声能力。

2.5最小相移键控解调(M-PSKDemodulatorPassband)

对解扩后的信号进行解调,恢复基带信号。

2.6误码率分析仪(ErrorRateCalculation)

在误码率计算中,接收到的信号,由于经过扩频解扩、调制解调、相关统计等处理,会存在一个延迟,在误码仪模块的对话框中要设置一个合适的延迟。

2.7其他设置

2.7.1RELAY的设置

2.7.1product的设置

2.7.3display的设置

2.7.4频谱分析仪(spectrumscope)的设置

系统中有四个频谱分析仪器,分别命名为:

baseband、mod、SS和DSS。

其中,baseband能观察基带信号的频谱;

mod能观察到基带信号调制到频带后的频谱;

SS能观察扩频后的频谱;

DSS能观察解扩解调后的接受端输出信号的频谱。

这四个频谱分析仪的参数设置大致一致,其前方的零阶保持器的采样时间略有不同。

频谱分析仪名称

Baseband

Mod

SS

DSS

采样时间(s)

0.001

1/30000

0.001/31

3.M文件编写仿真程序

用m文件编写的MATLBA程序来实现观察系统在不同信噪比下的误码率变化情况。

此仿真要实现扩频码的产生、发射机部分、接收机部分、信道仿真部分以及误码分析部分,此外还有进行循环仿真以达到绘出信噪比与误码率见的函数图。

3.1扩频码的产生

选取m序列作为仿真系统的扩频码,产生函数如下:

function[mout]=mseq(stg,taps,inidata,n)

%变量含义说明

%stgm序列阶数

%taps线性移位寄存器的系数

%inidata序列的初始化

%n输出序列的数目

%mout输出的m序列

ifnargin<

4

n=1;

end

mout=zeros(n,2^stg-1);

fpos=zeros(stg,1);

fpos(taps)=1;

forii=1:

2^stg-1

mout(1,ii)=inidata(stg);

%输出数据的存储

num=mod(inidata*fpos,2);

%反馈数据的计算

inidata(2:

stg)=inidata(1:

stg-1);

%线形移位寄存器的一次移位

inidata

(1)=num;

%返回反馈值

ifn>

1

forii=2:

n

mout(ii,:

)=shift(mout(ii-1,:

),1,0);

end

end

3.2发射机部分

发射机部分包括扩频和调制两部分。

3.2.1QPSK调制部分

此处采用QPSK调制,相比SIMULINK的M-PSK调制的实现要求要低一些。

function[iout,qout]=qpskmod(paradata,para,nd,ml)

%各变量含义说明

%paradata输入数据

%iout输出的实部数据

%qout输出的虚部数据

%para并行信道数

%nd输入数据个数

%ml调制阶数

m2=ml./2;

paradata2=paradata.*2-1;

count2=0;

forjj=1:

nd

isi=zeros(para,1);

isq=zeros(para,1);

forii=1:

m2

isi=isi+2.^(m2-ii).*paradata2((1:

para),ii+count2);

isq=isq+2.^(m2-ii).*paradata2((1:

para),m2+ii+count2);

iout((1:

para),jj)=isi;

qout((1:

para),jj)=isq;

count2=count2+ml;

3.2.2扩频部分

function[iout,qout]=spread(idata,qdata,code1)

%idata输入序列实部

%qdata输入序列虚部

%iout输出序列实部

%qout输出序列虚部

%code1扩频码序列

switchnargin

case{0,1}

error('

lackofinputargument'

);

case2

code1=qdata;

qdata=idata;

[hn,vn]=size(idata);

[hc,vc]=size(code1);

ifhn>

hc

lackofspreadcodesequences'

iout=zeros(hn,vn*vc);

qout=zeros(hn,vn*vc);

hn

iout(ii,:

)=reshape(rot90(code1(ii,:

),3)*idata(ii,:

),1,vn*vc);

qout(ii,:

),3)*qdata(ii,:

3.3信道仿真部分

实现高斯白噪声代码函数

function[iout,qout]=comb2(idata,qdata,attn)

%idata输入序列实部

%attn根据信噪比得到的信号衰减水平

v=length(idata);

h=length(attn);

iout=zeros(h,v);

qout=zeros(h,v);

h

)=idata+randn(1,v)*attn(ii);

)=qdata+randn(1,v)*attn(ii);

3.4接收机部分

3.4.1接收机的解扩部分函数

function[iout,qout]=despread(idata,qdata,code1)

%qout输出序列虚部

vn=fix(vn/vc);

iout=zeros(hc,vn);

qout=zeros(hc,vn);

hc

)=rot90(flipud(rot90(reshape(idata(ii,:

),vc,vn)))*rot90(code1(ii,:

),3));

)=rot90(flipud(rot90(reshape(qdata(ii,:

3.4.2接收机解调部分的函数

function[demodata]=qpskdemod(idata,qdata,para,nd,ml)

%idata输入数据的实部

%qdata输入数据的虚部

%demodata解调后的数据

%para并行的信道数

%ml调制阶数

demodata=zeros(para,ml*nd);

demodata((1:

para),(1:

ml:

ml*nd-1))=idata((1:

nd))>

=0;

para),(2:

ml*nd))=qdata((1:

3.5误码计算和绘图部分

%误码率分析

noe2=sum(sum(abs(data-demodata)));

nod2=user*nd*ml;

noe=noe+noe2;

nod=nod+nod2;

%fprintf('

%d\t%e\n'

ii,noe2/nod2);

%数据文件

ber=noe/nod;

fprintf('

%d\t%d\t%d\t%e\n'

ebn0,noe,nod,noe/nod);

fid=fopen('

BER.dat'

'

a'

fprintf(fid,'

%d\t%e\t%f\t%f\t\n'

ebn0,noe/nod,noe,nod);

fclose(fid);

err_rate_final(ebn0+6)=ber;

%性能仿真图

figure

semilogy(SNR,err_rate_final,'

b-*'

xlabel('

信噪比/dB'

ylabel('

误码率'

axis([-5,10,0,1])

gridon

3.6初始化设置以及仿真循环设置

Main函数为

clearall;

clc

sr=256000.0;

%符号速率

ml=2;

%调制阶数

br=sr*ml;

%比特速率

nd=100;

%符号数

SNR=-5:

1:

10;

%Eb/No

%**************************扩频码初值设定**************

user=1;

%用户数

stage=3;

%序列阶数

ptap1=[13];

%第一个线性移位寄存器的系数

disp('

--------------start-------------------'

%******************扩频码的产生******************

forebn0=-5:

10%m序列

code=mseq(stage,ptap1,regi1,user);

code=code*2-1;

clen=length(code);

%******************仿真运算开始******************

nloop=1000;

%仿真循环次数

noe=0;

nod=0;

nloop

%******************发射机******************

data=rand(user,nd*ml)>

0.5;

[ich,qch]=qpskmod(data,user,nd,ml);

%QPSK调制

[ich1,qch1]=spread(ich,qch,code);

%扩频

ich2=ich1;

qch2=qch1;

%******************接收机******************

[ich3,qch3]=comb2(ich2,qch2,attn);

%添加高斯白噪声(AWGN)

sampl=irfn*IPOINT+1;

ich4=ich3(:

sampl:

IPOINT:

IPOINT*nd*clen+sampl-1);

qch4=qch3(:

[ich5qch5]=despread(ich4,qch4,code);

%解扩

demodata=qpskdemod(ich5,qch5,user,nd,ml);

%QPSK解调

%******************误码率分析******************

%******************数据文件******************

%******************性能仿真图******************

--------------end-------------------'

4.仿真结果与分析

4.1.1Simulink仿真结果

●基带信号的频谱如下

●经调制后频谱如下

●扩频后频谱如下

●接收端恢复后的输出信号频谱如下

●误码计算仪的结果

4.1.2Simulink仿真结果分析

可以看出,基带信号的频率分量主要是在-100Hz到100Hz,这与信号源所设置的频率相符合。

基带信号进过M-PSK调制后,正频域的频率分量集中在2.9KHz-3.1KHz处,可看出载波频率为3KHz,这个结果与M-PSK调制器所设置的载波频率一致。

频带信号经过与PN码相乘扩频后,观察其信号的频谱可以看出,正频域的频率分量主要集中在0Hz到20KHz这主瓣中,带宽扩展了约20倍。

此时信号将经过模拟信道的AWGN信道模块,来到接收端。

在接收端处,先经过解扩(即与扩频PN码同步的PN码相乘),得到解扩后的频带信号,再经过解调模块,恢复成基带信号。

观察恢复后的信号的频谱,与信源处的信号基本一致。

再看系统的误码率计算分析。

输出的数据是一个n行(与输入数据数目相等)3列的矩阵。

第1列是差错率,第2列是差错码的数量,第3列是码元总数即前述的n。

可看出,差错率为0.002,差错码的数量为2,码元总数为1000。

由此可见,系统具有较好的抗噪声性能。

企抗噪声原理如图3所示。

图3扩频系统抗噪声原理示意图

4.2.1m文件的仿真结果

仿真结果如图4和图5所示。

其中,

图4是信号比和误码率的值;

图5是绘制

的函数关系图像。

图4仿真结果的值

图5信噪比和误码率的关系函数图象

4.2.2m文件的仿真结果分析

通过观察可知,信噪比越大,系统的误码率越小。

这符合通信原理的规律。

从图中还可得知,在负的信噪比条件下,扩频通信系统还能有比较小的误码率。

可知扩频系统的抗干扰性能很好,能在负信噪比条件下工作。

这是因为扩频系统特有的频谱扩展特点和特有的解扩技术,能使有用信号淹没在伪噪声之中,通过相关解扩将之还原。

5.实验总结

此次仿真通过MATLAB的SIMULINK仿真实现了扩频系统从PN码产生到扩频和调制后发送到通过加性高斯白噪声然后接收后解扩和解调还原的过程。

观察了几个阶段的频谱,对比了各频谱之间的变化,分析了扩频系统抗干扰能力及其抗干扰的原因。

除此之外,还通过m文件的编程,第一步观察了不同信噪比条件下扩频通信系统的误码率的大小。

分析了扩频通信系统抗干扰能力的优越性。

使用SIMULINK仿真和M文件仿真有各自的好处。

SIMULINK是可视化的,有模块库的支持,使用十分方便;

M文件仿真有很好的计算能力。

他们都是通信仿真里面的两把利剑,有些大的系统可能会用到两者的混合仿真。

所以,熟悉这两种仿真方式是通信仿真中必不可少的。

此次仿真只是粗略地对扩频通信系统进行了仿真,还有各种实际环境中的因素没有考虑。

如:

中频解调、信道的衰落、传输的损耗等等因素。

在往后的仿真中,还可将上诉因素加入到系统中,也可对不同扩频增益的扩频通信系统研究其不同信噪比下的误码率情况。

由于篇幅有限,不再赘述。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2