一起玩转4G/5G开源项目srsRAN(srsLTE升级版):安装方法+NB-IoT测试

24 - srsRAN安装部署(已支持5G NSA和SA, 原srsLTE) 24 - srsRAN安装部署(已支持5G NSA, 原srsLTE)0.srsRAN概况硬件需求概览:1. 仅快速体验srsLTE with USRP B2102. srsRAN源码安装2.1 安装依赖2.2 安装srsGUI可视化界面(可选,推荐)2.3 根据您的RF硬件安装驱动/射频仿真2.4 安装srsRAN3 端到端部署4 srsRAN+仿真射频4.1 安装ZeroMQ 阅读详情
AI摘要

本文介绍4G/5G开源项目srsRAN的安装方法及NB-IoT基本测试流程。内容涵盖SoapySDR、LimeSuite、srsGUI和srsRAN的源码安装步骤,并通过实例演示了如何搜索NB-IoT小区、解码基站下行数据以及发射信号。

本文内容、开发板及配件仅限用于学校或科研院所开展科研实验!

本系列文档介绍4G/5G开源项目srsRAN(srsLTE升级版)的基本使用方法。本文给出该开源项目的基本介绍、安装方法及NB-IoT基本测试。

目录

一、srsRAN基本介绍

二、SoapySDR源码安装

1、安装依赖包

2、源码安装SoapySDR

三、LimeSuite源码安装

四、srsGUI和srsRAN源码安装

1、srsGUI源码安装

(1)安装依赖包

(2)srsGUI源码安装

2、srsRAN源码安装

(1)安装依赖包

 (2)srsRAN源码安装

五、NB-IoT测试实验

1、搜索NB-IoT小区

2、解码基站下行数据

3、选定频段后发射信号

六、有用链接


一、srsRAN基本介绍

srsRAN是srsLTE的升级版,之前的srsLTE目前已经更名为srsRAN。

图1 srsLTE github 

图2 srsRAN github

图3 srsRAN架构 

srsRAN是一个4G/5G开源软件无线电套件。srsRAN支持UE和eNodeB/gNodeB应用,可与第三方核心网络解决方案一起使用,构建完整的端到端移动无线网络。srsRAN包括:

srsUE:全栈SDR 4G/5G-NSA UE应用(5G-SA即将推出),srsUE的具体内容参见https://docs.srslte.com/en/latest/usermanuals/source/srsue/source/1_ue_intro.html

srsENB:全栈SDR 4G eNodeB应用(5G-NSA和5G-SA即将推出),srsENB的具体内容参见https://docs.srslte.com/en/latest/usermanuals/source/srsenb/source/1_enb_intro.html

srsEPC:一个包含MME、HSS和S/P-GW的轻量级4G核心网络,srsEPC的具体内容参见https://docs.srslte.com/en/latest/usermanuals/source/srsepc/source/1_epc_intro.html

关于MME、HSS、S/P-GW的概念可以参考LTE-EPC - MME - PGW - SGW - HSS in LTE EPC Network

几篇关于【核心网】MME、PGW、SGW和PCRF的介绍-优快云博客

二、SoapySDR源码安装

本文后续实验用的硬件为LimeSDR-USB(即LimeSDR标准版)或LimeSDR Mini(即LimeSDR 迷你版),因此,我们需要安装SoapySDR,本文选择源码安装。

1、安装依赖包

sudo apt-get install cmake g++ libpython-dev python-numpy swig git libsqlite3-dev libi2c-dev libusb-1.0-0-dev libwxgtk3.0-dev freeglut3-dev

2、源码安装SoapySDR

例如,你要把SoapySDR下载到你的Download文件夹,则先进入到~/Download文件夹,然后依次执行以下命令。

git clone https://github.com/pothosware/SoapySDR.git
cd SoapySDR
mkdir build && cd build
cmake ..
make -j4
sudo make install
sudo ldconfig

三、LimeSuite源码安装

例如,回到Download文件夹,依次执行以下命令,

git clone https://github.com/myriadrf/LimeSuite.git
cd LimeSuite
mkdir builddir
cd builddir
cmake ../
make -j4
sudo make install
sudo ldconfig

如果你想允许非root用户访问基于usb的设备,如LimeSDR。则需要进入到LimeSuite/udev-rules文件夹,执行

sudo ./install.sh

四、srsGUI和srsRAN源码安装

如果你想用srsGUI(一个配合srsRAN可以实时显示的界面程序),那么你需要先安装srsGUI,然后再安装srsRAN。

1、srsGUI源码安装

(1)安装依赖包

sudo apt-get install libboost-system-dev libboost-test-dev libboost-thread-dev libqwt-qt5-dev qtbase5-dev

(2)srsGUI源码安装

git clone https://github.com/srsLTE/srsGUI.git
cd srsgui
mkdir build
cd build
cmake ../
make
sudo make install
sudo ldconfig

2、srsRAN源码安装

(1)安装依赖包

sudo apt-get install build-essential cmake libfftw3-dev libmbedtls-dev libboost-program-options-dev libconfig++-dev libsctp-dev

 (2)srsRAN源码安装

git clone https://github.com/srsRAN/srsRAN.git
cd srsRAN
mkdir build
cd build
cmake ../
make
make test
sudo make install
sudo srsran_install_configs.sh user

五、NB-IoT测试实验

所有的例子都可以在“./srsRAN/build/lib/examples”中找到。接下来我们以NB-IOT为例来测试源码安装是否成功。

https://docs.srslte.com/en/latest/app_notes/source/nbiot/source/index.html#nbiot-appnote

 图4 NB-IoT基本系统架构

NB-IOT的基本实验硬件如图所示,途中的Machine1为一个电脑,该电脑接一个射频前端(例如LimeSDR),用cell_search_nbiot来搜索基站,用npdsch_ue来解码NB-IOT基站的下行数据。

http://blog.youkuaiyun.com/zoomdy/article/details/72764847,国内的NB-IoT主要运行在B5和B8频段。

1、搜索NB-IoT小区

由于国内用的是B5和B8频段,这里我们选用B8,因此,在以下命令中-b后边是8。

sudo ./cell_search_nbiot -b 8

由于我没有设置允许非root用户使用usb设备,因此这里我需要输入sudo。

 搜索到小区后的截图为,

2、解码基站下行数据

搜索结束后,找到了几个小区。选定其中的959.8MHz这个,进行下行链路解码。输入命令:

sudo ./npdsch_ue -f 959.8e6

输入上述命令后,会自动弹出来类似于如下的界面。

3、选定频段后发射信号

sudo ./npdsch_enodeb -f 948.5e6

以下为一次实验过程的终端输入命令以及相应输出信息实例:

