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

📄 tcm_8psk.m

📁 本人编写的TCM解调源程序共享
💻 M
字号:
function [sym_err_rat] = tcm_8psk(EbN0, frm_num)

% sqwang's source code, used for academic research, not commerce.

% EbN0: bit energy divides noise power spectrum density
% frm_num: the number of frame in the simulation

code_rate = [2 3];    % Coder rate 2/3
m = 8;                % Size of modulation alphabet set

err_num_total = 0;
err_num = 0;

info_sym_num = 250;         % The number of information symbol per frame
tail_sym_num = 2;          % The number of tail symbol(Force state to zero state) per frame

EbN0 = EbN0 + 3;

[to_state, output, state_trans, stat_trans_input, stat_trans_output] = gen_tcm_trlls;

for i = 1 : frm_num
    % Generate coded modulation tansmitting signal
    [src_data, mod_sig] = coded_mod(code_rate, m, info_sym_num, tail_sym_num, output, to_state);
    
    % Via gaussian channel
    noisy_sig = awgn(mod_sig, EbN0, 0);
    
    % Coherent maximum likelihood sequence detection
    demod_sym_nc_mlsd = mlsd(noisy_sig, info_sym_num, tail_sym_num, output, state_trans, stat_trans_input, stat_trans_output);
   
     % Symbol error statistic
    demod_sym = [demod_sym_nc_mlsd];
    [err_num, sym_err_rat] = symerr(demod_sym, src_data, 'column-wise');
    err_num_total = err_num_total + err_num';
end

sym_err_rat = err_num_total/frm_num/info_sym_num;

disp(['Coherent MLSD TCM SER is ', num2str(sym_err_rat(1))]);

⌨️ 快捷键说明

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