GNU radio入门学习(2)GNU radio简介

本文介绍了GNURadio,一个开源软件无线电平台,用于设计、仿真及连接真实无线电系统。文章详细阐述了其核心思想、软件架构,展示了Python编写与图形界面实现的HelloWorld案例,以及硬件架构需求。

GNU Radio是什么

基本思想

定义

GNU Radio是一个完全开源的软件无线电结构平台,它可以用来设计和仿真,也可以用来链接真实的无线电系统。GNU Radio是一个高度模块化,采用流图类形式的软件架构平台,它本身提供了许多模块库,使用者可以很快速的使用这些模块来建立关于信号处理的流程。

主要思想

GNU Radio是一个通过最小程度地结合硬件(主要是USRP),用软件来定义无线电波发射和接收的方式,搭建无线电通信系统的的开源软件系统。
典型的软件无线电处理流程

软件架构(GNU Radio的"hello world")

GNU Radio 提供一个信号处理模块的库,并且有个机制可以把单个的处理模块连接在一起形成一个系统。编程者通过建立一个流向图(flow graph)就能搭建成一个无线电系统。
信号处理模块是使用 C++来实现的,理论上说,信号数据流不停的从输入端口流入从输出端口流出。信号处理块 (blocks)的属性包括输入和输出的端口数,流过它们的数据的类型。
经常使用的数据流的类型是短整型(short),浮点型(float),和复数 (complex)类型。一些处理模块仅仅有输出端口或者输入端口,它们分别成为信号源(data source)和信号接收器(sink)。有的信号源从文件或者 ADC 读入数据,信号接收器写入文件或者 DAC 或者 PC 的多媒体接口。
GNU Radio 提供了超过 100 个信号处理块,并且扩展新的处理模块也是非常容易的。软件图形化接口和信号处理模块的链接机制是通过 python 脚本语言来进行的。

Python编写"hello wolrd"案例

下面的python文件是一个 GNU Radio 的“Hello World”的例子。它产生两个 sine 波形并且把他们输出到声卡,一个输出到声卡的左声道,一个输出到右声道。

// Linux终端命令
sudo vi Dial_tone.py
//注意保存不成功,修改文件权限
sudo chmod 777 Dial_tone.py
// 在编辑器中添加以下案例代码
#!/usr/bin/env python 
# 
# Copyright 2004,2005,2007 Free Software Foundation, Inc. 
#  
# This file is part of GNU Radio 
#  
# GNU Radio is free software; you can redistribute it and/or modify 
# it under the terms of the GNU General Public License as published 
by 
# the Free Software Foundation; either version 3, or (at your option) 
# any later version. 
#  
# GNU Radio is distributed in the hope that it will be useful, 
# but WITHOUT 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值