GNU Radio软件无线电技术阅读记录

第二章 软件无线电基本理论

软件无线电定义:
多频段无线电,具有天线、射频前端、模数和数模转换器,能支持多种无线通信协议。理想软件无线电中,包括信号的产生、调制/解调、定时、控制、编/解码、数据格式、通信协议等各种功能都可以通过软件来实现。总之,软件无线电是硬件平台不改变前提下通过软件编程对物理硬件进行配置以获得灵活性的无限电。
软件无线电关键技术

  1. 宽带/多频段天线
    软件无线电台频段2~2000MHz。
    最理想、难实现:全频段天线
    现实可行:组合式多频段天线,将频段分为2 ~ 30,30 ~ 500,500 ~2000。
  2. 高速ADC与DAC
    ADC转换速率要满足奈奎斯特采样定律,即采样率至少为带宽的两倍。
    ADC产生量化噪声,SNR(dB)=6.02*N(比特)+1.76
    采样速率和量化精度由ADC电路特性和结构决定,实际中是相互矛盾的。
  3. 高速数字信号处理器
    硬件处理速度高,算法优化。利用多个芯片并行处理
    在这里插入图片描述
  • 软件无线电所覆盖的频率范围一般要求比较宽,如果使用Nyquist低通采样定理,所需要的采样速率就会很大,这就使具体实现产生很大的困难。所以带通采样定理是软件无线电最重要的理论基础。软件无线电的另一个问题是由采样率的提高而带来的。由于采样之后的数据流速率很高,会导致信号处理速度不够,特别是一些同步解调算法,那么就有必要对A/D之后的数据流进行降速处理。多速率信号处理就为这种降速处理提供了理论基础。
  • 多速率信号处理方法:整倍数抽取/整倍数内插/采样率分数倍变换(大多数情况)
  • 采样率变换中的一个关键问题是如何实现抽取前或内插后的数字滤波器,也就是说,无论是抽取或内插,或是采样率的分数倍变换,都需要设计一个满足其抗混叠要求的数字滤波器。【半带滤波器(HBF:half-band filter)/积分梳状滤波器(CIC)】
    在这里插入图片描述
  • 数字下变频:数字下变频是把所需的分量从中频载波频率搬移到所需频率(如基带),来降低之后信号处理的速率。
    在这里插入图片描述
  • 数字上变频:数字上变频是数字下变频的逆过程,其主要任务是将基带处理后的数字信号转换成在信道传输的信息。而从频域来看,它就是把基带信号搬移到更高的频率上。它包括脉冲波形成形、滤波和混频等部分。基带信号通过脉冲波形滤波来产生适用于模拟形态传输的符号,然后再通过半带滤波器进行滤波,而滤波后的信号进过混频模块之后加入载波,从而变为数字中频信号。
    在这里插入图片描述
第3章 GNU Radio软件无线电平台
  • GNU Radio也有局限性,包括: ①GNURadio依靠通用处理器(General-Purpose Processors, GPP)进行基带处理,因此任何一个处理器都限制了它的信号处理能力; ②GNU Radio不支持分布式计算,只能用于单处理器系统,这也限制了它支持高带宽协议的能力。
    在这里插入图片描述
第5章 GNU Radio的使用

在这里插入图片描述

  1. 仿真用户要注意的问题:
    对于使用过Simulink仿真软件的用户要注意分辨Simulink中基于帧(frame-based)和基于采样(sample-based)的处理以及GNU Radio基于项目(item-based)的处理。在Simulink仿真软件中流图可以配置成依照基于帧或基于采样来运行。在基于采样的模型中,采样值是逐个从一个模块传递到另一个模块的,因此,对信号处理流的控制是最大化的。但这带来了仿真性能上的损失,所以Simulink仿真软件引入了基于帧的处理。GNU Radio与Simulink的处理方式不同,在GNU Radio中,只有基于项目的处理方式。通常一个项目就是一个采样值(sample),当然它也可以是一个矢量(vector)一个项目的大小是一个在输入端口获得数据的逻辑上的描述。尽管GNU Radio是基于项目来处理的,却没有性能上的损失,因为它同时处理尽可能多的项目。在某种意义上来说,它既是基于采样的,又是基于帧的。GNU Radio这种处理方式的缺点是, 引入递归流图(recursive flow graph)比较困难。
  2. 元数据: 样本数据流可附带可解析的元数据,如接收时刻、中心频率、采样率,以及特定协议相关的信息(如节点标志)。在GNU Radio中,对样本数据流添加元数据是通过,流标签(stream tag)的机制实现的。流标签是连接到特定项目(如样本)的对象。它,可以是任何形式的标量值、一个向量、一个列表、一个词典,或者任何用户的指定值。当把样本流存储到硬盘中时,其附带的元数据也可以被保存。
  3. 流和消息:传递协议数据单元包目前讨论的模块提供的操作为“无限长的流(infinite stream)"模块,即只要项目被送入其输入端,模块就会一直工作。低通滤波器就是一个很好的例子:每一个新输入的项目解释为一个新的样本,它的输出是输入经过低通滤波后的版本。它不关心信号的内容是噪声、数据或其他。当处理数据包(或协议数据单元(PDU))时,这样的行为是不够的。必须有一种方法来识别PDU的边界,即告诉它哪一字节是第一个数据包的起始,并且要知道数据包的长度. GNU Radio对此功能有两种支持方式:消息传递(message passing)和标记流模块(tagged stream block)第一种方式是一种异步方法,直接把PDU从一个模块传递到另一个模块。在MAC层,这可能是首选的方案。一个模块可以接收一个PDU,添加一个数据包头,然后把整个数据包(包括新的数据包头)传递到另一个模块。标记流模块是平常的数据流模块通过使用流标记来识别PDU边界。在搭建系统时,可以混合使用识别PDU的模块和不需要识别PDU的模块。也可让模块切换使用消息传递和标记流模块两种方式。
第6章
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值