学好通信的两大板斧:MATLAB & USRP

独白

时间如果能回到高考报志愿的时候,我可能会报计算机科学与技术,为什么这么说呢?因为在大学四年里,我手中有的只有电脑,强大的谷歌搜索与庞大的计算机资源,即使是其他专业的学生,也可以轻轻松松获取丰富的资料,而且在自己的电脑上就可以看到代码执行的结果,反馈感非常的强,就和吃鸡游戏一样,能得到及时的反馈,所以我更加乐意学习计算机而非通信。

大学四年的经历

即使是北邮通信工程的学生,有很大一部分的学生毕业后从事了互联网专业,我是属于计算机没学好,没能找到合适的岗位,在老师的推荐下去了一家通信教学公司。大学四年的经历历历在目。

大一入学的时候,学院名称叫计算机与通信工程学院。听从舍友的推荐,加入了科技协会,协会的人专注于计算机技术。学院一共五个系,四个和计算机有关系,其实通信工程和计算机真的有关系,但是我们的教学方法和课程安排真的和计算机没有太大的关系。虽然也有C语言、Java以及MATLAB的课程,但是学的仅仅是一个开始,并没有把通信和他们关联起来。

在科技协会这个大背景下,我很快掌握了C语言,在大二的时候,顺利的开始学习安卓。但是一个意外,我退出了科技协会,这个退出,我基本上就和计算机告别了。虽然退出了,但是惯性一直存在,陆陆续续的学习了Nodejs、数据库等。参加了大大小小的比赛,也获得了计算机的一些奖。参加了数学建模,也获得了市一等奖。

大四也是非常迷茫的,对独立生活的向往,一直在准备考研,但是心不在肝上,在闲鱼上一直接活做。现在回想起来,如果自己专注于毕业后工作,放弃考研,或许现在发展的可能会更好。考研的结果是显而易见的,没考上。我的导师知道我没考上,于是便推荐我去一家通信教学的公司。我于是就拿到了这家的Offer,也正是这个Offer,让我从头开始学习了通信。

我的工作

公司会做教学产品。一个非常重要的产品线就是通信类实验课。公司之前有一套以LabVIEW为本的通信原理课程。市场经理在市场上得到的反馈是老师们十分青睐MATLAB和Simulink,也是我的工作也就确定下来了:“开发一套基于Simulink的通信原理课程”。

对于一个熟悉编程,但是对通信一窍不通的通信工程毕业生来讲是十分痛苦的。我已经忘记了通信原理中学过什么了,可以说这个专业我记得的东西也只有课程名称了。

我开发的路径也是比较的曲折,如果一门实验课用一周的时间开做开发,一天的时间我需要拿来看书,一天的时间去网上搜索开源的代码,第三天整理整理头绪,第四天大致摸清楚原理是什么,第五天就是写代码了,把课程的东西写出来。

其实一开始对于Simulink是不熟悉的,在哔哩哔哩找了一些视频资料来学习,因为很多视频是很早之前的版本,MATLAB的界面也发生了非常大的变化,但是绝大部分的内容是没有变化的,拿来即可用。

后面开发课程的时候也基本上一遍学习Simulink一边开发通信原理课程。对于基础的ASK、QPSK、QAM-4这种简单的可以轻轻松松搞定,复杂一点的线性分组码、卷积码看完书也可以写出来。但是高阶的OFDM、载波同步、码元同步、帧同步则是几乎做不出来的,那会儿老板找了北邮的学生去做这个事情,好在三大同步给写出来了。而OFDM则是用的通信工具箱做的,MIMO基本上做不出来。

这里遇到的难点就是同步,USRP考虑的是完备的通信系统,如果只会一个QPSK调制,信息仍然停留在电脑上,并不能真正的发送出去,接收回来,这就需要我必须去了解整个通信系统。好在MATLAB官方给了一个非常好的案例,使得我能够非常好的去学习,同时很多调制方法都是基于官网的Demo修改得到的。

在真实的信道中,会遇到信号衰减的问题,延迟的问题。所以USRP采集到的信号是不能直接做QPSK解调的,是需要做处理的,处理成能被解码的时候才去做QPSK解码。

经过USRP很长时间的开发与训练,我基本上完成了先仿真再USRP验证的技术路线。

之前的仿真都是一个调制紧接的一个解调,从来没想道过需要做同步等等。

我最近开发的MIMO系统,在仿真的情况是完美的,但是USRP下面就出现了一些问题。遇到的问题反过来也可以让我知道如何去写更加符合实际的代码,而不是一个虚拟。

后记

现在对通信越来越有感觉了,并不是我对通信很感兴趣,而是我现在对通信很熟悉了,写了这么多的通信算法,了解了通信这么多的东西。所以也很愿意去了解通信的内容,其实也不是愿意去了解通信,而是愿意去了解自己所做的事情而已。

很多的老师提到要培养学生的兴趣,我感觉就是瞎扯的,我对通信也不是特别有兴趣,但是我很乐意去了解通信,和我每天做通信有很大的关系吧,熟能生巧。

发布日期:
分类:通信

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注