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

合集下载

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),这里不再详述。

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),这里不再详述。

bpskqpsk的matlab仿真

bpskqpsk的matlab仿真

实验一无线信道特性及其分析方法一、实验作业1.在程序运行的过程中,任取一段Display1的数据和Display4的数据,分析其是否满足QPSK的调制过程;图一程序运行中的一段数据截图Display1的数据为00 11 11 11对应双极性序列为11 -1-1 -1-1 -1-1Display2的数据为pi/4 5*pi/4 5*pi/4 5*pi/4故由四相调制QPSK相位关系知,以上满足QPSK调制过程。

2.调试嵌入的f_convert.m,看看临时变量L的取值为多少。

答:临时变量L的值为8。

3.运行过程中,分别截取Signal Trajectory of QPSK Signal,11,BeforeRayleigh Fading1 和12,After Rayleigh Fading模块输出的QSPK的相位转移图和瑞利信道前后的星座图,进行解释。

图二Signal Trajectory of QPSK Signal图三瑞利信道前的星座图图四瑞利信道后的星座图答:QPSK调制相位跳变最大为±pi,最小为±pi/2由图二知仿真满足要求。

图三和图四知,信号通过瑞利信道后星座图出现失真。

因信号受瑞丽信道的干扰在星座图上出现相位和幅度失真,且不同时刻,失真大小不一。

实验二典型通信系统的搭建和分析四、实验作业1.对比Probe1/ Probe2/ Probe3处的数据,说明采用BSPK和QPSK调制前后,比特周期和符号周期之间的关系。

调制前 Probe1: W:16,Tf:[1.6e-005 0]Probe2: W:16,Tf:[1.6e-005 0] QPSKProbe3: W:16,Tf:[1.6e-005 0] BPSKProbe1/2/3处的数据Probe1 W:16 Tf:[1/6e-005 0]Prope2 W:8 Tf[1.6e-005 0]Prope2 W:16 Tf[1.6e-005 0]BPSK调制前后比特周期和符号周期没有变化,且符号周期等于比特周期。

基于matlab的QPSK与BPSK信号性能比较仿真

基于matlab的QPSK与BPSK信号性能比较仿真

┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊目录第一章概述 (1)第二章QPSK通信系统原理与仿真 (1)2.1 QPSK系统框图介绍 (1)2.2QPSK信号的调制原理 (2)2.2.1QPSK信号产生方法 (2)2.2.2QPSK星座图 (2)2.3QPSK解调原理及误码率分析 (3)2.3.1QPSK解调方法 (3)2.3.2QPSK系统误码率 (3)2.4QPSK信号在AWGN信道下仿真 (4)第三章BPSK通信系统原理与仿真 (4)3.1BPSK信号的调制原理 (4)3.2BPSK解调原理及误码率分析 (4)第四章QPSK与BPSK性能比较 (5)4.1QPSK与BPSK在多信道下比较仿真 (5)4.1.1纵向比较分析 (5)4.1.2横向比较分析 (7)4.2仿真结果分析 (7)4.2.1误码率分析 (7)4.2.2频带利用率比较 (7)附录 (8)代码1 (8)代码2 (8)代码3 (10)代码4 (12)┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊第一章概述QPSK是英文Quadrature Phase Shift Keying的缩略语简称,意为正交相移键控,是一种数字调制方式。

它以其抗干扰性能强、误码性能好、频谱利用率高等优点,广泛应用于数字微波通信系统、数字卫星通信系统、宽带接人、移动通信及有线电视系统之中。

BPSK是英文Binary Phase Shift Keying的缩略语简称,意为二相相移键控,是利用偏离相位的复数波浪组合来表现信息键控移相方式的一种。

它使用了基准的正弦波和相位反转的波浪,使一方为0,另一方为1,从而可以同时传送接受2值(1比特)的信息。

本文所研究的QPSK系统与二进制的BPSK系统相比,具有以下特点:1.在传码率相同的情况下,四进制数字调制系统的信息速率是二进制系统的2倍。

2.在相同信息速率条件下,四进制数字调制系统的传码率是二进制系统的1/4倍,这一特点使得四进制码元宽度是二进制码元宽度的2倍,码元宽度的加大,可增加每个码元的能量,也可减小码间串扰的影响。

qpsk、bpsk蒙特卡洛仿真matlab代码

qpsk、bpsk蒙特卡洛仿真matlab代码

qpsk、bpsk的蒙特卡洛仿真是一种用于测试和验证通信系统性能的重要工具。

通过模拟大量的随机输入数据,并对系统进行多次仿真运算,可以对系统的性能进行全面评估,包括误码率、信噪比要求等。

在matlab中,我们可以通过编写相应的仿真代码来实现qpsk、bpsk 的蒙特卡洛仿真。

下面将分别介绍qpsk和bpsk的蒙特卡洛仿真matlab代码。

一、qpsk的蒙特卡洛仿真matlab代码1. 生成随机的qpsk调制信号我们需要生成一组随机的qpsk调制信号,可以使用randi函数生成随机整数序列,然后将其映射到qpsk符号点上。

