Modem项目工作总结
2013-07-02 09:34
351 查看
来北邮读研已经一学年了,导师给的研究方向是短波无线电台。研一阶段就给了做项目的前期准备,通过一个小项目做了一些预热,
不过麻雀虽小,五脏俱全。使用到了调制解调系统中会用到的方方面面。
在这过程中,也经过了很多的技术难关。
FPGA部分:
第一关:pi/4-DQPSK。关于如何选择合适的调制解调方式,首先能够在FPGA内部很好的实现,其次还得满足通信系统的速率要求,
基于综合考量。选择QPSK实现。同时为了减小载波相位对解调的影响。选择差分方式。并且pi/4-DQPSK峰均比比较合适。然后的问题
就是决定基带解调还是频带解调了?考虑到电话线路的恒定性,选择基带差分可以增大一部分解调增益。
第二关:成型滤波器。成型滤波器的作用是是的接收端能以最大性噪比输出。同时也是为了能够让信号保持在有效带宽内。成型滤波器
的设计借助了matlab的FDAtool工具,通过生成系数,导入到之前编好的滤波器模块内。
第三关:帧同步。同步是通信系统的核心问题,做不好,可能导致整个系统的奔溃。这里简单的选择了PN序列作为同步头,并且通过
检测相关峰实现最后的同步。同步以后根据过采样的特性,选择最佳采样区间。
第四关:维特比译码。在信号传输过程中,会受到一些干扰(随机噪声干扰,线路上的干扰,码间干扰等),因此必然导致传输出现
差错,选择信道编码也是必要的措施。这里选择了最简单的(2,1,2)维特比译码。
第五关:Modem控制芯片si3056的初始化和控制。Si3056有100多个寄存器,而且都是通过类似SPI的方式初始化的,这个过程看懂
pdf文档,比较好办。至于对其控制,对于FPGA来说就显得比较麻烦。因为控制过程都是串行化结构处理的,比较适合单片机等MCU处理,
FPGA只能通过状态机模拟这个串行化结构。
第六关:AT命令集。同样的要在FPGA内部实现AT命令集显得比较的啰嗦。本来也是适合MCU处理的,因此FPGA内部也是通过状态机
模拟这个串行化过程。状态机非常之庞大。分好几级:识别命令,处理命令,返回命令。
第七关:自适应均衡。这个还在研究阶段,也是这个系统比较重要的一个模块,没有他,只要话路一长,存在严重的码间干扰,误码率
同步率严重恶化。拟采用LMS实现自适应均衡。
PC部分:
第一关:串口。这个比较容易。通过Python很快就调试完毕了。而且FPGA内部程序也不复杂。
第二关:上位机。这部分内容主要实现AT命令集的发生,并且调度整个系统。也是由Python来写的。因为自己在学Python。
项目介绍:
![](http://img.blog.csdn.net/20130702093005828?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveHNjX2M=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://img.blog.csdn.net/20130702093013687?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveHNjX2M=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://img.blog.csdn.net/20130702093007890?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveHNjX2M=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://img.blog.csdn.net/20130702093045625?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveHNjX2M=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://img.blog.csdn.net/20130702093052453?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveHNjX2M=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://img.blog.csdn.net/20130702093043750?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveHNjX2M=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://img.blog.csdn.net/20130702093104187?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveHNjX2M=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://img.blog.csdn.net/20130702093109437?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveHNjX2M=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://img.blog.csdn.net/20130702093113703?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveHNjX2M=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://img.blog.csdn.net/20130702093104531?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveHNjX2M=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://img.blog.csdn.net/20130702093125343?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveHNjX2M=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://img.blog.csdn.net/20130702093141187?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveHNjX2M=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://img.blog.csdn.net/20130702093200515?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveHNjX2M=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://img.blog.csdn.net/20130702093150687?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveHNjX2M=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://img.blog.csdn.net/20130702093156265?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveHNjX2M=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
不过麻雀虽小,五脏俱全。使用到了调制解调系统中会用到的方方面面。
在这过程中,也经过了很多的技术难关。
FPGA部分:
第一关:pi/4-DQPSK。关于如何选择合适的调制解调方式,首先能够在FPGA内部很好的实现,其次还得满足通信系统的速率要求,
基于综合考量。选择QPSK实现。同时为了减小载波相位对解调的影响。选择差分方式。并且pi/4-DQPSK峰均比比较合适。然后的问题
就是决定基带解调还是频带解调了?考虑到电话线路的恒定性,选择基带差分可以增大一部分解调增益。
第二关:成型滤波器。成型滤波器的作用是是的接收端能以最大性噪比输出。同时也是为了能够让信号保持在有效带宽内。成型滤波器
的设计借助了matlab的FDAtool工具,通过生成系数,导入到之前编好的滤波器模块内。
第三关:帧同步。同步是通信系统的核心问题,做不好,可能导致整个系统的奔溃。这里简单的选择了PN序列作为同步头,并且通过
检测相关峰实现最后的同步。同步以后根据过采样的特性,选择最佳采样区间。
第四关:维特比译码。在信号传输过程中,会受到一些干扰(随机噪声干扰,线路上的干扰,码间干扰等),因此必然导致传输出现
差错,选择信道编码也是必要的措施。这里选择了最简单的(2,1,2)维特比译码。
第五关:Modem控制芯片si3056的初始化和控制。Si3056有100多个寄存器,而且都是通过类似SPI的方式初始化的,这个过程看懂
pdf文档,比较好办。至于对其控制,对于FPGA来说就显得比较麻烦。因为控制过程都是串行化结构处理的,比较适合单片机等MCU处理,
FPGA只能通过状态机模拟这个串行化结构。
第六关:AT命令集。同样的要在FPGA内部实现AT命令集显得比较的啰嗦。本来也是适合MCU处理的,因此FPGA内部也是通过状态机
模拟这个串行化过程。状态机非常之庞大。分好几级:识别命令,处理命令,返回命令。
第七关:自适应均衡。这个还在研究阶段,也是这个系统比较重要的一个模块,没有他,只要话路一长,存在严重的码间干扰,误码率
同步率严重恶化。拟采用LMS实现自适应均衡。
PC部分:
第一关:串口。这个比较容易。通过Python很快就调试完毕了。而且FPGA内部程序也不复杂。
第二关:上位机。这部分内容主要实现AT命令集的发生,并且调度整个系统。也是由Python来写的。因为自己在学Python。
项目介绍:
相关文章推荐
- 团队项目:个人工作总结04
- 团队项目个人工作总结(4月23日)
- 团队项目:个人工作总结05
- 工作总结---梳理下项目中 的 定时任务 quartz
- 团队项目:个人工作总结08
- 十年总结(四):在北京的第一份工作和第一个项目
- 城管项目汇报及工作总结
- 项目时间管理总结及主要工作清单表
- 团队项目个人工作总结(4.19)
- 团队项目个人工作总结(4月19日)
- 团队项目个人工作总结(4月20日)
- 同一个项目的不同的项目工作经验总结--程序员丁
- 工作总结32 xfire-servlet.xml项目启动加载时报cvc-elt.1:找不到元素“beans”的声明
- 团队项目:个人工作总结06
- 项目-一周工作总结
- 团队项目个人工作总结(4月27日)
- 团队项目:个人工作总结10
- 2013年工作项目流水总结
- 珈伟工作项目总结(四)之web开发