首页 > 窍门 > 科技数码

srsLTE:高度模块化的 3GPP LTE 开源库

来源: 更新时间:2022-04-03 17:49:25
The Beginning

  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


THE END

TAG:软件  开源  百科  高度  

猜你喜欢

相关文章