2. 添加高斯白噪声在信号传输过程中,会受到各种干扰,其中最主要的干扰之一就是高斯白噪声。

我们可以使用randn函数生成高斯白噪声序列,然后与调制信号相加,模拟信号在传输过程中受到的噪声干扰。

3. 解调和判决接收端需要进行解调和判决操作,将接收到的信号重新映射到qpsk符号点上,并判断接收到的符号与发送的符号是否一致,从而判断是否发生误码。

4. 统计误码率通过多次仿真运算,记录错误判决的次数,从而可以计算出系统的误码率。

二、bpsk的蒙特卡洛仿真matlab代码1. 生成随机的bpsk调制信号与qpsk相似,我们需要先生成一组随机的bpsk调制信号,然后模拟信号传输过程中的噪声干扰。

2. 添加高斯白噪声同样使用randn函数生成高斯白噪声序列,与bpsk调制信号相加。

3. 解调和判决接收端对接收到的信号进行解调和判决,判断接收到的符号是否与发送的符号一致。

4. 统计误码率通过多次仿真运算,记录错误判决的次数,计算系统的误码率。

需要注意的是,在编写matlab代码时,要考虑到信号的长度、仿真次数、信噪比的范围等参数的选择,以及仿真结果的统计分析和可视化呈现。

qpsk、bpsk的蒙特卡洛仿真matlab代码可以通过以上步骤实现。

通过对系统性能进行全面评估,可以帮助工程师优化通信系统设计,提高系统的可靠性和稳定性。

MATLAB_QPSK调制与解调

MATLAB_QPSK调制与解调

实验名称: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)时,根据信噪比关系而计算出来的信号平均幅度(5)、QPSK 反映射及判决 :对接收到的信号在4种可能的四种信号向量[(1,0), (0,1), (-1,0), (0,-1)]上投影(即进行点积)。

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

统计出现错误的符号数 三、 实验内容:1、调制与解调I I Ir s n α=+Q Q Qr s n α=+22210log 10^10s s n n v SNR SNR v sqrt v v ⎛⎫⎛⎫⎛⎫=⇒=* ⎪ ⎪ ⎪⎝⎭⎝⎭⎝⎭s v α=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('解调后序列');2、误码率仿真% 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);3、QPSK在AWGN信道下的仿真close allclcclear allSNR_DB=[0:1:12];sum=1000000;data= randsrc(sum,2,[0 1]);[a1,b1]=find(data(:,1)==0&data(:,2)==0);message(a1)=-1-j;[a2,b2]=find(data(:,1)==0&data(:,2)==1);message(a2)=-1+j;[a3,b3]=find(data(:,1)==1&data(:,2)==0);message(a3)=1-j;[a4,b4]=find(data(:,1)==1&data(:,2)==1);message(a4)=1+j;scatterplot(message)title('B点信号的星座图')A=1;Tb=1;Eb=A*A*Tb;P_signal=Eb/Tb;NO=Eb./(10.^(SNR_DB/10));P_noise=P_signal*NO;sigma=sqrt(P_noise);for Eb_NO_id=1:length(sigma)noise1=sigma(Eb_NO_id)*randn(1,sum);noise2=sigma(Eb_NO_id)*randn(1,sum);receive=message+noise1+noise2*j;resum=0;total=0;m1=find(angle(receive)<=pi/2&angle(receive)>0);remessage(1,m1)=1+j;redata(m1,1)=1;redata(m1,2)=1;m2= find( angle(receive)>pi/2&angle(receive)<=pi);remessage(1,m2)=-1+j;redata(m2,1)=0;redata(m2,2)=1;m3=find( angle(receive)>-pi&angle(receive)<=-pi/2);remessage(1,m3)=-1-j;redata(m3,1)=0;redata(m3,2)=0;m4=find( angle(receive)>-pi/2&angle(receive)<=0);remessage(1,m4)=1-j;redata(m4,1)=1;redata(m4,2)=0;[resum,ratio1]=symerr(data,redata);pbit(Eb_NO_id)=resum/(sum*2);[total,ratio2]=symerr(message,remessage);pe(Eb_NO_id)=total/sum;endscatterplot(receive)title('C点信号的星座图')Pe=1-(1-1/2*erfc(sqrt(10.^(SNR_DB/10)/2))).^2;Pbit=1/2*erfc(sqrt(10.^(SNR_DB/10)/2));figure(3)semilogy(SNR_DB,pe,':s',SNR_DB,Pe,'-*',SNR_DB,pbit,'-o',SNR_DB,Pbit,':+')legend('QPSK仿真误码率','QPSK理论误码率','QPSK仿真误比特率','QPSK理论误比特率',1) xlabel('信噪比/dB')ylabel('概率P')gird on结果:4、QPSK在AWGN信道下的性能检测clear all;%对随机序列产生的方法初始化s = RandStream('mt19937ar','Seed', 5489);RandStream.setDefaultStream(s);s = RandStream('mcg16807', 'Seed',0);RandStream.setDefaultStream(s);N = 10^5; %码元数Eb_N0 = -4:20; %Eb/N0比特信噪比s_data = zeros(1,N);ErrorCount=zeros(1,length(Eb_N0)); %预先分配内存,用于记录错误的码元数for j = 1:length(Eb_N0)p = (2*(rand(1,N)>0.5)-1) + 1i*(2*(rand(1,N)>0.5)-1);s = (1/sqrt(2))*p; %归一化n = 10^(-Eb_N0(j)/40)*1/sqrt(2)*(randn(1,N) + 1i*randn(1,N)); %加性高斯白噪声r = s + n;%解调r_re = real(r); %实部r_im = imag(r); %虚部s_data(r_re < 0 & r_im < 0) = -1 + -1*1i;s_data(r_re >= 0 & r_im > 0) = 1 + 1*1i;s_data(r_re < 0 & r_im >= 0) = -1 + 1*1i;s_data(r_re >= 0 & r_im < 0) = 1 - 1*1i;ErrorCount(j) = size(find(p- s_data),2); %错误的码元数endsim_QPSK = ErrorCount/N;theory_QPSK = erfc(sqrt(0.5*(10.^(Eb_N0/20)))) -(1/4)*(erfc(sqrt(0.5*(10.^(Eb_N0/20))))).^2;close allfiguresemilogy(Eb_N0,theory_QPSK,'b.-');hold onsemilogy(Eb_N0,sim_QPSK,'mx-');axis([-4 20 10^-3 1])grid on。

