srsLTE 是由 SRS 开发的一款 SDR UE 和 eNodeB 的免费且开源的 LTE 库。该库采用最低的内置模块和外部依赖方式实现了高度模块化。它完全是由 C 语言编写,因此如果在系统中可用,可以使用加速库 VOLK 将其分布在 GNURadio 上。

srsLTE 使用的是 srsUE,一个 LTE UE 的全栈(PHY 至 IP)实现。srsUE 地址:https://github.com/srslte/srsue

srsLET 的软件许可为 AGPLv3。

当前特性:

  • 兼容 LTE 第 8 发布版本;
  • FDD 配置;
  • 测试带宽:1.4、3、5、10、15 和 20 MHz;
  • 传输方式 1(单天线)和 2(发射分集);
  • UE 端的小区搜索和同步过程;
  • UE 和 eNodeB 端支持所有 DL 频道/信号:PSS、SSS、 PBCH、 PCFICH、 PHICH、 PDCCH、 PDSCH;
  • UE 端支持所有 UL 频道/信号: PRACH、PUSCH、PUCCH、SRS;
  • 基于频率 ZF 和 MMSE 均衡器;
  • 可用于 Intel SSE4.1/AVX(+100 Mbps)和 C标准(+25Mbps)的高度优化的 Turbo 解码器;
  • MATLAB 和 OCTAVE MEX 库生成许多组件;
  • UE 接收方测试且验证 Amarisoft LTE 100 eNodeB 和商业化 LTE 网络(爱尔兰的 Telefonica Spain、Three.ie 和 Eircom)。

更新后舍去的特性:

  • 闭环功率控制
  • Semi-Persistent 调度

硬件

该库目前支持 Ettus Universal Hardware Driver(UHD)和 bladeRF 驱动。另外,适用于 UHD 或 bladeRF 驱动的任何硬件也都支持。其中没有采样率转换,因此为了保持 LTE 基站中 LTE 抽样频率和解码信号正常工作,硬件应该支持 30.72 MHz的采样率。

我们已测试以下硬件:

  • USRP B210
  • USRP X300
  • bladeRF

运行 srsLTE

  • 商业化 LTE 网络的 SLB1 接收和 UE 测量:
lte/examples/pdsch_ue -f [frequency_in_Hz]

其中 -f 是 LTE 频道频率。

  • eNodeB端 至 UE 端 下行 PHY 测试

需要两台电脑,每台配备一个 USRP。在发送器端运行:

lte/examples/pdsch_enodeb -f [frequency_in_Hz] [-h for more commands]

接收端运行:

lte/examples/pdsch_ue -r 1234 -f [frequency_in_Hz]

在发送器的控制台,通过键入一串新的数字(0-28之间)可以改变调制和编码方案(MCS)。

在接收端的输出类似于下图。在这个案例中,我们在中间演示过程中移除发送器和接收机天线,结果显示接收端仍可能接收。
https://www.dropbox.com/s/txh1nuzdb0igq5n/demo_pbch.ogv(需科学上网)

  • 视频下行 PHY(eNodeB 至 UE 端)

上一个例子是发送随机二进制数字至 UE 端。在 LTE PHY DL 无线连接中打开 TCP 套接字和流视频。在发送机端,运行以下命令:

lte/examples/pdsch_enodeb -f [frequency_in_Hz] -u 2000 [-h for more commands]

参数 -u 2000 将开放端口 2000 用于监听 TCP 连接。设置一个高阶 MCS,如16,在 eNodeB 控制台输入 16 并按回车键。

lte/examples/pdsch_ue -r 1234 -u 2001 -U 127.0.0.1 -f [frequency_in_Hz]

参数 -u 2001 -U 127.0.0.1 是指在 eNodeB 端定向注入地址:通过参数显示端口。一旦系统运行,就可以发送一些有用的数据,如视频流。在发送器端,运行:

avconv -f video4linux2 -i /dev/video0 -c:v mp4 -f mpegts tcp://127.0.0.1:2000 

通过本地主机端口 2000从摄像头捕获流视频。在接收端运行:

avplay tcp://127.0.0.1:2001?listen -analyzeduration 100 -loglevel verbose

来观看视频。

更多内容,详见 Github:https://github.com/srsLTE/srsLTE

