提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
LTE学习理解系列——利用matlab工具生成4G LTE信源
前言
偶然将发现了matlab有LTE工具箱这东西。最近不是正好在研究LTE的同步么,之前需要信源来进行仿真还需要其他同事帮我生成一个信源,每次都怪麻烦人家的,那这个LTE工具箱中是否有生成信源的功能呢?
不去了解还不知道,一去了解感觉又发现了新大陆,这东西很强大呀。生成信源那是肯定可以的了,还可以进行物理层的各种算法仿真。
当然,根据当前的工作需要,暂时只关心信源的生成部分,其他以后再研究。
LTE工具箱的使用
在matlab中输入 : lteTestModelTool
用法很简洁,都不需要用文字来描述了,看图就知道怎么操作了。
里面有我们常用的一些测试模式,例如TM11、TM31之类的。而且可以设定CELL ID,而我们做同步,解出CELLID,也就需要这些信息就行了。
不过似乎没看到哪里可以配置时隙配比的,不知道是没有这个接口配置,还是暂时我没发现。这个以后要是找到了再来补充了。
但每次通过这样使用tool界面还是有点麻烦,需要手动生成,导出数据(mat格式),然后在把mat数据导入到需要仿真的程序中。
newData1 = load('-mat', 'TEST.mat');
lte_data = newData1.waveStruct.waveform;
lte_data = lte_data.';(这个转置,看实际是否需要)
直接使用函数
如果能用指令来实现生成信源就好了。查询了一下,还真有。
tmn = '3.1';
bw = '20MHz';
ncellid = 100;
duplexmode = "TDD";
tm = lteTestModel(tmn,bw,ncellid,duplexmode)
[timeDomainSig, txGrid, txInfo] = lteTestModelTool(tm);
plot(txGrid,'.')
tmn — Test model number
'1.1' | '1.2' | '2' | '2a' | '2b' | '3.1' | '3.1a' | '3.1b' | '3.2' | '3.3'
bw — Channel bandwidth
'1.4MHz' | '3MHz' | '5MHz' | '10MHz' | '15MHz' | '20MHz' | '9RB' | '11RB' | '27RB' | '45RB' | '64RB' | '91RB'
duplexmode — Duplex mode of the generated waveform
'FDD' (default) | optional | 'TDD'
ncellid 配置0到503
timeDomainSig 就是我们所需要的时域信源数据了,默认是生成10个子帧的数据
lteCellSearch 这个函数可以帮我们解出CELLID,验证信源的是否生成正确
cellID = lteCellSearch(txInfo,timeDomainSig)
完整程序:
close all;clear all;clc;
tmn = '3.1';
bw = '20MHz';
ncellid = 100;
duplexmode = "TDD";
tm = lteTestModel(tmn,bw,ncellid,duplexmode)
[timeDomainSig, txGrid, txInfo] = lteTestModelTool(tm);
figure(1)
plot(txGrid,'.')
cellID = lteCellSearch(txInfo,timeDomainSig)
figure(2)
power_figure(timeDomainSig,30.72e6)
看信号频谱似乎没有问题。CELLID解出来也是正确的。
总结
以上是简单生成信源的方法,有了这个方法,以后就可以自己制作信源了,哈哈。不过信源中的参数大部分都是默认的,但也有方法可以完全定制所有信源参数,就是这个函数,tmcfg是一个结构体。下一篇我们来研究一下这个结构体的详细配置
tm = lteTestModel(tmcfg)