HDB3的matlab编译码

Posted fpga&matlab

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDB3的matlab编译码相关的知识,希望对你有一定的参考价值。

%程序说明:对一个二进制序列进行hdb3编码运算

%function y=hdb3(x)
x=[0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 ]

n=length(x);%输入系列的长度

last_V=-1;%初始化V的符号
last_one=-1;%初始化1的符号
y=zeros(size(x));    %初始化输出序列
count=0;             %连0计数器

for i=1:n
     if x(i)==1       %遇1则极性反转
         y(i)=-last_one;
         last_one=y(i);
         count=0;
     else
         count=count+1;%遇0则零的个数加1
         if count==4   %遇到连续4个0
             count=0;
             y(i)=-last_V;            %遇4连零则置为V,相邻的V极性反转
             last_V=y(i);
             if y(i)*last_one==-1     %V与前一个非0符号必须同极性(相邻V之间如果间隔偶数个1,则y(i)*last_one==-1,插入B符号,否者,不插入。)
                 y(i-3)=y(i);         
             end
             last_one=y(i);
         end
     end
end
y


 

以上是关于HDB3的matlab编译码的主要内容,如果未能解决你的问题,请参考以下文章

基于FPGA的HDB3编译码verilog实现,结合MATLAB进行辅助验证

FPGA教程案例88编译码1——基于FPGA的HDB3编译码verilog实现

MATLAB教程案例9信道编译码之turbo编码译码算法matlab误码率仿真

HDB3编译码verilog程序

RSRS编译码理论与误码率性能matlab仿真和分析

RSRS编译码理论与误码率性能matlab仿真和分析