基于MATLAB的扩频通信仿真(共21页).doc

上传人:飞****2 文档编号:14338450 上传时间:2022-05-04 格式:DOC 页数:21 大小:519.50KB
返回 下载 相关 举报
基于MATLAB的扩频通信仿真(共21页).doc_第1页
第1页 / 共21页
基于MATLAB的扩频通信仿真(共21页).doc_第2页
第2页 / 共21页
点击查看更多>>
资源描述

《基于MATLAB的扩频通信仿真(共21页).doc》由会员分享,可在线阅读,更多相关《基于MATLAB的扩频通信仿真(共21页).doc(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上基于MATLAB的扩频通信仿真 1. 仿真原理扩展频谱通信具有很强的抗干扰性,其多址能力、保密、抗多径等功能也倍受人们的关注,被广泛的应用于军事通信和民用通信中。扩频技术,将信号扩展到很宽的频谱上,在接收端对扩频信号进行相关处理即带宽压缩,恢复成窄带信号。对干扰信号而言,由于与扩频信号不相关,则被扩展到一个很宽的频带上,使之进入信号通频带内的干扰功率大大的降低,具有很强的对抗能力。MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能

2、集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式。使用MATLAB进行通信仿真有两种方式,分别是使用m文件编写程序和用SIMULINK进行可视化建模。长期以来,人们总是想法使信号所占频谱尽量的窄,以充分利用十分宝贵的频谱资源。为什么要用这样宽频带的信号来传送信息呢? 简单的回答就是主要为了通信的安全可靠。扩频通信的基本特点是传输信号所占用的频带宽度(W )远大于原始信息本身实际所需的最小(有效)带宽(DF) ,其比值称为处理增益Gp:Gp =W /F

3、 (1)众所周知,任何信息的有效传输都需要一定的频率宽度,如话音为1. 7kHz3. 1kHz,电视图像则宽到数兆赫。为了充分利用有限的频率资源,增加通路数目,人们广泛选择不同调制方式,采用宽频信道(同轴电缆、微波和光纤等) ,和压缩频带等措施,同时力求使传输的媒介中传输的信号占用尽量窄的带宽。因现今使用的电话、广播系统中,无论是采用调幅、调频或脉冲编码调制制式, Gp值一般都在十多倍范围内,统称为“窄带通信”。而扩频通信的Gp值,高达数百、上千,称为“宽带通信”。扩频通信的可行性,是从信息论和抗干扰理论的基本公式中引伸而来的。信息论中关于信息容量的香农( Shannon)公式为:C =Wlo

4、g2 (1 + P /N ) (2)其中:C信道容量(用传输速率度量) ,W 信号频带宽度, 信号功率, N 白噪声功率。式( 2)说明,在给定的传输速率C不变的条件下, 频带宽度W和信噪比P /N 是可以互换的。即可通过增加频带宽度的方法,在较低的信噪比P /N (S /N)情况下, 传输信息。扩展频谱换取信噪比要求的降低,是扩频通信的重要特点,并由此为扩频通信的应用奠定了基础。扩频通信与一般的通信系统相比,主要是在发射端增加了扩频调制,而在接收端增加了扩频解调的过程,扩频通信按照其工作方式不同主要分为直接序列扩频系统、跳频扩频系统、跳时扩频系统、现行调频系统和混合调频系统。现以直接序列扩频

5、系统为例说明扩频通信的实现方法。下图1为直接序列扩频系统的原理框图。图1 直接序列扩频系统原理图由直扩序列扩频系统原理图可以看出,在发射端,信源输出的信号与伪随机码产生器产生的伪随机码进行模2加,产生一速率与伪随机码速率相同的扩频序列,然后再用扩频序列去调制载波,这样得到已扩频调制的射频信号。在接收端,接受到的扩频信号经高放和混频后,用与发射端同步的伪随机序列对扩频调制信号进行相关解扩,将信号的频带恢复为信息序列的频带,然后进行解调,恢复出所传输的信息。2SIMULINK模型建立基于MATLAB/Simulink所建立的扩频通信系统的仿真模型,能够反映扩频通信系统的动态工作过程,可进行波形观察

6、、品剖分析和性能分析等,同时能根据研究和设计的需要扩展仿真模型,实现以扩频通信为基础的现代通信的模拟仿真,为系统的研究和设计提供强有力的平台。图2为基于MATLAB/Simulink的扩频通信系统的仿真模型。图2 基于Simulink 的扩频通信系统的仿真模型2.1 随机整数发生器(Random Integer genarator)随机整数发生器(Randon Integer generator)作为仿真系统的信源,随机整数发生器产生二进制随机信号,采用时间、初始状态可自由设置,从而满足扩频通信系统所需信源的要求。2.2 PN序列发生器(PN Sequence Generator)用PN序列发

7、生器(PN Sequence Generator)产生伪随机码,对基带信号进行扩频。扩频过程通过信息码与PN码进行双极性变换后相乘加以实现。解扩过程与扩频过程相同,即将接收的信号用PN码进行第二次扩频处理。2.3 最小相移键控调制(M-PSK Modulator Passband)对基带信号进行数字调制,将频谱从基带搬移至频带,以实现远距离传输的效果。2.4 加性高斯白噪声信道(AWGN Channel)信号通过加性高斯白噪声信道,以达到对信号的传输后进行再进行解扩解调的目的。改信道信噪比参数设置为负数,可验证扩频通信系统具有良好的抗噪声能力。2.5 最小相移键控解调 (M-PSK Demod

8、ulator Passband)对解扩后的信号进行解调,恢复基带信号。2.6 误码率分析仪(Error Rate Calculation)在误码率计算中,接收到的信号,由于经过扩频解扩、调制解调、相关统计等处理,会存在一个延迟,在误码仪模块的对话框中要设置一个合适的延迟。2.7 其他设置2.7.1 RELAY 的设置2.7.1 product的设置2.7.3 display 的设置2.7.4 频谱分析仪(spectrum scope)的设置系统中有四个频谱分析仪器,分别命名为:baseband、mod、SS和DSS。其中,baseband能观察基带信号的频谱;mod能观察到基带信号调制到频带后

9、的频谱;SS能观察扩频后的频谱;DSS能观察解扩解调后的接受端输出信号的频谱。这四个频谱分析仪的参数设置大致一致,其前方的零阶保持器的采样时间略有不同。频谱分析仪名称BasebandModSSDSS采样时间(s)0.0011/300000.001/310.0013. M文件编写仿真程序用m文件编写的MATLBA程序来实现观察系统在不同信噪比下的误码率变化情况。此仿真要实现扩频码的产生、发射机部分、接收机部分、信道仿真部分以及误码分析部分,此外还有进行循环仿真以达到绘出信噪比与误码率见的函数图。3.1 扩频码的产生选取m序列作为仿真系统的扩频码,产生函数如下:function mout = ms

10、eq(stg, taps, inidata, n) %变量含义说明 % stg m序列阶数% taps 线性移位寄存器的系数% inidata 序列的初始化% n 输出序列的数目 % mout 输出的m序列if nargin 1 for ii=2:n mout(ii,:) = shift(mout(ii-1,:),1,0); end end3.2 发射机部分发射机部分包括扩频和调制两部分。3.2.1 QPSK调制部分此处采用QPSK调制,相比SIMULINK的M-PSK调制的实现要求要低一些。function iout,qout=qpskmod(paradata,para,nd,ml) %各变

11、量含义说明 % paradata 输入数据% iout 输出的实部数据% qout 输出的虚部数据% para 并行信道数% nd 输入数据个数% ml 调制阶数 m2=ml./2; paradata2=paradata.*2-1; count2=0; for jj=1:nd isi = zeros(para,1); isq = zeros(para,1); for ii = 1 : m2 isi = isi + 2.( m2 - ii ) .* paradata2(1:para),ii+count2); isq = isq + 2.( m2 - ii ) .* paradata2(1:par

12、a),m2+ii+count2); end iout(1:para),jj)=isi; qout(1:para),jj)=isq; count2=count2+ml; end3.2.2 扩频部分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 = qdat

