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

📄 vit2en.c

📁 此源码为在DSP上实现的卷积纠错编解码算法
💻 C
字号:
#include"vit.h"
unsigned int partab[256] = {
 0, 1, 1, 0, 1, 0, 0, 1,
 1, 0, 0, 1, 0, 1, 1, 0,
 1, 0, 0, 1, 0, 1, 1, 0,
 0, 1, 1, 0, 1, 0, 0, 1,
 1, 0, 0, 1, 0, 1, 1, 0,
 0, 1, 1, 0, 1, 0, 0, 1,
 0, 1, 1, 0, 1, 0, 0, 1,
 1, 0, 0, 1, 0, 1, 1, 0,
 1, 0, 0, 1, 0, 1, 1, 0,
 0, 1, 1, 0, 1, 0, 0, 1,
 0, 1, 1, 0, 1, 0, 0, 1,
 1, 0, 0, 1, 0, 1, 1, 0,
 0, 1, 1, 0, 1, 0, 0, 1,
 1, 0, 0, 1, 0, 1, 1, 0,
 1, 0, 0, 1, 0, 1, 1, 0,
 0, 1, 1, 0, 1, 0, 0, 1,
 1, 0, 0, 1, 0, 1, 1, 0,
 0, 1, 1, 0, 1, 0, 0, 1,
 0, 1, 1, 0, 1, 0, 0, 1,
 1, 0, 0, 1, 0, 1, 1, 0,
 0, 1, 1, 0, 1, 0, 0, 1,
 1, 0, 0, 1, 0, 1, 1, 0,
 1, 0, 0, 1, 0, 1, 1, 0,
 0, 1, 1, 0, 1, 0, 0, 1,
 0, 1, 1, 0, 1, 0, 0, 1,
 1, 0, 0, 1, 0, 1, 1, 0,
 1, 0, 0, 1, 0, 1, 1, 0,
 0, 1, 1, 0, 1, 0, 0, 1,
 1, 0, 0, 1, 0, 1, 1, 0,
 0, 1, 1, 0, 1, 0, 0, 1,
 0, 1, 1, 0, 1, 0, 0, 1,
 1, 0, 0, 1, 0, 1, 1, 0,
};/*异或表*/
/*以下是编码程序*/
void vit2en(unsigned int *in,unsigned int *en)
{
 int i,j;
 int n,g0,g1,encstate;
 
 encstate=0;
 for(j=0;j<N1;j++)
 {  
    *(en+2*j)=0;
    *(en+2*j+1)=0;
    n=15;
    for(i=7;i>=0;i--)
    {
      encstate=(encstate<<1)|((*(in+j)>>i)&1);
      
      g0=partab[encstate  & POLYA];
      
      g1=partab[encstate & POLYB];
	  
	  if (n>7)
	  {
	    *(en+2*j)=*(en+2*j)|(g0<<(n-8));
        n--;
       
        *(en+2*j)=*(en+2*j)|(g1<<(n-8));
        n--;
        
        }
       else
        {
         *(en+2*j+1)=*(en+2*j+1)|(g0<<(n));
         n--;
        
         *(en+2*j+1)=*(en+2*j+1)|(g1<<(n));
         n--;
	     }
	   }
   }  
     *(en+2*N1)=0;
     n=15;
     /*加尾*/
     for(i=0;i<2;i++)
    {        
      encstate=encstate<<1;
      g0=partab[encstate  &POLYA];
      
      g1=partab[encstate & POLYB];
      *(en+2*N1)|=(g0<<(n-8));
      n--;
      *(en+2*N1)|=(g1<<(n-8));
      n--;
     }   
     
     *(en+2*N1+1)=0;
}  

⌨️ 快捷键说明

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