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

📄 convolutional_code.m

📁 matlab-CDMA业务信道卷积编码实现
💻 M
字号:
%<matlab> CDMA业务信道卷积编码实现
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%                                                                                    %
%  该函数根据上下行信道区分生成不同码率的卷积码序列          %
%  original_sequence是原始输入序列,channel_select              %
%  是信道选择参数,其中下行码率为1/2,上行信道为1/3          %
%                                                                                    %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function [convolutional_sequence] = convolutional_code(original_sequence,channel_select)
seq_len = length(original_sequence);                       % 得到输入数据序列的长度
if length(seq_len) < 1                                            % 输入数据序列必须不为空
    error('输入序列错误!');
end
if nargin < 2
    channel_select = 1;                                           % 选择正向业务信道
end
register_order = 8;                                                % 初始化移位寄存器的阶数
if channel_select == 1  
    restricted_length = 9;                                        % 卷积码的约束长度为9
%     code_rate = [1 2];                                        % 正向业务信道的编码效率为1/2
%     xor_generator_0 = [1 0 1 1 1 0 0 0 1];            % 初始化编码效率为1/2的连接向量器0
%     xor_generator_1 = [1 1 1 1 0 1 0 1 1];      
    xor_cal_generator = [561,753];                          % 初始化连接器
    trellis = poly2trellis(restricted_length,...
        xor_cal_generator);
    convolutional_sequence = convenc(original_sequence,trellis);   
elseif channel_select == 2    
    restricted_length = 9;                                       % 卷积码的约束长度为9
%     code_rate = [1 3];                                       % 默认正向业务信道的编码效率为1/2
%     xor_generator_0 = [1 0 1 1 0 1 1 1 1];           % 初始化编码效率为1/3的连接向量器0
%     xor_generator_1 = [1 1 0 1 1 0 0 1 1];      
%     xor_generator_2 = [1 1 1 0 0 1 0 0 1];      
    xor_cal_generator = [557,663,711];                   % 初始化连接器
    trellis = poly2trellis(restricted_length,...
        xor_cal_generator);
    convolutional_sequence = convenc(original_sequence,trellis);   
else
    error('信道选择参数channel_select错误! 1 - 正向业务信道,2 - 反向业务信道');
end
 
 

 
 

⌨️ 快捷键说明

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