Matlab包头数据包尾,GNU  Radio 中OFDM  Tunnel 详解

下面就详细介绍一下接收解调框图中各个模块的具体作用。

1)OFDM Receiver 部分。Filter(gr_fft_filter_ccc.cc)模块完成对 USRP 接收信号的匹配滤波功能;sync(gr_ofdm_sync_pn.py)模块的主要功能是完成 接收符号的窗口匹配,匹配成功时发送匹配成功标志给 sampler 模块;Nco (gr_frequency_modulator_fc.cc)模块完成细频偏纠正功能,相当于锁相环 PLL;Sig_mix(gr_multiply_cc.cc)模块对接收到的 OFDM 符号进行处理(将输 入符号相乘后输出),然后送给 sampler 模块;sampler(gr_ofdm_sampler.cc)

模块根据 sync 模块的匹配标志信号寻找 preamble,将 preamble 和 data 分离, 并给出二者的边界标志,然后把每个帧前面的循环前缀(Cycle Prefix)去除, 最后将 OFDM 符号送给 fft 模块,同时发送帧时序信号(Frame timing signal) 给 Frame acquisition 模块;fft(gr_fft_vcc.cc)模块对接收到的数据进行 fft 变换后输出给 Frame acquisition 模块(当查看 gr_fft_vcc.cc 时,你会发 现 该 模 块 并 没 有 做 实 际 的 fft 变 换 , 而 真 正 的 fft 和 ifft 变 换 在 gr_fft_vcc_fftw.cc 中进行);Frame acquisition(gr_ofdm_frame_acquisition)模块接收来自 FFT 的星座映射点向量,使用已知的 pn 码和接收到的 pn 码序列进 行比较得到信道增益,然后使用的到的增益修正其后的数据帧,进行相关和均衡。

2)ofdm_frame_sink(解调)模块。该模块接收 OFDM 符号,把他们接映射 成 0、1 比特流数据,再将这些比特流打包发送到接收消息序列,完成从调制的 OFDM 信号到实际发送比特数据的解映射过程。

3)MAC 帧拆包部分。主要功能是对解映射后的数据(还是帧结构的)进行帧 拆包,最终获得实际的有用数据信息。

开发和调试方法

整个ofdm tunnel 的物理层还是比较简单的。它模仿了802.11 的物理层, 在不定长的burst 前面添加一个定长的preamble,依靠这个preamble 完成时间 同步和频率同步。但它没有信道编码,因此抗噪声性能较差。

gnuradio-examples\python\ofdm 目录下,除了tunnel 调用的函数外,还

有许多其他的函数。这些函数都是程序的开发过程中需要用到的,它们教会了我 们如何一步步的进行程序开发。特别是对于利用GNU Radio 做物理层研发的人来 说,是很好的参考。下面简单说明一下。

ofdm_mod_demod_test.py——用于物理层收发模块的仿真测试。

benchmark_ofdm.py——加上MAC 层以后,做收发的仿真测试。

benchmark_ofdm_tx.py,benchmark_ofdm_rx.py——加上USRP 之后,做单 向收发的测试。分别测试了连续的数据包传输,和不连续的突发数据包传输。

当单向传输没有问题之后,就可以实验双向的传输了:tunnel.py。

另外,还有一些matlab程序,帮助调试程序。当我们把log标志设为True时, 就会产生很多.dat文件。这些文件把各个block的输出都记录下来:同步之前, 频率同步之后,FFT之后,解映射之后等等。然后用Matlab程序一一检查,就可 以发现究竟哪一步出了问题。

总结这个例子的开发方法,要创建一个自定义的无线连接程序,

第一步:用Matlab写一个物理层收发程序,设计各个功能模块,确定参数等。

第二步:用GNU Radio写一个不包括USRP 的收发程序,与Matlab程序一致, 方便把GNU Radio中的数据导入Matlab 中调试。

第三步:当物理层没有问题之后,再添加MAC层。

第四步:加入USRP。先调试单向通信,再调试双向的。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值