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

📄 walsh32.c

📁 32阶walsh码16位用户源代码。非常有用啊
💻 C
字号:
// Filename:    walsh.c
// Description:	Functions for spread and unspread(32阶walsh码,16个用户)
// Version 0.1

#include <stdio.h>
#include "math.h"
#include "walsh32_head.h"

int n,j;

void data_walsh(user_data_buffer,walsh,user_walsh);
void walsh_data(user_walsh,walsh,user_data_buffer);
void printf_user(user_buffer);
void printf_ok();
void main()
{
//扩频*****************************************************************

	data_walsh(user1_data_buffer,walsh1,user1_walsh);   //地址传递,子函数直接修改实参数组元素的值
    data_walsh(user2_data_buffer,walsh2,user2_walsh);
    data_walsh(user3_data_buffer,walsh3,user3_walsh);
    data_walsh(user4_data_buffer,walsh4,user4_walsh);
	data_walsh(user5_data_buffer,walsh5,user5_walsh);
    data_walsh(user6_data_buffer,walsh6,user6_walsh);
    data_walsh(user7_data_buffer,walsh7,user7_walsh);
    data_walsh(user8_data_buffer,walsh8,user8_walsh);
 	data_walsh(user9_data_buffer,walsh9,user9_walsh);
    data_walsh(user10_data_buffer,walsh10,user10_walsh);
    data_walsh(user11_data_buffer,walsh11,user11_walsh);
    data_walsh(user12_data_buffer,walsh12,user12_walsh);
	data_walsh(user13_data_buffer,walsh13,user13_walsh);
    data_walsh(user14_data_buffer,walsh14,user14_walsh);
    data_walsh(user15_data_buffer,walsh15,user15_walsh);
    data_walsh(user16_data_buffer,walsh16,user16_walsh);

    for(n=0;n<SPREAD_DATA_LEN;n++)
	{
	    signal_buffer[n]=user1_walsh[n]+user2_walsh[n]+user3_walsh[n]+user4_walsh[n]
		                +user5_walsh[n]+user6_walsh[n]+user7_walsh[n]+user8_walsh[n]
   		                +user9_walsh[n]+user10_walsh[n]+user11_walsh[n]+user12_walsh[n]
                        +user13_walsh[n]+user14_walsh[n]+user15_walsh[n]+user16_walsh[n]
                        +user17_walsh[n]+user18_walsh[n]+user19_walsh[n]+user20_walsh[n]
    		            +user21_walsh[n]+user22_walsh[n]+user23_walsh[n]+user24_walsh[n]
                        +user25_walsh[n]+user26_walsh[n]+user27_walsh[n]+user28_walsh[n]
                        +user29_walsh[n]+user30_walsh[n]+user31_walsh[n]+user32_walsh[n];  
	}

//解扩*****************************************************************
	walsh_data(signal_buffer,walsh1,user1_re_buffer);   //地址传递,子函数直接修改实参数组元素的值
    walsh_data(signal_buffer,walsh2,user2_re_buffer);
    walsh_data(signal_buffer,walsh3,user3_re_buffer);
    walsh_data(signal_buffer,walsh4,user4_re_buffer);
	walsh_data(signal_buffer,walsh5,user5_re_buffer);
    walsh_data(signal_buffer,walsh6,user6_re_buffer);
    walsh_data(signal_buffer,walsh7,user7_re_buffer);
    walsh_data(signal_buffer,walsh8,user8_re_buffer);
	walsh_data(signal_buffer,walsh9,user9_re_buffer);
    walsh_data(signal_buffer,walsh10,user10_re_buffer);
    walsh_data(signal_buffer,walsh11,user11_re_buffer);
    walsh_data(signal_buffer,walsh12,user12_re_buffer);
	walsh_data(signal_buffer,walsh13,user13_re_buffer);
    walsh_data(signal_buffer,walsh14,user14_re_buffer);
    walsh_data(signal_buffer,walsh15,user15_re_buffer);
    walsh_data(signal_buffer,walsh16,user16_re_buffer);

//输出*****************************************************************    
    printf_ok();
}	


