MATLAB QPSK调制与解调

合集下载

四相移相键控(QPSK)调制及解调实验

四相移相键控(QPSK)调制及解调实验

通信对抗原理实验报告实验名称:四相移相键控(QPSK)调制及解调实验学生姓名:学生学号:学生班级:所学专业:实验日期:1. 实验目的1. 掌握QPSK 调制解调原理及特性.2。

. 熟悉Matlab 仿真软件的使用。

2. 实验内容1、 编写Matlab 程序仿真QPSK 调制及相干解调。

2、 观察IQ 两路基带信号的特征及与输入NRZ 码的关系。

3、 观察IQ 调制解调过程中各信号变化。

4、 观察功率谱的变化。

5、 分析仿真中观察的数据,撰写实验报告。

3. 实验原理1、QPSK 调制原理QPSK 又叫四相绝对相移调制,它是一种正交相移键控。

QPSK 利用载波的四种不同相位来表征数字信息。

由于每一种载波相位代表两个比特信息,因此,对于输入的二进制数字序列应该先进行分组,将每两个比特编为一组,然后用四种不同的载波相位来表征。

我们把组成双比特码元的前一信息比特用a 代表,后一信息比特用b 代表。

双比特码元中两个信息比特ab 通常是按格雷码排列的,它与载波相位的关系如表1-1所示,矢量关系如图1—1所示。

图1-1(a)表示A 方式时QPSK 信号矢量图,图1—1(b)表示B 方式时QPSK 信号的矢量图。

由于正弦和余弦的互补特性,对于载波相位的四种取值,在A 方式中:45°、135°、225°、315°,则数据k I、k Q 通过处理后输出的成形波形幅度有两种取值±2/2;B 方式中:0°、90°、180°、270°,则数据k I、k Q 通过处理后输出的成形波形幅度有三种取值±1、0。

表(0,1)(1,1)(0,0)参考相位参考相位(a)(b)图1-1 QPSK 信号的矢量图下面以A 方式的QPSK 为例说明QPSK 信号相位的合成方法。

串/并变换器将输入的二进制序列依次分为两个并行序列,然后通过基带成形得到的双极性序列(从D/A 转换器输出,幅度为±2/2)。

通信原理的MATLAB实验 QPSK的调制解调报告

通信原理的MATLAB实验 QPSK的调制解调报告

通信原理实验项目名称:QPSK的调制解调一、实验任务任意输入长度为64比特的二进制信息,采用QPSK系统传输。

码元速率为1Bps,载波频率为10Hz,采样频率为40 Hz,利用Matlab画出:(1)调制后的信号波形;(2)经信道传输后的信号波形(假设加性高斯白噪声,其功率为信号功率1/10);(3)(3)任意解调方法解调后的信号波形。

二、流程图三、完整程序Fd=1; %码元速率Fc=10; %载波频率Fs=40; %采样频率N=Fs/Fd;df=10;x=[ 1 1 0 1 1 0];%任意输入64比特的二进制信息M=2; %进制数SNRpBit=10;%加性高斯白噪声,其功率为信号功率的1/10,即信噪比为10 SNR=SNRpBit/log2(M); %转换为码元速率seed=[12345 54321];numPlot=length(x);figure(1)%画出输入二进制序列subplot(211);stem([0:numPlot-1],x(1:numPlot),'bx');title('输入波形’)%调制y=dmod(x,Fc,Fd,Fs,'fsk',M,df);numModPlot=numPlot*Fs;t=[0:numModPlot-1]./Fs;subplot(212);%画出调制后的信号plot(t,y(1:length(t)),'b-');axis([min(t) max(t) -1.5 1.5]);title('调制后的信号')%在已调信号中加入高斯白噪声randn('state',seed(2));y=awgn(y,SNR-10*log10(0.5)-10*log10(N),'measured',[],'dB');%相干解调figure(2)subplot(211);plot(t,y(1:length(t)),'b-');%画出经过信道的实际信号axis([min(t) max(t) -1.5 1.5]);title('加入高斯白噪声后的已调信号')%带输出波形的相干M元频移键控解调subplot(212);stem([0:numPlot-1],x(1:numPlot),'bx');hold on;stem([0:numPlot-1],z1(1:numPlot),'ro');hold off;axis([0 numPlot -0.5 1.5]);title('相干解调后的信号')四、波形。

BPSK和QPSK调制解调原理及MATLAB程序

BPSK和QPSK调制解调原理及MATLAB程序

2.1 PSK调制方式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)=[nna g(t-nT s)]cosw c t其中, 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),这里不再详述。

