GNURadio+USRP+OFDM实现文件传输(二)

简介: GNURadio+USRP+OFDM实现文件传输(二)

GNURadio+USRP+OFDM实现文件传输(一)https://developer.aliyun.com/article/1474028

3、发送结果

1)仿真结果

2)USRP 发射实际频谱图

  • 2M*52/64 = 1,625,000Hz

二、接收端

接收机主要由 OFDM同步器、频率调制器、信号混频器、FFT 和帧采集组成。来自天线的输入信号,采取的带宽对应于包含实际数据的载波数,直接发送到同步器(Schmidl & Cox OFDM synch)。该同步器负责定时同步和频率误差校正。**频率误差校正被馈送到频率调制器,以产生与同步块的频率误差成比例的信号。然后将其与接收到的数据混合以校正错误并输入到解复用器。**解复用器一旦得到数据包的开头,就开始接收数据,并输出报头和有效载荷进行解调。

1、参数设置

1)Schmidl & Cox OFDM synch

Schmidl & Cox OFDM synch:

  • Schmidl & Cox OFDM Sync 是 GNU Radio 中用于实现 OFDM(正交频分复用)系统的同步的模块之一。它的作用是对接收到的信号进行同步,以便正确解调和处理数据。
  • Schmidl & Cox OFDM Sync 模块采用了一种基于循环前缀(Cyclic Prefix)的同步方法,称为 Schmidl & Cox 算法。这种方法通常包括以下步骤:
  • 信号检测: 首先,接收端需要检测到信号并确定接收到的信号是否包含 OFDM 数据。这可能涉及到自动增益控制(AGC)和能量检测等技术。
  • 同步序列检测: 然后,接收端需要在接收到的信号中找到用于同步的特定序列,通常是 OFDM 帧的循环前缀(Cyclic Prefix)。
  • 频率偏移估计: 接着,模块会估计接收信号的频率偏移,以便进行频率校正。频率偏移可能是由于发送端和接收端的本地振荡器不精确而引起的。
  • 时间同步: 最后,模块会根据找到的同步序列进行时间同步,以确定接收到的信号的起始位置,从而进行正确的数据解调。
  • detect 引脚通常用于指示同步算法是否成功检测到 OFDM 信号的起始点,当 detect 引脚为真时,表示同步算法已经成功地检测到了 OFDM 信号的起始点,即找到了帧同步。这意味着接收到的信号可以进一步处理,例如进行解调、解码等操作。

2)Frequency Mod

Frequency Mod:

  • 这个模块是一个输入振幅控制复正弦。它输出一个信号,该信号具有与灵敏度和输入幅度成比例的瞬时相位增加。
  • 以产生与同步块的频率误差成比例的信号

3)Delay

Delay:

  • 将输入延迟一定数量的样本,正延迟在流的开头插入零个项目

4)Header/Payload Demux

Header/Payload Demux:

  • 将数据流中的头部和负载分开。这在通信系统中非常常见,因为数据帧通常包含头部(Header)和负载(Payload),头部用于携带一些控制信息、帧类型、地址等,而负载则携带实际的用户数据。
  • Header/Payload Demux 模块的 trigger 输入端用于指示何时开始解析下一个数据帧的头部信息。这个触发输入可以是一个布尔型信号,当它为真时,模块将开始解析下一个数据帧的头部。
  • 在一个无线通信系统中,当接收到数据帧的结束符或者校验通过时,可以发送一个触发信号给 Header/Payload Demux 模块,以指示当前帧的头部信息已经完整接收,并且可以开始解析下一个帧的头部信息了。

5)OFDM Channel Estimation

OFDM Channel Estimation:

  • 对接收到的 OFDM 信号进行信道估计,以获取信道的频率响应信息。

6)OFDM Frame Equalizer

OFDM Frame Equalizer:

  • 首先,它消除了粗略的载波偏移,接下来,它对标记的 OFDM 帧执行一维或二维均衡。

7)OFDM Serializer

OFDM Serializer:

  • 将 OFDM 子载波中的复数调制符号串行化
  • 这是OFDM 载波分配器的逆块。它将复数数据符号作为标记流输出,并丢弃导频符号

8)Constellation Decoder

Constellation Decoder:

  • 星座解码器,根据对象的映射将星座点从复数空间解码为(解包)位

9)Packet Header Parser

Packet Header Parser:

  • 这是数据包头生成器的逆块。不同的是,解析后的 header 不是作为流输出,而是作为 PMT 字典输出,并发布到 ID 为“header_data”的消息端口。

2、接收端 grc 图

1)提取数据流中头部和负载

2)提取 OFDM 头原始数据

3)提取 OFDM 有效负载

4)解调 OFDM 有效负载

符号倍解映射,重新打包和检查字节对应的头数据和发送到文件接收器。


GNURadio+USRP+OFDM实现文件传输(三)https://developer.aliyun.com/article/1474031

目录
相关文章
|
2天前
|
算法 C++ 索引
GNURadio+USRP+OFDM实现文件传输(一)
GNURadio+USRP+OFDM实现文件传输(一)
152 0
|
2天前
|
前端开发 5G UED
NI USRP RIO软件无线电
NI USRP RIO软件无线电
16 1
NI USRP RIO软件无线电
|
2天前
GNURadio+USRP+OFDM实现文件传输(三)
GNURadio+USRP+OFDM实现文件传输(三)
40 0
|
2天前
解决GNU Radio+USRP实现OFDM收发在接收端QPSK星座图映射无“抖动”问题
解决GNU Radio+USRP实现OFDM收发在接收端QPSK星座图映射无“抖动”问题
39 0
|
2天前
|
存储 算法 数据处理
m基于FPGA的8PSK调制解调系统verilog实现,包含testbench测试文件
m基于FPGA的8PSK调制解调系统verilog实现,包含testbench测试文件
46 0
|
10月前
|
Ubuntu Linux 编译器
正点原子阿尔法IMX6ULL开发板移植mjpg_streamer
正点原子阿尔法IMX6ULL开发板移植mjpg_streamer
121 0
|
传感器
Arduino与SG90舵机握手
Arduino与SG90舵机握手
166 0
|
C语言
bluez5.50蓝牙文件传输
bluez5.50蓝牙文件传输
610 0
bluez5.50蓝牙文件传输
|
存储 编解码 算法
树莓派 之 USB摄像头 局域网内视频流实时传输( MJPG-Streamer)
树莓派 之 USB摄像头 局域网内视频流实时传输( MJPG-Streamer)
1056 0
树莓派 之 USB摄像头 局域网内视频流实时传输( MJPG-Streamer)
|
存储 编解码 监控
树莓派 USB摄像头 实现网络监控( MJPG-Streamer)
MJPG是MJPEG的缩写,但是MJPEG还可以表示文件格式扩展名.   MJPEG   全名为 “Motion Joint Photographic Experts Group”,是一种视频编码格式,   Motion JPEG技术常用与闭合电路的电视摄像机的模拟视频信号“翻译”成视频流,并存储在硬盘上。典型的应用如数字视频记录器等。MJPEG不像MPEG,不使用帧间编码,因此用一个非线性编辑器就很容易编辑。MJPEG的压缩算法与MPEG一脉相承,功能很强大,能发送高质图片,生成完全动画视频等
615 1
树莓派 USB摄像头 实现网络监控( MJPG-Streamer)