您好,欢迎来到华佗小知识。
搜索
您的当前位置:首页交织器函数

交织器函数

来源:华佗小知识
void Scramble( int *rule, int length, int scrnum ) { int i, j, n, r, q; int **buffer, *rbuffer; //Random Rnd;

q = (int) sqrt( length ); if( q*q < length ) q++; rbuffer = new int [q]; buffer = new int* [q]; for( i=0; i -1 ) rule[n++] = buffer[i][j]; for( i=0; ivoid InterleaverSetup( ) { /* _CodewordLen表示交织器长度 */

ShaffleRule = new int[_CodewordLen]; BufferI = new int[_CodewordLen]; BufferD = new double[_CodewordLen]; int j; for( j=0; j<_CodewordLen; j++ ) { ShaffleRule[j] = j; } Scramble( &ShaffleRule[0], _CodewordLen, 25 ); }

void Interleaver( int *input ) { int i; for( i=0; i<_CodewordLen; i++ ) BufferI[i] = input[i]; for( i=0; i<_CodewordLen; i++ ) input[ShaffleRule[i]] = BufferI[i]; }

void Interleaver( double *input ) { int i; for( i=0; i<_CodewordLen; i++ ) BufferD[i] = input[i]; for( i=0; i<_CodewordLen; i++ ) input[ShaffleRule[i]] = BufferD[i]; }

void DeInterleaver( int *input ) { int i; for( i=0; i<_CodewordLen; i++ ) BufferI[i] = input[i]; for( i=0; i<_CodewordLen; i++ )

input[i] = BufferI[ShaffleRule[i]]; }

void DeInterleaver( double *input ) { int i; for( i=0; i<_CodewordLen; i++ ) BufferD[i] = input[i]; for( i=0; i<_CodewordLen; i++ ) input[i] = BufferD[ShaffleRule[i]]; }

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务