📄 dapskmap_time.m
字号:
function [z]=dapskmap_time(data,a,ncon);
% dpskmap16 将输入比特流映射到DAPSK的星座 16
% sequence输入比特流
% enc_comp 星座点坐标
maping8=[0 pi/4 pi*3/4 pi*2/4 pi*7/4 pi*6/4 pi pi*5/4];
maping16=[0 pi/8 3*pi/8 pi/4 7*pi/8 3*pi/4 pi/2 5*pi/8 15*pi/8 7*pi/4 3*pi/2 13*pi/8 pi 9*pi/8 11*pi/8 5*pi/4];
if ncon>16
maping=maping16;
else
maping=maping8;
end
k=log2(ncon);
len=length(data(:,1));
pre_signal=ones(len,1);
nums=length(data(1,:));
r=abs(pre_signal);
theta=angle(pre_signal);
for num=1:nums
sequence=data(:,num);
N=length(sequence);
% ****************************
for i=1:k:N,
index=0;
for p=i:i+k-2
index=2*index+sequence(p);
end;
index=index+1;
theta((i+k-1)/k)=mod((maping(index)+theta((i+k-1)/k)),2*pi);
if sequence(i+k-1)==0&r((i+k-1)/k)==1;
r((i+k-1)/k)=1;
elseif sequence(i+k-1)==1&r((i+k-1)/k)==1
r((i+k-1)/k)=a;
elseif sequence(i+k-1)==0&r((i+k-1)/k)==a
r((i+k-1)/k)=a;
else
r((i+k-1)/k)=1;
end
enc_comp((i+k-1)/k,1)=r((i+k-1)/k)*cos(theta((i+k-1)/k));
enc_comp((i+k-1)/k,2)=r((i+k-1)/k)*sin(theta((i+k-1)/k));
end
z1=enc_comp(:,1)+j*enc_comp(:,2);
%pre_signal=z1;
z(:,num)=z1;
end
%z=reshape(z1,1,Nu);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -