⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mod_cpfsk_sig.m

📁 是一个对mimo连续相位调制系统的均衡程序
💻 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 + -