📄 walsh32.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 + -