卷积编码

卷积编码

在一个(n,k,m)的卷积编码器中,监督码元组的位数为n-k,这n-k位监督码元与k位信息组链接成n位编码序列。

卷积编码的表达方法有很多种,如离散卷积法、生成矩阵法、码生成多项式法
如图(2,1,2)卷积编码器的结构图
在这里插入图片描述

离散卷积法

若两路输出所对应的编码器的脉冲冲击响应为g1,g2,编码器用离散卷积表达式可以表示为 C 1 = U g 1 C 2 = U g 2 C = ( C 1 , C 2 ) \begin{aligned} &C^{1}=U^{*} g^{1}\\ &C^{2}=U^{*} g^{2}\\ &C=\left(C^{1}, C^{2}\right) \end{aligned}
ps:单位冲激响应与系统传递函数互为傅里叶变换关系
当输入的单位冲击为u=(1,0,0,0…)时,可以得出
g1=(1,1,1);g2=(1,0,1);
有了单位冲激响应,将输入卷积单位冲激响应可得输出
在这里插入图片描述

生成矩阵法

在这里插入图片描述

码多项式法

U ( x ) = 1 + x 2 + x 3 + x 4 g 1 ( x ) = 1 + x + x 2 g 2 ( x ) = 1 + x 2 \begin{aligned} &U(x)=1+x^{2}+x^{3}+x^{4}\\ &g^{1}(x)=1+x+x^{2}\\ &g^{2}(x)=1+x^{2} \end{aligned}

在这里插入图片描述
代码

function [conv_out] = encoding_213(conv_in)
g1 = [1 0 1];
g2 = [1 1 1];
mem = zeros(1,2)
%详写卷积原理
for ii=1:length(conv_in)   
    inter_var = [conv_in(ii) mem];
    first_out(ii)=mod(sum(g1.*inter_var),2);
    second_out(ii)=mod(sum(g2.*inter_var),2);
    mem = inter_var(1:end-1);
    conv_out(ii*2-1:ii*2)=[first_out(ii) second_out(ii)];
end
conv_out = [conv_out 0 0 0 0]
end

编码结果就是卷积结果,卷积每一位结果都是三位输入和系统函数(翻转)相乘再相加。所以上述代码循环中,每次输入码就取三位进行乘加。

发布了56 篇原创文章 · 获赞 12 · 访问量 7849

猜你喜欢

转载自blog.csdn.net/weixin_44884357/article/details/104424120