编程CDMA码分复用

news/2024/11/8 3:58:04/

编程CDMA码分复用

要点:

  1. 随机生成多个码片站:码片站中只含有-1,1序列
  2. 两两正交:要保证随机生成的码片站两两正交
  3. 已知收到的码片序列求创建的站发送的数据、
import numpy as np
#judge函数想实现如果可以找到每个列表都两两正交的话就返回,如果为找到就循环去找
def judge(ls):for i in range(len(ls)):for j in range(i+1,len(ls)):if sum(map(lambda x, y: x * y, ls[i], ls[j]))!=0:returnreturn lsdef anal(rchip,ls):for i in range(len(ls)):m = sum(map(lambda x, y: x * y, rchip, ls[i]))/x_bit# print(m)if m == 1:print('第%d站指派的码片:发送的是1'%(i+1))elif m == 0:print('第%d站指派的码片:没发送数据'%(i+1))elif m == -1:print('第%d站指派的码片为:发送的是0'%(i+1))# count = 0
x_bit=int(input('请输入想创建的码片位数:'))
x_num=int(input('请输入想创建码片的个数:'))
while(True):myarry=np.random.randint(0,2,(x_num,x_bit))ls=myarry.tolist()for i in range(x_num):for j in range(x_bit):if ls[i][j]==0:ls[i][j]=-1if (judge(ls) is not None):print(ls)print("创建的码片站如下:")for i in range(1,len(ls)+1):print('第%d站指派的码片为:'%i,ls[i-1])break# count += 1# print(count)
rchip=eval(input('输入接收到的码片序列:'))
anal(rchip,ls)

难点

  1. 随机生成的数中只含有-1和1,这个很难实现,解决办法是先生成只含0和1的随机数,然后再用-1把0给替换掉;
  2. 确保生成的任意两个码片都正交,需要使用循环。

http://www.ppmy.cn/news/527674.html

相关文章

各种调制方式OFDM(QPSK,16QAM,64QAM)系统性能仿真

在第四代移动通信系统中,大家都熟知上行链路通信系统采用的是SC-FDMA,而下行链路通信系统采用的是OFDM技术。这是因为在用户端,也就是我们离不开的手机,由于便捷性的原因其不可以做太大,所以其发射功率不能很大&#x…

通俗解释码分多址(CDMA)

​ 先上参考的大佬链接:https://blog.csdn.net/dog250/article/details/6420427 ​ 如果看完还不明白,接下来看完我的解释相信你肯定明白! ###耐着性子看完,肯定很容易懂,跳着看很不容易理解 如果有不理解或者错误的请…

CDMA PDU 解码

收到两条短信,现在用AT把它们读取出来。 atcmgr5 CMGR:5,”REC UNREAD”,”15338896020″,”UNKNOWN NUMBER”,”N/A”,176 “0000021002020702c54ce225a8a80601c0089d00031001e801 8e2230018801780193108b09fb087b317b012b6a080162e38c8e6 3b422e07b65980162b942e8…

【通信】非正交多址接入(NOMA)和正交频分多址接入(OFDMA)的性能对比附matlab代码

1 内容介绍 随着移动通信的快速发展,数据流量急剧增长,频谱资源开始日益缺乏,能源消耗也在不断加大,而第五代移动通信(5G)中的非正交多址接入(NOMA)技术正是解决这些问题的关键.在NOMA技术中,通过功率域实现多用户复用并共享相同的频谱资源,在接收端采用串行干扰删除(SIC)技术…

什么是1G, 2G, 3G, GSM, EDGE, CDMA, WCDMA, TD-SCDMA, CDMA2000

现如今,我国已经完全进入3G时代,但是什么是3G呢?3G代表什么?进入3G对我们大众有什么好处?3G之前我们用的是什么网络?2G, 3G, GSM, EDGE, CDMA, GPRS, CDMA2000, WCDMA, TDMA, TD-SCDMA 这一大堆名词是不是把…

CDMA编码实现

朋友写的。Python实现的。用的是PyCharm编译。 代码如下 def split_list_average(send, n): # 用于分割指定长度字符串 for i in range(0, len(send), n): yield send[i:i n] def check_chip(chipS, chipT, chipU, chipV): # 判断码片之间是否相互正交 def check(chipA, chi…

CDMA移动终端卡——UIM(转)

UIM(User Identity Module)代表了移动终端卡未来发展方向,它比传统的 鉴权手段如MIN/IMSI、MIN/ESN适配方式更具优势。UIM ID方式除了适用于CDMA 系统外,还可用于GSM系统和其他的TDMA方式以及第三代移动通信…

进行码分多址CDMA通信

共有四个站进行码分多址CDMA通信。四个站的码片序列为:A: (-1 -1 -1 +1 +1 -1 +1 +1). B: (-1 -1 +1 -1 +1 +1 +1 -1).C: (-1 +1 -1 +1 +1 +1 -1 -1). D: (-1 +1 -1 -1 -1 -1 +1 -1).现收到的码片序列为(-1 +1 -1 -1 -1 -1 -1 +1 -1).问哪个站发送数据了?发送数据的站…