1.算法描述

随着数字通讯技能的飞速开展,数字通讯的调制技能也得到了快速开展,其间接连相位调制(Continuous Phase Modulation,CPM)作为一种全新的通讯调制办法得到了越来越多的关注。CPM和传统调制办法不同之处在于,其具有带外辐射小,抗干扰能力强以及频率使用功率高等优势。这是由于传统的FSK和PSK等调制办法,其存在调制相位不接连的状况,而这种不接连的现象会导致相位突变问题,即在信号的传输过程中,信号会从一个相位特性突然切换到别的一个相位特性使得信号在频域存在较大的旁瓣,那么此刻需要一个较大的频带来进行传输,导致频谱使用率低下,而CPM调制办法则能够有用避免这种现象产生。CPM是一种经过恒包络调制,然后降低了CPM信号的发送功率。

CPM(接连相位调制)是近年来开展很快的一种高效的调制技能。与其它调制技能比较,它具有较高的频谱使用率和功率功率,这也令它在通讯资源日益严重的今日得到了越来越多的关注。CPM信号包括大量的信号形式,其一起的特色是信号包络恒定、相位接连。CPM调制系统是一种信道编码和调制相结合的办法,经过生成相位状况格子序列操控下一时间的状况搬运,因而信息符号的调制直接具有编码效应,然后无须更多的冗余符号.CPM调制系统能够经过最大似然序列估量(MLSE)对接收信号进行软判定,完成低信噪比条件下的高检测概率.这些优秀特性使得CPM技能在起伏式微信道中完成高数据传输速率的通讯系统中具有宽广的应用远景.

CPM即便接连相位调制(Continue Phase Modulation),是一种相位调制技能,它具有相位接连的特色,频谱特性优秀,比较PSK调制办法,具有更高的频带使用率。而且,CPM调制系统是一种信道编码和调制相结合的办法,经过生成相位状况格子序列操控下一时间的状况搬运,因而信息符号的调制直接具有编码效应,然后无须更多的冗余符号.CPM调制系统能够经过最大似然序列估量(MLSE)对接收信号进行软判定,完成低信噪比条件下的高检测概率.这些优秀特性使得CPM技能在起伏式微信道中完成高数据传输速率的通讯系统中具有宽广的应用远景.

CPM基带信号能够表明为

m基于matlab的连续相位调制(CPM)解调系统仿真,包括解调,同步等模块

其瞬时相位信息能够表明为:

m基于matlab的连续相位调制(CPM)解调系统仿真,包括解调,同步等模块

CPM信号最大的优势在于其频谱使用率较高,当传输的符号为等概率状况下,CPM信号的功率谱表达式为 :

m基于matlab的连续相位调制(CPM)解调系统仿真,包括解调,同步等模块

CPM解调系统如下:

m基于matlab的连续相位调制(CPM)解调系统仿真,包括解调,同步等模块

在CPM解调过程中,接收信号经过载波同步模块,得到解调之后的基带信号,然后经过低通滤波器滤除存在的高频信息,然后将得到的基带信号进行守时同步操作得到守时同步的基带数据,然后完成CPM解调。 目前, CPM信号的载波同步办法主要分为数据辅助同步和非数据辅助同步。数据辅助同步办法的同步功能较好, 但需占用额定的传输带宽和功率; 非数据辅助同步办法不需额定的带宽和功率, 但同步精度较差, 且仅适用于信噪比较高的状况, 很难完成有用同步。

传统的CPM信号使用Viterbi算法完成相干解调, 不便于软信息的提取, 为此, 选用MAP算法对CPM信号进行软解调, 以获取载波相位同步所需的软解调信息。

由Rimoldi分解可知, CPM信号隐含一个具有记忆性的网格编码器, 类比卷积码的网格图, 可定义

时间CPM信号的状况为: 时间的状况即为: 相邻时间两个相位状况之间的关系为:

CPM信号的网格图如图1所示, 其间

和 别离表明开始状况和结束状况, 和 别离表明输入信息符号和输出码字符号, 表明状况调集, 表明输入符号调集, 表明任意两个网格状况之间的一切或许状况搬运。

2.仿真效果预览

matlab2022a仿真成果如下:

m基于matlab的连续相位调制(CPM)解调系统仿真,包括解调,同步等模块

m基于matlab的连续相位调制(CPM)解调系统仿真,包括解调,同步等模块

m基于matlab的连续相位调制(CPM)解调系统仿真,包括解调,同步等模块

m基于matlab的连续相位调制(CPM)解调系统仿真,包括解调,同步等模块

3.MATLAB中心程序 `OVS=8;

N_fft=OVS24;

M_fft=OVS*2;

L_fft=N_fft/M_fft;

N_data=100;

preamble=[1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0];

tao0=0.2*T/OVS;

t=[0:T/OVS:L*T];

gt=( 1-cos( 2pi(t-tao0)/(LT) ) )/(2L*T);

gt=gt(1:(length(gt)-1));

databit=rand(1,N_data)>0.5;

modbit=[preamble,databit];

length_modbit=length(modbit);

length_modsignal=(length_modbit+2)*OVS;

mod_gt=zeros(1,length_modsignal);

for ii=1:length_modbit

if modbit(ii)==1 %1is modulated to -1

mod_gt((ii-1)*OVS+1:(ii-1)OVS+LOVS)=mod_gt((ii-1)*OVS+1:(ii-1)OVS+LOVS)-gt;

else

mod_gt((ii-1)*OVS+1:(ii-1)OVS+LOVS)=mod_gt((ii-1)*OVS+1:(ii-1)OVS+LOVS)+gt;

end

end

phai=zeros(1,length_modsignal);

for ii=1:length_modsignal

phai(ii)=mod(2pihsum(mod_gt(1:ii)),2pi);

end

modsignal=cos(phai);

I=cos(phai);

Q=sin(phai);

%假定现已鉴频结束

freq_d=[zeros(1,16OVS),mod_gt+20002*pi];

freq_demod=awgn(freq_d,10);

tmp_fft_L=zeros(1,length(freq_demod)-N_fft+1); %tone component

tmp_deltaf=zeros(1,length(freq_demod)-N_fft+1);%carrier offset

tmp_symbole=zeros(1,length(freq_demod)-N_fft+1);%symbol timing error

for ii=N_fft:(length(freq_demod))

tmp_deltaf(ii-N_fft+1)=sum(freq_demod(ii-N_fft+1:ii))/(2piN_fft);

nn=0;

for jj=ii-N_fft+1:ii

tmp_fft_L(ii-N_fft+1)=tmp_fft_L(ii-N_fft+1)+freq_demod(jj)exp(-i(2*pi/M_fft)*nn);%第L个

nn=nn+1;

end

tmp_symbole(ii-N_fft+1)=-((T/ts)/pi)*angle(tmp_fft_L(ii-N_fft+1));

end`