13、a; 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); qout(ii,:) = reshape(rot90(code1(ii,:),3)*qdata(ii,:),1,vn*vc

14、); end3.3 信道仿真部分实现高斯白噪声代码函数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,:

15、) = qdata + randn(1,v) * attn(ii); end 3.4 接收机部分3.4.1 接收机的解扩部分函数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 =

16、 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); end3.4.2 接收机解调部分的函数function demo

17、data=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; 3.5 误码计算和绘图部分%误码率分析 noe2 = sum(sum

18、(abs(data-demodata); nod2 = user * nd * ml; noe = noe + noe2; nod = nod + nod2; % fprintf(%dt%en,ii,noe2/nod2); end %数据文件 ber = noe / nod; fprintf(%dt%dt%dt%en,ebn0,noe,nod,noe/nod); fid = fopen(BER.dat,a); fprintf(fid,%dt%et%ft%ftn,ebn0,noe/nod,noe,nod); fclose(fid); err_rate_final(ebn0+6)=ber;end%

19、性能仿真图 figuresemilogy(SNR,err_rate_final,b-*); xlabel(信噪比/dB)ylabel(误码率)axis(-5,10,0,1)grid on3.6 初始化设置以及仿真循环设置Main函数为clear all;clc sr = .0; % 符号速率ml = 2; % 调制阶数 br = sr * ml; % 比特速率 nd = 100; % 符号数SNR=-5:1:10; % Eb/No %*扩频码初值设定* user = 1; % 用户数stage = 3; % 序列阶数 ptap1 = 1 3; % 第一个线性移位寄存器的系数disp(-star

20、t-);%*扩频码的产生*for ebn0=-5:1:10 % m序列code = mseq(stage,ptap1,regi1,user); code = code * 2 - 1; clen = length(code); %*仿真运算开始* nloop = 1000; % 仿真循环次数noe = 0; nod = 0; for ii=1:nloop %*发射机* data = rand(user,nd*ml) 0.5; ich, qch = qpskmod(data,user,nd,ml); % QPSK 调制 ich1,qch1 = spread(ich,qch,code); % 扩频

21、 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(:,sampl:IPOINT:IPOINT*nd*clen+sampl-1); ich5 qch5 = despread(ich4,qch4,code); % 解扩 demodata = qpskdemod(ich5,qch5,user,nd,ml

22、); % QPSK解调%*误码率分析* noe2 = sum(sum(abs(data-demodata); nod2 = user * nd * ml; noe = noe + noe2; nod = nod + nod2; %*数据文件* ber = noe / nod; fprintf(%dt%dt%dt%en,ebn0,noe,nod,noe/nod); fid = fopen(BER.dat,a); fprintf(fid,%dt%et%ft%ftn,ebn0,noe/nod,noe,nod); fclose(fid); err_rate_final(ebn0+6)=ber;%*性能

23、仿真图*figuresemilogy(SNR,err_rate_final,b-*);xlabel(信噪比/dB)ylabel(误码率)axis(-5,10,0,1)grid ondisp(-end-); 4. 仿真结果与分析4.1.1 Simulink仿真结果l 基带信号的频谱如下l 经调制后频谱如下l 扩频后频谱如下l 接收端恢复后的输出信号频谱如下l 误码计算仪的结果4.1.2 Simulink仿真结果分析可以看出,基带信号的频率分量主要是在-100Hz到100Hz,这与信号源所设置的频率相符合。基带信号进过M-PSK调制后,正频域的频率分量集中在2.9KHz-3.1KHz处,可看出载波

24、频率为3KHz,这个结果与M-PSK调制器所设置的载波频率一致。频带信号经过与PN码相乘扩频后,观察其信号的频谱可以看出,正频域的频率分量主要集中在0Hz到20KHz这主瓣中,带宽扩展了约20倍。此时信号将经过模拟信道的AWGN信道模块,来到接收端。在接收端处,先经过解扩(即与扩频PN码同步的PN码相乘),得到解扩后的频带信号,再经过解调模块,恢复成基带信号。观察恢复后的信号的频谱,与信源处的信号基本一致。再看系统的误码率计算分析。 输出的数据是一个n 行(与输入数据数目相等)3列的矩阵。 第1列是差错率, 第2列是差错码的数量, 第3列是码元总数即前述的n。 可看出,差错率为0.002,差错

25、码的数量为2,码元总数为1000。由此可见,系统具有较好的抗噪声性能。企抗噪声原理如图3所示。图3 扩频系统抗噪声原理示意图4.2.1 m文件的仿真结果仿真结果如图4和图5所示。其中,图4是信号比和误码率的值;图5 是绘制的函数关系图像。 图4 仿真结果的值图5 信噪比和误码率的关系函数图象4.2.2 m文件的仿真结果分析通过观察可知,信噪比越大,系统的误码率越小。这符合通信原理的规律。从图中还可得知,在负的信噪比条件下,扩频通信系统还能有比较小的误码率。可知扩频系统的抗干扰性能很好,能在负信噪比条件下工作。这是因为扩频系统特有的频谱扩展特点和特有的解扩技术,能使有用信号淹没在伪噪声之中,通过

26、相关解扩将之还原。5. 实验总结此次仿真通过MATLAB的SIMULINK仿真实现了扩频系统从PN码产生到扩频和调制后发送到通过加性高斯白噪声然后接收后解扩和解调还原的过程。观察了几个阶段的频谱,对比了各频谱之间的变化,分析了扩频系统抗干扰能力及其抗干扰的原因。除此之外,还通过m文件的编程,第一步观察了不同信噪比条件下扩频通信系统的误码率的大小。分析了扩频通信系统抗干扰能力的优越性。使用SIMULINK仿真和M文件仿真有各自的好处。SIMULINK是可视化的,有模块库的支持,使用十分方便;M文件仿真有很好的计算能力。他们都是通信仿真里面的两把利剑,有些大的系统可能会用到两者的混合仿真。所以,熟悉这两种仿真方式是通信仿真中必不可少的。此次仿真只是粗略地对扩频通信系统进行了仿真,还有各种实际环境中的因素没有考虑。如:中频解调、信道的衰落、传输的损耗等等因素。在往后的仿真中,还可将上诉因素加入到系统中,也可对不同扩频增益的扩频通信系统研究其不同信噪比下的误码率情况。由于篇幅有限,不再赘述。专心-专注-专业

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