1、搜索小区
opensourcesdr@opensourcesdr:~/Downloads/srsRAN/build/lib/examples$ sudo ./cell_search_nbiot -b 8
[sudo] password for opensourcesdr: 
Opening RF device...
Soapy has found device #0: addr=24607:1027, driver=lime, label=LimeSDR Mini [USB 2.0] 1D49762FC19C49, media=USB 2.0, module=FT601, name=LimeSDR Mini, serial=1D49762FC19C49, 
Selecting Soapy device: 0
Detected LimeSDR. Consider using LTE rates for better RF performance.
Either compile with '-DUSE_LTE_RATES=True' or start srsENB/srsUE with '--expert.lte_sample_rates=true'
[INFO] Make connection: 'LimeSDR Mini [USB 2.0] 1D49762FC19C49'
[INFO] Reference clock 40.00 MHz
[INFO] Device name: LimeSDR-Mini
[INFO] Reference: 40 MHz
[INFO] LMS7002M register cache: Disabled
Setting up Rx stream with 1 channel(s)
Setting up Tx stream with 1 channel(s)
[INFO] RX LPF configured
[INFO] Filter calibrated. Filter order-4th, filter bandwidth set to 5 MHz.Real pole 1st order filter set to 2.5 MHz. Preemphasis filter not active
[INFO] TX LPF configured
Available device sensors: 
 - clock_locked
 - lms7_temp
Available sensors for Rx channel 0: 
 - lo_locked
State of gain elements for Rx channel 0 (AGC not supported):
 - TIA: 9.00 dB
 - LNA: 30.00 dB
 - PGA: -7.00 dB
State of gain elements for Tx channel 0 (AGC not supported):
 - PAD: 0.00 dB
 - IAMP: 0.00 dB