srsLTE:高度模块化的 3GPP LTE 开源库相关推荐

  1. TorchSeg—基于PyTorch的快速模块化语义分割开源库

    点击我爱计算机视觉标星,更快获取CVML新技术 昨日,语义分割算法DFN.BiSeNet 第一作者ycszen开源了TorchSeg项目,基于PyTorch的快速模块化语义分割开源库,复现了DFN, ...

  2. 常用C/C++开源库

    1. 框架 Apache C++ Standard Library : 是一系列算法,容器,迭代器和其他基本组件的集合 ASL : Adobe源代码库提供了同行的评审和可移植的C++源代码库. Boo ...

  3. Kimera:一个基于度量语义的SLAM开源库

    标题:Kimera:an Open-Source Library for Real-Time Metric-Semantic Localization and Mapping 作者:Antoni Ro ...

  4. 妙笔生花:一个易用、高效的文本生成开源库

    文本生成作为近年来自然语言处理中的热门领域,受到了学界和工业界的广泛关注.随着研究的不断深入,文本生成领域下的子任务和相应的模型越来越丰富,一些优秀的开源框架也纷纷涌现. 现有的开源文本生成库大致可分 ...

  5. C++开源库大全(转)

    http://blog.csdn.net/chen19870707/article/details/40427645 程序员要站在巨人的肩膀上,C++拥有丰富的开源库,这里包括:标准库.Web应用框架 ...

  6. C/C++程序员必须熟悉的开源库

    作为一个经验丰富的Linux C/C++程序员, 肯定亲手写过各种功能的代码, 比如封装过数据库访问的类, 封装过网络通信的类,封装过日志操作的类, 封装过文件访问的类, 封装过UI界面库等, 也在实 ...

  7. 赶在 2018 年前推荐 30 个最火爆的开源库

    点击上方"CSDN",选择"置顶公众号" 关键时刻,第一时间送达! 作者简介:杨守乐,CSDN 知名博主,关注 Android.Java 领域,现在主要专注于音 ...

  8. Android开源项目以及开源库集合(持续更新中)

    UI Awesome-MaterialDesign – MaterialDesignCenter改名为Awesome-MaterialDesign,优化了布局,新增了不少库. awesome-andr ...

  9. python的开源库是什么_python开源库列表

    标准库 Python标准库描述了 Python 语言的具体语法和语义,这份库参考则介绍了与 Python 一同发行的标准库.它还描述了通常包含在 Python 发行版中的一些可选组件. API手册:h ...

最新文章

  1. mojoportal学习——文章翻译之多行横排菜单
  2. 职业生涯中12个最致命的想法
  3. JPA分页查询与条件分页查询
  4. 揭秘“21世纪最性感的职业”:数学、编程、沟通和商业技能一个都不能少!...
  5. Could not create a validated object, cause: ValidateObject failed
  6. CactiEZ中文版10.1与CAS单点登录
  7. Eclipse — 快速生成提示代码和快速导包
  8. jdbc mysql 存储过程执行失败_JDBC连接执行MySQL存储过程报权限错误
  9. QQ机器人闪照转发/撤回消息转发【最新beta2版本】
  10. elasticsearch 模板
  11. 基于深度学习的图像修复—心中无码
  12. android admob sdk,android – 无法显示AdMob横幅
  13. OSPF路由器类型 ABR与ASBR路由聚合区别
  14. 小学计算机课后作业,小学信息技术课后作业设计研究
  15. 常用笔记啊(持续更新)
  16. luogu1091合唱队形
  17. 海思开发板上挂载额外的存储空间
  18. android10和11,安卓10与安卓11究竟差异在哪里?我们拿这两台新机试了一下
  19. matplotlib画布中属性设置常用函数及其说明
  20. 服务器2003光盘修复,将Windows安装到光盘上 修复系统故障简单轻松

热门文章

  1. 网络安全学习(千锋网络安全笔记)2--IP与基本DOS命令
  2. 利用Python获取某游戏网站热销商品并用pands进行Excel数据存储
  3. GPS导航电文文件和观测值文件解读
  4. 【iOS开发】——MRC(手动内存管理)的一些补充
  5. AJAX JSON
  6. 电脑BlOS设置修改
  7. Exception 类的层次
  8. 音视频入门之如何绘制一张图片
  9. 电容与电池的主要区别说明
  10. 如何将计算机管理中的可用空间,怎样增加电脑可用内存