QPSK调制解调课设完整版_第1页
QPSK调制解调课设完整版_第2页
QPSK调制解调课设完整版_第3页
QPSK调制解调课设完整版_第4页
QPSK调制解调课设完整版_第5页
免费预览已结束,剩余14页可下载查看

下载本文档

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

文档简介

1、2012专业综合课程设计通信专业姓名:*班级:0902402学号:090240212.题目:利用matlab设计并仿真数字通信系统一、题目要求利用matlab软件设计并仿真下面的无线通信系统要求:1、输入信号为比特流形式,比特速率通常为 100kbps数量级。2、载波频率自定。通常为 MHz数量级。3、信道为多径信道(仿真中2径即可),信道中噪声为加性高斯白噪 声。4、信噪比自行设定。5、画出图中各点波形。6、画出系统误码率与接收端信噪比 SNR的关系(蒙特卡洛仿真)c7、在给定信噪比情况下,分析多径延时大小对系统性能有没有影响? 画出系统误码率与多径延时大小之间的关系。二、设计过程1)概念理

2、解:QPSK 即四进制移向键控(Quaternary Phase Shift Keying ,它利用载波的四种不同相位来表示数字信息,由于每一种载波相位代表两个比特信息,因此每个四进制码元可以用两个二进制码元的组合来表示。两个二进制码元中的前一个码元用 a表示,后一个码元用b 表不。2)调制:QPSK信号可以看作两个载波正交 2PSK信号的合成,下图表示QPSK正交调制器。原理分析:由randint函数产生一个1x20的二进制随机矩阵,作为基带信 号data;然后转换成极性码(极性 NRZ电平编码器);然后按奇偶 次序抽出随机数后组成1x10的矩阵(分离器);将这两个矩阵中码元 宽度增大为原来

3、的2倍(采用增加点数);如图在a路Idata与余弦 载波相乘,b路同理;最后代数相加,此时便产生QPSK调制信号作 为输出。3)解调:解调原理图如下所示*1 (t)同相信道 门限=02 (t) 正交信道 门限=0.原理分析:同相支路和正交支路分别采用相干解调方式解调,得到 I(t)和Q(t),经过低通滤波器(LPF)抽样判决和并/串交换器,将上下支路 得到的并行数据恢复成串行数据 demodata(1x20),此过程在复接器 实现,此时便得到QPSK解调信号(应该和基带信号一样)。4)高斯信道:应题目要求,通过无线信道传输的调制信号会加入高斯噪声,使用awgn (si, SNR)函数来实现;实

