📄 block_interlacement.m
字号:
%<matlab> 实现块交织模块
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% 函数通过输入信号序列和相应信息位以和监督码元位生成块交织矩阵 %
% 最终生成的块交织处理后的信息序列。original_sequence是原序列 %
% info_len是码子信息码元的位数,surveillance_len是监督码元的位数, %
% 信息码元和监督码元共同构成一个码字单元 %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function [coded_sequence] = block_interlacement(original_sequence,info_len,surveillance_len)
if nargin < 3
error('输入参数不足!');
end
seq_len = length(original_sequence); % 得到原始序列的长度
matrix_len = info_len + surveillance_len; % 计算交织矩阵的行数
matrix_row = seq_len/matrix_len; % 计算交织矩阵的列数
interlace_matrix = zeros(matrix_len,matrix_row); % 初始化交织矩阵
if rem(seq_len,matrix_len) ~= 0 % 判断输入的信息码元和监督码元的参数是否正确
error('交织器输入参数错误!');
end
for m = 1:matrix_row % 将原始序列中的元素依次插入到交织矩阵
for n = 1:matrix_len
index = (m-1)*matrix_len + n; % 计算序列的位序号
interlace_matrix(n,m) = original_sequence(index);
end
end
for m = 1:matrix_len % 将交织矩阵中的元素提出形成输出序列
for n = 1:matrix_row
index = (m-1)*matrix_row + n; % 计算输出序列的位序号
coded_sequence(index) = interlace_matrix(m,n);
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -