您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > BPSK和QPSK调制解调原理及MATLAB程序
2.1PSK调制方式PSK原理介绍(以2-PSK为例)移相键控(PSK)又称为数字相位调制,二进制移相键控记作2PSK。绝对相移是利用载波的相位(指初相)直接表示数字信号的相移方式。二进制相移键控中,通常用相位0和π来分别表示“0”或“1”。2PSK已调信号的时域表达式为s2psk(t)=s(t)cosωct,2PSK移相键控中的基带信号与频移键控和幅度键控是有区别的,频移键控和幅度键控为单极性非归零矩形脉冲序列,移相键控为为双极性数字基带信号,就模拟调制法而言,与产生2ASK信号的方法比较,只是对s(t)要求不同,因此2PSK信号可以看作是双极性基带信号作用下的DSB调幅信号。在二进制数字调制中,当正弦载波的相位随二进制数字基带信号离散变化时,则产生二进制移相键控(2PSK)信号。通常用已调信号载波的0°和180°分别表示二进制数字基带信号的1和0。二进制移相键控信号的时域表达式为e2PSK(t)=[nnag(t-nTs)]coswct其中,an与2ASK和2FSK时的不同,在2PSK调制中,an应选择双极性。1,发送概率为Pan=-1,发送概率为1-P若g(t)是脉宽为Ts,高度为1的矩形脉冲时,则有cosωct,发送概率为Pe2PSK(t)=-cosωct,发送概率为1-P由上式(6.2-28)可看出,当发送二进制符号1时,已调信号e2PSK(t)取0°相位,发送二进制符号0时,e2PSK(t)取180°相位。若用φn表示第n个符号的绝对相位,则有0°,发送1符号φn=180°,发送0符号由于在2PSK信号的载波恢复过程中存在着180°的相位模糊,所以2PSK信号的相干解调存在随机的“倒π”现象,从而使得2PSK方式在实际中很少采用。为了解决2PSK信号解调过程的反向工作问题,提出了二进制差分相位键控(2DPSK),这里不再详述。2-PSK调制解调二进制移相键控信号的调制原理:如图9所示。其中图(a)是采用模拟调制的方法产生2PSK信号,图(b)是采用数字键控的方法产生2PSK信号。解调器原理:如图10所示。2PSK信号的解调通常都是采用相干解调,在相干解调过程中需要用到与接收的2PSK信号同频同相的相干载波。(a)模拟调制产生2PSK信号(b)数字键控的方法产生2PSK信号图92PSK信号的调制原理图图102PSK信号的解调原理图e2PSK(t)带通滤波器相乘器低通滤波器抽样判决器acde输出定时脉冲cos(wct)b乘法器e2PSK(t)cos(wct)s(t)码型变换双极性不归零cos(wct)e2PSK(t)s(t)开关电路180度移相0度180度10a110100bcde图112PSK信号相干解调各点时间波形就键控法来说,用数字基带信号s(t)控制开关电路,选择不同相位的载波输出,这时s(t)为单极性NRZ或双极性NRZ脉冲序列信号均可。当基带信号为0时候,连通开关0,产生无差别的载波,当所发出的信号为1时,既连通开关П改变载波的相位。在移相键控中还有一种差分移相键,他和普通的移相键控区别在与,差分移相键只有在当前传输的码元和上次传输的码元产生差别时才会产生相位的变化。移相键控相对与幅度键控和移频键控有着更好的抗干扰性,也更适合于在信道中传输。QPSK调制QPSK信号可以看作两个载波正交2PSK信号的合成。用调相法产生QPSK调制器框图如图12所示,QPSK的调制器可以看作是由两个BPSK调制器构成,输入的串行二进制信息序列经过串并变换,变成两路速率减半的序列,电平发生器分别产生双极性的二电平信号I(t)和Q(t),然后对cosAtω和sinAtω进行调制,相加后即可得到QPSK信号图12QPSK调制器框图QPSK解调QPSK信号的解调原理如图3-5的方框图所示。解调是从已调信号中提取信号的过程,在某种意义上解调是调制的逆过程。由于QPSK信号可以看作是两正交2PSK信号的叠加,故用两路正交的相干载波去解调,这样能电平产生载波发生器电平产生移相90度二进制信息输出QPSK信号串并转换Q(t)I(t)Acos(wt)Asin(wt)够很容易地分离出这两路正交的2PSK信号。相干解调后的两路并行码元a和b经过“并/串”转换后成为串行数据输出。BPSK调制解调程序%构造载波,产生8个码元,生成已调信号%a=randsrc(1,8,[0:1]);%产生8个随机的二进制数l=linspace(0,2*pi,50);%利用linspace函数创建数组,2pi长度取点50个模拟一个码元f=sin(2*l);%生成载波t=linspace(0,10*pi,400);%定义时轴length为10pi,取点400个,代表8个码元的总取样点数out=1:400;%规定已调信号lengthb=1:400;%规定基带信号lengthw=1:400;%规定载波length%生成PSK信号%fori=1:8ifa(i)==0forj=1:50out(j+50*(i-1))=f(j);%若码元为0则将载波输出endelseforj=1:50out(j+50*(i-1))=-f(j);%若码元为1则将载波反相输出endendend%输出载波和基带信号%fori=1:8forj=1:50b(j+50*(i-1))=a(i);%b作为调制信号输出w(j+50*(i-1))=f(j);%w作为载波输出载波提取相乘低通抽判/2相乘低通抽判并/串A(t)s(t)abcos0t-sin0t定时提取图3-5QPSK信号解调原理方框图endendsubplot(3,3,1),plot(t,b),axis([010*pi-0.51.2]),xlabel('t'),ylabel('幅度'),title('基带信号');gridon;subplot(3,3,2),plot(t,w),axis([010*pi-1.21.2]),xlabel('t'),ylabel('幅度'),title('载波');gridon;subplot(3,3,3),plot(t,out),axis([010*pi-1.21.2]),xlabel('t'),ylabel('幅度'),title('PSK波形');gridon;%已调信号加入高斯白噪声%noise=awgn(out,80,'measured');%产生噪音并加入到已调信号out中,信噪比80subplot(334);plot(t,noise);ylabel('幅度');title('噪音+信号');xlabel('t');axis([010*pi-1.21.2]);gridon;%信号通过BPF%Fs=400;%抽样频率400HZt=(1:400)*10*40/Fs;%时轴步进[b,a]=ellip(4,0.1,40,[10,25]*2/Fs);%设计IIR-BPFsf=filter(b,a,noise);%信号通过该滤波器subplot(335);plot(t,sf);%画出信号通过该BPF的波形xlabel('t');ylabel('幅度');title('通过BPF后的波形');axis([010*pi-1.21.2]);gridon;%信号经过相乘器%f=[ffffffff];%%调整载波函数的长度,与BPF输出函数统一lengths=sf.*f;%信号与载波相乘s=(-1).*s;subplot(336);plot(t,s);%画出信号通过该相乘器的波形xlabel('t');ylabel('幅度');title('通过相乘器后波形');axis([010*pi-11]);gridon;%信号通过LPF%Fs=400;%抽样频率400HZt=(1:400)*10*pi/Fs;%时轴步进[b,a]=ellip(4,0.1,40,[10]*2/Fs);%设计IIR-LPFsf=filter(b,a,s);%信号通过该滤波器subplot(337);plot(t,sf);%画出信号通过该低通滤波器的波形xlabel('t');ylabel('幅度');title('通过LPF后的波形');axis([010*pi-11]);gridon;%抽样判决%b=0.26;%设置判决门限fori=1:8forj=1:50ifsf(j+50*(i-1))bsf(j+50*(i-1))=1;%若sf判决门限,说明此时码元为1elsesf(j+50*(i-1))=0;%若sf判决门限,说明此时码元为0endendendsubplot(338);plot(t,sf);%画出信号通过抽样判决器的波形xlabel('t');ylabel('幅度');title('抽样判决后波形');axis([310*pi-0.51.2]);gridon;QPK调制解调程序(1)调制%调相法clearallcloseallt=[-1:0.01:7-0.01];tt=length(t);x1=ones(1,800);fori=1:ttif(t(i)=-1&t(i)=1)|(t(i)=5&t(i)=7);x1(i)=1;elsex1(i)=-1;endendt1=[0:0.01:8-0.01];t2=0:0.01:7-0.01;t3=-1:0.01:7.1-0.01;t4=0:0.01:8.1-0.01;tt1=length(t1);x2=ones(1,800);fori=1:tt1if(t1(i)=0&t1(i)=2)|(t1(i)=4&t1(i)=8);x2(i)=1;elsex2(i)=-1;endendf=0:0.1:1;xrc=0.5+0.5*cos(pi*f);y1=conv(x1,xrc)/5.5;y2=conv(x2,xrc)/5.5;n0=randn(size(t2));f1=1;i=x1.*cos(2*pi*f1*t);q=x2.*sin(2*pi*f1*t1);I=i(101:800);Q=q(1:700);QPSK=sqrt(1/2).*I+sqrt(1/2).*Q;QPSK_n=(sqrt(1/2).*I+sqrt(1/2).*Q)+n0;n1=randn(size(t2));i_rc=y1.*cos(2*pi*f1*t3);q_rc=y2.*sin(2*pi*f1*t4);I_rc=i_rc(101:800);Q_rc=q_rc(1:700);QPSK_rc=(sqrt(1/2).*I_rc+sqrt(1/2).*Q_rc);QPSK_rc_n1=QPSK_rc+n1;figure(1)subplot(4,1,1);plot(t3,i_rc);axis([-18-11]);ylabel('a序列');subplot(4,1,2);plot(t4,q_rc);axis([-18-11]);ylabel('b序列');subplot(4,1,3);plot(t2,QPSK_rc);axis([-18-11]);ylabel('合成序列');subplot(4,1,4);plot(t2,QPSK_rc_n1);axis([-18-11]);ylabel('加入噪声');(2)解调%设定T=1,不加噪声clearallcloseall%调制bit_in=randint(1e3,1,[01]);bit_I=bit_in(1:2:1e3);bit_Q=bit_in(2:2:1e3);data_I=-2*bit_I+1;data_Q=-2*bit_Q+1;data_I1=repmat(data_I',20,1);data_Q1=repmat(data_Q',20,1);fori=1:1e4data_I2(i)=data_I1(i);data_Q2(i)=data_Q1(i);end;t=0:0.1:1e3-0.1;f=0:0.1:1;xrc=0.5+0.5*cos(pi*f);data_I2_rc=conv(data_I2,xrc)/5.5;data_Q2_rc=conv(data_Q2,xrc)/5.
本文标题:BPSK和QPSK调制解调原理及MATLAB程序
链接地址:https://www.777doc.com/doc-1738986 .html