基于matlab的QPSK与BPSK信号性能比较仿真讲解

基于matlab的QPSK与BPSK信号性能比较仿真讲解

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊目录第一章概述 (2)第二章QPSK通信系统原理与仿真 (2)2.1 QPSK系统框图介绍 (2)2.2 QPSK信号的调制原理 (3)2.2.1 QPSK信号产生方法 (3)2.2.2 QPSK星座图 (4)2.3 QPSK解调原理及误码率分析 (4)2.3.1 QPSK解调方法 (4)2.3.2 QPSK系统误码率 (5)2.4 QPSK信号在AWGN信道下仿真 (5)第三章BPSK通信系统原理与仿真 (6)3.1 BPSK信号的调制原理 (6)3.2 BPSK解调原理及误码率分析 (7)第四章QPSK与BPSK性能比较 (8)4.1 QPSK与BPSK在多信道下比较仿真 (8)4.1.1 纵向比较分析 (8)4.1.2 横向比较分析 (10)4.2 仿真结果分析 (10)4.2.1 误码率分析 (10)4.2.2 频带利用率比较 (10)附录 (11)代码1 (11)代码2 (11)代码3 (14)代码4 (16)┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊第一章概述QPSK是英文Quadrature Phase Shift Keying的缩略语简称,意为正交相移键控,是一种数字调制方式。

它以其抗干扰性能强、误码性能好、频谱利用率高等优点,广泛应用于数字微波通信系统、数字卫星通信系统、宽带接人、移动通信及有线电视系统之中。

BPSK是英文Binary Phase Shift Keying的缩略语简称,意为二相相移键控,是利用偏离相位的复数波浪组合来表现信息键控移相方式的一种。

它使用了基准的正弦波和相位反转的波浪,使一方为0,另一方为1,从而可以同时传送接受2值(1比特)的信息。

本文所研究的QPSK系统与二进制的BPSK系统相比,具有以下特点:1.在传码率相同的情况下,四进制数字调制系统的信息速率是二进制系统的2倍。

bpsk调制的matlab程序

bpsk调制的matlab程序

题目:BPSK调制的MATLAB程序一、BPSK调制技术介绍BPSK(Binary Phase Shift Keying)调制是一种数字调制技术,它使用两个不同的相位来表示数字比特0和1。

在BPSK调制中,0和1分别映射到正弦波的两种相位,通常为0°和180°。

二、MATLAB程序编写流程在MATLAB中实现BPSK调制的程序主要包括以下几个步骤:1. 生成要调制的数字比特序列2. 将数字比特序列转化为相应的正弦波信号3. 添加高斯白噪声4. 绘制调制后的信号波形图三、MATLAB程序实现下面是一个简单的MATLAB程序,实现了BPSK调制的过程:```matlab生成随机的数字比特序列bitStream = randi([0,1],1,1000);将数字比特序列映射为正弦波信号t = 0:0.01:length(bitStream)-1;t = t/100;carrier = sin(2*pi*t);BPSK调制bpskSignal = (1-2*bitStream).*carrier;添加高斯白噪声noise = 0.1*randn(1,length(bpskSignal)); noisyBpskSignal = bpskSignal + noise;绘制调制后的信号波形图subplot(2,1,1);plot(t,carrier);title('Carrier Signal');xlabel('Time');ylabel('Amplitude');grid on;subplot(2,1,2);plot(t,noisyBpskSignal);title('Noisy BPSK Signal');xlabel('Time');ylabel('Amplitude');grid on;```四、MATLAB程序运行结果分析通过上述程序,我们可以得到BPSK调制后的信号波形图。

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),这里不再详述。