4、现多径信道,将延时后的信号 si加到未延时信号s0合并作为输出信号即可。5)带通滤波器(BPF):'')和filter函数实现,其中的使用 butter (N ,wp1,wp2,参数通过计算公式可知Wp1=2*delta_t*(fc-f);Wp2=2*delta_t*(fc+f);三、仿真结果及分析图一随机产生一个1x20的二进制随机矩阵data,图中基带每个码 元由抽样间隔delta_t间隔的离散点构成,总共2000个点(即每个码 元由100个点构成),I/Q路信号的码元应该为原来的2倍,所以每 个码元由200个点构成,这样长度才能和原序列等长。实现的部分代码如下:data=

5、randint(1,nb);%调用一个随机函数(0 or 1),输出到一个1*100的矩阵datanrz=data.*2-1;% 变成极性码data1=zeros(1,2000);% 创建一个 1*nb/delta_T的零矩阵%各基带信号变换成对应波形信号data0=zeros(1,2000);% 创建一个 1*nb/delta_T的零矩阵for q=1:nbdata0(q-1)*100+1:q*100)=data(q);% 将非极性码变成对应的波形信号end%将奇偶位分开,因此间隔 ml为2%串并转换,将奇偶位数据分开idata=datanrz(1:ml:(nb-1);%创建一个1*nb/d

6、elta_T的零矩阵idata0=zeros(1,2000);for q=1:nb/2idata0(2*(q-1)*100+1:2*q*100)=idata(q);来码元的2倍endqdata=datanrz(2:ml:nb);qdata0=zeros(1,2000);for q=1:nb/2qdata0(2*(q-1)*100+1:2*q*100)=qdata(q);end%将其码元宽度扩展成为原部分代码如下:% QPSK的调制 %for ii=1:Na(ii尸cos(2*pi*fc*t(ii);endidata1=idata0.*a;号for jj=1:Nb(jj尸-sin(2*pi*fc

7、*t(jj);endqdata1=qdata0.*b;号s0=idata1+qdata1;%信号 %delay=0.0019;for ii0=1:Na_dl(ii0)=cos(2*pi*fc*t(ii0)+delay);endidata1_dl=idata0.*a_dl;号for jj0=1:Nb_dl(jj0)=-sin(2*pi*fc*t(jj0)+delay);%奇数位数据与余弦函数相乘,得到一路的调制信%偶数位数据与余弦函数相乘,得到另一路的调制信%将奇偶位数据合并,s即为QPSK调制信号%奇数位数据与余弦函数相乘,得到一路的调制信图二:endqdata1_dl=qdata0.*b_d

8、l;%偶数位数据与余弦函数相乘,得到另一路的调制信s1=idata1_dl+qdata1_dl;%将奇偶位数据合并,s即为QPSK调制信号%高斯信道si=s0+s1;图三:通过带通滤波器(PLF)后,上下的毛刺(即高斯噪声)得到了很好的滤除,但是和图二中的调制信号相比,有点儿失真。部分代码如下:%高斯信道si=s0+s1;sk=awgn(si,SNR);%通过高斯信道之后的信号%butter数字带通滤波器B,A=butter(4,0.08,0.12,'bandpass' );sr=filter(B,A,sk);图四:在通过同相支路和正交支路分别采用相干解调方式解调后,得到I(t

9、)和Q(t),其中包络为低频,在经过低通滤波器后(LPF)后, 能很好的滤除高频部分(载波),得到低频部分,和图一的I/Q路信 号对比,基本不失真;然后进行抽样判决和并/串交换器,将上下支路得到的并行数据恢复成串行数据 demodata (1x20),此时便得到 QPSK解调信号,基本保持不失真。部分代码如下:%B 分idata_lpf=sr.*a;%这里面其实隐藏了一个串并转换的过程qdata_lpf=sr.*b;%对应的信号与正余弦信号相乘%!滤波器 %W,M=butter(4,0.03365,'low');idata2=filter(W,M,idata_lpf); qda

10、ta2=filter(W,M,qdata_lpf); idata3=zeros(1,nb/2);%建立1*nb/2 数组,以存放解调之后的信号qdata3=zeros(1,nb/2);%抽样判决的过程,与0作比较,data>=0,则置1,否则置0for n=1:nb/2if sum(idata2(n-1)*200+1:n*200)>=0idata3(n)=1;else idata3(n)=0; endif sum(qdata2(n-1)*200+1:n*200)>=0qdata3(n)=1;else qdata3(n)=0;endend%将判决之后的数据存放进数组demoda

11、ta=zeros(1,nb);%解调信号demodata(1:ml:(nb-1)=idata3;% 存放奇数位demodata(2:ml:nb尸qdata3;% 存放偶数位%为了显示,将它变成波形信号(即传输一个1代表单位宽度的高电平)demodata1=zeros(1,2000);% 创建一个 1*nb/delta_T 的零矩阵for q=1:nbdemodata1(q-1)*100+1:q*100)=demodata(q);% 将极性码变成对应的波形信end%图五:系统误码率与接收端信噪比SNR的关系(蒙特卡洛仿真)。本 实验将SNR=0:6设为大循环,里面包含一个 for循环(10000

12、次); 每当循环10000次,统计误码数p(h),计算出误码率perror;随着 信噪比的增大,误码率呈现下降趋势,在 SNR=5,6时,基本误码率 为0。部分代码如下:.for SNR=0:6% 信噪比for f=1:500end%误码率计算.for v=1:length(data); (fi0000 次if data(v)=demodata(v);p(h)=p(h)+1;endendendperror(y)=p(h)/10000;y=y+i;h=h+1;Endfigure(8)SNR=0:6;plot(SNR,perror);title('误码率和信噪比的关系');axis

13、(0 6 0 0.008);图六:误码率和延时的关系:在一个周期内,可以看出00.2.1.21.4之间呈现上升趋势,这是因为误码率随着延时在一定范围的增大而增大,而在整个02内,具有周期性变化,周期为1/fc.部分代码如下:clc;y=1;h=1;dd=1;SNR=3.6;%匕处涉信噪比为3.6MINtime=0;MAXtime=50*1e-7;delay_t=1e-7;p=zeros(1,50);perror=zeros(1,50);for delay=MINtime:delay_t:MAXtime-delay_t forEnd%SSNR=3.6,每取定一个delay,就得出一个误码率End

14、figure(9)delay=MINtime:delay_t:MAXtime-delay_t;stem(delay,perror);title('PERROR&&DELAY');axis(MINtime MAXtime 0 0.01);四、实验小结1)设计缺点:用了 for循环的方式一增加点数实现对I/Q路信 号的码元宽度进行拓宽,可以参考 ceil函数;低通滤波器的截止频 率并没有设置为2*delta_t*f ,因为这样误码率非常大,所以设置 了一个比其稍大的参数;最后的误码率和延时的关系图由于取点(n=20)较少,所以并没有很好的反映出他们的关系。2)设计优

15、点:程序进一步优化后,再取大量点时运行速度较为 理想;误码率实现了 10*(-4)级的理想化;判决时通过使用sum(.)与0的比较来更为准确的做出判决,减小了误码率,若采用中点取点 (如:0200 ,在100处来判决),这样偶然误差较大,从而译码器 准度不高.3 )学到了什么:在短短的2周内,基于matlab对QPSK勺信号调制解调过程有了更为清晰的理解, 怎么去实现产生随机矩阵,怎么去按奇偶抽取点数,怎么增大码元宽度,怎么模拟高斯信道,怎么产生多径信道,以及对 BPF,LPF的简单使用,怎么更好的实现判都有了初步的入门,加深了对通信原理的某一部分的理解吧!附总代码:clc;y=1;h=1;p

16、=zeros(1,7);perror=zeros(1,7);for SNR=0:6% 信噪比for f=1:500%初始化参数T=1e-5;fc=5/T;ml=2;nb=20;delta_T=T/100;fs=1/delta_T;t=0:delta_T:nb*T-delta_T;N=length(t);%基带信号宽度,也就是频率%载波频率%调制信号类型的一个标志位%传输的比特数%采样间隔%采样频率%限定t的取值范围%采样数%B 分%基带信号的产生data=randint(1,nb);的矩阵%调用一个随机函数(0 or 1),输出到一个1*100datanrz=data.*2-1;data1=z

17、eros(1,2000);%各基带信号变换成对应波形信号data0=zeros(1,2000);for q=1:nb%变成极性码创建一个 1*nb/delta T创建一个 1*nb/delta T的零矩阵的零矩阵data0(q-1)*100+1:q*100)=data(q);end%将非极性码变成对应的波形信号.%串并转换,将奇偶位数据分开idata=datanrz(1:ml:(nb-1);%将奇偶位分开,因此间隔 ml为2idata0=zeros(1,2000);% 创建一个 1*nb/delta_T 的零矩阵for q=1:nb/2idata0(2*(q-1)*100+1:2*q*100)

18、=idata(q);% 将其码元宽度扩展成为原来码元的2倍endqdata=datanrz(2:ml:nb);qdata0=zeros(1,2000);for q=1:nb/2qdata0(2*(q-1)*100+1:2*q*100)=qdata(q);end% QPSK的调制 % for ii=1:Na(ii尸cos(2*pi*fc*t(ii); end%奇数位数据与余弦函数相乘,得到一路的调制%偶数位数据与余弦函数相乘,得到另一路的调制%将奇偶位数据合并,s即为QPSK调制信号%奇数位数据与余弦函数相乘,得到一路idata1=idata0.*a;信号for jj=1:Nb(jj尸-sin(

19、2*pi*fc*t(jj);endqdata1=qdata0.*b;信号s0=idata1+qdata1;%信号 %delay=0.0019;for ii0=1:Na_dl(ii0)=cos(2*pi*fc*t(ii0)+delay); end idata1_dl=idata0.*a_dl;的调制信号for jj0=1:Nb_dl(jj0)=-sin(2*pi*fc*t(jj0)+delay);endqdata1_dl=qdata0.*b_dl;%偶数位数据与余弦函数相乘,得到另一路的调制信号s1=idata1_dl+qdata1_dl;%将奇偶位数据合并,s即为QPSK调制信号%高斯信道si

20、=s0+s1;sk=awgn(si,SNR);%通过高斯信道之后的信号% %butter数字带通滤波器B,A=butter(4,0.08,0.12,'bandpass' );sr=filter(B,A,sk);% % %B 分idata_lpf=sr.*a;%这里面其实隐藏了一个串并转换的过程qdata_lpf=sr.*b;%对应的信号与正余弦信号相乘%!滤波器 %W,M=butter(4,0.03365,'low');idata2=filter(W,M,idata_lpf);qdata2=filter(W,M,qdata_lpf);idata3=zeros(1

21、,nb/2);%建立1*nb/2 数组,以存放解调之后的信号qdata3=zeros(1,nb/2);%抽样判决的过程,与0作比较,data>=0,则置1 ,否则置0for n=1:nb/2% A1(n)=sum(idata2(n-1)/delta_T+1:n/delta_T);if sum(idata2(n-1)*200+1:n*200)>=0idata3(n)=1;else idata3(n)=0; endif sum(qdata2(n-1)*200+1:n*200)>=0qdata3(n)=1;else qdata3(n)=0;endend%将判决之后的数据存放进数组d

22、emodata=zeros(1,nb);%军调信号demodata(1:ml:(nb-1)=idata3;% 存放奇数位demodata(2:ml:nb尸qdata3;% 存放偶数位%为了显示,将它变成波形信号(即传输一个1代表单位宽度的高电平)demodata1=zeros(1,2000);% 创建一个 1*nb/delta_T的零矩阵for q=1:nbdemodata1(q-1)*100+1:q*100)=demodata(q);% 将极性码变成对应的波形信号end%误码率计算for v=1:length(data); if data(v)=demodata(v);p(h)=p(h)+1;endendendperror(y尸p(h)/10000;y=y+1;h=h+1;endfigure subplot(311);plot(data0),title( axis(0 2000

温馨提示

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

最新文档

评论

0/150

提交评论