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;void getchip(int * chip) //取随机8 位码片
{for (int loop = 0; loop < 8; loop++){if (rand() % 2)  chip[loop] = 1;else  chip[loop] = -1;}
}int * ten2twe(int N, int * chip)  //将10进制转码片
{int loop = 0;do {if (N % 2)  chip[7 - loop] = 1;else  chip[7 - loop] = -1;N = (N - N % 2) / 2;loop++;} while (loop < 8);return chip;
}bool orthogonal(int * chip1, int * chip2)  //是否正交
{int sum = 0;for (int i = 0; i < 8; i++){if(chip1[i] == chip2[i])  return false;}return true;
}bool complement(int * chip1, int * chip2)  //是否互为反码
{int sum = 0;for (int i = 0; i < 8; i++){sum = sum + chip1[i] + chip2[i];}return (!sum);
}bool equal(int * chip1, int * chip2)  //是否相等
{for (int i = 0; i < 8; i++){if (chip1[i] != chip2[i]) {return false;}}return true;
}void calculate(int * chip1)  //计算所有与之正交的v码片
{cout << "随机码片:";for (int i = 0; i < 8; i++){cout << chip1[i];}cout << endl;int * chip2 = new int[8];int chips[40][8];for (int i = 0; i < 40; i++){for (int j = 0; j < 8; j++) {chips[i][j] = 0;}}int count = 0;for (int loop = 0; loop <= 255; loop++)   //0-255{chip2 = ten2twe(loop, chip2);if (orthogonal(chip1, chip2))   //若码片正交{bool add = true;for (int i = 0; chips[i][0] != 0; i++){if (complement(chips[i], chip2)) {add = false;   //互为反码的记为一个  不再添加break;}}if (add)  //码片正交  加入链表{for (int i = 0; i < 8; i++){chips[count][i] = chip2[i];}count++;}}}cout << "与其正交的码片有:" << count << "个" << endl;for (int i = 0; i < count; i++){for (int j = 0; j < 8; j++) {cout << chips[i][j];}cout << endl;}cout << endl;
}void main()
{int M[5][8]; //随机生成的的 5 个互不正交的码片 M1、M2、M3、M4、M5int num = -1;int * chip1;do {bool add = true;int * chip1 = new int[8];getchip(chip1);for (int i = 0; i <= num; i++){if (orthogonal(M[num], chip1) && (!equal(M[num], chip1))) { //判断随机产生的码片是否正交或为同一码片add = false;break;}}if (add) {num++;for (int j = 0; j < 8; j++){M[num][j] = chip1[j];//cout << M[num][j];}//cout << endl;add = false;}} while (num < 4);for (int loop = 0; loop < 5; loop++){calculate(M[loop]);}system("pause");return;
}

实验结果:

随机码片:11-1-11-1-1-1
与其正交的码片有:35个
-1-1-1-1-1-1-11
-1-1-1-1-1-11-1
-1-1-1-1-11-1-1
-1-1-1-11-111
-1-1-1-111-11
-1-1-1-1111-1
-1-1-11-1-1-1-1
-1-1-111-1-11
-1-1-111-11-1
-1-1-1111-1-1
-1-11-1-1-1-1-1
-1-11-11-1-11
-1-11-11-11-1
-1-11-111-1-1
-1-1111-1-1-1
-11-1-1-1-111
-11-1-1-11-11
-11-1-1-111-1
-11-1-11111
-11-11-1-1-11
-11-11-1-11-1
-11-11-11-1-1
-11-111-111
-11-1111-11
-11-11111-1
-111-1-1-1-11
-111-1-1-11-1
-111-1-11-1-1
-111-11-111
-111-111-11
-111-1111-1
-1111-1-1-1-1
-11111-1-11
-11111-11-1
-111111-1-1