基于Matlab的QPSK调制解调仿真设计与研究设计说明书

基于Matlab的QPSK调制解调仿真设计与研究设计说明书

天津理工大学计算机与通信工程学院通信工程专业设计说明书基于Matlab/Simulink的QPSK调制解调仿真设计与研究目录摘要 (2)第一章前言 (2)1.1 专业设计任务及要求 (2)1.2 Matlab简介 (2)1.3 Matlab下的simulink简介 (3)1.4 通信系统模型 (3)第二章QPSK调制 (4)2.1 QPSK介绍 (4)2.2 QPSK调制原理 (4)2.2.1 相乘法 (4)2.2.2 选择法 (5)2.3 QPSK调制原理框图 (6)2.4 QPSK调制方式的Matlab仿真 (6)2.5 QPSK调制方式Matlab-simulink仿真 (7)2.5.1 simulink调制建模 (7)2.5.2 simulink调制仿真结果 (8)第三章QPSK解调 (14)3.1 QPSK解调原理 (14)3.2 QPSK解调原理框图 (14)3.3 QPSK解调方式Matlab仿真 (14)3.4 QPSK解调方式的Matlab-simulink仿真 (15)3.4.1 QPSK解调建模 (15)3.4.2 传输信道 (17)3.4.3仿真结果 (17)3.5 仿真结果分析 (20)第四章QPSK通信系统性能分析 (20)第五章结论 (20)参考文献 (21)附录 (21)摘要正交相移键控(QPSK),是一种数字调制方式。

QPSK技术具有抗干扰能力好、误码率低、频谱利用效率高等一系列优点。

论文主要介绍了正交相移键控(QPSK)的概况,以及正交相移键控QPSK的调制解调概念和原理,利用Matlab中M文件和Simulink模块对QPSK的调制解调系统进行了仿真,对QPSK在高斯白噪声信道中的性能进行了,分析了解Simulink中涉及到QPSK的各种模块的功能。

【关键词】Matlab QPSK Simulnk 仿真第一章前言1.1专业设计任务及要求1了解并掌握QPSK调制与解调的基本原理;2在通信原理课程的基础上设计与分析简单的通信系统;3学会利用MATLAB7.0编写程序进行仿真,根据实验结果能分析所设计系统的性能。

MATLAB-QPSK调制与解调

MATLAB-QPSK调制与解调

MATLAB仿真QPSK调制与解调2011-06-22 20:16:45| 分类:学习| 标签:qpsk matlab |字号大中小订阅注意B方式的4PSK用的比较多。

I 路信号是用余弦载波,由2进制数据流的奇数序列组成;Q路信号用正弦载波,由2进制数据流的偶数序列组成。

下面的a是Idata,b就是Qdata,它们分布与各自的载波相乘分别输出I 路信号和Q 路信号。

I 路信号加上Q路信号就是QPSK输出信号。

当I 路载波信号是0相位时为1,是180°相位时为0;当Q路载波信号是0相位时为1,是180°相位时为0。

比如下图的‘11’数据cos(theta) + sin(theta) =sqrt(2)*sin(theta + 45°)是相位超前sin(theta) 45°QPSK即四进制移向键控(Quaternary Phase Shift Keying),它利用载波的四种不同相位来表示数字信息,由于每一种载波相位代表两个比特信息,因此每个四进制码元可以用两个二进制码元的组合来表示。

两个二进制码元中的前一个码元用a表示,后一个码元用b表示。

% QPSK调相法基本原理解释clear allclose all% x1是类似[1 1 -1 -1 -1 -1 1 1]的分布,作用是控制相位的180°反转。

