信道编码与扩频通信.doc_第1页
信道编码与扩频通信.doc_第2页
信道编码与扩频通信.doc_第3页
信道编码与扩频通信.doc_第4页
信道编码与扩频通信.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

信道编码与扩频通信直接扩频技术是二十一世纪通信的主要潮流之一。特别是在移动通信领域,码分多址已经成为公认的二十一世纪蜂窝式移动通信基本特征。故而通过仿真手段讨论扩频通信与信道编码的关系,具有相当重要的现实意义。从某种意义上说,直接扩频技术也可以看作一种信道编码的分组编码形式,编译码都是通过码序列分组和同一个PN码的乘运算实现。应用这一思想,可以进行二进制双极性扩频通信系统的蒙特卡罗仿真。二进制双极性扩频通信系统的蒙特卡罗仿真双用户二进制双极性扩频通信系统的蒙特卡罗仿真模型均匀随机数发生器差 错 计 数 器 1比较累加判决器PN码1(gold码)同步序列发生器二进制数据源 输出数据1高斯随机数发生器 E r n A sin(wn)正弦干扰序列发生器 E r累加判决器PN码2(gold码)同步序列发生器二进制数据源 输出数据2比较均匀随机数发生器差 错 计 数 器 2双用户二进制双极性扩频通信系统的蒙特卡罗仿真流程图开始外部输入:信噪比(dB)初始化变量:信噪比、双用户发送接收信号变量数组、噪声变量数组、仿真序列长度、循环步长、数据块长、临时变量清零: 循环计数器和差错计数器、数据块长计数器循环计数器置1生成发送用户1数据块模块生成发送用户2数据块模块发送用户2数据块扩频模块发送用户1数据块扩频模块循环计数器加1生成叠加噪声与人为正弦干扰信号模块解扩判决接收用户2数据块模块解扩判决接收用户1数据块模块接收用户2数据块差错计数模块接收用户1数据块差错计数模块循环计数器次数已满? N Y显示:接收用户1差错计数器数值、接收用户2差错计数器数值,计算:接收用户1误码率、接收用户2误码率结束返回值:接收用户1误码率、接收用户2误码率为了简化二进制双极性扩频通信系统的蒙特卡罗仿真模型,使我们把主要精力真正集中于编码仿真本身,本次仿真用户数为2,PN码采用长度为30的gold码。如上图所示,双用户二进制双极性扩频通信系统的蒙特卡罗仿真模型中还加入了正弦干扰序列发生器,以用来测试扩频技术对人为正弦干扰的抑制作用。在双用户二进制双极性扩频通信系统的蒙特卡罗仿真流程图中,正弦干扰被视做噪声的一部分置于叠加噪声模块。MATLAB源程序function p1,p2=ss_Pe94_2105(snr_in_dB,A,w)%ss_Pe94_2105.m 双用户二进制双极性扩频通信系统的蒙特卡罗仿真%snr_in_dB 信噪比%p 误码率%A 正弦干扰幅度%w 正弦干扰角频率%PN码采用长度Lc为30的gold码,Lc=length(gold)=30snr=10(snr_in_dB/10);sgma=1;Eb=2*sgma2*snr;N=105; %仿真序列长度105,运行时间约3分钟p1=0;p2=0;gold1=0 1 1 1 0 0 0 0 1 0 0 0 0 1 1 0 0 1 0 0 1 0 1 1 1 1 0 0 0 0 0;gold2=0 1 0 1 1 0 1 1 1 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 0 0 1;Lc=length(gold1); %Lc=30;pn_seq1=2*gold1-1;pn_seq2=2*gold2-1;E_chip=Eb/Lc;temp=0;data1=0;data2=0;repeated_data1=zeros(1,Lc);repeated_data2=zeros(1,Lc);trans_sig1=zeros(1,Lc);trans_sig2=zeros(1,Lc);noise=zeros(1,Lc);n=1:Lc;interference=zeros(1,Lc);rec_sig=zeros(1,Lc);temp1=zeros(1,Lc);temp2=zeros(1,Lc);decision_variable1=0;decision_variable2=0;decision1=0;decision2=0;num_of_err_1=0;num_of_err_2=0;time=0;for i=1:N temp=rand; if (temp0.5) data1=-1; else data1=1; end for j=1:Lc repeated_data1(j)=data1; end trans_sig1=sqrt(E_chip)*repeated_data1.*pn_seq1; temp=rand; if (temp0.5) data2=-1; else data2=1; end for j=1:Lc repeated_data2(j)=data2; end trans_sig2=sqrt(E_chip)*repeated_data2.*pn_seq2; noise=sgma*randn(1,Lc); time=time+1, n=(time-1)*Lc+1:time*Lc; interference=A*sin(w*n); rec_sig=trans_sig1+trans_sig2+noise+interference; temp1=rec_sig.*pn_seq1; decision_variable1=sum(temp1); if (decision_variable10) decision1=-1; else decision1=1; end if (decision1=data1) num_of_err_1=num_of_err_1+1; end temp2=rec_sig.*pn_seq2; decision_variable2=sum(temp2); if (decision_variable20) decision2=-1; else decision2=1; end if (decision2=data2) num_of_err_2=num_of_err_2+1; endendnum_of_err_1,num_of_err_2,p1=num_of_err_1/N;p2=num_of_err_2/N;%ss_Pe94_2105.m 双用户二进制双极性扩频通信系统的蒙特卡罗仿真echo on%cd94_2_030_105.m 双用户二进制双极性扩频通信系统的蒙特卡罗仿真绘图%PN码采用长度Lc为30的gold码,Lc=length(gold)=30%仿真序列长度105,运行时间约1小时A1=3;A2=7;A3=12;A4=0;%A1 A2 A3 A4 正弦干扰幅度w0=1;%w0 正弦干扰角频率SNRindB=0:2:30;for i=1:length(SNRindB) smld_err_prb11(i),smld_err_prb12(i)=ss_Pe94_2105(SNRindB(i),A1,w0); smld_err_prb21(i),smld_err_prb22(i)=ss_Pe94_2105(SNRindB(i),A2,w0); smld_err_prb31(i),smld_err_prb32(i)=ss_Pe94_2105(SNRindB(i),A3,w0); smld_err_prb41(i),smld_err_prb42(i)=ss_Pe94_2105(SNRindB(i),A4,w0);end;%绘图函数semilogy(SNRindB,smld_err_prb11,mx-);title(双用户二进制双极性扩频通信系统的蒙特卡罗仿真)axis(0,30,10(-5),1)hold onsemilogy(SNRindB,smld_err_prb12,mo-);semilogy(SNRindB,smld_err_prb21,gx-);semilogy(SNRindB,smld_err_prb22,go-);semilogy(SNRindB,smld_err_prb31,kx-);semilogy(SNRindB,smld_err_prb32,ko-);semilogy(SNRindB,smld_err_prb41,rx-);semilogy(SNRindB,smld_err_prb42,ro-);%绘图函数SNRindB2=0:0.1:30;theo_err_prb=zeros(1,length(SNRindB2);for i=1:length(SNRindB2) SNR=exp(SNRindB2(i)*log(10)/10); theo_err_prb(i)=Qfunct(sqrt(2*SNR); %Qfunct y=(1/2)*erfc(x/sqrt(2); 理论误码率公式endsemilogy(SNRindB2,theo_err_prb,b:); %绘图函数%cd94_2_030_105.m 双用户二进制双极性扩频通信系统的蒙特卡罗仿真绘图运行结果下图(cd94_2_030_105的运行结果)给出了不同信噪比条件(0dB-30dB)和不同幅度(A1=3、A2=7、A3=12、A4=0)正弦干扰下,发送100000比特的双用户二进制双极性扩频通信系统的蒙特卡罗仿真结果以及理论值曲线。从仿真结果来看,无正弦干扰下的蒙特卡罗仿真结果与理论值曲线吻合程度好的令人惊叹,仿真中两用户在同一信道真正实现了和平共处,因此用蒙特卡罗仿真模型来模拟实际双用户二进制双极性扩频通信系统,是可以被接受的;同时可以看出,扩频技术对人为的正弦干扰具有抑制能力,并且对于同样的人为正弦干扰,不同gold码的抑制干扰能力相对来说也有高下之分,在本次仿真中,用户1使用的gold码抑制正弦干扰能力更强。级联码对双用户二进制双极性扩频系统误码性能的改善无正弦干扰下的仿真结果和扩频理论都已经说明,从单个用户角度来看,双用户二进制双极性扩频通信系统和原来的单用户二进制双极性通信系统是相同的。于是我们可以推论,在双用户二进制双极性扩频通信系统中对上文各种信道编码性能测试结果,也将和前面的测试结果相同,即按照误码率性能指标,信道编码的最好方案是级联码。另外,考虑到实际应用信道编码时通常采用级联码,本次双用户二进制双极性扩频通信系统中的信道编码仿真采用了级联码。在双用户二进制双极性扩频通信系统的蒙特卡罗仿真模型框图中加入级联码的编译码器,就构成了测试级联码对双用户二进制双极性扩频通信系统误码性能改善的蒙特卡罗仿真模型,系统框图如下:双用户二进制双极性扩频级联码通信系统的蒙特卡罗仿真模型均匀随机数发生器差 错 计 数 器 1比较级联码译码器级联码编码器累加判决器PN码1(gold码)同步序列发生器二进制数据源 数据1高斯随机数发生器 E r n A sin(wn)正弦干扰序列发生器 E r级联码译码器级联码编码器累加判决器PN码2(gold码)同步序列发生器二进制数据源 数据2比较均匀随机数发生器差 错 计 数 器 2双用户二进制双极性扩频级联码通信系统的蒙特卡罗仿真流程图开始外部输入:信噪比(dB)初始化变量:信噪比、双用户发送接收信号变量数组、噪声变量数组、仿真序列长度、循环步长、数据块长、临时变量清零: 循环计数器和差错计数器、数据块长计数器循环计数器置1生成发送用户2数据块模块生成发送用户1数据块模块发送用户2数据块编码模块发送用户1数据块编码模块发送用户2数据块扩频模块发送用户1数据块扩频模块生成叠加噪声与人为正弦干扰信号模块循环计数器加1解扩判决接收用户2数据块模块解扩判决接收用户1数据块模块接收用户2数据块译码模块接收用户1数据块译码模块接收用户2数据块差错计数模块接收用户1数据块差错计数模块 N 循环计数器次数已满? Y显示接收用户1、2差错计数器数值,分别计算接收用户1、2误码率结束返回值:接收用户1误码率、接收用户2误码率MATLAB源程序function p1,p2=ss_Pe94_2(snr_in_dB,A,w)%ss_Pe94_2.m 双用户二进制双极性扩频通信系统的蒙特卡罗仿真函数%snr_in_dB 信噪比%p 误码率%A 正弦干扰幅度%w 正弦干扰角频率%PN码采用长度Lc为30的gold码,Lc=length(gold)=30snr=10(snr_in_dB/10);sgma=1;Eb=2*sgma2*snr;N=16; %Nloop=104; %loopNs=N*loop1*loop2; %仿真序列长度loop*N=16*104,运行时间约5分钟p1=0;p2=0;gold1=0 1 1 1 0 0 0 0 1 0 0 0 0 1 1 0 0 1 0 0 1 0 1 1 1 1 0 0 0 0 0;gold2=0 1 0 1 1 0 1 1 1 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 0 0 1;Lc=length(gold1); %Lc=30;pn_seq1=2*gold1-1;pn_seq2=2*gold2-1;E_chip=Eb/Lc;temp=0;data1=0;data2=0;repeated_data1=zeros(1,Lc);repeated_data2=zeros(1,Lc);trans_sig1=zeros(1,Lc);trans_sig2=zeros(1,Lc);noise=zeros(1,Lc);n=1:Lc;interference=zeros(1,Lc);rec_sig=zeros(1,Lc);temp1=zeros(1,Lc);temp2=zeros(1,Lc);decision_variable1=0;decision_variable2=0;decision1=0;decision2=0;num_of_err_1=0;num_of_err_2=0;time=0;for h=1:loop for i=1:N temp=rand; if (temp0.5) data1=-1; else data1=1; end for j=1:Lc repeated_data1(j)=data1; end trans_sig1=sqrt(E_chip)*repeated_data1.*pn_seq1; temp=rand; if (temp0.5) data2=-1; else data2=1; end for j=1:Lc repeated_data2(j)=data2; end trans_sig2=sqrt(E_chip)*repeated_data2.*pn_seq2; noise=sgma*randn(1,Lc); time=time+1, n=(time-1)*Lc+1:time*Lc; interference=A*sin(w*n); rec_sig=trans_sig1+trans_sig2+noise+interference; temp1=rec_sig.*pn_seq1; decision_variable1=sum(temp1); if (decision_variable10) decision1=-1; else decision1=1; end if (decision1=data1) num_of_err_1=num_of_err_1+1; end temp2=rec_sig.*pn_seq2; decision_variable2=sum(temp2); if (decision_variable20) decision2=-1; else decision2=1; end if (decision2=data2) num_of_err_2=num_of_err_2+1; end endendnum_of_err_1,num_of_err_2,p1=num_of_err_1/Ns;p2=num_of_err_2/Ns;%ss_Pe94_2.m 双用户二进制双极性扩频通信系统的蒙特卡罗仿真函数function p1,p2=ss_Pe94_2_cnv_jz_74(snr_in_dB,A,w)%ss_Pe94_2_cnv_jz_74.m 双用户二进制双极性扩频通信系统的蒙特卡罗仿真函数%snr_in_dB 信噪比%p 误码率%A 正弦干扰幅度%w 正弦干扰角频率%PN码采用长度Lc为30的gold码,Lc=length(gold)=30snr=10(snr_in_dB/10);sgma=1;Eb=2*sgma2*snr;N=16; %Nloop=104; %loopNs=N*loop; %仿真序列长度Ns=loop*N=16*104,运行时间约15分钟dsource1=zeros(1,N);dsource2=zeros(1,N);output1_h74=hamming74(dsource1);output2_h74=hamming74(dsource2);G=1 0 1 1 ; 1 1 1 1 ;k=1;output_cnv_encd1=cnv_encd(G,k,output1_h74);output_cnv_encd2=cnv_encd(G,k,output2_h74);channel_output1=zeros(1,length(output_cnv_encd2);channel_output2=zeros(1,length(output_cnv_encd2);decoder_output1,survivor_state1,cumulated_metric1=viterbi(G,k,channel_output1);decoder_output2,survivor_state2,cumulated_metric2=viterbi(G,k,channel_output2);h4output1,h7output1=h47(decoder_output1);h4output2,h7output2=h47(decoder_output2);p1=0;p2=0;numoferr1=0;numoferr2=0;num_of_err_1=0;num_of_err_2=0;cnv_jz_74_time=0;gold1=0 1 1 1 0 0 0 0 1 0 0 0 0 1 1 0 0 1 0 0 1 0 1 1 1 1 0 0 0 0 0;gold2=0 1 0 1 1 0 1 1 1 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 0 0 1;Lc=length(gold1); %Lc=30;pn_seq1=2*gold1-1;pn_seq2=2*gold2-1;E_chip=Eb/Lc;temp=0;data1=0;data2=0;repeated_data1=zeros(1,Lc);repeated_data2=zeros(1,Lc);trans_sig1=zeros(1,Lc);trans_sig2=zeros(1,Lc);noise=zeros(1,Lc);n=1:Lc;interference=zeros(1,Lc);rec_sig=zeros(1,Lc);temp1=zeros(1,Lc);temp2=zeros(1,Lc);decision_variable1=0;decision_variable2=0;decision1=0;decision2=0;for h=1:loop for i=1:N temp=rand; if (temp0.5) dsource1(i)=0; else dsource1(i)=1; end temp=rand; if (temp0.5) dsource2(i)=0; else dsource2(i)=1; end end %length(dsource) 28 output1_h74=hamming74(dsource1); output2_h74=hamming74(dsource2); output1_jz28=jiaozhi(output1_h74,28); output2_jz28=jiaozhi(output2_h74,28); output_cnv_encd1=cnv_encd(G,k,output1_jz28); output_cnv_encd2=cnv_encd(G,k,output2_jz28); %length(output_cnv_encd),pause for m=1:length(output_cnv_encd1)%=length(output_cnv_encd2) data1=2*output_cnv_encd1(m)-1; data2=2*output_cnv_encd2(m)-1; for j=1:Lc repeated_data1(j)=data1; repeated_data2(j)=data2; end trans_sig1=sqrt(E_chip)*repeated_data1.*pn_seq1; trans_sig2=sqrt(E_chip)*repeated_data2.*pn_seq2; noise=sgma*randn(1,Lc); cnv_jz_74_time=cnv_jz_74_time+1; n=(cnv_jz_74_time-1)*Lc+1:cnv_jz_74_time*Lc; interference=A*sin(w*n); rec_sig=trans_sig1+trans_sig2+noise+interference;% temp1=rec_sig.*pn_seq1; decision_variable1=sum(temp1); if (decision_variable10) decision1=-1; else decision1=1; end if (decision1=data1) num_of_err_1=num_of_err_1+1; end% temp2=rec_sig.*pn_seq2; decision_variable2=sum(temp2); if (decision_variable2:);axis(0,16,1e-5,1);xlabel(Eb/N0 in dB);ylabel(Pe);title(双用户级联编码及未编码扩频系统仿真误比特率曲线比较);hold onsemilogy(SNRindB,smld_err_jz_prb11,m:);semilogy(SNRindB,smld_err_jz_prb21,g:);semilogy(SNRindB,smld_err_jz_prb31,k:);semilogy(SNRindB,smld_err_jz_prb41,r:);semilogy(SNRindB,smld_err_prb110,mx-);semilogy(SNRindB,smld_err_prb120,mo-);semilogy(SN

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论