QPSK调制与解调在MATLAB平台上的实现

QPSK调制与解调在MATLAB平台上的实现

QPSK调制与解调在MATLAB平台上的实现QPSK(Quadrature Phase Shift Keying)是一种常用的调制解调技术,常用于数字通信中。

在QPSK调制中,每个符号代表两个比特,通过将这两个比特与正交信号载波进行调制,实现高效的数据传输。

在这篇文章中,我们将介绍如何在MATLAB平台上实现QPSK调制和解调。

1.QPSK调制首先,我们需要生成待发送的二进制比特序列。

我们可以使用randi 函数生成0和1之间的随机整数序列。

```matlabbits = randi([0,1],1,N);```N表示待发送的比特数。

接下来,我们需要将这个二进制序列转换为QPSK调制符号。

在QPSK 调制中,我们将每两个比特映射到一个复数符号。

将0映射为1+j,将1映射为1-j。

```matlabfor i = 1:2:Nif bits(i) == 0 && bits(i+1) == 0symbols((i+1)/2) = 1 + 1i;elseif bits(i) == 0 && bits(i+1) == 1symbols((i+1)/2) = 1 - 1i;elseif bits(i) == 1 && bits(i+1) == 0symbols((i+1)/2) = -1 + 1i;elseif bits(i) == 1 && bits(i+1) == 1symbols((i+1)/2) = -1 - 1i;endend```最终得到的symbols变量即为QPSK调制后的复数符号序列。

2.QPSK解调首先,我们需要接收到的QPSK信号进行解调,得到复数符号序列。

```matlabsymbols_received = received_signal./carrier; % 将接收到的信号除以载波得到复数符号序列```其中received_signal为接收到的QPSK信号,carrier为发送端使用的载波。

BASK BPSK QPSK MSK调制解调原理以及Matlab代码

BASK BPSK QPSK MSK调制解调原理以及Matlab代码

目录第一部分仿真的参数设置 (1)第二部分BASK调制与解调 (2)第三部分BPSK调制与解调 (6)第四部分QPSK调制与解调 (10)第五部分MSK调制与解调 (14)第六部分误码率随信噪比变化 (18)参考文献 (20)Matlab代码 (21)BASK (21)BPSK (24)QPSK (27)MSK (31)误码率随着信噪比变化 (35)第一部分仿真的参数设置仿真过程中应用到的参数设置以及相应的解释如表1所示[1]。

表1. 参数设置及其解释第二部分BASK调制与解调BASK调制解调的概要过程如图2.1所示。

图2.1 BASK调制解调原理图首先,信源随机产生1000个二进制(1/0)码并画出其频谱图,如图2.2所示。

图2.2 信源信号的时域波形和频谱图随后,用10Hz的载波频率去调制信源信号完成BASK调制,调制后的时域波形及其频谱如图2.3所示。

可以看到,调制后的频率确搬移到了10Hz处。

图2.3 BASK已调信号的时域波形与频谱图而后,已调信号进入信噪比为20dB的高斯信道。

接收端接收到经过信道信号,其时域波形和频谱如图2.4所示,可以看出分布在整个时间轴上的噪声信号。

图2.4 已调信号经过高斯信道后的时域波形和频谱图接收端接收到信号后,通入BASK解调模块,先乘上载波,获得一个拥有两个频率(10-10;10+10)的信号,其时域波形与频谱图如图2.5所示。

图2.5 BASK解调后的信号时域波形与频谱图而后通入低通滤波器滤除高频载波,时域波形与频谱图如图2.6所示,可以看出此时20Hz处无功率谱密度。

图2.6 通入LPF后的时域波形和频谱图最后将信号进行判决,与信源信号进行对比,如图2.7所示,其误码率为2.14%(如图6.6所示)。

图2.7 信宿恢复信号与信源产生信号波形图对比第三部分BPSK调制与解调BPSK与BASK调制与解调原理基本相同,主要的区别在于信源码是双极性码。

其基本原理如图3.1所示。

bfsk调制解调原理

bfsk调制解调原理

BPSK调制解调原理BPSK(Binary Phase Shift Keying)是一种数字调制方式,它通过改变载波的相位来传输信息。

在BPSK中,二进制信息(0和1)通过将载波相位改变180度来编码。

解调时,通过检测接收信号的相位,确定二进制信息的值。

以下是BPSK调制解调原理的详细介绍:一、BPSK调制原理BPSK调制是将二进制数据序列通过改变载波的相位来传输。

在BPSK中,二进制数据序列(通常表示为{-1, +1}或{0, 1})通过与一个固定频率的载波信号相乘来调制。

载波信号是一个正弦波,其相位可以在0度和180度之间变化。

根据二进制数据序列的值,载波信号的相位被改变180度。

当数据为1时,载波相位为180度;当数据为-1时,载波相位为0度。

BPSK调制原理可以用以下数学公式表示:S(t) = A * cos(2πfct + πb)如果b=0S(t) = A * sin(2πfct + πb)如果b=1其中,S(t)是已调信号,A是幅度,fc是载波频率,b是二进制数据序列的值。