%由于仿真中载波的频率是f=1Hz,所以1s的间隔内有一个完整周期的正弦波t=[-1:0.01:7-0.01]; % t共800个数据,-1~7st1 = [0:0.01:8-0.01]; %t1也是800个数据点,0 ~8stt=length(t); % tt=800x1=ones(1,800);for i=1:ttif (t(i)>=-1 & t(i)<=1) | (t(i)>=5& t(i)<=7);x1(i)=1;else x1(i)=-1;endendt2 = 0:0.01:7-0.01; %t2是700个数据点,是QPSK_rc绘图的下标t3 = -1:0.01:7.1-0.01; %t3有810个数据点,是i_rc的时间变量t4 = 0:0.01:8.1-0.01; %t4有810个数据点,是q_rc的时间变量%x2是类似于[1 1 -1 -1 1 1 1 1]的分布,作用是控制相位的180°反转tt1=length(t1);x2=ones(1,800);for i=1:tt1if (t1(i)>=0 & t1(i)<=2) | (t1(i)>=4& t1(i)<=8);x2(i)=1;else x2(i)=-1;endendf=0:0.1:1;xrc=0.5+0.5*cos(pi*f); %xrc是一个低通特性的传输函数y1=conv(x1,xrc)/5.5; %y1和x1 实际上没什么区别,仅仅是上升沿、下降沿有点过渡带y2=conv(x2,xrc)/5.5; % y2和x2 实际上没什么区别,仅仅是上升沿、下降沿有点过渡带n0=randn(size(t2));f1=1;i=x1.*cos(2*pi*f1*t); % x1就是I dataq=x2.*sin(2*pi*f1*t1); %x2就是Q dataI=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); % y1就是I data,i_rc可能是贴近实际的波形,i则是理想波形q_rc=y2.*sin(2*pi*f1*t4); %y2就是Q data,q_rc可能是贴近实际的波形,q则是理想波形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([-1 8 -1 1]);ylabel('a序列');subplot(4,1,2);plot(t4,q_rc);axis([-1 8 -1 1]);ylabel('b序列');subplot(4,1,3);plot(t2,QPSK_rc);axis([-1 8 -1 1]);ylabel('合成序列');subplot(4,1,4);plot(t2,QPSK_rc_n1);axis([-1 8 -1 1]);ylabel('加入噪声');上图解释:合成序列表示的数据:11 01 00 00 01 11 11相对于sin(theta)合成序列相位: Pi/4, 3/4Pi[即sin(theta-45)=sin(theta-45+180)], -3/4Pi[即-sin(theta+45)], -3/4Pi[即-sin(theta+45)] , 3/4Pi, Pi/4, Pi/4。

QPSK调制与解调在MATLAB平台上的实现(word文档良心出品)

QPSK调制与解调在MATLAB平台上的实现(word文档良心出品)

QPSK调制与解调在MATLAB平台上的实现QPSK即四进制移向键控(Quaternary Phase Shift Keying),它利用载波的四种不同相位来表示数字信息,由于每一种载波相位代表两个比特信息,因此每个四进制码元可以用两个二进制码元的组合来表示。

两个二进制码元中的前一个码元用a表示,后一个码元用b表示。

QPSK信号可以看作两个载波正交2PSK信号的合成,下图表示QPSK正交调制器。

由QPSK信号的调制可知,对它的解调可以采用与2PSK信号类似的解调方法进行解调。

解调原理图如下所示,同相支路和正交支路分别采用相干解调方式解调,得到()Q t,经过抽样判决和并/串交换器,将上下支路得到的并行I t和()数据恢复成串行数据。