Rx antenna set to LNAH
Tx antenna set to BAND1
[INFO] Selected RX path: LNAW
[  0/349]: EARFCN 3450, 925.00 MHz looking for NPSS.
[ERROR] Tx Calibration: MCU error 5 (Loopback signal weak: not connected/insufficient gain?)
[INFO] Rx calibration finished
[  1/349]: EARFCN 3451, 925.10 MHz looking for NPSS.
[  2/349]: EARFCN 3452, 925.20 MHz looking for NPSS.
[  3/349]: EARFCN 3453, 925.30 MHz looking for NPSS.
[  4/349]: EARFCN 3454, 925.40 MHz looking for NPSS.
[  5/349]: EARFCN 3455, 925.50 MHz looking for NPSS.
[  6/349]: EARFCN 3456, 925.60 MHz looking for NPSS.
[  7/349]: EARFCN 3457, 925.70 MHz looking for NPSS.
[  8/349]: EARFCN 3458, 925.80 MHz looking for NPSS.
[  9/349]: EARFCN 3459, 925.90 MHz looking for NPSS.
[ 10/349]: EARFCN 3460, 926.00 MHz looking for NPSS.
[ 11/349]: EARFCN 3461, 926.10 MHz looking for NPSS.
[ 12/349]: EARFCN 3462, 926.20 MHz looking for NPSS.
[ 13/349]: EARFCN 3463, 926.30 MHz looking for NPSS.
[ 14/349]: EARFCN 3464, 926.40 MHz looking for NPSS.
[ 15/349]: EARFCN 3465, 926.50 MHz looking for NPSS.
[ 16/349]: EARFCN 3466, 926.60 MHz looking for NPSS.
[ 17/349]: EARFCN 3467, 926.70 MHz looking for NPSS.
[ 18/349]: EARFCN 3468, 926.80 MHz looking for NPSS.
[ 19/349]: EARFCN 3469, 926.90 MHz looking for NPSS.
[ 20/349]: EARFCN 3470, 927.00 MHz looking for NPSS.
[ 21/349]: EARFCN 3471, 927.10 MHz looking for NPSS.
[ 22/349]: EARFCN 3472, 927.20 MHz looking for NPSS.
[ 23/349]: EARFCN 3473, 927.30 MHz looking for NPSS.
[ 24/349]: EARFCN 3474, 927.40 MHz looking for NPSS.
[ 25/349]: EARFCN 3475, 927.50 MHz looking for NPSS.
[ 26/349]: EARFCN 3476, 927.60 MHz looking for NPSS.
[ 27/349]: EARFCN 3477, 927.70 MHz looking for NPSS.
[ 28/349]: EARFCN 3478, 927.80 MHz looking for NPSS.
[ 29/349]: EARFCN 3479, 927.90 MHz looking for NPSS.
[ 30/349]: EARFCN 3480, 928.00 MHz looking for NPSS.
[ 31/349]: EARFCN 3481, 928.10 MHz looking for NPSS.
[ 32/349]: EARFCN 3482, 928.20 MHz looking for NPSS.
[ 33/349]: EARFCN 3483, 928.30 MHz looking for NPSS.
[ 34/349]: EARFCN 3484, 928.40 MHz looking for NPSS.
[ 35/349]: EARFCN 3485, 928.50 MHz looking for NPSS.
[ 36/349]: EARFCN 3486, 928.60 MHz looking for NPSS.
[ 37/349]: EARFCN 3487, 928.70 MHz looking for NPSS.
[ 38/349]: EARFCN 3488, 928.80 MHz looking for NPSS.
[ 39/349]: EARFCN 3489, 928.90 MHz looking for NPSS.
[ 40/349]: EARFCN 3490, 929.00 MHz looking for NPSS.
[ 41/349]: EARFCN 3491, 929.10 MHz looking for NPSS.
[ 42/349]: EARFCN 3492, 929.20 MHz looking for NPSS.
[ 43/349]: EARFCN 3493, 929.30 MHz looking for NPSS.
[ 44/349]: EARFCN 3494, 929.40 MHz looking for NPSS.
[ 45/349]: EARFCN 3495, 929.50 MHz looking for NPSS.
[ 46/349]: EARFCN 3496, 929.60 MHz looking for NPSS.
[ 47/349]: EARFCN 3497, 929.70 MHz looking for NPSS.
[ 48/349]: EARFCN 3498, 929.80 MHz looking for NPSS.
[ 49/349]: EARFCN 3499, 929.90 MHz looking for NPSS.
[ 50/349]: EARFCN 3500, 930.00 MHz looking for NPSS.
[ 51/349]: EARFCN 3501, 930.10 MHz looking for NPSS.
[ 52/349]: EARFCN 3502, 930.20 MHz looking for NPSS.
[ 53/349]: EARFCN 3503, 930.30 MHz looking for NPSS.
[ 54/349]: EARFCN 3504, 930.40 MHz looking for NPSS.
[ 55/349]: EARFCN 3505, 930.50 MHz looking for NPSS.
[ 56/349]: EARFCN 3506, 930.60 MHz looking for NPSS.
[ 57/349]: EARFCN 3507, 930.70 MHz looking for NPSS.
[ 58/349]: EARFCN 3508, 930.80 MHz looking for NPSS.
[ 59/349]: EARFCN 3509, 930.90 MHz looking for NPSS.
[ 60/349]: EARFCN 3510, 931.00 MHz looking for NPSS.
[ 61/349]: EARFCN 3511, 931.10 MHz looking for NPSS.
[ 62/349]: EARFCN 3512, 931.20 MHz looking for NPSS.
[ 63/349]: EARFCN 3513, 931.30 MHz looking for NPSS.
[ 64/349]: EARFCN 3514, 931.40 MHz looking for NPSS.
[ 65/349]: EARFCN 3515, 931.50 MHz looking for NPSS.
[ 66/349]: EARFCN 3516, 931.60 MHz looking for NPSS.
[ 67/349]: EARFCN 3517, 931.70 MHz looking for NPSS.
[ 68/349]: EARFCN 3518, 931.80 MHz looking for NPSS.
[ 69/349]: EARFCN 3519, 931.90 MHz looking for NPSS.
[ 70/349]: EARFCN 3520, 932.00 MHz looking for NPSS.
[ 71/349]: EARFCN 3521, 932.10 MHz looking for NPSS.
[ 72/349]: EARFCN 3522, 932.20 MHz looking for NPSS.
[ 73/349]: EARFCN 3523, 932.30 MHz looking for NPSS.
[ 74/349]: EARFCN 3524, 932.40 MHz looking for NPSS.
[ 75/349]: EARFCN 3525, 932.50 MHz looking for NPSS.
[ 76/349]: EARFCN 3526, 932.60 MHz looking for NPSS.
[ 77/349]: EARFCN 3527, 932.70 MHz looking for NPSS.
[ 78/349]: EARFCN 3528, 932.80 MHz looking for NPSS.
[ 79/349]: EARFCN 3529, 932.90 MHz looking for NPSS.
[ 80/349]: EARFCN 3530, 933.00 MHz looking for NPSS.
[ 81/349]: EARFCN 3531, 933.10 MHz looking for NPSS.
[ 82/349]: EARFCN 3532, 933.20 MHz looking for NPSS.
[ 83/349]: EARFCN 3533, 933.30 MHz looking for NPSS.
[ 84/349]: EARFCN 3534, 933.40 MHz looking for NPSS.
[ 85/349]: EARFCN 3535, 933.50 MHz looking for NPSS.
[ 86/349]: EARFCN 3536, 933.60 MHz looking for NPSS.
[ 87/349]: EARFCN 3537, 933.70 MHz looking for NPSS.
[ 88/349]: EARFCN 3538, 933.80 MHz looking for NPSS.
[ 89/349]: EARFCN 3539, 933.90 MHz looking for NPSS.
[ 90/349]: EARFCN 3540, 934.00 MHz looking for NPSS.
[ 91/349]: EARFCN 3541, 934.10 MHz looking for NPSS.
[ 92/349]: EARFCN 3542, 934.20 MHz looking for NPSS.
[ 93/349]: EARFCN 3543, 934.30 MHz looking for NPSS.
[ 94/349]: EARFCN 3544, 934.40 MHz looking for NPSS.
[ 95/349]: EARFCN 3545, 934.50 MHz looking for NPSS.
[ 96/349]: EARFCN 3546, 934.60 MHz looking for NPSS.
[ 97/349]: EARFCN 3547, 934.70 MHz looking for NPSS.
[ 98/349]: EARFCN 3548, 934.80 MHz looking for NPSS.
[ 99/349]: EARFCN 3549, 934.90 MHz looking for NPSS.
[100/349]: EARFCN 3550, 935.00 MHz looking for NPSS.
[101/349]: EARFCN 3551, 935.10 MHz looking for NPSS.
[102/349]: EARFCN 3552, 935.20 MHz looking for NPSS.
[103/349]: EARFCN 3553, 935.30 MHz looking for NPSS.
[104/349]: EARFCN 3554, 935.40 MHz looking for NPSS.
[105/349]: EARFCN 3555, 935.50 MHz looking for NPSS.
[106/349]: EARFCN 3556, 935.60 MHz looking for NPSS.
[107/349]: EARFCN 3557, 935.70 MHz looking for NPSS.
[108/349]: EARFCN 3558, 935.80 MHz looking for NPSS.
[109/349]: EARFCN 3559, 935.90 MHz looking for NPSS.
[110/349]: EARFCN 3560, 936.00 MHz looking for NPSS.
[111/349]: EARFCN 3561, 936.10 MHz looking for NPSS.
[112/349]: EARFCN 3562, 936.20 MHz looking for NPSS.
[113/349]: EARFCN 3563, 936.30 MHz looking for NPSS.
[114/349]: EARFCN 3564, 936.40 MHz looking for NPSS.
[115/349]: EARFCN 3565, 936.50 MHz looking for NPSS.
[116/349]: EARFCN 3566, 936.60 MHz looking for NPSS.
[117/349]: EARFCN 3567, 936.70 MHz looking for NPSS.
[118/349]: EARFCN 3568, 936.80 MHz looking for NPSS.
[119/349]: EARFCN 3569, 936.90 MHz looking for NPSS.
[120/349]: EARFCN 3570, 937.00 MHz looking for NPSS.
[121/349]: EARFCN 3571, 937.10 MHz looking for NPSS.
[122/349]: EARFCN 3572, 937.20 MHz looking for NPSS.
[123/349]: EARFCN 3573, 937.30 MHz looking for NPSS.
[124/349]: EARFCN 3574, 937.40 MHz looking for NPSS.
[125/349]: EARFCN 3575, 937.50 MHz looking for NPSS.
[126/349]: EARFCN 3576, 937.60 MHz looking for NPSS.
[127/349]: EARFCN 3577, 937.70 MHz looking for NPSS.
[128/349]: EARFCN 3578, 937.80 MHz looking for NPSS.
[129/349]: EARFCN 3579, 937.90 MHz looking for NPSS.
[130/349]: EARFCN 3580, 938.00 MHz looking for NPSS.
[131/349]: EARFCN 3581, 938.10 MHz looking for NPSS.
[132/349]: EARFCN 3582, 938.20 MHz looking for NPSS.
[133/349]: EARFCN 3583, 938.30 MHz looking for NPSS.
[134/349]: EARFCN 3584, 938.40 MHz looking for NPSS.
[135/349]: EARFCN 3585, 938.50 MHz looking for NPSS.
[136/349]: EARFCN 3586, 938.60 MHz looking for NPSS.
[137/349]: EARFCN 3587, 938.70 MHz looking for NPSS.
[138/349]: EARFCN 3588, 938.80 MHz looking for NPSS.
[139/349]: EARFCN 3589, 938.90 MHz looking for NPSS.
[140/349]: EARFCN 3590, 939.00 MHz looking for NPSS.
[141/349]: EARFCN 3591, 939.10 MHz looking for NPSS.
[142/349]: EARFCN 3592, 939.20 MHz looking for NPSS.
[143/349]: EARFCN 3593, 939.30 MHz looking for NPSS.
[144/349]: EARFCN 3594, 939.40 MHz looking for NPSS.
[145/349]: EARFCN 3595, 939.50 MHz looking for NPSS.
[146/349]: EARFCN 3596, 939.60 MHz looking for NPSS.
[147/349]: EARFCN 3597, 939.70 MHz looking for NPSS.
[148/349]: EARFCN 3598, 939.80 MHz looking for NPSS.
[149/349]: EARFCN 3599, 939.90 MHz looking for NPSS.
[150/349]: EARFCN 3600, 940.00 MHz looking for NPSS.
[151/349]: EARFCN 3601, 940.10 MHz looking for NPSS.
[152/349]: EARFCN 3602, 940.20 MHz looking for NPSS.
[153/349]: EARFCN 3603, 940.30 MHz looking for NPSS.
[154/349]: EARFCN 3604, 940.40 MHz looking for NPSS.
[155/349]: EARFCN 3605, 940.50 MHz looking for NPSS.
[156/349]: EARFCN 3606, 940.60 MHz looking for NPSS.
[157/349]: EARFCN 3607, 940.70 MHz looking for NPSS.
[158/349]: EARFCN 3608, 940.80 MHz looking for NPSS.
[159/349]: EARFCN 3609, 940.90 MHz looking for NPSS.
[160/349]: EARFCN 3610, 941.00 MHz looking for NPSS.
[161/349]: EARFCN 3611, 941.10 MHz looking for NPSS.
[162/349]: EARFCN 3612, 941.20 MHz looking for NPSS.
[163/349]: EARFCN 3613, 941.30 MHz looking for NPSS.
[164/349]: EARFCN 3614, 941.40 MHz looking for NPSS.
[165/349]: EARFCN 3615, 941.50 MHz looking for NPSS.
[166/349]: EARFCN 3616, 941.60 MHz looking for NPSS.
[167/349]: EARFCN 3617, 941.70 MHz looking for NPSS.
[168/349]: EARFCN 3618, 941.80 MHz looking for NPSS.
[169/349]: EARFCN 3619, 941.90 MHz looking for NPSS.
[170/349]: EARFCN 3620, 942.00 MHz looking for NPSS.
[171/349]: EARFCN 3621, 942.10 MHz looking for NPSS.
[172/349]: EARFCN 3622, 942.20 MHz looking for NPSS.
[173/349]: EARFCN 3623, 942.30 MHz looking for NPSS.
[174/349]: EARFCN 3624, 942.40 MHz looking for NPSS.
[175/349]: EARFCN 3625, 942.50 MHz looking for NPSS.
[176/349]: EARFCN 3626, 942.60 MHz looking for NPSS.
[177/349]: EARFCN 3627, 942.70 MHz looking for NPSS.
[178/349]: EARFCN 3628, 942.80 MHz looking for NPSS.
[179/349]: EARFCN 3629, 942.90 MHz looking for NPSS.
[180/349]: EARFCN 3630, 943.00 MHz looking for NPSS.
[181/349]: EARFCN 3631, 943.10 MHz looking for NPSS.
[182/349]: EARFCN 3632, 943.20 MHz looking for NPSS.
[183/349]: EARFCN 3633, 943.30 MHz looking for NPSS.
[184/349]: EARFCN 3634, 943.40 MHz looking for NPSS.
[185/349]: EARFCN 3635, 943.50 MHz looking for NPSS.
[186/349]: EARFCN 3636, 943.60 MHz looking for NPSS.
[187/349]: EARFCN 3637, 943.70 MHz looking for NPSS.
[188/349]: EARFCN 3638, 943.80 MHz looking for NPSS.
[189/349]: EARFCN 3639, 943.90 MHz looking for NPSS.
[190/349]: EARFCN 3640, 944.00 MHz looking for NPSS.
[191/349]: EARFCN 3641, 944.10 MHz looking for NPSS.
[192/349]: EARFCN 3642, 944.20 MHz looking for NPSS.
[193/349]: EARFCN 3643, 944.30 MHz looking for NPSS.
[194/349]: EARFCN 3644, 944.40 MHz looking for NPSS.
[195/349]: EARFCN 3645, 944.50 MHz looking for NPSS.
[196/349]: EARFCN 3646, 944.60 MHz looking for NPSS.
[197/349]: EARFCN 3647, 944.70 MHz looking for NPSS.
[198/349]: EARFCN 3648, 944.80 MHz looking for NPSS.
[199/349]: EARFCN 3649, 944.90 MHz looking for NPSS.
[200/349]: EARFCN 3650, 945.00 MHz looking for NPSS.
[201/349]: EARFCN 3651, 945.10 MHz looking for NPSS.
[202/349]: EARFCN 3652, 945.20 MHz looking for NPSS.
[203/349]: EARFCN 3653, 945.30 MHz looking for NPSS.
[204/349]: EARFCN 3654, 945.40 MHz looking for NPSS.
[205/349]: EARFCN 3655, 945.50 MHz looking for NPSS.
[206/349]: EARFCN 3656, 945.60 MHz looking for NPSS.
[207/349]: EARFCN 3657, 945.70 MHz looking for NPSS.
[208/349]: EARFCN 3658, 945.80 MHz looking for NPSS.
[209/349]: EARFCN 3659, 945.90 MHz looking for NPSS.
[210/349]: EARFCN 3660, 946.00 MHz looking for NPSS.
[211/349]: EARFCN 3661, 946.10 MHz looking for NPSS.
[212/349]: EARFCN 3662, 946.20 MHz looking for NPSS.
[213/349]: EARFCN 3663, 946.30 MHz looking for NPSS.
[214/349]: EARFCN 3664, 946.40 MHz looking for NPSS.
[215/349]: EARFCN 3665, 946.50 MHz looking for NPSS.
[216/349]: EARFCN 3666, 946.60 MHz looking for NPSS.
[217/349]: EARFCN 3667, 946.70 MHz looking for NPSS.
[218/349]: EARFCN 3668, 946.80 MHz looking for NPSS.
[219/349]: EARFCN 3669, 946.90 MHz looking for NPSS.
[220/349]: EARFCN 3670, 947.00 MHz looking for NPSS.
[221/349]: EARFCN 3671, 947.10 MHz looking for NPSS.
[222/349]: EARFCN 3672, 947.20 MHz looking for NPSS.
[223/349]: EARFCN 3673, 947.30 MHz looking for NPSS.
[224/349]: EARFCN 3674, 947.40 MHz looking for NPSS.
[225/349]: EARFCN 3675, 947.50 MHz looking for NPSS.
[226/349]: EARFCN 3676, 947.60 MHz looking for NPSS.
[227/349]: EARFCN 3677, 947.70 MHz looking for NPSS.
[228/349]: EARFCN 3678, 947.80 MHz looking for NPSS.
[229/349]: EARFCN 3679, 947.90 MHz looking for NPSS.
[230/349]: EARFCN 3680, 948.00 MHz looking for NPSS.
[231/349]: EARFCN 3681, 948.10 MHz looking for NPSS.
[232/349]: EARFCN 3682, 948.20 MHz looking for NPSS.
[233/349]: EARFCN 3683, 948.30 MHz looking for NPSS.
[234/349]: EARFCN 3684, 948.40 MHz looking for NPSS.
[235/349]: EARFCN 3685, 948.50 MHz looking for NPSS.
NSSS with peak=82.497803, cell-id: 123, partial SFN: 0
Found CELL ID 123.
[236/349]: EARFCN 3686, 948.60 MHz looking for NPSS.
[237/349]: EARFCN 3687, 948.70 MHz looking for NPSS.
[238/349]: EARFCN 3688, 948.80 MHz looking for NPSS.
[239/349]: EARFCN 3689, 948.90 MHz looking for NPSS.
[240/349]: EARFCN 3690, 949.00 MHz looking for NPSS.
[241/349]: EARFCN 3691, 949.10 MHz looking for NPSS.
[242/349]: EARFCN 3692, 949.20 MHz looking for NPSS.
[243/349]: EARFCN 3693, 949.30 MHz looking for NPSS.
[244/349]: EARFCN 3694, 949.40 MHz looking for NPSS.
[245/349]: EARFCN 3695, 949.50 MHz looking for NPSS.
[246/349]: EARFCN 3696, 949.60 MHz looking for NPSS.
[247/349]: EARFCN 3697, 949.70 MHz looking for NPSS.
[248/349]: EARFCN 3698, 949.80 MHz looking for NPSS.
[249/349]: EARFCN 3699, 949.90 MHz looking for NPSS.
[250/349]: EARFCN 3700, 950.00 MHz looking for NPSS.
[251/349]: EARFCN 3701, 950.10 MHz looking for NPSS.
[252/349]: EARFCN 3702, 950.20 MHz looking for NPSS.
[253/349]: EARFCN 3703, 950.30 MHz looking for NPSS.
[254/349]: EARFCN 3704, 950.40 MHz looking for NPSS.
[255/349]: EARFCN 3705, 950.50 MHz looking for NPSS.
[256/349]: EARFCN 3706, 950.60 MHz looking for NPSS.
[257/349]: EARFCN 3707, 950.70 MHz looking for NPSS.
[258/349]: EARFCN 3708, 950.80 MHz looking for NPSS.
[259/349]: EARFCN 3709, 950.90 MHz looking for NPSS.
[260/349]: EARFCN 3710, 951.00 MHz looking for NPSS.
[261/349]: EARFCN 3711, 951.10 MHz looking for NPSS.
[262/349]: EARFCN 3712, 951.20 MHz looking for NPSS.
[263/349]: EARFCN 3713, 951.30 MHz looking for NPSS.
[264/349]: EARFCN 3714, 951.40 MHz looking for NPSS.
[265/349]: EARFCN 3715, 951.50 MHz looking for NPSS.
[266/349]: EARFCN 3716, 951.60 MHz looking for NPSS.
[267/349]: EARFCN 3717, 951.70 MHz looking for NPSS.
[268/349]: EARFCN 3718, 951.80 MHz looking for NPSS.
[269/349]: EARFCN 3719, 951.90 MHz looking for NPSS.
[270/349]: EARFCN 3720, 952.00 MHz looking for NPSS.
[271/349]: EARFCN 3721, 952.10 MHz looking for NPSS.
[272/349]: EARFCN 3722, 952.20 MHz looking for NPSS.
[273/349]: EARFCN 3723, 952.30 MHz looking for NPSS.
[274/349]: EARFCN 3724, 952.40 MHz looking for NPSS.
[275/349]: EARFCN 3725, 952.50 MHz looking for NPSS.
[276/349]: EARFCN 3726, 952.60 MHz looking for NPSS.
[277/349]: EARFCN 3727, 952.70 MHz looking for NPSS.
[278/349]: EARFCN 3728, 952.80 MHz looking for NPSS.
[279/349]: EARFCN 3729, 952.90 MHz looking for NPSS.
[280/349]: EARFCN 3730, 953.00 MHz looking for NPSS.
[281/349]: EARFCN 3731, 953.10 MHz looking for NPSS.
[282/349]: EARFCN 3732, 953.20 MHz looking for NPSS.
[283/349]: EARFCN 3733, 953.30 MHz looking for NPSS.
[284/349]: EARFCN 3734, 953.40 MHz looking for NPSS.
[285/349]: EARFCN 3735, 953.50 MHz looking for NPSS.
[286/349]: EARFCN 3736, 953.60 MHz looking for NPSS.
[287/349]: EARFCN 3737, 953.70 MHz looking for NPSS.
[288/349]: EARFCN 3738, 953.80 MHz looking for NPSS.
[289/349]: EARFCN 3739, 953.90 MHz looking for NPSS.
[290/349]: EARFCN 3740, 954.00 MHz looking for NPSS.
[291/349]: EARFCN 3741, 954.10 MHz looking for NPSS.
[292/349]: EARFCN 3742, 954.20 MHz looking for NPSS.
[293/349]: EARFCN 3743, 954.30 MHz looking for NPSS.
NSSS with peak=3.833671, cell-id: 296, partial SFN: 0
Found CELL ID 296.
[294/349]: EARFCN 3744, 954.40 MHz looking for NPSS.
[295/349]: EARFCN 3745, 954.50 MHz looking for NPSS.
[296/349]: EARFCN 3746, 954.60 MHz looking for NPSS.
[297/349]: EARFCN 3747, 954.70 MHz looking for NPSS.
[298/349]: EARFCN 3748, 954.80 MHz looking for NPSS.
[299/349]: EARFCN 3749, 954.90 MHz looking for NPSS.
[300/349]: EARFCN 3750, 955.00 MHz looking for NPSS.
[301/349]: EARFCN 3751, 955.10 MHz looking for NPSS.
[302/349]: EARFCN 3752, 955.20 MHz looking for NPSS.
[303/349]: EARFCN 3753, 955.30 MHz looking for NPSS.
[304/349]: EARFCN 3754, 955.40 MHz looking for NPSS.
[305/349]: EARFCN 3755, 955.50 MHz looking for NPSS.
[306/349]: EARFCN 3756, 955.60 MHz looking for NPSS.
[307/349]: EARFCN 3757, 955.70 MHz looking for NPSS.
[308/349]: EARFCN 3758, 955.80 MHz looking for NPSS.
[309/349]: EARFCN 3759, 955.90 MHz looking for NPSS.
[310/349]: EARFCN 3760, 956.00 MHz looking for NPSS.
[311/349]: EARFCN 3761, 956.10 MHz looking for NPSS.
[312/349]: EARFCN 3762, 956.20 MHz looking for NPSS.
[313/349]: EARFCN 3763, 956.30 MHz looking for NPSS.
[314/349]: EARFCN 3764, 956.40 MHz looking for NPSS.
[315/349]: EARFCN 3765, 956.50 MHz looking for NPSS.
[316/349]: EARFCN 3766, 956.60 MHz looking for NPSS.
[317/349]: EARFCN 3767, 956.70 MHz looking for NPSS.
[318/349]: EARFCN 3768, 956.80 MHz looking for NPSS.
[319/349]: EARFCN 3769, 956.90 MHz looking for NPSS.
[320/349]: EARFCN 3770, 957.00 MHz looking for NPSS.
[321/349]: EARFCN 3771, 957.10 MHz looking for NPSS.
[322/349]: EARFCN 3772, 957.20 MHz looking for NPSS.
[323/349]: EARFCN 3773, 957.30 MHz looking for NPSS.
[324/349]: EARFCN 3774, 957.40 MHz looking for NPSS.
[325/349]: EARFCN 3775, 957.50 MHz looking for NPSS.
[326/349]: EARFCN 3776, 957.60 MHz looking for NPSS.
[327/349]: EARFCN 3777, 957.70 MHz looking for NPSS.
[328/349]: EARFCN 3778, 957.80 MHz looking for NPSS.
[329/349]: EARFCN 3779, 957.90 MHz looking for NPSS.
[330/349]: EARFCN 3780, 958.00 MHz looking for NPSS.
[331/349]: EARFCN 3781, 958.10 MHz looking for NPSS.
[332/349]: EARFCN 3782, 958.20 MHz looking for NPSS.
[333/349]: EARFCN 3783, 958.30 MHz looking for NPSS.
[334/349]: EARFCN 3784, 958.40 MHz looking for NPSS.
[335/349]: EARFCN 3785, 958.50 MHz looking for NPSS.
[336/349]: EARFCN 3786, 958.60 MHz looking for NPSS.
[337/349]: EARFCN 3787, 958.70 MHz looking for NPSS.
[338/349]: EARFCN 3788, 958.80 MHz looking for NPSS.
[339/349]: EARFCN 3789, 958.90 MHz looking for NPSS.
[340/349]: EARFCN 3790, 959.00 MHz looking for NPSS.
[341/349]: EARFCN 3791, 959.10 MHz looking for NPSS.
[342/349]: EARFCN 3792, 959.20 MHz looking for NPSS.
[343/349]: EARFCN 3793, 959.30 MHz looking for NPSS.
[344/349]: EARFCN 3794, 959.40 MHz looking for NPSS.
[345/349]: EARFCN 3795, 959.50 MHz looking for NPSS.
[346/349]: EARFCN 3796, 959.60 MHz looking for NPSS.
[347/349]: EARFCN 3797, 959.70 MHz looking for NPSS.
[348/349]: EARFCN 3798, 959.80 MHz looking for NPSS.
NSSS with peak=45.436958, cell-id: 46, partial SFN: 0
Found CELL ID 46.


