概述
1、实验题目:CDMA编码
2、实验内容:
(1) 随机生成5个互不正交的8位码片M1、M2、M3、M4、M5。
(2) 分别求出与M1、M2、M3、M4、M5所有正交的8位码片。
3、实验报告内容:
(1) CDMA信道复用原理。
(2) 随机生成的的5个互不正交的码片M1、M2、M3、M4、M5。
(3) 获取与某个码片正交的全部码片的算法。
(4) 记录与M1正交的码片数量及10个与M1正交的码片,不足10个的记录全部码片,互为反码的记为一个。
(5) 记录与M2正交的码片数量及10个与M2正交的码片,不足10个的记录全部码片,互为反码的记为一个。
(6) 记录与M3正交的码片数量及10个与M3正交的码片,不足10个的记录全部码片,互为反码的记为一个。
(7) 记录与M4正交的码片数量及10个与M4正交的码片,不足10个的记录全部码片,互为反码的记为一个。
(8) 记录与M5正交的码片数量及10个与M5正交的码片,不足10个的记录全部码片,互为反码的记为一个。
比较与M1、M2、M3、M4、M5
#include <iostream>
using namespace std;
int* change(int n) //十进制转二进制,用于初始化码片
{
int *ch=new int[8];
for(int i=0;i<8;i++)
ch[i]=0;
int i=0;
while(n)
{
ch[i]=n%2;
n/=2;
i++;
}
return ch;
}
bool judge(int *a,int *b) //判断正交,如果各位相乘和为0则返回1
{
int sum=0;
for(int i=0;i<8;i++)
sum+=a[i]*b[i];
if(sum==0)
return 1;
else
return 0;
}
int main()
{
int *num[256];
for(int i=0;i<256;i++)
{
num[i]=change(i); //初始化码片
}
for(int i=0;i<256;i++)
{
for(int j=0;j<8;j++)
{
if(num[i][j]==0)
num[i][j]=-1; //将0都转化为-1
}
}
int m[5]; //接受用户随机输入的5个整数
int *M[5]; //将用户输入的5个整数转化为相应的码片
int flag;
do{
flag=0;
cout<<"请随机输入5个0到255的整数"<<endl;
for(int i=0;i<5;i++)
{
cin>>m[i];
int temp=m[i];
M[i]=num[temp];
}
for(int i=0;i<5;i++)
{
for(int j=i+1;j<5;j++)
{
if(judge(M[i],M[j]))
{
flag=1;
cout<<"输入的"<<i<<"和"<<j<<"随机码片有正交的,请重新输入"<<endl;
break;
}
}
if(flag==1)
{
cout<<"flag"<<endl;
break;
}
}
}while(flag);
// for(int i=0;i<5;i++)
// {
// for(int j=0;j<8;j++)
// cout<<M[i][j]<<" ";
// cout<<endl;
// }
int c[5]={0};
cout<<"实验结果如下:"<<endl;
for(int i=0;i<5;i++)
{
cout<<"第"<<i+1<<"个码片序列如下"<<endl;
for(int p=0;p<8;p++)
cout<<M[i][p]<<" "<<endl;
cout<<endl;
cout<<"与第"<<i+1<<"个码片正交码片如下 :"<<endl;
for(int j=0;j<256;j++)
{
if(judge(num[j],M[i]))
{
c[i]++;
if(c[i]<=10)
{
for(int k=0;k<8;k++)
cout<<num[j][k]<<" ";
cout<<endl;
}
}
}
cout<<"与第"<<i+1<<"个码片正交的有 "<<c[i]<<" 个"<<endl;
}
// for(int i=0;i<256;i++){
// for(int j=0;j<8;j++)
// cout<<num[i][j]<<" ";
// cout<<endl;
// }
return 0;
}
Aden :理论上每个码片正交的有70个,所以要输入5个互不正交的组合十分有限,我输入的是 1,2,125,254,255 当然其它组合还是有的例如1 2 3 4 5 。还有一点就是我没有做去重,其实那个也比较简单,把每组放入vector容器,再遍历一下有重复就删除咯...
最后
以上就是笨笨身影为你收集整理的CDMA编码的全部内容,希望文章能够帮你解决CDMA编码所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复