% 调相法clear allclose allt=[-1:0.01:7-0.01];tt=length(t);x1=ones(1,800);for i=1:ttif (t(i)>=-1 & t(i)<=1) | (t(i)>=5& t(i)<=7);x1(i)=1;else x1(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);for i=1:tt1if (t1(i)>=0 & t1(i)<=2) | (t1(i)>=4& t1(i)<=8);x2(i)=1;else x2(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([-1 8 -1 1]);ylabel('a序列');subplot(4,1,2);plot(t4,q_rc);axis([-1 8 -1 1]);ylabel('b序列');subplot(4,1,3);plot(t2,QPSK_rc);axis([-1 8 -1 1]);ylabel('合成序列'); subplot(4,1,4);plot(t2,QPSK_rc_n1);axis([-1 8 -1 1]);ylabel('加入噪声');效果图:% 设定T=1,加入高斯噪声clear allclose all% 调制bit_in = randint(1e3, 1, [0 1]);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);for i=1:1e4data_I2(i)=data_I1(i);data_Q2(i)=data_Q1(i);end;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.5;f1=1;t1=0:0.1:1e3+0.9;n0=rand(size(t1));I_rc=data_I2_rc.*cos(2*pi*f1*t1);Q_rc=data_Q2_rc.*sin(2*pi*f1*t1); QPSK_rc=(sqrt(1/2).*I_rc+sqrt(1/2).*Q_rc); QPSK_rc_n0=QPSK_rc+n0;% 解调I_demo=QPSK_rc_n0.*cos(2*pi*f1*t1);Q_demo=QPSK_rc_n0.*sin(2*pi*f1*t1);% 低通滤波I_recover=conv(I_demo,xrc);Q_recover=conv(Q_demo,xrc);I=I_recover(11:10010);Q=Q_recover(11:10010);t2=0:0.05:1e3-0.05;t3=0:0.1:1e3-0.1;% 抽样判决data_recover=[];for i=1:20:10000data_recover=[data_recover I(i:1:i+19) Q(i:1:i+19)];end;bit_recover=[];for i=1:20:20000if sum(data_recover(i:i+19))>0data_recover_a(i:i+19)=1;bit_recover=[bit_recover 1];elsedata_recover_a(i:i+19)=-1;bit_recover=[bit_recover -1];endenderror=0;dd = -2*bit_in+1;ddd=[dd'];ddd1=repmat(ddd,20,1);for i=1:2e4ddd2(i)=ddd1(i);endfor i=1:1e3if bit_recover(i)~=ddd(i)error=error+1;endendp=error/1000;figure(1)subplot(2,1,1);plot(t2,ddd2);axis([0 100 -2 2]);title('原序列');subplot(2,1,2);plot(t2,data_recover_a);axis([0 100 -2 2]);title('解调后序列'); 效果图:% 设定T=1, 不加噪声clear allclose all% 调制bit_in = randint(1e3, 1, [0 1]);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);for i=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.5;f1=1;t1=0:0.1:1e3+0.9;I_rc=data_I2_rc.*cos(2*pi*f1*t1);Q_rc=data_Q2_rc.*sin(2*pi*f1*t1); QPSK_rc=(sqrt(1/2).*I_rc+sqrt(1/2).*Q_rc);% 解调I_demo=QPSK_rc.*cos(2*pi*f1*t1);Q_demo=QPSK_rc.*sin(2*pi*f1*t1);I_recover=conv(I_demo,xrc);Q_recover=conv(Q_demo,xrc);I=I_recover(11:10010);Q=Q_recover(11:10010);t2=0:0.05:1e3-0.05;t3=0:0.1:1e3-0.1;data_recover=[];for i=1:20:10000data_recover=[data_recover I(i:1:i+19) Q(i:1:i+19)]; end;ddd = -2*bit_in+1;ddd1=repmat(ddd',10,1);for i=1:1e4ddd2(i)=ddd1(i);endfigure(1)subplot(4,1,1);plot(t3,I);axis([0 20 -6 6]);subplot(4,1,2);plot(t3,Q);axis([0 20 -6 6]);subplot(4,1,3);plot(t2,data_recover);axis([0 20 -6 6]); subplot(4,1,4);plot(t,ddd2);axis([0 20 -6 6]);效果图:% QPSK误码率分析SNRindB1=0:2:10;SNRindB2=0:0.1:10;for i=1:length(SNRindB1)[pb,ps]=cm_sm32(SNRindB1(i));smld_bit_err_prb(i)=pb;smld_symbol_err_prb(i)=ps;end;for i=1:length(SNRindB2)SNR=exp(SNRindB2(i)*log(10)/10);theo_err_prb(i)=Qfunct(sqrt(2*SNR)); end;title('QPSK误码率分析');semilogy(SNRindB1,smld_bit_err_prb,'*');axis([0 10 10e-8 1]);hold on;% semilogy(SNRindB1,smld_symbol_err_prb,'o'); semilogy(SNRindB2,theo_err_prb);legend('仿真比特误码率','理论比特误码率'); hold off;function[y]=Qfunct(x)y=(1/2)*erfc(x/sqrt(2));function[pb,ps]=cm_sm32(SNRindB)N=10000;E=1;SNR=10^(SNRindB/10);sgma=sqrt(E/SNR)/2;s00=[1 0];s01=[0 1];s11=[-1 0];s10=[0 -1];for i=1:Ntemp=rand;if (temp<0.25)dsource1(i)=0;dsource2(i)=0;elseif (temp<0.5)dsource1(i)=0;dsource2(i)=1;elseif (temp<0.75)dsource1(i)=1;dsource2(i)=0;elsedsource1(i)=1;dsource2(i)=1;end;end;numofsymbolerror=0;numofbiterror=0;for i=1:Nn=sgma*randn(size(s00));if((dsource1(i)==0)&(dsource2(i)==0))r=s00+n;elseif((dsource1(i)==0)&(dsource2(i)==1)) r=s01+n;elseif((dsource1(i)==1)&(dsource2(i)==0)) r=s10+n;elser=s11+n;end;c00=dot(r,s00);c01=dot(r,s01);c10=dot(r,s10);c11=dot(r,s11);c_max=max([c00 c01 c10 c11]);if (c00==c_max)decis1=0;decis2=0;elseif(c01==c_max)decis1=0;decis2=1;elseif(c10==c_max)decis1=1;decis2=0;elsedecis1=1;decis2=1;end;symbolerror=0;if(decis1~=dsource1(i))numofbiterror=numofbiterror+1;symbolerror=1;end;if(decis2~=dsource2(i))numofbiterror=numofbiterror+1;symbolerror=1;end;if(symbolerror==1)numofsymbolerror=numofsymbolerror+1;end;end;ps=numofsymbolerror/N;pb=numofbiterror/(2*N);效果图:11。