Found 3 cells
Found CELL 948.5 MHz, EARFCN=3685, PHYID=123, NPSS power=21.1 dBm
Found CELL 954.3 MHz, EARFCN=3743, PHYID=296, NPSS power=-5.5 dBm
Found CELL 959.8 MHz, EARFCN=3798, PHYID=46, NPSS power=16.2 dBm

Bye


2、解码下行数据
opensourcesdr@opensourcesdr:~/Downloads/srsRAN/build/lib/examples$ sudo ./npdsch_ue -f 948.5e6
Opening RF device...
Soapy has found device #0: addr=24607:1027, driver=lime, label=LimeSDR Mini [USB 2.0] 1D49762FC19C49, media=USB 2.0, module=FT601, name=LimeSDR Mini, serial=1D49762FC19C49, 
Selecting Soapy device: 0
Detected LimeSDR. Consider using LTE rates for better RF performance.
Either compile with '-DUSE_LTE_RATES=True' or start srsENB/srsUE with '--expert.lte_sample_rates=true'
[INFO] Make connection: 'LimeSDR Mini [USB 2.0] 1D49762FC19C49'
[INFO] Reference clock 40.00 MHz
[INFO] Device name: LimeSDR-Mini
[INFO] Reference: 40 MHz
[INFO] LMS7002M register cache: Disabled
Setting up Rx stream with 1 channel(s)
Setting up Tx stream with 1 channel(s)
[INFO] RX LPF configured
[INFO] Filter calibrated. Filter order-4th, filter bandwidth set to 5 MHz.Real pole 1st order filter set to 2.5 MHz. Preemphasis filter not active
[INFO] TX LPF configured
Available device sensors: 
 - clock_locked
 - lms7_temp
