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

📄 walsh1.cpp

📁 walsh和pn码的生成程序
💻 CPP
字号:
#include "math.h"
#include "malloc.h"
#include "stdio.h"
#include "mex.h"

int walsh_gen(double * Walsh,int order,int index)
{
	int i,j;
	int nOrderLength;
	int sign;
	Walsh[0]=1;
	for(i=0;i<order;i++)
	{
		nOrderLength=1<<i;
		sign=((index&nOrderLength)==0)?1:-1;
		for(j=0;j<nOrderLength;j++)
			Walsh[nOrderLength+j]=sign*Walsh[j];
	}
	return nOrderLength<<1;
}

void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
{
	/* input parameters */
	int Order;
	int	Index;
	

	/* output parameters */
	double *OutReal;

	/* local data */
	int outlength;
	
	
	/* Check for the proper number of arguments */
	if ( nrhs != 2 )
		mexErrMsgTxt("Incorrect number of inputs. ");
	if ( nlhs != 1)
		mexErrMsgTxt("Incorrect number of outputs. ");

	/* check to make sure the input argument is a scalar */
	if( !mxIsDouble(prhs[0]) || mxGetN(prhs[0])*mxGetM(prhs[0])!=1 )
	{
		mexErrMsgTxt("Input Order must be a scalar.");
	}
 	if( !mxIsDouble(prhs[1]) || mxGetN(prhs[1])*mxGetM(prhs[1])!=1 )
	{
		mexErrMsgTxt("Input Index must be a scalar.");
	}
 
	/* Get the input parameters */
	Order = (int)mxGetScalar(prhs[0]);
	Index = (int)mxGetScalar(prhs[1]);

	outlength = 1<<Order;

    /* Create  matrix for the return argument */ 
	plhs[0] = mxCreateDoubleMatrix(1, outlength, mxREAL);
	/* Assign pointers to the various parameters */ 
	OutReal = mxGetPr(plhs[0]);

	walsh_gen(OutReal, Order, Index);	
}
/*
void main()
{
  int order, index,i,j;
  scanf("%d %d",&order,&index);
  int* a;
  a=(int*)malloc(1<<(2*order));
  walsh_gen(a,order,index);
  for(j=0; j<(1<<order); j++)
    printf("%d  ",a[j]);
  printf("\n"); 
}
*/

⌨️ 快捷键说明

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