關於DVB同步位元組反轉及加擾原理及流程圖 (轉)

worldblog發表於2007-12-09
關於DVB同步位元組反轉及加擾原理及流程圖 (轉)[@more@]

 

:namespace prefix = v ns = "urn:schemas--com:vml" /> 

同步反轉及擾碼:

1、原理:

圖1中,PN碼發生器的暫存器初始值為:100101010000000。MPEG2資料流中,每8個資料幀組成一個資料組。PN碼發生器的暫存器在傳輸每一個資料組的開始時初始化一次,為了提供該初始化訊號,每一組資料中的第一個MPEG2資料幀的同步位元組按位元反轉,即47H反轉為B8H。而MPEG2資料流中所有同步位元組不參與擾碼。

時,首先用一矩陣radata來模擬PN碼發生器的暫存器,並給予與PN碼發生器的暫存器相同的初始值。然後對輸入的資料進行判斷,識別其是同步位元組還是資訊位元組。當輸入的資料是資訊位元組時,資訊位與PN碼發生器的暫存器矩陣的第14個元素radata(14)

和第15個元素redata(15)進行模2加碼即進行擾碼,其中結果存入輸出矩陣randout。當輸入的資料為同步位元組時,同步位元組不參與擾碼,且當該同步位元組為每一組資料中的第一個MPEG2資料幀的同步位元組時,該同步位元組反轉。

 

注:1、PN碼發生器的暫存器初始值置為:100101010000000

2、PN碼發生器在傳輸每一個資料組(8個資料幀)時初始化一次

3、每一組資料中的第一個MPEG2資料幀的同步位元組按位元反轉

4、MPEG2資料流中所有同步位元組不參與擾碼

5、解碼部分和譯碼原理完全相同

以下為實現的源:

 

//初始化變數

//  int temp1[8],temp2[8];

  int enable,_redata,enabledata;

  int inputdata[8],outputdata[8];

  int redata[15];//暫存器

  BYTE output[8][204]={0};

 Office:office" />

  for(int m=0;m<=7;m++)

  {

    for( int n=0;n<=187;n++)

  {

 

    //m=0並且n=15表示初始化暫存器和進行同步位元組反轉的標誌

      if(m==0&&n==0)

  {

     //初始化暫存器redata

  for(int i=0;i<=14;i++)

   {

       if(i==0||i==3||i==5||i==7)

  {

        redata[i]=1;

  }

      else

  {

      redata[i]=0;

  }

   }

    //同步位元組按位元反轉

      output[m][16+n]=~Input[m][16+n];

  }

 

    //其餘的同步位元組不參於加擾,按照原始位元組輸出

    else if(m!=0&&n==0)

  {

      output[m][16+n]=Input[m][16+n];

  }

 

  //資訊位(非同步位元組)進行加擾

      else

  {

      for(int j=0;j<=7;j++)

  {

      //讀取位元組Input裡面的資訊位元

      inputdata[j]=Input[m][16+n]%2;

    //位元組Input右移一位

      Input[m][16+n]>>=1;

  }

 

 

  //加擾運算

  for (int  i=0;i<=7;i++) 

    {

      _redata=redata[13]^redata[14];

     for(int j=14;j>=1;j--)

   {

        redata[j]=redata[j-1];

   }

    redata[0]=_redata;

    enabledata=enable&_redata;

    outputdata[i]=enabledata^inputdata[i];

    }

 

    //加擾後的位元賦給位元組output

    for ( i=0;i<=7;i++)

  {

    output[m][16+n]=output[m][16+n]|((BYTE)outputdata[i]<<1);

  }

  }

  }

  }

 

 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-990262/,如需轉載,請註明出處,否則將追究法律責任。

相關文章