您现在的位置:首页 >> 通信 >> 内容

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

时间:2022/12/20 18:44:59 点击:

  核心提示:01_173m包括操作录像+word设计文档+参考文献...

1.完整项目描述和程序获取

>面包多安全交易平台:https://mbd.pub/o/bread/Y5qYmJpv

>如果链接失效,可以直接打开本站店铺搜索相关店铺:

点击店铺

>如果链接失效,程序调试报错或者项目合作可以加微信或者QQ联系。

2.部分仿真图预览






3.算法概述

        CPM(连续相位调制)是近年来发展很快的一种高效的调制技术。与其它调制技术相比,它具有较高的频谱利用率和功率效率,这也令它在通信资源日益紧张的今天得到了越来越多的关注。CPM信号包含大量的信号形式,其共同的特点是信号包络恒定、相位连续。CPM调制体系是一种信道编码和调制相结合的方式,通过生成相位状态格子序列控制下一时刻的状态转移,因此信息符号的调制直接具有编码效应,从而无须更多的冗余符号.CPM调制体系可以通过最大似然序列估计(MLSE)对接收信号进行软判决,实现低信噪比条件下的高检测概率.这些优良特性使得CPM技术在幅度衰落信道中实现高数据传输速率的通信系统中具有广阔的应用前景.

4.部分源码

。。。。。。。。。。。。。。。。。。。。。。。。。

OVS=8;

N_fft=OVS*2*4;   

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( 2*pi*(t-tao0)/(L*T) ) )/(2*L*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+L*OVS)=mod_gt((ii-1)*OVS+1:(ii-1)*OVS+L*OVS)-gt;

    else

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

    end

end 

phai=zeros(1,length_modsignal);

for ii=1:length_modsignal

 phai(ii)=mod(2*pi*h*sum(mod_gt(1:ii)),2*pi);

end 

modsignal=cos(phai);

I=cos(phai);

Q=sin(phai);

%假设已经鉴频完毕

freq_d=[zeros(1,16*OVS),mod_gt+2000*2*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))/(2*pi*N_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 

tmp_symbole=abs(tmp_symbole);

tao=tmp_symbole(150:278);

  for i=1:length(tao)/(2*OVS)

             for k=1:2*OVS

                 mtao(i,k)=tao((i-1)*2*OVS+k);

             end

  end

            ktao=min(mtao,[],2);

            ktao=ktao';

mse=0;

for ii=1:length(ktao)

        mse=mse+ (  ktao(ii)-tao0*OVS/T )^2;   

end

01_173m

作者:我爱C编程 来源:我爱C编程
本站最新成功开发工程项目案例
相关文章
相关评论
发表我的评论
  • 大名:
  • 内容:
本类固顶
  • 没有
  • FPGA/MATLAB商业/科研类项目合作(www.store718.com) © 2025 版权所有 All Rights Reserved.
  • Email:1480526168@qq.com 站长QQ: 1480526168