随机码片:-1-1111111
与其正交的码片有:35个
-1-1-1-1-1-111
-1-1-1-1-11-11
-1-1-1-1-111-1
-1-1-1-11-1-11
-1-1-1-11-11-1
-1-1-1-111-1-1
-1-1-11-1-1-11
-1-1-11-1-11-1
-1-1-11-11-1-1
-1-1-111-1-1-1
-1-11-1-1-1-11
-1-11-1-1-11-1
-1-11-1-11-1-1
-1-11-11-1-1-1
-1-111-1-1-1-1
-11-1-1-1111
-11-1-11-111
-11-1-111-11
-11-1-1111-1
-11-11-1-111
-11-11-11-11
-11-11-111-1
-11-111-1-11
-11-111-11-1
-11-1111-1-1
-111-1-1-111
-111-1-11-11
-111-1-111-1
-111-11-1-11
-111-11-11-1
-111-111-1-1
-1111-1-1-11
-1111-1-11-1
-1111-11-1-1
-11111-1-1-1

随机码片:-1-11-1-111-1
与其正交的码片有:35个
-1-1-1-1-1-1-11
-1-1-1-11-1-1-1
-1-1-1-11-111
-1-1-1-111-11
-1-1-11-1-1-1-1
-1-1-11-1-111
-1-1-11-11-11
-1-1-111-11-1
-1-1-1111-1-1
-1-1-111111
-1-11-11-1-11
-1-111-1-1-11
-1-1111-1-1-1
-1-1111-111
-1-11111-11
-11-1-1-1-1-1-1
-11-1-1-1-111
-11-1-1-11-11
-11-1-11-11-1
-11-1-111-1-1
-11-1-11111
-11-11-1-11-1
-11-11-11-1-1
-11-11-1111
-11-11111-1
-111-1-1-1-11
-111-11-1-1-1
-111-11-111
-111-111-11
-1111-1-1-1-1
-1111-1-111
-1111-11-11
-11111-11-1
-111111-1-1
-11111111

随机码片:1-11-1111-1
与其正交的码片有:35个
-1-1-1-1-1-11-1
-1-1-1-1-11-1-1
-1-1-1-1-1111
-1-1-1-11-1-1-1
-1-1-1-11-111
-1-1-1-111-11
-1-1-11-111-1
-1-1-111-11-1
-1-1-1111-1-1
-1-1-111111
-1-11-1-1-1-1-1
-1-11-1-1-111
-1-11-1-11-11
-1-11-11-1-11
-1-111-1-11-1
-1-111-11-1-1
-1-111-1111
-1-1111-1-1-1
-1-1111-111
-1-11111-11
-11-1-1-111-1
-11-1-11-11-1
-11-1-111-1-1
-11-1-11111
-11-11111-1
-111-1-1-11-1
-111-1-11-1-1
-111-1-1111
-111-11-1-1-1
-111-11-111
-111-111-11
-1111-111-1
-11111-11-1
-111111-1-1
-11111111

随机码片:11-111-111
与其正交的码片有:35个
-1-1-1-1-1-111
-1-1-1-11-1-11
-1-1-1-11-11-1
-1-1-1-11111
-1-1-11-1-1-11
-1-1-11-1-11-1
-1-1-11-1111
-1-1-111-1-1-1
-1-1-1111-11
-1-1-11111-1
-1-11-11-111
-1-111-1-111
-1-1111-1-11
-1-1111-11-1
-1-1111111
-11-1-1-1-1-11
-11-1-1-1-11-1
-11-1-1-1111
-11-1-11-1-1-1
-11-1-111-11
-11-1-1111-1
-11-11-1-1-1-1
-11-11-11-11
-11-11-111-1
-11-1111-1-1
-111-1-1-111
-111-11-1-11
-111-11-11-1
-111-11111
-1111-1-1-11
-1111-1-11-1
-1111-1111
-11111-1-1-1
-111111-11

-1111111-1

