CDMA编码
来源:互联网 发布:长江期货软件下载 编辑:程序博客网 时间:2024/05/19 13:06
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个的记录全部码片,互为反码的记为一个。
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容器,再遍历一下有重复就删除咯...
0 0
- CDMA编码
- CDMA
- CDMA
- CDMA
- CDMA
- CDMA
- CDMA
- CDMA
- CDMA
- CDMA
- cdma
- 计算机网络实验二 CDMA 编码 [17/10/25]
- CDMA作业
- cdma作业
- W-CDMA
- CDMA简介
- CDMA介绍
- cdma拨号
- H-Index和H-Index II
- iOS开发规范
- 黑马程序员_JavaSE基础知识总结十六:流与文件
- ios学习笔记(四)定时器
- java web之Filter详解
- CDMA编码
- Spark社区可能放弃Spark 1.7而直接发布Spark 2.x
- openSUSE下交叉编译boost库
- 360个人图书馆文章复制方法
- CentOS6.4编译安装Gcc5.2.0
- C语言的变量的作用域和生存期
- 为Hexo添加多说评论功能(正文评论和列表评论数)
- android真机模拟程序 root权限下 查看项目数据库
- CodeForces 483B Friends and Presents(二分+容斥定理)