在matlab上的的QPSK调制与解调仿真

在matlab上的的QPSK调制与解调仿真

QPSK的调制与解调电路的MATLAB实现摘要本课程设计主要讨论了QPSK的调制解调原理,分析了它们的调制解调实现过程的程序设计。

在课程设计中,系统开发平台为Windows 2000,程序运行平台为MATLAB集成环境下的Simulink仿真平台。

用Simulink构建QPSK调制与解调电路仿真模型,得到调制、解调信号,绘制调制前后频谱图,分析QPSK在各种噪声信道中的性能。

程序运行初步实现了QPSK的调制解调,其所得结果基本与理论结果一致。

关键词Simulink;调制解调;QPSK;目录1.前言 (1)1.1QPSK系统的应用背景简介 (1)1.2 QPSK实验仿真的意义 (1)1.3 实验平台和实验内容 (2)1.3.1实验平台 (2)1.3.2实验内容 (2)2系统实现框图和分析 (3)2.1、QPSK调制部分 (3)2.2、QPSK解调部分 (4)3实验结果及分析 (6)3.1、理想信道下的仿真 (6)3.2、高斯信道下的仿真 (7)3.3、先通过瑞利衰落信道再通过高斯信道的仿真 (8)4致谢 (9)参考文献 (10)附录 (11)1.前言1.1QPSK系统的应用背景简介QPSK是英文Quadrature Phase Shift Keying的缩略语简称,意为正交相移键控,是一种数字调制方式。

在19世纪80年代初期,人们选用恒定包络数字调制。

这类数字调制技术的优点是已调信号具有相对窄的功率谱和对放大设备没有线性要求,不足之处是其频谱利用率低于线性调制技术。

19世纪80年代中期以后,四相绝对移相键控(QPSK)技术以其抗干扰性能强、误码性能好、频谱利用率高等优点,广泛应用于数字微波通信系统、数字卫星通信系统、宽带接入、移动通信及有线电视系统之中。

1.2 QPSK实验仿真的意义通过完成设计内容,复习QPSK调制解调的基本原理,同时也要复习通信系统的主要组成部分,了解调制解调方式中最基础的方法。

MATLAB实现QPSK信号的调制解调以及计算误码率BER

MATLAB实现QPSK信号的调制解调以及计算误码率BER

MATLAB实现QPSK信号的调制解调以及计算误码率BER QPSK(Quadrature Phase Shift Keying)是一种基于调制的数字通信方法,它能够提高频谱利用率并减小误码率。

在QPSK调制中,每个符号由两个正交的载波信号之一进行相位调制,共有四种可能的相位状态。

本文将介绍如何使用MATLAB实现QPSK信号的调制、解调,并计算误码率BER(Bit Error Rate)。

首先,我们将使用MATLAB生成一个随机的二进制数列作为待传输的数字数据。

假设数据位数为N。

```matlabN=1000;%数据位数data = randi([0, 1], 1, N); % 生成随机二进制数据```接下来,我们将二进制数据转换为QPSK调制所需的两个IQ通道数据。

其中,I通道代表实部,Q通道代表虚部。

我们将0和1分别映射为QPSK调制的四个相位状态(例如:00映射为相位0°,01映射为相位90°,10映射为相位180°,11映射为相位270°)。

```matlabqpsk_data = reshape(data, 2, N/2); % 转换为2*N/2矩阵qpsk_data = 2*qpsk_data - 1; % 转换为-1和1之间的数值I = qpsk_data(1, :);Q = qpsk_data(2, :);```现在,我们得到了I和Q两个IQ通道的数据。