//扩频子程序
void data_walsh(user_data_buffer,walsh,user_walsh)
int user_data_buffer[DATA_BUFFER_LEN],walsh[WALSH_LEN],user_walsh[SPREAD_DATA_LEN];
{
	for(n=0;n<DATA_BUFFER_LEN;n++)
	{
		if(user_data_buffer[n]==1)
		{
			for(j=0;j<WALSH_LEN;j++)
			user_walsh[WALSH_LEN*n+j]=walsh[j];
		}
	    else 
		{
		    for(j=0;j<WALSH_LEN;j++)
			user_walsh[WALSH_LEN*n+j]=-walsh[j];
		}
	}
//	return(user_walsh);
}

//解扩子程序**********************************************************
void walsh_data(user_walsh,walsh,user_data_buffer)
int user_walsh[SPREAD_DATA_LEN],walsh[WALSH_LEN],user_data_buffer[DATA_BUFFER_LEN];
{
    int user_data_buffer_value[DATA_BUFFER_LEN];
    int user_data_buffer_value_add;
	for(n=0;n<DATA_BUFFER_LEN;n++)
   {
     	user_data_buffer_value[n]=0;
		for(j=0;j<WALSH_LEN;j++)
		{		   
          user_data_buffer_value_add=user_walsh[WALSH_LEN*n+j]*walsh[j];
          user_data_buffer_value[n]+=user_data_buffer_value_add;
		}                   
      if(user_data_buffer_value[n]>0)
          user_data_buffer[n]=1;
	  else 
		  user_data_buffer[n]=0;
   }
//   return(user_data_buffer);
}

//输出子程序*************************************************************************
void printf_ok()
{
    printf("user1_data_buffer=");
	printf_user(user1_data_buffer);
	printf("user1_re_buffer  =");	
	printf_user(user1_re_buffer);

	printf("user2_data_buffer=");
	printf_user(user2_data_buffer);
	printf("user2_re_buffer  =");  
	printf_user(user2_re_buffer);

    printf("user3_data_buffer=");
	printf_user(user3_data_buffer);
	printf("user3_re_buffer  =");	  
	printf_user(user3_re_buffer);
	
	printf("user4_data_buffer=");
	printf_user(user4_data_buffer);    
	printf("user4_re_buffer  =");	
	printf_user(user4_re_buffer);
    
	printf("user5_data_buffer=");
	printf_user(user5_data_buffer);
	printf("user5_re_buffer  =");	
	printf_user(user5_re_buffer);

	printf("user6_data_buffer=");
	printf_user(user6_data_buffer);
	printf("user6_re_buffer  =");  
	printf_user(user6_re_buffer);

    printf("user7_data_buffer=");
	printf_user(user7_data_buffer);
	printf("user7_re_buffer  =");	  
	printf_user(user7_re_buffer);
	
	printf("user8_data_buffer=");
	printf_user(user8_data_buffer);    
	printf("user8_re_buffer  =");	
	printf_user(user8_re_buffer);

    printf("user9_data_buffer=");
	printf_user(user9_data_buffer);
	printf("user9_re_buffer  =");	
	printf_user(user9_re_buffer);
	
	printf("user10_data_buffer=");
	printf_user(user10_data_buffer);
	printf("user10_re_buffer  =");  
	printf_user(user10_re_buffer);

    printf("user11_data_buffer=");
	printf_user(user11_data_buffer);
	printf("user11_re_buffer  =");	  
	printf_user(user11_re_buffer);
	
	printf("user12_data_buffer=");
	printf_user(user12_data_buffer);    
	printf("user12_re_buffer  =");	
	printf_user(user12_re_buffer);

    printf("user13_data_buffer=");
	printf_user(user13_data_buffer);
	printf("user13_re_buffer  =");	
	printf_user(user13_re_buffer);

	printf("user14_data_buffer=");
	printf_user(user14_data_buffer);
	printf("user14_re_buffer  =");  
	printf_user(user14_re_buffer);

    printf("user15_data_buffer=");
	printf_user(user15_data_buffer);
	printf("user15_re_buffer  =");	  
	printf_user(user15_re_buffer);
	
	printf("user16_data_buffer=");
	printf_user(user16_data_buffer);    
	printf("user16_re_buffer  =");	
	printf_user(user16_re_buffer);
}
void printf_user(user_buffer)
int user_buffer[DATA_BUFFER_LEN];
{
	for(n=0;n<DATA_BUFFER_LEN;n++)
	{
		printf("%d",user_buffer[n]);
	}	
    printf("\n");
}

⌨️ 快捷键说明

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