Available sensors for Rx channel 0: 
 - lo_locked
State of gain elements for Rx channel 0 (AGC not supported):
 - TIA: 9.00 dB
 - LNA: 30.00 dB
 - PGA: -7.00 dB
State of gain elements for Tx channel 0 (AGC not supported):
 - PAD: 0.00 dB
 - IAMP: 0.00 dB
Rx antenna set to LNAH
Tx antenna set to BAND1
Set RX gain: 70.0 dB
[INFO] Selected RX path: LNAW
Set RX freq: 948.499994 MHz
Setting sampling rate 1.92 MHz
Actual sampling rate 1.92 MHz
[ERROR] Tx Calibration: MCU error 5 (Loopback signal weak: not connected/insufficient gain?)
[INFO] Rx calibration finished
NSSS with peak=81.592972, cell-id: 14, partial SFN: 0
*Found n_id_ncell:  14 DetectRatio= 0% PSR=1.96, Power=106.0 dBm
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
Finding PSS... Peak:      4.6, FrameCnt: 0, State: 1 0
MIB received (CFO:  +0.31 kHz)
MIB received (CFO:  +0.03 kHz) FrameCnt: 0, State: 1: 0
Finding PSS... Peak:      5.3, FrameCnt: 0, State: 1
MIB received (CFO:  +0.11 kHz) FrameCnt: 0, State: 1
Finding PSS... Peak:      8.4, FrameCnt: 0, State: 1
MIB received (CFO:  -0.14 kHz) FrameCnt: 0, State: 1
Finding PSS... Peak:      5.8, FrameCnt: 0, State: 1
SIGINT received. Exiting....5, FrameCnt: 4, State: 0 0
Saving PCAP fileeak:      1.3, FrameCnt: 4, State: 0

