cm_dpske.m

来自「8DPSK调制解调和误码分析 程序简洁方便」· M 代码 · 共 30 行

M
30
字号
%            CM_DPSKE以微分方式编码一个序列
function[enc_comp]=cm_dpske(E,M,mapping,sequence)
%[enc_comp]=cm_dpske(E,M,mapping,sequence)
%            CM_DPSKE以微分方式编码一个序列
%            E是平均能量,M是星座点的数目
%            而mapping是一个定义星座点如何分布的向量
%            sequence是未编码的二进制数据序列
k=log2(M);
N=length(sequence);
%如果N不可为k整除,填充零使其可被k整除
remainder=rem(N,k);%N除k的余数
if (remainder~=0),
  for i=N+1:N+k-remainder,   
     sequence(i)=0;
  end;
  N=N+k-remainder;
end;

theta=0;
for i=1:k:N,
   index=0;
   for j=i:i+k-1,
      index=2*index+sequence(j);
   end;
   index=index+1;
   theta=mod(2*pi*mapping(index)/M+theta,2*pi);%?
   enc_comp((i+k-1)/k,1)=sqrt(E)*cos(theta);%I
   enc_comp((i+k-1)/k,2)=sqrt(E)*sin(theta);%Q
end;
       

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?