通过改变载波的相位,我们可以将二进制数据序列传输到接收端。

在传输过程中,信号可能会受到噪声和干扰的影响,但只要信号的幅度足够大,我们就可以在接收端正确地检测到信号的相位变化。

二、BPSK解调原理BPSK解调是将接收到的已调信号还原为原始的二进制数据序列的过程。

在BPSK解调中,我们首先需要从已调信号中提取出载波信号的相位信息,然后根据相位信息确定二进制数据的值。

BPSK解调通常使用相干解调或非相干解调方法。

相干解调需要使用与发送端相同的载波信号进行解调,而非相干解调则不需要。

在实际应用中,非相干解调方法通常更为简单且可靠。

1. 相干解调相干解调需要使用与发送端相同的载波信号进行解调。

首先,接收到的已调信号与本地产生的载波信号相乘,得到一个正弦波信号。

然后,通过低通滤波器滤除高频分量,得到一个直流分量。

最后,根据直流分量的极性判断二进制数据的值。

bpsk调制解调原理(一)

bpsk调制解调原理(一)

bpsk调制解调原理(一)BPSK调制解调1. 什么是BPSK调制解调?BPSK(Binary Phase Shift Keying)调制解调是一种基本的数字调制技术,用于将数字信号转换为模拟信号进行传输。

它可以将比特流通过改变信号相位来表示数字信息。

2. 原理BPSK调制解调的原理如下:1.调制: BPSK调制将数字0或1映射到不同的相位。

当数字为0时,信号的相位保持不变;当数字为1时,信号的相位反转180度。

2.解调:解调器接收到BPSK调制的信号后,通过对接收到的信号进行相位检测,判断信号相位的变化来恢复原始的比特流。

3. 调制过程BPSK调制过程可以分为以下几个步骤:1.将数字信号转换为比特流。

2.将比特流进行调制,将每个比特映射到相应的相位。

3.对调制后的信号进行滤波,以去除高频噪声和多余的频率成分。

4. 解调过程BPSK解调过程可以分为以下几个步骤:1.接收到调制后的信号。

2.对接收到的信号进行相位检测,判断信号相位的变化。

3.根据相位的变化确定每个比特的数值,恢复原始的比特流。

5. 优点与应用BPSK调制解调具有以下优点:•抗噪声能力强:由于BPSK调制只有两个相位,相位判断更容易,因此在噪声环境下具有较好的性能。

•简单实现:BPSK调制解调电路相对简单,容易实现和部署。

BPSK调制解调广泛应用于以下领域:•无线通信系统:BPSK是许多无线通信标准中的关键调制方式,如802.11系列(Wi-Fi)、蓝牙等。

•传感器网络:BPSK被用于传感器网络中的数据传输,如环境监测、智能建筑等。

•卫星通信:BPSK可以通过卫星传输数据,广泛应用于卫星通信领域。

6. 总结BPSK调制解调是一种基本的数字调制技术,通过改变信号相位来表示数字信息。

它具有抗噪声能力强、简单实现等优点,在无线通信、传感器网络、卫星通信等领域有广泛的应用。

理解BPSK调制解调的原理对于深入研究数字通信系统至关重要。

7. BPSK调制解调的性能分析BPSK调制解调的性能可以通过误码率(Bit Error Rate,BER)来评估。

BPSK调制解调

BPSK调制解调

BPSK调制解调一、 主要内容1、 简要阐述BPSK 调制解调原理2、 用MATLAB 进行仿真,附上仿真源程序和仿真结果,对结果进行分析。

二、 主要原理2.1 BPSK 的调制原理在二进制数字调制中,当正弦载波的相位随二进制数字基带信号离散变化时,则产生二进制移相键控(2PSK )信号。

