📄 mod_cpfsk_sig.m
字号:
function [src_data, mod_sig] = mod_cpfsk_sig(input, tail_sym_num, h, m, Ns, L, q)
% This program generates phase-titled CPM signal.
% Input:
% input: information symbols
% tail_sym_num: The number of tail symbols
% h: Modulation index
% m: Size of modulation alphabet set
% Ns: The number of sample per symbol
% L: Memory length
%Output:
% src_data: Information symbols
% mod_sig: Modulated signals
%input = ones(1,10);
info_sym_num = length(input);
sym_num_per_slot = info_sym_num + tail_sym_num;
coded_sym = zeros(sym_num_per_slot, 1);
src_data = input;
coded_sym(1:info_sym_num) = src_data;
coded_sym = [zeros(L,1);coded_sym];
% CPFSK modulation
sym_num = length(coded_sym);
acc_phas = zeros(Ns,sym_num+L-1);
for k = L+1 : sym_num
for i = 1 : Ns
acc_phas(i,k) = 2 * coded_sym(k) * q(i) + sum(coded_sym(1:k-L)); % 0, 1, ..., n
for l = 1 : L-1
acc_phas(i,k) = acc_phas(i,k) + 2 * coded_sym(k-l) * q(i+l*Ns); % 0, 1, ..., n
end
end
end
for i = 1:Ns
for l = 1 : L-1
acc_phas(i,sym_num+l) = acc_phas(i,sym_num+l) + sum(coded_sym(1:sym_num+l-L));
for n = 1 : L-l
acc_phas(i,sym_num+l) = acc_phas(i,sym_num+l) + 2 * coded_sym(sym_num-n+1) * q(i+(n+l-1)*Ns);% + sum(coded_sym(1:sym_num+l-L)); % n+1, n+2, ..., n+L-1
end
end
end
acc_phas = reshape(acc_phas,Ns*(sym_num+L-1),1);
mod_sig = exp(j * pi * h * acc_phas);
mod_sig(1 : L*Ns) = [];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -