gmsk_phase.m

来自「gmsk的源代码」· M 代码 · 共 35 行

M
35
字号
function phase = gmsk_phase(data,data_len,sample_number,qt)
%计算调制相位
%**************************************************************************
%data           输入信号序列
%data_len       序列长度
%sample_nubmer  采样个数
%qt             q(t)
%**************************************************************************

%--------------------------------------------------------------------------
%累积相位
theta = zeros(1,data_len);
for i = 3:data_len
    theta(i) = theta(i-1) + pi/2 * data(i-2);
end
theta1 = zeros(1,data_len*sample_number);
for i = 1:sample_number
    theta1(i:sample_number:data_len*sample_number) = theta;
end
%**************************************************************************

%--------------------------------------------------------------------------
%即时相位
defai = zeros(1,data_len*sample_number);
defai(1:sample_number) = pi*(data(2) * qt(1:sample_number) + data(1) * qt(sample_number+1:2*sample_number));
for i = 2:data_len-1
    defai((i-1)*sample_number+1:i*sample_number) = pi*(data(i-1) * qt(2*sample_number+1:3*sample_number) + data(i) * qt(sample_number+1:2*sample_number) + data(i+1) * qt(1:sample_number));
end
defai((data_len-1)*sample_number+1:data_len*sample_number) = pi*(data(data_len-1) * qt(2*sample_number+1:3*sample_number) + data(data_len) * qt(sample_number+1:2*sample_number));
%**************************************************************************

%--------------------------------------------------------------------------
%调制相位
phase = defai + theta1;
%**************************************************************************

⌨️ 快捷键说明

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