Bye
QObject::~QObject: Timers cannot be stopped from another thread

3、发射信号
opensourcesdr@opensourcesdr:~/Downloads/srsRAN/build/lib/examples$ sudo ./npdsch_enodeb -f 948.5e6
Opening RF device...
Soapy has found device #0: addr=24607:1027, driver=lime, label=LimeSDR Mini [USB 2.0] 1D49762FC19C49, media=USB 2.0, module=FT601, name=LimeSDR Mini, serial=1D49762FC19C49, 
Selecting Soapy device: 0
Detected LimeSDR. Consider using LTE rates for better RF performance.
Either compile with '-DUSE_LTE_RATES=True' or start srsENB/srsUE with '--expert.lte_sample_rates=true'
[INFO] Make connection: 'LimeSDR Mini [USB 2.0] 1D49762FC19C49'
[INFO] Reference clock 40.00 MHz
[INFO] Device name: LimeSDR-Mini
[INFO] Reference: 40 MHz
[INFO] LMS7002M register cache: Disabled
Setting up Rx stream with 1 channel(s)
Setting up Tx stream with 1 channel(s)
[INFO] RX LPF configured
[INFO] Filter calibrated. Filter order-4th, filter bandwidth set to 5 MHz.Real pole 1st order filter set to 2.5 MHz. Preemphasis filter not active
[INFO] TX LPF configured
Available device sensors: 
 - clock_locked
 - lms7_temp