接下来,我们将对这两个通道的数据进行调制。

在QPSK调制中,我们使用两个不同相位的正弦信号。

```matlabfs = 1000; % 采样率fc = 10; % 载波频率t = 0:1/fs:N/fc-1/fs; % 时间序列I_modulated = real(sqrt(2/T).*I.*cos(2*pi*t*fc)); % I通道调制Q_modulated = real(sqrt(2/T).*Q.*sin(2*pi*t*fc)); % Q通道调制QPSK_signal = I_modulated + Q_modulated; % QPSK信号```现在,我们得到了QPSK信号。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验名称:QPSK调制与解调
一、实验目的:
1、学会QPSK调制与解调系统的构成
2、学会QPSK调制与解调系统的各模块的构建
3、学会误码率与误符号率的统计方法以及Matlab算法
二、实验原理:
1、QPSK:四进制绝对相移键控,也称为多进制数字相位调制,利用载波的四种不同相位状态来表征数字信息的调制方式。

2、QPSK的调制方法有正交调制方式(双路二相调制合成法或直接调相法)、相位选择法、插入脉冲法。

调制与解调系统的构成:
3、各模块的实现方法:
(1)、信源的产生:使用randint(m,n,2) 函数产生一个m 行n 列的随机二进制数列
(2)、QPSK 符号映射 :将产生的0,1比特流按照QPSK 调制方式进行映射,本实验采用π/4 QPSK 的调制方式,图为:
(3)、AWGN 信号产生:AWGN 产生器就是产生满足均值为0,方差为1的高斯白噪声。

实验中使用randn(m,n)函数产生一个m 行n 列的高斯噪声序列。

(4)、信号幅度控制:根据AWGN 信道模型,接收信号可以分别表示为
α就是当噪声功率归一化为1(0均值,方差为1)时,根据信噪比关系而计算出来的信号平均幅度
I I I r s n α=+Q Q Q
r s n α=+22210log 10^10s s n n v SNR SNR v sqrt v v ⎛⎫⎛⎫⎛⎫=⇒=* ⎪ ⎪ ⎪⎝⎭⎝⎭⎝⎭
(5)、QPSK 反映射及判决 :对接收到的信号在4种可能的四种信号向量[(1,0), (0,1), (-1,0), (0,-1)]上投影(即进行点积)。

投影最大的值所对应的信号向量就是所发送信号的符号值,然后恢复出比特流
(6)、误码率及误符号率统计:
误码率:将检测出来的比特流和发送的原始比特流进行比较,统计出出现错误的比特数
误符号率:将检测出来的比特流变成两组,构成符号,和发送端符号映射后的符号流进行比较,只要符号中任错一bit ,就算该符号出错。

统计出现错误的符号数
三、 实验内容:
1、建立QPSK 的Matlab 仿真模型
2、对仿真模型中各个组成部分进行函数设计和功能仿真 randn('seed',10);mark=randn(1,LENGTH);
subplot(2,2,1);plot(mark);title('watermarc:Gaussian noise');
3、成型滤波器的设计
4、带限信道中的QPSK 调制解调
四、实验步骤:
1、开机,设置好本次仿真目录
2、进入matlab 环境,设置工作路径和目录
3、按照实验方法,一步步进行QPSK 各个模块的设计
s
v α=
(1)、Bit流产生:
global p p=0.5;产生随机二进制序列
(2)、QPSK符号映射:
[m_qpsk1,m_qpsk2]=qpsk_modulation(s_qpsk);
figure(2),判断所在的相限。

(3)、AWGN噪声产生:
编写实部部信号和虚部信号的幅值语句。

(4)、产生QPSK调制后+AWGN的符号流:
通过平方根升余弦滤波器滤波得到QPSK实部输出信号的10个周期。

(5)、反映射和判决:
plot(10*log10(abs(power_qpsk(1:(length(power_qpsk)+1)/ 2)))-max(10*log10(abs(power_qpsk(1:(length(power_qpsk)+1)/ 2)))))
(6)、SER和BER统计,曲线绘制,分析:
把数据通过循环控制分别求出错误的bit数和符号数,与总的bit数和符号数相比,得出BER和SER,再与理论值比较。

五、出现问题及解决方案
qpsk_modulation函数调用出现错误,修改后没有问题。

六、实验心得
通过研究对QPSK的调制和解调原理,以及利用
MATLAB对其调制和解调进行了编程和编译仿真,得到的结论和理论上是一致的。

相关文档
最新文档