课设-基于MATLAB的BPSK调制(完本)_第1页
课设-基于MATLAB的BPSK调制(完本)_第2页
课设-基于MATLAB的BPSK调制(完本)_第3页
课设-基于MATLAB的BPSK调制(完本)_第4页
课设-基于MATLAB的BPSK调制(完本)_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

..摘要本次课程设计为基于MATLAB的BPSK原理电路仿真。本次课设着重介绍了算法的实现,并采用MATLAB程序仿真测试了BPSK过程中单极性不归零编码、脉冲成形、PSK调制、信号通过AWGN信道、载波恢复、解调、解码等过程。关键词:BPSK;2PSK;MATLAB;数字频带通信;目录绪论11BPSK数字调制原理21.1数字带通传输分类21.2BPSK调制原理分析21.2.1调制原理分析21.2.2解调原理分析42MATLAB软件62.1MATLAB软件介绍63基于的MATLAB的BPSK调制分析和仿真73.1基于MATLAB的BPSK调制系统总述73.2编码过程的MATLAB实现83.3BPSK调制的MATLAB的实现113.4AWGN信道MATLAB的实现133.5载波恢复的MATLAB实现163.5.1接收端带通滤波器163.5.2通过FFT实现载波的直接频率估计203.5.3自适应〔迭代〕算法验证恢复频率223.6BPSK解调254总结30附录31致32参考文献33..绪论数字信号传输方式分为数字带通传输和数字基带传输。对于本次课程设计二进制相移键控BPSK〔BinaryPhaseShiftKey〕是利用载波的相位变化来传递数字信息,而振幅和频率保持不变的一种数字带通调制方式。在实际应用中,PSK具有恒包络特性,频带利用率比FSK高,在一样信噪比的条件下误码率也较低,同时PSK调制实现相对简单,故卫星通信,遥测遥控中用得最多的是BPSK方式调制。1BPSK数字调制原理1.1数字带通传输分类数字带通传输中一般利用数字信号的离散取值特点通过开关键控载波,从而实现数字调制,比方对载波的振幅、频率和相位进展键控可获得振幅键控〔ASK〕、频移键控〔FSK〕和相移键控〔PSK〕。1.2BPSK调制原理分析1.2.1调制原理分析相移键控是利用载波的相位变化来传递数字信息,而振幅和频率保持不变。在BPSK中,通常用初始相位0或分别表示二进制的‘0’和‘1’。因此,BPSK信号的时域表达式为:1-1其中,表示第n个符号的绝对相位:1-2因此,式〔1-1〕可以改写为:1-3由于表示信号的两种码元的波形一样,极性相反,故BPSK信号一般可以表述为一个双极性全占空〔100%dutyratio〕矩形脉冲序列于一个正弦载波的相乘,即1-4其中,1-5这里,g(t)脉冲宽度为的单个矩形脉冲,而得统计特性为1-6即发送二进制符号位‘0’时〔取+1〕,取0相位;发送二进制符号为‘1’时〔取-1〕,取相位。这种以载波的不同相位直接去表示响应的二进制数字信号的调制方式,称为二进制绝对相移调制〔BPSK〕。调制原理框图如图1.1所示:图1.1BPSK调制原理图典型波形如图1.2所示:图1.2发送码元为10011的BPSK波形1.2.2解调原理分析BPSK信号的解调方法是相干解调法。由于PSK信号本身就是用相位传递信息的,所以在承受端必须利用信号的相位信息,故采用相干解调法来解调信号。BPSK解调原理框图如1.3所示:抽样判决低通滤波器相乘器带通滤波器抽样判决低通滤波器相乘器带通滤波器图1.3BPSK解调原理框图给出了一种BPSK信号想干承受设备原理框图。图中经过带通滤波的信号在相乘器与本地载波相乘,在相干解调中,如何得到与接收的BPSK信号同频同相的相干载波是关键,然后用低通滤波器去除高频分量,再进展抽样判决,判决器是按极性进展判决,得到最终的二进制信息。图中,假设相干载波的基准相位于BPSK信号的调制载波的基准相位一致。但是,由于在BPSK信号的载波恢复过程中存在º的相位迷糊〔phaseambiguity〕,即恢复的本地载波与所需的相干载波可能同相,也可能反相,这种相位关系的不确定性将会造成解调出数字基带信号与发送的数字基带信号正好相反,即‘1’变为‘0’,‘0’变为‘1’,判决器输出数字信号全部出错。这种现象称为BPSK方式的‘倒’现象。具体波形如图1.4所示图1.4解调信号示意图2MATLAB软件2.1MATLAB软件介绍MATLAB简介MATLAB的名称源自MatrixLaboratory,它是一种科学计算软件,专门以矩阵的形式处理数据。MATLAB将高性能的数值计算和可视化集成在一起,并提供了大量的置函数,从而被广泛地应用于科学计算、控制系统、信息处理等领域的分析、仿真和设计工作,而且利用MATLAB产品的开放式构造,可以非常容易地对MATLAB的功能进展扩大,从而在不断深化对问题认识的同时,不断完善MATLAB产品以提高产品自身的竞争能力。

