1、QPSK调制解调课设完整版 2012专业综合课程设计 通信专业 姓名:* 班级:0902402 学号:090240212 题目:利用matlab设计并仿真数字通信系统一、题目要求利用matlab软件设计并仿真下面的无线通信系统要求:1、输入信号为比特流形式,比特速率通常为100kbps数量级。2、载波频率自定。通常为MHz数量级。3、信道为多径信道(仿真中2径即可),信道中噪声为加性高斯白噪声。4、信噪比自行设定。5、画出图中各点波形。6、画出系统误码率与接收端信噪比SNR的关系(蒙特卡洛仿真)。7、在给定信噪比情况下,分析多径延时大小对系统性能有没有影响? 画出系统误码率与多径延时大小之间的
2、关系。2、设计过程 1)概念理解: 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) 同相信道 门限0 2(t) 正交信道 门限0 原理分析:同相支路和正交支路分别采用相干解调方式解调,得到和,经过低通滤波器(LPF)抽样判决和并/串交换器,将上下支路得到的并行数据恢复成串行数据demodata(1x20),此过程在复接器实现,此时便得到QPSK解调信号(应该和基带信号一样)。4)高斯信道:应题目要求,通过无线信道传输的调制信号会加入高斯噪声,使用awgn(si,SNR)函数来实现;实现多径信道
4、,将延时后的信号s1加到未延时信号s0合并作为输出信号即可。5)带通滤波器(BPF): 使用butter(N ,wp1,wp2,)和filter函数实现,其中的参数通过计算公式可知 Wp1=2*delta_t*(fc-f); Wp2=2*delta_t*(fc+f);三、仿真结果及分析 图一 随机产生一个1x20的二进制随机矩阵data,图中基带每个码元由抽样间隔delta_t间隔的离散点构成,总共2000个点(即每个码元由100个点构成),I/Q路信号的码元应该为原来的2倍,所以每个码元由200个点构成,这样长度才能和原序列等长。 实现的部分代码如下:data=randint(1,nb);
5、% 调用一个随机函数(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:nb data0(q-1)*100+1:q*100)=data(q); % 将非极性码变成对应的波形信号end % 串并转换,将奇偶位数据分开idata=datanrz(1:ml:(nb-1); % 将奇偶位分开,因此间隔m1为2idata0=zeros(1,200
6、0); % 创建一个1*nb/delta_T的零矩阵for q=1:nb/2 idata0(2*(q-1)*100+1:2*q*100)=idata(q); % 将其码元宽度扩展成为原来码元的2倍end qdata=datanrz(2:ml:nb);qdata0=zeros(1,2000); for q=1:nb/2 qdata0(2*(q-1)*100+1:2*q*100)=qdata(q);end 图二:部分代码如下:% QPSK信号的调制%for ii=1:N a(ii)=cos(2*pi*fc*t(ii); endidata1=idata0.*a; % 奇数位数据与余弦函数相乘,得到一
7、路的调制信号for jj=1:N b(jj)=-sin(2*pi*fc*t(jj);endqdata1=qdata0.*b; % 偶数位数据与余弦函数相乘,得到另一路的调制信号s0=idata1+qdata1; % 将奇偶位数据合并,s即为QPSK调制信号%延迟信号%delay=0.0019;for ii0=1:N a_dl(ii0)=cos(2*pi*fc*t(ii0)+delay); endidata1_dl=idata0.*a_dl; % 奇数位数据与余弦函数相乘,得到一路的调制信号for jj0=1:N b_dl(jj0)=-sin(2*pi*fc*t(jj0)+delay);endq
8、data1_dl=qdata0.*b_dl; % 偶数位数据与余弦函数相乘,得到另一路的调制信号 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);图四: 在通过同相支路和
9、正交支路分别采用相干解调方式解调后,得到和,其中包络为低频,在经过低通滤波器后(LPF)后,能很好的滤除高频部分(载波),得到低频部分,和图一的I/Q路信号对比,基本不失真;然后进行抽样判决和并/串交换器,将上下支路得到的并行数据恢复成串行数据demodata(1x20),此时便得到QPSK解调信号,基本保持不失真。 部分代码如下: %解调部分 idata_lpf=sr.*a; % 这里面其实隐藏了一个串并转换的过程qdata_lpf=sr.*b; % 对应的信号与正余弦信号相乘 %低通滤波器%W,M=butter(4,0.03365,low);idata2=filter(W,M,idata_
10、lpf);qdata2=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/2 if sum(idata2(n-1)*200+1:n*200)=0 idata3(n)=1; else idata3(n)=0; endif sum(qdata2(n-1)*200+1:n*200)=0 qdata3(n)=1; else qdata3(n)=0; end end % 将判决之后的数据存放进数组d
11、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:nb demodata1(q-1)*100+1:q*100)=demodata(q); % 将极性码变成对应的波形信号end%图五: 系统误码率与接收端信噪比SNR的关系(蒙特卡洛仿真)。本实验将SNR=0:6设为大循环,里面包含一个f
12、or循环(10000次);每当循环10000次,统计误码数p(h),计算出误码率perror;随着信噪比的增大,误码率呈现下降趋势,在SNR=5,6时,基本误码率为0。部分代码如下:for SNR=0:6 % 信噪比for f=1:500 . . end% 误码率计算for v=1:length(data); if data(v)=demodata(v); p(h)=p(h)+1; endend end perror(y)=p(h)/10000; y=y+1; h=h+1;End figure(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 for. . End %在SNR=3.6,每取定一个delay,就得出一
14、个误码率Endfigure(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)设计优点:程序进一步优化后,再取大量点时运行速度较为理想;误码率实现了10*(-4)级的理想化;判决时通过使用sum(.)与0的比较来更为准确的做出判决,减小了误码率,若采用中点取点(如:0200,在100处来判决),这样偶然误差较大,从而译码器准度不高。 3)学到
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1