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

📄 convolutional_en.m

📁 完整的ofdm仿真程序
💻 M
字号:
function [output]=convolutional_en(input)
%   卷积编码
%   convolutional_coded实现卷积编码。给出任意一个输入序列input、卷积码生成矩阵
%   G、和输入端口数k0。可以正确获得经过编码后的输出序列output。
%
%   k0:在一个时钟周期内输入移位寄存器的bit数k0=1;
%   G :卷积编码器的生成矩阵G=[1 0 1 1 1 0 0 0 1;1 1 1 1 0 1 0 1 1];
%   input:需编码的比特序列。
%   
%   
%   [output]=convolutional_coded(input) 返回经卷积编码器编码后的输出比特序列。
%
%
%   作者: 王丽
%   $版本: 1.00 $  $日期: 2,24,2005$

%卷积编码器的生成矩阵G;
G = [1 0 1 1 1 0 0 0 1;1 1 1 1 0 1 0 1 1];
%在一个时钟周期内输入移位寄存器的bit数;
k0 = 1;
%完善输入信号,使其是输入端口数的整数倍;
if mod(size(input,2),k0) > 0
    input = [input,zeros(1,k0-mod(length(input),k0))];
end
%从生成矩阵G中获得约束长度L,和输出端口数n0的信息;
n0 = size(G,1);
L = size(G,2)/k0;
%将输入序列进行补零处理;
in = [zeros(1,(L-1)*k0),input,zeros(1,(L-1)*k0)];
%将输入序列进行重新整形,利用乘法计算来实现卷积计算,并计算编码输出矩阵;
reshape_seq = [];
for i = 0:length(input)/k0+L-2
    reshape_seq = [reshape_seq,in((L+i)*k0:-1:(i*k0+1))];
end
reshape_inner = reshape(reshape_seq,L*k0,length(input)/k0+L-1);
encoded = mod(G*reshape_inner,2); 
%对输出序列进行整形;
output = reshape(encoded,1,n0*(length(input)/k0+L-1));

⌨️ 快捷键说明

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