通常用已调信号载波的0度和180度分别表示二进制数字基带信号的1和0.二进制移相键控信号的时域表达式为tw nT t g a t e c s nn PSK cos )]([)(2-=∑(式2—1)其中,n a 与2ASK 和2FSK 时的不同,在2PSK 调制中,n a 应选择双极性,即当发送概率为P ,1a =n ,当发送概率为1-P, 1-=n a 。

若g(t)是脉宽为S T 、高度为1的矩形脉冲,则有当发送概率为P 时,)cos()(2t w t e c PSK = (式2—2)发送概率为1-P 时,)cos(2t w e c PSK -= (式2—3)由(式2—2)和(式2—3)可以看出,当发送二进制符号1时,已调信号)(e 2t PSK 取0度相位,当发送二进制符号为0时,)(e 2t PSK 取180度相位,则有)cos(2n c PSK t w e ϕ+=,其中发送符号1,00=n ϕ,发送符号0,0180=n ϕ。

这种以载波的不同相位直接表示相应二进制数字调制信号的调制方式,称为二进制绝对移向方式。

下面为2PSK 信号调制原理框图2.1所示:图2.1:2PSK信号的调制原理图(模拟调制方法)利用模拟调制的方法去实现数字式调制,即把数字调制看成是模拟调制的一个特例,把数字基带信号当做模拟信号的特殊情况处理。

图2.2 BPSK信号时间波形示例2.2 BPSK解调原理2PSK信号的解调通常都采用相干解调,解调器原理如图2.3所示,在相干解调过程中需要用到和接收的2PSK信号同频同相的想干载波。

图2.3:BPSK 相干解调图2.4 BPSK 解调各点时间波形在2PSK 相干信号解调过程中,当回复的相干载波产生180度倒相时,解调出的数字基带信号与将发送的数字基带信号正好相反,解调器输出数字基带信号全部错误,这通常称为“倒π”现象。

QPSK调制与解调系统的MATLAB实现

QPSK调制与解调系统的MATLAB实现

QPSK调制与解调系统的MATLAB实现和性能分析摘要:QPSK是英文QuadraturePhaseShiftKeying的缩略语简称,意为正交相移键控,是一种数字调制方式。

四相相移键控信号简称“QPSK”。

在现代通信系统中,调制与解调是必不可少的重要手段。

所谓调制,就是把信号转换成适合在信道中传输的形式的一种过程。

解调则是调制的相反过程,而从已调制信号中恢复出原信号。

本课程设计主要介绍通过进行QPSK调制解调的基带仿真,对实现中影响该系统性能的几个重要问题进行了研究。

针对QPSK的特点,调制前后发生的变化,加上噪声后波形出现的各种变化,通过星座图、眼图、波形图等来观察。

程序设计与仿真均采用MATLAB集成环境下的Simulink仿真平台,最后仿真详单与理论分析一致。

1 引言本课程设计主要是学会运用MATLAB中的Simulink来实现数字基带信号的模拟传输。

在知道其传输原理的情况下,将仿真电路到Simulink之中。

并且对正交振幅调制、解调过程的频谱和波形的分析,同时在无噪声和有噪声的进行分析,加入高斯白噪声,瑞利噪声,莱斯噪声分析调制解调后的频谱、波形,观察其误码率。

1.1课程设计的目的通过本课程的学习我们不仅能加深理解和巩固理论课上所学的有关QPSK调制与解调的基本概念、基本理论和基本方法,而且能锻炼我们分析问题和解决问题的能力;同时对我们独立工作的习惯和科学素质进行培养,为今后参加科学工作打下良好的基础。

1.2课程设计的内容利用MATLAB集成环境下的Simulink仿真平台,设计一个QPSK调制与解调系统.用示波器观察调制前后的信号波形;用频谱分析模块观察调制前后信号频谱的变化;加上各种噪声源,用误码测试模块测量误码率;最后根据运行结果和波形来分析该系统性能。

1.3课程设计的要求1)熟悉MATLAB环境下的Simulink仿真平台,熟悉QPSK系统的调制解调原理,构建QPSK调制解调电路图.2)用示波器观察调制前后的信号波形,用频谱分析模块观察调制前后信号的频谱的变化。

matlab qpsk调制解调代码

matlab qpsk调制解调代码

一、介绍Matlab是一种专门用于科学计算和数据可视化的强大工具,QPSK调制解调是数字通信领域中常用的调制解调技术。

本文将介绍如何使用Matlab编写QPSK调制解调的代码。

二、QPSK调制原理QPSK是Quadrature Phase Shift Keying的缩写,即正交相移键控。

在QPSK调制中,将输入的数字比特流分成两路,分别用正弦波和余弦波进行调制。

通过将正弦波和余弦波的相位进行调整,可以将数字比特流转换为模拟信号进行传输。

三、QPSK调制过程1.将输入的数字比特流分为两路,分别表示为I路和Q路。

2.将I路比特流进行调制,使用正弦波作为载波信号,调整相位进行调制。

3.将Q路比特流进行调制,使用余弦波作为载波信号,调整相位进行调制。

4.将调制后的信号进行合并,得到QPSK调制信号。

四、QPSK解调过程1.接收到QPSK调制信号后,将信号分为I路和Q路。

2.将I路信号与正弦波进行乘积运算并积分,得到解调后的I路比特流。

3.将Q路信号与余弦波进行乘积运算并积分,得到解调后的Q路比特流。

五、Matlab QPSK调制解调代码实现```matlab生成随机QPSK调制信号data = randi([0, 1], 1, 1000); 生成随机比特流I = data(1:2:end); 取偶数位作为I路数据Q = data(2:2:end); 取奇数位作为Q路数据symbols = 2*I-1 + 1i*(2*Q-1); 将I路和Q路数据映射为QPSK符号显示QPSK调制信号scatterplot(symbols); 显示QPSK调制信号的星座图QPSK解调data_est = zeros(1, length(data));data_est(1:2:end) = real(symbols) > 0; 解调I路数据data_est(2:2:end) = imag(symbols) > 0; 解调Q路数据```六、总结本文介绍了QPSK调制解调的原理和过程,并给出了使用Matlab实现QPSK调制解调的代码。

基于matlab的QPSK与BPSK信号性能比较仿真