计算机网络实验二 CDMA 编码 [17/10/25]相关推荐

  1. 计算机网络实验二cdma编码,CDMA编码实验_长春理工大学

    CDMA编码 计算机网络.CDMA 实验二CDMA编码 1.实验题目:CDMA编码 2.实验内容: (1)随机生成5个互不正交的8位码片M1.M2.M3.M4.M5. (2)分别求出与M1.M2.M3 ...

  2. 计算机网络实验二 CDMA编码 求所有正交码片

    自己写的,在网上其他地方找不到,嘿嘿,VS2017能运行. #include <iostream> #include <cstdlib> using namespace std ...

  3. 天津理工大学 计算机网络综合实验,天津理工大学计算机网络 实验二

    <天津理工大学计算机网络 实验二>由会员分享,可在线阅读,更多相关<天津理工大学计算机网络 实验二(6页珍藏版)>请在人人文库网上搜索. 1.实验报告学院(系)名称:计算机与通 ...

  4. 计算机网络阅读报告,计算机网络实验二报告

    计算机网络实验二报告 (5页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 11.90 积分 计算机网络实验报告课程_ 计算机网络 _ 实验名称 TCP/ ...

  5. 计算机网络实验二:ARP欺骗

    计算机网络实验二:ARP欺骗 博客链接:https://www.blog.23day.site/articles/66 一.wireshark 要求:配置并使用wireshark,在无线环境下监听非本 ...

  6. 20145236《网络对抗》进阶实验——64位Ubuntu 17.10.1 ROP攻击

    20145236<网络对抗>进阶实验--64位Ubuntu 17.10.1 ROP攻击 基础知识 ROP攻击 ROP全称为Retrun-oriented Programmming(面向返回 ...

  7. 算术编码 matlab程序,实验二算术编码及MATLAB实现.doc

    实验二算术编码及MATLAB实现 武夷学院实验报告 课程名称: 多媒体通信技术 项目名称: 算术编码及MATLAB实现 姓名: _专业:__通信工程___ 班级: 学号:____同组成员_无_ 实验准 ...

  8. 湖南大学计算机网络实验二------水

    计算机网络实验二 网络基础编程实验(Python3) HNU 由于这一次实验2.1-2.3都是给了代码的,所以没有写了,只写了2.3的对比和2.4的代码,实现互通信 2.3 多线程/线程池对比(pyt ...

  9. 计算机网络实验报告西南科技大学,西南科技大学计算机网络-实验二.docx

    计算机网络实验报告 实验二 实验名称: 基本交换机配置 学 号: 学生姓名: 班 级: 指导教师: 实验地点: 评 分: 一.实验目的 创建基本的交换机配置,包括名称和?IP?地址 配置口令以确保对? ...

最新文章

  1. 为什么 Linux 需要 Swapping
  2. 欧拉筛 筛法求素数 及其例题 时间复杂度O(n)
  3. commit your changes or stash them before you can merge
  4. 《Linux内核设计与实现》读书笔记(8)--- 内核同步方法(2)
  5. Linux Kernel TCP/IP Stack — Overview
  6. 基础 - #pragma pack (n) 设置对齐方式
  7. 面向对象的多态性(3)
  8. 编程方法学24:管理大型数据中的良好软件工程原理
  9. TFS 2012研发管理能力(9)
  10. 水晶报表如何查看sql_amazon自动广告如何查看报表?怎么知道亚马逊的自然流量和广告流量分别是多少?...
  11. 源文件与模块文件生成时的文件不同,仍要调试器使用它吗
  12. 排序算法之四 归并排序(C++版本)
  13. Oracle 软件包及补丁包免费下载及简单说明
  14. Chrome主页被强制修改为百度解决办法
  15. 复现awvs——POODLE 攻击(带 CBC 密码套件的 SSLv3—CVE-2014-3566)
  16. 智云通CRM:如何与客户建立信任关系?
  17. 解决微信小程序IOS中使用picker弹出内容和手机软键盘重叠的问题
  18. beetl的配置文件介绍
  19. Nand Flash 通过调整阈值的Retry方法简单描述
  20. selenium2(webdriver)的“兄弟姐妹”

热门文章

  1. 数字图像处理之阈值分割
  2. java爬虫知识盲区整理
  3. 优秀的 Verilog/FPGA开源项目介绍(二十五)- FPGA图像处理库
  4. lotus notes 闪退_黑鲨研习win7系统Lotus Notes邮箱闪退的技巧
  5. Socket多人聊天MFC版
  6. ubuntu shell获取IP地址、日期时间、重定向保存log,shell脚本保存管道命令执行结果
  7. 为电脑右键菜单添加记事本打开
  8. 银行转账java mysql_如何利用Java代码模拟银行转账这一功能?
  9. DM管理工具部分功能界面显示不全的解决方法
  10. 如何删除网络邻居里面没用到的计算机?删除网络位置