无线通信技术实验一卷积码

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

实验二:卷积码一、实验仪器:PC两台、USRP两台二、实验目的:1、了解grc仿真中的信号处理模块、流程图以及使用方法2、了解卷积码的基本原理3、了解GunRadio实现信道编码的方法4、了解不同SNR对于误码率的影响5、了解卷积码对误码率的影响6、了解不同的卷积码对于误码率的影响三、实验要求:1.了解Grc的基本操作方法,要求仿真的流程中信道编码部分使用卷积编码2.通过单机实验和GnuRadio+USRP的实验两种实验方式进行仿真3.搭建有信道编码与无信道编码的Grc仿真模型4.比较上述两种情况下的误码率,并且分析结果5.比较不同的卷积码对于误码率的影响,并且分析结果。四、实验原理:卷积码将k个信息比特编码成n个比特,但k和n通常很小,特别适合以串行形式进行传输,时延小。与分组码不同,卷积码编码后的n个码元不仅与当前段的k个信息有关,还与前面的N-1段信息有关,编码过程中互相关联的码元个数为nN。卷积码的纠错性能随N的增加而增大,而差错率随N的增加而指数下降。卷积码的纠错能力不仅与约束长度有关,还与采用的译码方式有关。GRC提供译码方式是维特比译码,它是卷积码译码方式中非常经典的以及广泛使用的一种译码方式。该实验可以考察编码前后数据有什么变化,译码后能不能恢复原来数据,通过NumberSink考察加噪声后误比特率怎么样,对性能有什么提高,并且划出BER图形。下面为卷积码的一般流程:五、实验步骤及分析:1、单机实验:单机实验分成(2,1,3)码、无信道编码、(2,1,8)码三个部分进行。(一)实验流程图:首先,我们利用(2,1,3)卷积码进行信道编码,用DPSK进行调制,来进行单机实验,最终设计的流程图和参数如下图所示:先是VectorSource,即信源,设置的数据是1,0,0,1,1。然后是Throttle限流模块。接下来是PackedtoUnpacked模块,将pack成byte或short型的数据以unpacked型的数据输出。然后就是卷积码编码模块,这里需要找到(2,1,3)卷积码在电脑中的位置,再将路径设置到这个模块相应的位置中。接下来一个模块叫做Packetencoder,然后便是调制模块DPSKMod,我们使用的便是DPSK调制。在噪声模块中设置噪声的大小为0.31,这个数字不能太大,否则就会是解码完全错误,也不能太小,否则误比特率几乎一直为零。下面模拟的就是接收端,首先是DPSKdemod模块,相应于DPSK编码模块,这个模块进行解码。Packetdecoder相应于Packetencoder。然后需要加上一个模块ChunkstoSymbols,用于后面的映射。接下来便是维特比译码模块,我们选择了一个将两个模块合二为一的模块,其中维度设置为1,映射与前一模块相同,路径与卷积码编码时路径相同。然后是UnpackedtoPacked,将unpacked的数据(bit)以byte或short型的数据输出。接下来就是将发送的数据输入到ErrorRate的ref端,将解调译码之后的数据输入到in端,通过ErrorRate模块进行误比特率的计算,并将结果存到一个file中,设置好它的路径和名称用于后面画图使用。最后一个模块是NumberSink,主要用于显示数据的具体数值,可用于计算误比特率时显示误比特率的时候等。接下来我们去掉了卷积码编码和维特比译码的相关模块,观察其在无信道编码条件下的性能,流程图如下:然后我们在第一个实验的基础上,将(2,1,3)卷积码编码换为(2,1,8)卷积码编码,观察其再这个状态下的性能,流程图除了路径部分其余与(2,1,3)码一致,这里不再画出。(二)实验结果分析首先我们对(2,1,3)卷积码编码和无信道编码时的状态进行了比较。先在相应的窗口中输入如下的语句:无信道编码(2,1,3)卷积码编码上面的一幅图即为无信道编码情况下的误比特率情况。根据我们学过的知识,卷积码编码在通信中有着重要的作用,其加入了更多的校验码,卷积码编码后的n个码元不仅与当前段的k个信息有关,还与前面的N-1段信息有关,编码过程中互相关联的码元个数为nN。而接收端采用了维特比译码的方式,无论是使用汉明距离还是欧式距离,都大大降低了误比特率,从而增加了译码的可靠性。而我们的这一现象也验证了上面的理论。也就是说信道编码在大部分信噪比的条件下有利于提高误比特率的性能,虽然其引入了一定的冗余。接下来我们对(2,1,3)卷积码和(2,1,8)卷积码状态进行了比较。还是通过输入上面相应的语句来进行画图。得到的误比特率图形如下:(2,1,8)卷积码这幅图显示出的结果是(2,1,8)卷积码好一些,我们做了多次试验发现的.实际上,大部分的时间下(2,1,8)卷积码的误比特率性能要好一些,但是也不是绝对的。在实际情况中,(2,1,8)卷积码在低信噪比的条件下误比特率性能要差于(2,1,3)码,高信噪比条件下则相反。因为信道噪声的不断变化,导致信噪比的不断变化,所以在不同时间两种编码的性能是交错的。2、双机实验:(一)实验过程2.1以(2,1,3)卷积码为信道编码,用DBPSK进行调制。实现框图:(2,1,3)卷积码双机实验发送框图流程图与上述单机实验类似,不同的是在信源后去掉Throttle模块,并且在发送之前要加上一个MultiplyConst模块,用于信号放大,这里我们设置的是12k。最后就是USRPSink模块,我们设置的发送频率是2.45GHz,DAC内插的数值是128。(2,1,3)卷积码双机实验接收框图首先是USRPSource,ADC抽样的数值为64,接收频率为2.45GHz,下面的流程图与单机时是完全一致的。运行结果:下图为(2,1,3)卷积码双机实验发送端信源时域图以及信道前时域图。下图为(2,1,3)卷积码双机实验接收端信宿图以及信号经过信道后的时域波形图下图为双机实验接收端观察到的误码率数值。2.2以(2,1,8)卷积码为信道编码,用DBPSK进行调制。实现框图:(2,1,8)卷积码双机实验发送框图(2,1,8)卷积码双机实验接收框图相对于(2,1,3)卷积码双机实验,同样只是码型及其路径选择的变化。运行结果:上图为(2,1,8)卷积码双机实验接收端信宿时域图以及信道后的时域图,并且给出了误码率大小,为0.202Unit,相对于双机实验中(2,1,3)码误码率减小了。2.3无信道编码双机实验,同样用DBPSK进行调制。实现框图:与实验一调制实验相同,将调制方式改为DBPSK,并且信号源改为矢量源1,0,0,1,1,便于与上述有信道编码的相比较。运行结果:上图为无信道编码情况下,直接用DBPSK调制,得出的误码率,为0.5375Unit,(二)实验结果分析首先是(2,1,3)信道编码和无信道编码条件下误比特率的比较:可以显然见得得到的结论和上面单机实验是一样的,上面一条误比特率高的线为无信道编码条件下的误比特率性能,所以信道编码有利于改善误比特率性能。其次是(2,1,3)码和(2,1,8)码误比特率的比较:上面这幅图显示两种信道编码误比特率的性能随着时间的变化相互交错,同单机实验时的现象是一样的。这里也是因为无线信道信噪比的不断变化而引起的,分析同单机实验。六、实验注意事项:(1)在单机实验的时需要在信源后面添加一个Throttle模块。(2)卷积码设置时候的注意事项:1.模块中TrellisEncoder&TrellisViterbiCombo,前者是编码部分,后者是解码部分。其中模块TrellisViterbiCombo=TrellisMetrics+TrellisViterbi(有顺序要求)。2.TrellisEncoder&TrellisViterbiCombo模块需要进行参数设置,两者都是需要设置下FSMArgs的路径并且使用的必须是一个文件。如图所示。例如路径为:/GNURadio_SRC/gnuradio-3.2.2/gr-trellis/src/examples/fsm_files/awgn1o2_8.fsm在路径两端必须加上双引号。其中awgn1o2_4.fsm表示使用的(2,1,3)码,依次类推awgn1o2_128.fsm表示使用的是(2,1,8)码。3.解码前(也就是在模块TrellisViterbiCombo前面)必须加上模块Chunks_to_Symbols。4.在编码前需要加入模块PackedtoUnpacked,相应的在解码后需要加入模块Unpackedtopacked。(两个模块的设置必须一致)。5.使用USRPsink之前必须添加模块MultiplyConst。

1 / 10
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功