基于matlab的QPSK与BPSK信号性能比较仿真

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊目录第一章概述 (2)第二章QPSK通信系统原理与仿真 (2)2.1 QPSK系统框图介绍 (2)2.2 QPSK信号的调制原理 (3)2.2.1 QPSK信号产生方法 (3)2.2.2 QPSK星座图 (4)2.3 QPSK解调原理及误码率分析 (4)2.3.1 QPSK解调方法 (4)2.3.2 QPSK系统误码率 (5)2.4 QPSK信号在AWGN信道下仿真 (5)第三章BPSK通信系统原理与仿真 (6)3.1 BPSK信号的调制原理 (6)3.2 BPSK解调原理及误码率分析 (7)第四章QPSK与BPSK性能比较 (8)4.1 QPSK与BPSK在多信道下比较仿真 (8)4.1.1 纵向比较分析 (8)4.1.2 横向比较分析 (10)4.2 仿真结果分析 (10)4.2.1 误码率分析 (10)4.2.2 频带利用率比较 (10)附录 (11)代码1 (11)代码2 (11)代码3 (14)代码4 (16)┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊第一章概述QPSK是英文Quadrature Phase Shift Keying的缩略语简称,意为正交相移键控,是一种数字调制方式。

它以其抗干扰性能强、误码性能好、频谱利用率高等优点,广泛应用于数字微波通信系统、数字卫星通信系统、宽带接人、移动通信及有线电视系统之中。

BPSK是英文Binary Phase Shift Keying的缩略语简称,意为二相相移键控,是利用偏离相位的复数波浪组合来表现信息键控移相方式的一种。

它使用了基准的正弦波和相位反转的波浪,使一方为0,另一方为1,从而可以同时传送接受2值(1比特)的信息。

本文所研究的QPSK系统与二进制的BPSK系统相比,具有以下特点:1.在传码率相同的情况下,四进制数字调制系统的信息速率是二进制系统的2倍。

基于MATLAB仿真的BPSK的调制与解调报告

基于MATLAB仿真的BPSK的调制与解调报告

基于MATLAB 仿真的BPSK 的调制与解调一、实验要求根据题目要求,查阅相关资料,掌握数字带通的 BPSK 调制解调的相关知识。

学习 MATLAB 软件,掌握 MATLAB 各种函数的使用。

在此基础上,完成以下实验要求:1) 设计系统整体框图及数学模型。

2) 运用 MATLAB 进行编程,实现 BPSK 的调制解调过程的仿真。

其中包括信源、BPSK 信号的产生,信道噪声的加入,BPSK 信号的载波提取和相干解调。

3) 系统性能的分析包括信号带宽,波形对比以及误码率的计算。

二、实验原理数字信号的传输方式分为基带传输和带通传输,在实际应用中,大多数信道 具有带通特性而不能直接传输基带信号。

为了使数字信号在带通信道中传输,必 须使用数字基带信号对载波进行调制,以使信号与信道的特性相匹配。

这种用数 字基带信号控制载波,把数字基带信号变换为数字带通信号的过程称为数字调制。

数字调制技术的两种方法:1) 模拟相乘法。

利用模拟调制的方法去实现数字式调制,即把把数字基带信号当做模拟信号的特殊情况处理。

2) 键控法。

利用数字信号的离散取值特点通过开关键控载波,从而实现数字调制。

这种方法通常称为键控法,比如本实验对载波的相位进行键控,便可获得相移键控(PSK )基本的调制方式。

1.BPSK 的调制原理:二进制移相键控是用二进制数字信号0和1去控制载波的两个相位0和π的方法。

在2PSK 中,通常用初始相位0和π分别表示二进制1和0。

因此,2PSK 信号的时域表达式为:)cos(A )(2PSK n c t t e ϕω+= (1)式中,ϕn 表示第n 个符号的绝对相位:⎩⎨⎧=”时发送“”时发送“,1,00πϕn (2)因此,上式可以改写为⎩⎨⎧--=Pt P t t e c c 1,cos A ,cos A )(2PSK 概率为概率为ωω (3)由于两种码元的波形相同,极性相反,故BPSK 信号可以表述为一个双极性全占空矩形脉冲序列与一个正弦载波的相乘:()t t s t e c ωcos )(2PSK = (4) 式中∑-=ns n nT t g a t s )()( (5)这里s(t)为双极性全占空(非归零)矩形脉冲序列,g(t)是脉宽为T s 的单个矩形脉冲,而a n 的统计特性:⎩⎨⎧--=P P a n 1,1,1概率为概率为 (6)图1 BPSK 信号的波形示例2.BPSK 的解调原理:2PSK 信号的解调方法是相干解调法。

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

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),这里不再详述。

2-PSK 调制解调二进制移相键控信号的调制原理:如图9所示。

其中图(a)是采用模拟调制的方法产生2PSK 信号,图(b)是采用数字键控的方法产生2PSK 信号。

解调器原理:如图10所示。

2PSK 信号的解调通常都是采用相干解调, 在相干解调过程中需要用到与接收的2PSK 信号同频同相的相干载波。

