基于MATLAB仿真的BPSK的调制与解调报告_第1页
基于MATLAB仿真的BPSK的调制与解调报告_第2页
基于MATLAB仿真的BPSK的调制与解调报告_第3页
基于MATLAB仿真的BPSK的调制与解调报告_第4页
基于MATLAB仿真的BPSK的调制与解调报告_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

基于MATLAB仿真的BPSK的调制与解调一、实验要求 根据题目要求,查阅相关资料,掌握数字带通的BPSK调制解调的相关知识。学习MATLAB软件,掌握MATLAB各种函数的使用。在此基础上,完成以下实验要求:设计系统整体框图及数学模型。运用MATLAB进行编程,实现BPSK的调制解调过程的仿真。其中包括信源、BPSK信号的产生,信道噪声的加入,BPSK信号的载波提取和相干解调。系统性能的分析包括信号带宽,波形对比以及误码率的计算。二、实验原理 数字信号的传输方式分为基带传输和带通传输,在实际应用中,大多数信道具有带通特性而不能直接传输基带信号。为了使数字信号在带通信道中传输,必须使用数字基带信号对载波进行调制,以使信号与信道的特性相匹配。这种用数字基带信号控制载波,把数字基带信号变换为数字带通信号的过程称为数字调制。 数字调制技术的两种方法:模拟相乘法。利用模拟调制的方法去实现数字式调制,即把把数字基带信号当做模拟信号的特殊情况处理。键控法。利用数字信号的离散取值特点通过开关键控载波,从而实现数字调制。这种方法通常称为键控法,比如本实验对载波的相位进行键控,便可获得相移键控(PSK)基本的调制方式。1.BPSK的调制原理: 二进制移相键控是用二进制数字信号0和1去控制载波的两个相位0和π的方法。在2PSK中,通常用初始相位0和π分别表示二进制1和0。因此,2PSK信号的时域表达式为:(1)式中,jn表示第n个符号的绝对相位:(2)因此,上式可以改写为(3)由于两种码元的波形相同,极性相反,故BPSK信号可以表述为一个双极性全占空矩形脉冲序列与一个正弦载波的相乘:(4)式中(5)这里s(t)为双极性全占空(非归零)矩形脉冲序列,g(t)是脉宽为Ts的单个矩形脉冲,而an的统计特性:(6)图1BPSK信号的波形示例2.BPSK的解调原理:2PSK信号的解调方法是相干解调法。由于PSK信号本身就是利用相位传递信息的,所以在接收端必须利用信号的相位信息采用相干解调法来解调信号。给出了一种2PSK信号相干接收设备的原理框图。图中经过带通滤波的信号在相乘器中与本地载波相乘,然后用低通滤波器滤除高频分量,再进行抽样判决,判决器是按极性进行判决,得到最终的二进制信息。具体波形如下图:图3BPSK各点时间波形三、BPSK调制解调的MATLAB仿真2.BPSK调制的数学模型及框图:由于BPSK的两种码元的波形相同,极性相反,故BPSK信号可以表述为一个双极性全占空矩形脉冲序列与一个正弦载波的相乘:其中,即s(t)为双极性全占空(非归零)矩形脉冲序列。3.BPSK解调的原理及框图:由于PSK信号本身就是利用相位传递信息的,所以在接收端必须利用信号的相位信息采用相干解调法来解调信号。4.实验程序:主程序:clearallcloseallclcnum=10;%码元个数tnum=200;%码元长度N=num*tnum;%10个码元整体长度a=randint(1,num,2);%产生1行num列的矩阵,矩阵内0和1随机出现fc=0.5;%载波频率为0.5t=0:0.05:9.99;%t从0到9.99,间隔为0.05s=[];c=[];fori=1:num%i从1到10循环if(a(i)==0)A=zeros(1,tnum);%i=0时,产生一个码元长度为tnum(200)的0码元elseA=ones(1,tnum);%i=1时,产生一个码元长度为tnum(200)的1码元ends=[sA];%s为随机基带信号cs=sin(2*pi*fc*t);c=[ccs];%c为载波信号end%采用模拟调制方法得到调制信号s_NRZ=[];fori=1:num%i从1到num(10)循环if(a(i)==0)A=ones(1,tnum);%i=0时,产生一个码元长度为tnum(200)的1码元elseA=-1*ones(1,tnum);%i非0时,产生一个码元长度为tnum(200)的-1码元ends_NRZ=[s_NRZ,A];%s_NRZ为双极性非归零码ende=s_NRZ.*c;%e为BPSK调制信号figure(1);%图1subplot(3,2,1);%图1分为3×2部分的第一部分plot(s);%作s(基带信号)的波形图gridon;axis([0N-22]);%横轴长度为0到N,纵轴范围为-2到+2xlabel('基带信号s(t)');%x轴的注释ylabel('基带信号幅值');%y轴的注释subplot(323);plot(c);gridon;axis([0N-22]);xlabel('BPSK载波信号');ylabel('BPSK载波信号幅值');%作c(BPSK载波信号)的波形图subplot(325);plot(e);gridon;axis([0N-22]);xlabel('BPSK调制信号');ylabel('BPSK调制信号幅值');%作e(BPSK调制信号)的波形图%信号的频谱Fs=200;%采样频率n=length(s);%基带信号长度f=[0:Fs/n:Fs-Fs/n]-Fs/2;%修正频率f的范围S=fft(s);%基带信号s的快速傅里叶变换E=fft(e);%基带信号e的快速傅里叶变换C=fft(c);%基带信号c的快速傅里叶变换subplot(322);plot(f,abs(fftshift(S)));%基带信号的频谱title('基带信号频谱');xlabel('f/hz');ylabel('S(w)');gridon;subplot(324);plot(f,abs(fftshift(C)));%载波信号的频谱title('载波信号频谱');xlabel('f/hz');ylabel('C(w)');gridon;subplot(326);plot(f,abs(fftshift(E)));%调制信号的频谱title('调制信号频谱');xlabel('f/hz');ylabel('E(w)');gridon;%加高斯噪声am=0.7;%输入信号经信道后振幅由1衰减为0.7SNR=5;%输入信噪比snr=10^(SNR/10);N0=(am*am)/2/snr;%计算噪声功率N0_db=10*log10(N0);%将噪声功率转换为dBWni=wgn(1,N,N0_db);%产生1行N列的高斯噪声yi=e+ni;%BSK已调信号中加入白噪声,输入信噪比为SNRfigure(2);subplot(2,1,1);plot(yi);gridon;xlabel('加入高斯白噪声的已调信号yi(t)');%带通滤波器[b1,a1]=BUTTER(3,[2*pi*0.0001,2*pi*0.01]);%计算带通滤波器的H(z)系数y=filter(b1,a1,yi);%对信号yi进行滤波,得到信号yfigure(2);subplot(2,1,2);plot(y);gridon;xlabel('经带通滤波器后信号');%与恢复载波相乘x1=2*c.*y;figure(3);subplot(2,1,1);plot(x1);gridonxlabel('与恢复载波相乘后的信号x1(t)');%低通滤波器[b2,a2]=butter(2,0.005);%计算H(z)系数,频率为(1/200)x=filter(b2,a2,x1);%对信号x1滤波,得到信号xfigure(3);subplot(2,1,2);plot(x);gridonaxis([0N-22]);xlabel('经低通滤波器后信号波形')%抽样判决x=fun_panjue(x);%调用函数,进行抽样判决figure(4);subplot(2,1,1);plot(x);gridon;xlabel('加噪后解调信号x(t)');axis([0N-22]);%消除延迟x=fun_yanc(x);%调用函数,进行消除延迟figure(4);subplot(2,1,2);plot(x);gridon;xlabel('加噪后去掉延迟的解调信号x(t)');axis([0N-22]);%误码率计算Err1=length(find(x~=s))%计算解调信号中错误码元个数Pe_test1=Err1/N%计算实际误码率Pe1=(1/2)*erfc(sqrt(snr))%计算系统理论误码率%理论误码率曲线Pe=[];forSNR=1:10am=0.7;%输入信号经信道后振幅由1衰减为0.7E=am*am/2;snr=10^(SNR/10);N0=(am*am)/(2*snr);no=N0/(2*200);%计算噪声功率N0_db=10*log10(N0);%将噪声功率转换为dBWni=wgn(1,N,N0_db);%产生1行N列的高斯噪声yi=e+ni;%BSK已调信号中加入白噪声,输入信噪比为SNRy=filter(b1,a1,yi);%对yi进行滤波(带通滤波器),得到信号yx1=2*c.*y;%与恢复载波相乘xx=filter(b2,a2,x1);%经低通滤波器滤波xx=fun_panjue(xx);%抽样判决xx=fun_yanc(xx);%消除延迟snr=10^(SNR/10);Pe=[Pe,(1/2)*erfc(sqrt(snr))];%计算理论误码率endPe;figure;SNR=1:10;semilogy(SNR,Pe,'b--');holdon%以log10(Pe)为纵坐标画图gridon子程序一:抽样判决(由于存在“倒pi”现象,故以0为基准进行判决,大于0,判为0;小于0,判为1)functionw=fun_panjue(w)N=length(w);ifw(100)>0w(1:100)=0;elsew(1:100)=1;endfori=101:Nifw(i)>0;w(i)=0;elsew(i)=1;endend子函数二:消除延迟(由于抽样判决后会产生延迟,故认为对解调信号进行时移,以减小甚至消除延迟,便于与基带信号进行比较,计算实际误码率)functionm=fun_yanc(m)N=length(m);leng=0;ifm(1)==0fori=1:Nifm(i)==1leng=i;break;endendelsefori=1:Nifm(i)==0leng=i;break;endendendleng1=leng-(floor(leng/200))*200;fori=1:(N-leng1)m(i)=m(i+leng1)

温馨提示

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

评论

0/150

提交评论