Available sensors for Rx channel 0: 
 - lo_locked
State of gain elements for Rx channel 0 (AGC not supported):
 - TIA: 9.00 dB
 - LNA: 30.00 dB
 - PGA: -7.00 dB
State of gain elements for Tx channel 0 (AGC not supported):
 - PAD: 0.00 dB
 - IAMP: 0.00 dB
Rx antenna set to LNAH
Tx antenna set to BAND1
Setting sampling rate 1.92 MHz
Set TX gain: 70.1 dB
[INFO] Selected TX path: Band 2
Set TX freq: 948.50 MHz
NB-IoT DL DCI:
 - Format flag:				1
   + FormatN1 DCI:			Downlink
 - PDCCH Order:				0
 - Scheduling delay:			0 (0 subframes)
 - Resource assignment:			0
   + Number of subframes:		1
 - Modulation and coding scheme index:	1
 - Repetition number:			0
   + Number of repetitions:		1
 - New data indicator:			0
 - HARQ-ACK resource:			1
 - DCI subframe repetition number:	0
DL grant config:
 - Number of subframes:			1
 - Number of repetitions:		1
 - Total number of subframes:		1
 - Starting SFN:			0
 - Starting SF index:			6
 - Modulation type:			QPSK
 - Transport block size:		24
Type new MCS index and press Enter: [INFO] Tx calibration finished
[INFO] Rx calibration finished
NB-IoT HFN: 1
NB-IoT HFN: 2
NB-IoT HFN: 3
NB-IoT HFN: 4
NB-IoT HFN: 5
NB-IoT HFN: 6
NB-IoT HFN: 7
NB-IoT HFN: 8
NB-IoT HFN: 9
NB-IoT HFN: 10
NB-IoT HFN: 11
NB-IoT HFN: 12
NB-IoT HFN: 13
NB-IoT HFN: 14
NB-IoT HFN: 15
NB-IoT HFN: 16
NB-IoT HFN: 17
NB-IoT HFN: 18
NB-IoT HFN: 19
NB-IoT HFN: 20
NB-IoT HFN: 21
NB-IoT HFN: 22
NB-IoT HFN: 23
NB-IoT HFN: 24
NB-IoT HFN: 25
NB-IoT HFN: 26
NB-IoT HFN: 27
NB-IoT HFN: 28
NB-IoT HFN: 29
NB-IoT HFN: 30
NB-IoT HFN: 31
NB-IoT HFN: 32
NB-IoT HFN: 33
NB-IoT HFN: 34
^CSIGINT received. Exiting...
Done
opensourcesdr@opensourcesdr:~/Downloads/srsRAN/build/lib/examples$ 

六、有用链接

https://www.srsran.com/

https://docs.srslte.com/en/latest/general/source/1_installation.html

https://docs.srslte.com/en/latest/app_notes/source/nbiot/source/index.html#nbiot-appnote

https://wiki.myriadrf.org/Lime_Suite

GitHub - srsran/srsRAN_4G: Open source SDR 4G software suite from Software Radio Systems (SRS) https://docs.srsran.com/projects/4g

GitHub - srsran/srsGUI: A graphics library for software radio.

【USRPx310系列(NI USRP2940-2955)+ srsRAN】环境搭建与应用 【srsRAN+USRP开发记录】USRPx310系列(NI USRP2940-2955) + srsRAN的环境搭建相关问题,以及部分应用的测试和开发。 阅读详情

相关推荐

HackRF One与srsRAN实战:从环境搭建到LTE/NB-IoT信号解析

本文详细介绍了如何使用HackRF One软件定义无线电设备和srsRAN开源软件套件,从零开始搭建LTE/NB-IoT信号分析环境。内容涵盖系统配置、驱动安装、srsRAN编译,以及实战中利用cell_search等工具进行频谱扫描和信号解码的全过程,为无线通信学习和研究提供了完整的实践指南。

weixin_29217235的博客 254

srsRAN_4G:开源4G软件无线电套件完全指南 - 从零构建私有LTE网络

srsRAN_4G是由SRS开发的开源4G软件无线电套件,包含srsUE(4G UE应用)、srsENB(4G eNodeB应用)和srsEPC(4G核心网实现),能帮助用户从零开始构建完整的私有LTE网络。 ## 📋 核心组件介绍 ### srsUE:4G用户设备实现 srsUE是一个全栈SDR 4G用户设备应用,还具备原型5G功能。它可作为终端设备接入LTE网络,支持与eNodeB的通信

gitblog_02785的博客 879

HackRF One—安装srsRAN并测试

srRAN是支持"UHD", "bladeRF", "soapy", "zmq" ,"Sidekiq"的,如果使用HackRF,需要先安装soapy,之后srsRAN才能够调用。本博客主要分为了四个内容1.安装SoapySDR;2.安装Soapy HackRF;3.安装srsRAN;4.测试示例。

qq_22762933的博客 5540

srsran中线程池分析

线程池实际上就是为了解决频繁的创建和删除线程带来的巨大开销问题,利用线程池,可以复用线程来处理一些需要频繁执行的任务。首先线程池主要分为了三个部分。任务者线程,管理者线程,工作者线程。如下图所示

qq_15026719的博客 934

【USRP】srsRAN 开源4G/5G软件无线电套件实战指南

本文详细介绍了如何使用srsRAN开源软件无线电套件配合USRP硬件搭建4G/5G网络。从硬件选型、环境配置到srsRAN的安装与优化,提供了完整的实战指南,帮助开发者快速部署和测试无线通信系统。特别适合软件无线电爱好者和通信工程师进行原型验证与教学实验。

weixin_28323057的博客 470

srsran源码分析----MIB的发送

srsran中MIB的源码并不是在RRC层进行数据流的编码,而是在物理层进行组装并进行编码发送,本文要讨论的内容就是MIB是如何组装并且发送的。

qq_15026719的博客 1337

【亲测免费】 推荐开源项目:srsRAN - 开源4G软件无线电套件