(a) 模拟调制产生2PSK 信号(b)数字键控的方法产生2PSK 信号 图 9 2PSK 信号的调制原理图图 102PSK 信号的解调原理图e 2PSK (t)带通滤波器相乘器低通 滤波器抽样 判决器 acde输出定时 脉冲cos(w c t)b乘法器e 2PSK (t)cos(w c t)s(t)码型变换双极性不归零cos(w c t)e 2PSK (t)s(t)开关电路180度移相0度180度10a111bcd图11 2PSK 信号相干解调各点时间波形就键控法来说,用数字基带信号s(t)控制开关电路,选择不同相位的载波输出,这时s(t)为单极性NRZ 或双极性NRZ 脉冲序列信号均可。

当基带信号为0 时候,连通开关0,产生无差别的载波,当所发出的信号为 1 时,既连通开关П改变载波的相位。

在移相键控中还有一种差分移相键,他和普通的移相键控区别在与,差分移相键只有在当前传输的码元和上次传输的码元产生差别时才会产生相位的变化。

移相键控相对与幅度键控和移频键控有着更好的抗干扰性,也更适合于在信道中传输。

QPSK 调制QPSK 信号可以看作两个载波正交2PSK 信号的合成。

用调相法产生QPSK 调制器框图如图12所示,QPSK 的调制器可以看作是由两个BPSK 调制器构成,输入的串行二进制信息序列经过串并变换,变成两路速率减半的序列,电平发生器分别产生双极性的二电平信号I (t )和Q (t ),然后对cosAtω和sinAtω进行调制,相加后即可得到QPSK 信号图12 QPSK 调制器框图QPSK 解调QPSK 信号的解调原理如图3-5的方框图所示。

解调是从已调信号中提取信号的过程,在某种意义上解调是调制的逆过程。

由于QPSK 信号可以看作是两正交2PSK 信号的叠加,故用两路正交的相干载波去解调,这样能够很容易地分离出这两路正交的2PSK 信号。

相干解调后的两路并行码元a 和b 经过“并/串”转换后成为串行数据输出。

电平产生载波发生器电平产生移相90度二进制信息输出QPSK 信号串并转换Q(t)I(t)Acos(wt)Asin(wt)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;%规定已调信号length b=1:400;% 规定基带信号length w=1:400;%规定载波length %生成PSK 信号% for i=1:8if a(i)==0 for j=1:50out(j+50*(i-1))=f(j); %若码元为0则将载波输出 end elsefor j=1:50out(j+50*(i-1))=-f(j); %若码元为1则将载波反相输出 end end end%输出载波和基带信号% for i=1:8 for j=1:50b(j+50*(i-1))=a(i); %b 作为调制信号输出 w(j+50*(i-1))=f(j); %w 作为载波输出 end ends 图3-5 QPSK 信号解调原理方框图subplot(3,3,1),plot(t,b),axis([0 10*pi -0.5 1.2]), xlabel('t'),ylabel('幅度'),title('基带信号');grid on; subplot(3,3,2),plot(t,w),axis([0 10*pi -1.2 1.2]), xlabel('t'),ylabel('幅度'),title('载波'); grid on; subplot(3,3,3),plot(t,out),axis([0 10*pi -1.2 1.2]),xlabel('t'),ylabel('幅度'),title('PSK波形');grid on; %已调信号加入高斯白噪声%noise=awgn(out,80,'measured') ; %产生噪音并加入到已调信号out中,信噪比80 subplot(334);plot(t,noise);ylabel('幅度');title('噪音+信号'); xlabel('t');axis([0 10*pi -1.2 1.2]); grid on;%信号通过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([0 10*pi -1.2 1.2]);grid on;%信号经过相乘器%f=[f f f f f f f f]; %%调整载波函数的长度,与BPF输出函数统一length s=sf.*f;%信号与载波相乘s=(-1).*s;subplot(336);plot(t,s);%画出信号通过该相乘器的波形xlabel('t'); ylabel('幅度');title('通过相乘器后波形');axis([0 10*pi -1 1]);grid on;%信号通过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([0 10*pi -1 1]);grid on;%抽样判决%b=0.26; %设置判决门限for i=1:8for j=1:50if sf(j+50*(i-1))>bsf(j+50*(i-1))=1; %若sf>判决门限,说明此时码元为1 elsesf(j+50*(i-1))=0; %若sf<判决门限,说明此时码元为0endendendsubplot(338);plot(t,sf); %画出信号通过抽样判决器的波形xlabel('t'); ylabel('幅度');title('抽样判决后波形');axis([3 10*pi -0.5 1.2]);grid on;QPK调制解调程序(1)调制% 调相法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('加入噪声'); (2)解调% 设定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]); ylabel('解调后奇位');subplot(4,1,2);plot(t3,Q);axis([0 20 -6 6]); ylabel('解调后偶位');subplot(4,1,3);plot(t2,data_recover);axis([0 20 -6 6]); ylabel('解调后序列');subplot(4,1,4);plot(t,ddd2);axis([0 20 -6 6]); ylabel('原始序列');(注:文档可能无法思考全面,请浏览后下载,供参考。

相关文档
最新文档