在通信仿真中,欲将寄载消息的信号保质保量的传送给接收者,就必须对它们进展加工处理,对相应的部件进展分析和研究,而这种研讨过程中会用到大量的数学计算。它是以矩阵,数组为根本处理对象,矩阵的维数不需要预先指定,且随时可变,具有丰富的矩阵运算功能。仿真功能我们采用MATLAB语言编程,以Windows和MATLAB为软件运行环境。将通信原理中的知识点用MATLAB来实现。通过灵活的菜单和界面设计使某些参数可调。同时运用Simulink软件包,使波形在仿真的同时显示系统。更加有利于在课堂上使用。MATLAB界面:图2.1MATLAB界面3基于的MATLAB的BPSK调制分析和仿真3.1基于MATLAB的BPSK调制系统总述基于MATLAB的BPSK调制解调系统流程框图如3.1所示:道信调制成形冲脉编码道信调制成形冲脉编码文本信息文本信息决判样抽载波恢复决判样抽载波恢复解码解调解码解调图3.1BPSK调制解调系统流程框图通信过程分析:整个发送与接收过程仿真了实际中的通信过程,输入一段信息如‘ph’经过编码过程,变换为一串二进制字符,再加载矩形窗进展脉冲成形,生成原始的数字基带信号,为了发送信息,通过BPSK调制成数字带通信号发射,发射信号进入模拟的AWGN信道,被接收机所承受,BPSK解调采用的是相干解调,故需要进展载波恢复,恢复载波的频率,用已恢复的载波对承受信号进展相乘,再对其进展抽样判决,恢复最原始的二进制字符,再进展解码恢复原始的信息容。仿真过程的要求:本次课设使用MATLAB进展BPSK通信过程仿真,要求不仅能将原始信息转换成二进制字符信息,解调后也能很好的恢复成原来的信息,过程中对信号观察不仅需要从时域上进展观察分析,也需要再频域上进展观察分析,以分析通过AWGN信道对信号的影响。3.2编码过程的MATLAB实现对于输入的文本信息,如果要进展调制发送,必然而且也可以将其转换成由‘0’与‘1’二进制字符,这个过程是信源编码过程。算法原理:对于输入的文本信息,在MATLAB中有对于的ASCII编码,MATLAB会自动的任意一行文档表示为一列ASCII码。再将十进制的ASCII码转换为二进制的的字符。对于数字形式的信息,必须转化成模拟形式,也就是脉冲成形过程,它将数字形式的每个字符转换成适宜的模拟脉冲,经过传输后,承受端可以从承受到的信号中恢复出原来的二进制字符。本次课设采用矩形窗加载,即为矩形脉冲。算法原理框图如3.2所示:基带信号脉冲成形二进制信息文本信息基带信号脉冲成形二进制信息文本信息图3.2算法框图MATLAB代码:%编码和脉冲成形%采样率100decimalvalue=real(str);%使用自带real函数读取字符串的ASCII码binaryvalue=dec2base(decimalvalue,2,8);%dec2base函数转成8位二进制形式字符%因为使用dec2base函数转换出的二进制字符是使用char型的数组%进展将char型转换成int型二进制字符matrix1=size(binaryvalue);a=matrix1(1,1);b=matrix1(1,2);bv=[];fori=1:1:a;forj=1:1:b;bv1=binaryvalue(i,j);bv1=bv1*1;bv1=bv1-48;bv=[bvbv1];endend%为了能使编码后的二进制可以进展脉冲成形需要对其进展过采样M=100;N=length(bv);bsignal=zeros(1,N*M);bsignal(1:M:end)=bv;%使用矩形窗进展脉冲成形p=ones(1,M);s=conv(p,bsignal);%因为使用卷积,加载后的信号需要剔除后续多余局部k1=length(s);k1=k1-99;signal=zeros(1,k1);fori=1:1:k1;signal(i)=s(i);end%画图语句k=1;%第一幅图x=signal;Ts=1/100;plotspec(x,Ts,k);%调用自编子函数运行程序输入str=‘ph’,输出二进制字符的基带信号signal,时域图如3.3所示:图3.3基带信号时域图基带信号频域图如3.4所示:图3.4基带信号频域图由MATLAB的工作空间可知‘ph’转换成的二进制字符为:1000.3.3BPSK调制的MATLAB的实现数字基带信号一般不直接进展发射,需经过调制,本次课设要求使用BPSK调制方式进展调制。算法原理:在MATLAB中,可以采取脉冲成形的方式对原始信号进展调制,先将信号进展过采样插值,将1s取100k个有一样幅值的点,以便使用载波进展脉冲成形,过采样后直接使用载波对信号进展相乘,以到达调制的目的。算法原理框图如3.5所示:图3.5算法原理框图MATLAB代码:%BPSK调制%采样率100kHZt2=0:(2*pi)/100000:2*pi-0.00001;%载波一周期采样点数fc=300;%载波频率m1=[];c1=[];b1=[];%进展过采样插值forn=1:1:length(bv);ifbv(n)==0;m=-ones(1,100000);b=zeros(1,100000);elsebv(n)==1;m=ones(1,100000);b=ones(1,100000);endc=cos(fc*t2);%生成相应载波%过采样后插值的信号m1=[m1,m];c1=[c1,c];b1=[b1,b];endpsk=c1.*m1;%生成BPSK信号Ts=1/100000;%采样周期x=psk;%画图k=2;%第二幅图plotspec(x,Ts,k);%调用自编函数文件运行程序得到BPSK已调信号psk,时域图如3.6所示:图3.6BPSK信号时域图〔局部〕BPSK的频域图如3.7所示:图3.7BPSK信号频域图从图观察,在HZ处附近有值,说明已用频率300HZ的载波调制数字基带信号。3.4AWGN信道MATLAB的实现加性高斯白噪声AWGN(AdditiveWhiteGaussianNoise)是最根本的噪声与干扰模型。它的幅度分布服从高斯分布,而功率谱密度是均匀分布的,它意味着除了加性高斯白噪声外,r(t)与s(t)没有任何失真。即H(f)失真的加性噪声:叠加在信号上的一种噪声,通常记为n(t),而且无论有无信号,噪声n(t)都是始终存在的。因此通常称它为加性噪声或者加性干扰。白噪声:噪声的功率谱密度在所有的频率上均为一常数,那么称这样的噪声为白噪声。如果白噪声取值的概率分布服从高斯分布,那么称这样的噪声为高斯白噪声。在MATLAB中有模拟AWGN信道可直接使用awgn函数,y=awgn(x,SNR)在信号x中参加高斯白噪声。信噪比SNR以dB为单位。x的强度假定为0dBW。如果x是复数,就参加复噪声。y=awgn(x,SNR,SIGPOWER)如果SIGPOWER是数值,那么其代表以dBW为单位的信号强度;如果SIGPOWER为'measured',那么函数将在参加噪声之前测定信号强度。y=awgn(x,SNR,SIGPOWER,STATE)重置RANDN的状态。y=awgn(…,POWERTYPE)指定SNR和SIGPOWER的单位。POWERTYPE可以是'dB'或'linear'。如果POWERTYPE是'dB',那么SNR以dB为单位,而SIGPOWER以dBW为单位。如果POWERTYPE是'linear',那么SNR作为比值来度量,而SIGPOWER以瓦特为单位。MATLAB代码:%模拟AWGN信道e2psk=awgn(psk,100);%调用awgn%画图x=e2psk;Ts=1/100000;%采样率k=3;plotspec(x,Ts,k);运行程序,经过AWGN信道后的信号e2psk,其时域图如3.8所示:图3.8经过AWGN信道后的信号e2psk信号局部放大图如3.9所示:图3.9e2psk信号时域图〔局部〕可见信号经过AWGN信道后,受到噪声污染,时域上有失真。e2psk信号频谱图如3.10所示:图3.10e2psk信号频谱图300HZ左右处放大图如3.11所示:图3.11e2psk信号300Hz左右处频谱分析图可知,由于信号经过了AWGN信号,收到噪声干扰,频谱图在整个频域上有加性白噪声污染,都有不同程度的失真,不利于信号的解调。3.5载波恢复的MATLAB实现从接收端接收到信号后,为了进展相干解调,需要从本地恢复载波。对本次课设BPSK调制方式是一种没有抑制载波的调制方式,但是在通常情况下,载波很容易的被隐藏在接收信号中,而且需要很多额外的处理过程来恢复载波。对于刚接收到的信号可先通过FFT实现载波的频率估测,得出一个频率之后,再使用自适应算法的方式,准确定位和验证载波频率值。3.5.1接收端带通滤波器在接收器承受到调制信号后,由于调制信号被AWGN信道"污染〞,在整个频带上增加了加性高斯白噪声,故为了过滤信号需要在承受端加上一个带通滤波器,以滤除带外信号。本次课设调用remez函数以使用雷米兹算法,雷米兹算法提供了求解切比雪夫逼近问题的有效方法。切比雪夫滤波器是在通带或阻带上频率响应幅度等波纹波动的滤波器。MATLAB代码:%带通滤波器生成及其频率响应f1=500;%滤波器阶数fs=1000;%滤波器显示频率最大值的两倍ff=[0.51.52.68.691];%归一化的截止频率fa=[001100];h=remez(f1,ff,fa);%生成带通滤波器figure〔4〕,freqz(h,1,512,fs);%绘出滤波器的频率响应r=filter(h,1,e2psk);%信号通过带通滤波器k=5;plotspec(r,Ts,k)带通滤波器的幅频响应如图3.12所示:图3.12带通滤波器幅频响应带通滤波器的相频响应如图3.13所示:图3.13带通滤波器的相频响应分析可知在通带或阻带上频率响应幅度等波纹波动的切比雪夫滤波器,带通滤波器的频率响应可知带通滤波器的中心频率为300Hz,通带为260Hz至340Hz,群延时为179.85度。信号通过带通滤波器后时域图如3.14所示:图3.14信号通过带通滤波器通过带通滤波后信号的局部图如3.15所示:图3.15接收信号通过带通滤波〔局部〕可知经过带通滤波后,时域图号有一定成度的改善,波形突刺减少,一定程度的恢复成原来的波形。信号通过带通滤波后的幅频响应如3.16所示:图3.16承受信号通过带通滤波后的幅频响应分析频域图,在频带中多余的加性白噪声得到一定的抑制,而很好的保存了载频附近的频率信息。3.5.2通过FFT实现载波的直接频率估计对于没有抑制载波的调制信号来说,使用FFT变换后通常载波频率幅度是最大值,可以通过检测已调信号的整个频率围最大值来确定最大值。但是,一般情况下,由于已调信号经过信道后,频谱受到损伤,出现一定程度的失真,降低了用最大值来确定载波频率的方法的可靠性,此时需要使用另外的方法来恢复载波频率。载波恢复流程框图如3.17所示:图3.17载波恢复流程图如图3.17所示,一般可以在带通滤波器后使用非线性模块平方器,是承受信号,由基带信号和载波相乘组成,平方器的输出项为3.1又根据等式,改写3.1为3.2将用其平均值和偏移量的和来表示3.3因此3.4以为中心的窄带带通滤波器只能让中的纯余弦项通过,而且还会抑制当中的直流成分,低频局部和向上边频了的也不能通过。带通滤波器的输出约为3.5式中,是相位偏移,是带通滤波器引入的。对于承受机来说,值是的,故可用来估算出载波的频率。MATLAB代码:rsc=r;q=rsc.^2;%通过平方器fl=500;ff=[0.0100.0104.0136.01401];fa=[001100];h=remez(fl,ff,fa);%生成带通滤波器rp=filter(h,1,q);%再通过带通滤波fftrBPF=fft(rp);%对rp信号进展FFT变换[m,imax]=max(abs(fftrBPF(1:end/2)));%找到最大值,返回最大值和最大值所在数组点ssf=(0:length(rp))/(Ts*length(rp));%建立储存频率的数组freqS=ssf(imax);%找出存储频率数组对应最大幅度的频率运行程序结果:freqS=600由结果可知估测频率fc=300Hz。3.5.3自适应〔迭代〕算法验证恢复频率对于前面已经估测处了载波的频率,此时可以由freqS为假设值,利用自适应算法对恢复的载波频率进展再估测和验证。在通信中的许多问题能够被设计成最优化问题要解决这种问题需要三个根本的步骤:〔1〕设定一个目标-选择一个目标函数〔2〕选择一个实现目标的方法-最大化或最大化这个目标函数〔3〕检验以确定这个方法能到达预期效果"设定一个目标函数〞通常包括寻找一个可以最大化或可以最小化的函数,定位最大和最小值为所要解决问题提供了有用的信息。这个函数的选择必须使它和它的导数的值能基于一些信息计算出来。有很多的方法可以用来实现最大化或最小化过程。有的时候是可以使用直接的方法,如,如果为了找到多项式到达最小值的点,只要直接找到它的导数并置零就可以得到解答。但是很多时候,不可能有如此简单的解决方法,递归方法〔自适应方法〕通常在信号运算中有很好的应用。自适应算法通常以最陡下降为目的,也可以称之为最陡下降法,最陡下降自适应算法从最初猜想的位置开场,算出从估计值开场哪个是最陡下降的方向,并沿着这条下降方向做出最新的估算,为了运用最陡下降法来最小化多项式,假设在时间处的的当前估算是可以得到的,表示为在时间的估算可以用下式:3.6式中,是很小正数,称为步长,而的梯度是当前点计算出来的,当重复计算,依次迭代运算,最终接近最小值对于承受信号为,设freqS为,合理的算法为尝试最小化下式:3.7利用梯度算法重写3.6式,得:3.8将平方项展开整理为:3.9此式即为其误差外表函数,可以用来分析性能函数。MATLAB代码:%自适应算法估测频率%预先恢复频率2fc=freqS=600Hz%本次算法初始值为300Hz,采用步长mu=0.003Ts=1/100000;time=5;t=0:Ts:time-Ts;%建立时间向量fl=300;ff=[0.005.011];fa=[1100];h=remez(fl,ff,fa);%低通滤波生成mu=.003;%步长fc=300;%freqS估测出频率fest=zeros(1,length(t));fest(1)=fc+3;%起始运算的频率303Hzz=zeros(1,fl+1);%进展循环运算迭代运算有3.8式得出fork=1:length(t)-1z=[(r(k)-cos(2*pi*fest(k)*t(k)))*sin(2*pi*fest(k)*t(k)),z(1:fl)];update=fliplr(h)*z';fest(k+1)=fest(k)-mu*update;end%画图figure(6),plot(t,fest);title('FrequencyTrackingviatheDirectmethod')xlabel('time');ylabel('phaseoffset');运行程序后,自适应算法结果如3.18所示:图3.18自适应算法结果图由图可知,在一段区域由假定的303Hz趋近于300Hz,与之前直接频率估计的结果相符,故可知载波的频率为300Hz。3.6BPSK解调对于BPSK解调,本次课设采用匹配滤波接收,匹配滤波器可使输出信噪比达最大,有利于判决抽样。设承受滤波器传输函数为,冲击函数为,滤波器输入码元的持续时间为匹配滤波器的特性可以用其冲激响应函数来描述:3.10由式可知匹配滤波器的冲激响应就是的镜像,但在时间轴上平移了。一个实际的匹配滤波器应该是物理可实现的,其冲激响应必须符合因果关系,在输入冲激脉冲参加前不应有冲激响应出现,即必须有:3.11既要求满足条件:3.12或满足条件:3.13式3.13的条件说明,承受滤波器输入端的信元在抽样时刻之后必须为零。一般不希望在码元完毕之后很久才抽样,故通常选择在码元末尾抽样,即选。故匹配滤波器冲激响应可以写为:3.14这时,假设匹配滤波器的输入电压为,那么输出信元的波形,可以求出为:3.15式3.15说明,匹配滤波器输出信元波形是输入信元波形的自相关函数。为任意一常数,通常取。MATLAB代码:%匹配滤波tm=0:1/100000:1-(1/100000);ps=cos(2*pi*300*tm);dm=conv(ps,r);%画图figure(7),plot(dm);gridon运行程序图如3.19所示:图3.19匹配滤波后信号信号局部放大图如3.20所示:图3.20信号通过匹配滤波后局部方法图对信号匹配滤波后,那么可以进展抽样判决以恢复原始二进制信息。对于匹配滤波后的信号采样点为nTs。MATLAB代码:%抽样赋值1和-1dmbv=[];fori=1:1:length(r)/100000;dmbv1=dm(i*100000);dmbv=[dmbvdmbv1];end%将双极性不归零码变为单极性不归零码,赋值0和1fori=1:1:length(dmbv);ifdmbv(i)>0;dmbv(i)=0;elsedmbv(i)=1;endend%画图tm1=0:1:length(dmbv)-1;figure(8),stem(tm1,dmbv);gridon;axis([-0.515.5-12]);xlabel('时间');ylabel('幅度')title('解调后的单极性不归零二进制信号')运行程序后得结果如3.21所示:图3.21解调后的单极性不归零二进制信号由

温馨提示

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

评论

0/150

提交评论