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

📄 cdma业务信道卷积编码实现.txt

📁 CDMA业务信道卷积编码实现
💻 TXT
字号:
<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
 
 
%%%%%%%%%%%%%%%%%%%%%%%%%%
%                                                                        %
%  该函数完成卷积编码之前的加编码器尾比特功能,    %
%  original_sequence为原始输入序列,add_length        %
%  是加入尾比特的长度                                           %
%%%%%%%%%%%%%%%%%%%%%%%%%%
function [add_tail_bits_sequence] = add_tail_bits(original_sequence,add_length)
if nargin < 2
    error('输入参数不足!');
end
if add_length < 1 | rem(add_length,1) ~= 0
    error('参数add_length输入错误!add_length必须是正整数!');
end
add_tail_bits_sequence = [original_sequence,zeros(1,add_length)];

⌨️ 快捷键说明

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