srsRAN是由[SRS](http://www.srs.io)开发的一款强大的开源4G软件无线电软件,它提供了一整套解决方案,包括srsUE(4G UE应用)、srsENB(4G eNodeB应用)和srsEPC(轻量级4G核心网络)。此外,该项目还为5G RAN提供了一个新的O-RAN CU/DU解决方案。srsRAN的项目主页包含了详细信息、指导教程以及最新的项目动态。 ## 2、项目技术...

gitblog_00084的博客 1225

srsRAN:来自软件无线电系统(SRS)的开源SDR 4G5G软件包

sRAN srsRAN是开发的4G / 5G软件无线电套件。 有关信息,指南和项目新闻,请参见。 srsRAN套件包括: srsUE-全栈SDR 4G / 5G-NSA UE应用程序(即将推出5G-SA) srsENB-完整的SDR 4G eNodeB应用程序(即将推出5G-NSA和5G-SA) srsEPC-具有MME,HSS和S / P-GW的轻量级4G核心网络实现 有关应用程序功能,构建说明和用户指南,请参见。 有关许可证的详细信息,请参阅LICENSE文件。 支持 邮件列表: :

【免费下载】 开源新星:srsRAN项目全面解析与推荐

--- ## 项目介绍 在快速演进的5G时代,**srsRAN项目**犹如一颗璀璨的新星,照亮了开放无线网络的天空。由[SRS](http://www.srs.io)开发的srsRAN,是一个完整的5G无线接入网(RAN)解决方案,专为ORAN(开放式无线接入网络联盟)而生。其通过集成的Layer 1至Layer 3实现,展现了强大的技术底蕴和高度的可移植性,支持x86与ARM架构,旨在以最少...

gitblog_00436的博客 1911

srsRAN,open5GS搭建4G,5G网络工作日志(原创)

使用srsRAN搭建成功了LTE网络,另外使用open5GS作为核心网搭建成了5G网络,

Windows 11登录界面密码框消失Bug解析与解决方案

Windows操作系统登录认证机制是系统安全的第一道防线,其图形界面由桌面窗口管理器(DWM)负责渲染。当UI元素渲染异常时,会导致密码输入框等关键组件不可见。这类图形子系统故障通常源于驱动兼容性或主题服务冲突,在Windows 11最新累积更新后尤为常见。通过系统文件检查(sfc)、注册表修复或创建新用户等工程实践方法可有效解决问题。对于企业IT环境,建议采用PIN码或生物识别等替代认证方案,同时定期执行磁盘清理和系统健康检查等Windows维护操作,确保认证服务稳定运行。

weixin_33806859的博客 611

【USRP】srsRAN 开源 4G 软件无线电套件

srsRAN 是SRS开发的开源 4G 软件无线电套件。

凡森 3136

从CORDIC到DDS:手把手拆解《Verilog传奇》第9章的实战项目(附可跑通的代码)

本文详细解析了如何从CORDIC算法到DDS系统的完整实现过程,基于《Verilog传奇》第9章的实战项目,提供了可运行的Verilog代码。内容涵盖CORDIC算法的硬件实现、DDS系统架构设计、完整系统集成与验证,以及实际部署中的性能调优技巧,适合数字IC和FPGA开发者深入学习。

weixin_42623010的博客 413

srsRAN源码分析----enb端协议栈是如何运作

整个协议栈的运作总是为物理层服务的,因此,协议栈的功能运行离不开物理层的调用,在物理层有着许多协议栈的接口,协议栈是如何在物理层被调用以及整个调用流程,是本文所要记录的内容。

qq_15026719的博客 2113

SAP ABAP 缓冲同步揭秘——从 DDLOG 表到 RSDBBUF3 的完整实践指南

DDLOG 看似一张不起眼的系统表,却承担着 SAP 多实例环境下的数据一致性重任。通过掌握其字段意义、解析方法及周边监控工具,你可以在性能与一致性之间找到最佳平衡;通过精细化的参数管理与主动刷新策略,更能在关键业务场景中确保“数据永远是最新的”。愿本文能成为你日常排障与架构决策的参考手册。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 312

PSM倾向性评分分析介绍、spss进行倾向性评分分析示例

PSM倾向性评分分析介绍、spss进行倾向性评分分析示例

statistics+insight+vista+power 1481

无线学习:srsRAN环境搭建【无线学习笔记二】

srsRAN 环境搭建: 文档上的一句话:装上之后找配置文件可以从这里找: By default, all applications will search for confifig fifiles in the user’s home directory (~/.srs) upon startup. 实际的配置文件在下面的目录下: ~/.config/srsran srsLTE 改名成 srsRAN 下面是官方文档: srsRAN 21.04 Documentation:srsRAN 21.

yuyu的博客 4484

TIBCO Jaspersoft Studio报表开发 使用教程-进阶版

本文学习内容容器定制二级目录三级目录 容器定制 二级目录 三级目录

吉哲的博客 7521

一起玩转GNU Radio:gr-digital

本文内容、开发板及配件仅限用于学校或科研院所开展科研实验!

无线通信实验室 1万+

【LaTex】3.5 数据分析

简述了LaTex柱状图、饼图、折线图的画法。

你的指尖有改变世界的力量 5888

RK3588S之CPU--benchmark(一)

本章会基于RK3588S来介绍有关CPU常用的benchmark工具及测试过程

文艺小少年的博客 1499

【免费下载】 srsRAN:开源SDR 4G/5G软件包

srsRAN是由软件无线电系统(SRS)开发的4G/5G软件无线电套件。此套件为用户提供了一站式的4G/5G无线通信解决方案,适用于研究、学习和开发等领域。 ## 套件组成 srsRAN套件包括以下部分: - **srsUE**:全栈SDR 4G/5G-NSA UE应用程序,即将推出5G-SA版本。 - **srsENB**:完整的SDR 4G eNodeB应用程序,即将推出5G-NSA和5...

gitblog_06786的博客 554

C#调用opencv的dll

opencv算法和界面配合,刚入职的时候尝试过,利用的MFC,调试起来很痛苦。 后来基本都没怎么用界面,DOS的黑窗口,opencv自带的显示界面及滑动条凑合着调试用。 最近有点时间,刚好双十一在一个视觉群里看到了一个讲C#调用opencv的dll的课程,鉴于群主也是那门课的讲师,在平时解答群员的问题的时候很细心,能力也很强,因此有了这篇文章。 根据相机不同动态调用相机默认的属性...

Learning by doing 2975

srsRAN初探

0. 准备 i3 ubuntu20 + limesdr 1. 安装srsran 1.1 依赖 sudo apt update sudo apt upgrade sudo apt install cmake 1.2 UHD 安装UHD Drivers can be installed with: sudo apt install libuhd-dev libuhd3.15.0 uhd-host sudo /usr/lib/uhd/utils/uhd_images_downloader.p

迷宫中的我 1251

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

srsRAN——npdsch_ue.c代码梳理

p:nof_prb for input file,number of PRBs(Physical Resource Block,物理资源块)-P:nof_ports for input file,可能是设置物理层相关信息,默认是0。ue_mib用于解码MIB,type为srsran_ue_mib_nbiot_t。prog_args的信息为接收端自己的信息,n_cell_id为接收端的id。srsran_nbiot_ue_dl_t定义。-l:n_id_ncell,发射段id。

LoveF5的博客 958

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

上一篇: What Is The Difference Between Node B, ENodeB, And GNB?
下一篇: OpenRAN 与 O-RAN 和 vRAN 的对比
无线通信实验室
博客等级 码龄11年 2704粉丝 77原创
评论 12
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值