---恢复内容开始---

参考:http://gnuradio.org/redmine/projects/gnuradio/wiki/TutorialsWritePythonApplications

导入模块的语句

from gnuradio import MODULENAME

常用模块由如下及个

gr               gnuradio 的主要库,基本上每个程序都需要用到

analog        和模拟信号和模拟信号调制有关的功能

audio          声卡控制,可以用来向声卡发送信息 或者通过声卡接收信息

blocks        所有不属于其他模块的东西,可能就放在这

channels    仿真所用的信号模型

digital         与analog, 所用和数字信号调制有关的功能在这

fft                和ffts 有关的功能

fec              和fex有关的贡呢

filter            过滤器模块

plotdata      绘制数据

qtgui           和表示数据有关的图形界面(使用QT库)

wxgui          包含快速创建流图的用户界面的一些实体

vocoder       和声音编码有关的一些功能

wavelet       和微波有关的一些功能

gru              各种各样和数学及其他有关的一些功能实体

选择,定义和设置模块。如何选择模块对于我们来说是挺男的一个事,因为GNU RADIO提供了大量的预先定义的模块。

因此我们需要查阅一些文档。而如何使用这些文档也是学习。

下列3行代码,是定义blocks的句子,

 src0 = analog.sig_source_f (sample_rate, analog.GR_SIN_WAVE, 350, ampl)
src1 = analog.sig_source_f (sample_rate, analog.GR_SIN_WAVE, 440, ampl)
dst = audio.sink (sample_rate, "")

在Lin1-2 中,一个名字 sig_source_f 的函数呗调用了,并且收到了4个函数参数
1. 采样频率 sample_rate   2. analog.GR_SIN_WAVE, analog 模块中定义的一个常量,在这里告知信号生产的类型

3. 350/440 一个常量,代表生产信号的频率

4. ample  一个表示生成信号幅度的变量。

问题是,在预先不知道这段代码的情况下,我怎么知道我要将哪些参数传递给  sig_source_f

答案就是:查阅文档,我们需要寻找  sig_source_f  地址:http://gnuradio.org/doc/doxygen/classgr_1_1analog_1_1sig__source__f.html

其中包好很多   sig_source_× , f 代表生成信号是浮点数。其他的有:

c:  复数浮点型

i:   整型

s:  短整型

b:  位,其实也是整数

例如 gr::filter::fir_filter_ccf Class
代表  FIR filter with gr_complex input, gr_complex output, and float taps.

gr::blocks::add_const_ff

代表 output = input + constant 数据类型都是浮点数

GNuradio blocks 都是用C++ 写的,但是我在在调用的时候用的是python, 之所有可以这么使用的原因是,gnuradio 使用了一种被称之为SWIG的工具来创建python和C++之间的借口。

每一个c++ blocks 都有一个创建函数, gr::component::block::make(***) 例如 gr::analog::sig_source_f::make()。 这个创建函数,经常是位于和对应类的同一页面,并且能够同样输出到python, 可以通过python调用。 当然为了了解这些blocks 具体是怎么工作的,我们可能或早或晚都需要进一步去看哪些代码。

常用的gnuradio 模块的更多相关文章

  1. Python常用内建模块

    Python常用内建模块 datetime 处理日期和时间的标准库. 注意到datetime是模块,datetime模块还包含一个datetime类,通过from datetime import da ...

  2. 转:Yii实战中8个必备常用的扩展,模块和widget

    转载自:http://www.yiiframework.com/wiki/180/yii8/ 在经过畅K网的实战后,总结一下在Yii的项目中会经常用到的组件和一些基本的使用方法,分享给大家,同时也给自 ...

  3. Atiit 常见功能 常用功能与模块的最快速解决方案

    Atiit 常见功能 常用功能与模块的最快速解决方案 一.大力使用第三方API接口 一.导出excel jquery.table2excel 二.Form表单验证,使用h5验证属性 验证发生在form ...

  4. Yii实战中8个必备常用的扩展,模块和widget

    Yii实战中8个必备常用的扩展,模块和widget 在经过畅K网 的实战后,总结一下在Yii的项目中会经常用到的组件和一些基本的使用方法,分享给大家,同时也给自己留个备忘录,下面我以代码加图片说明. ...

  5. 常用的re模块的正则匹配的表达式

    07.01自我总结 常用的re模块的正则匹配的表达式 一.校验数字的表达式 1.数字 ^[0-9]\*$ 2.n位的数字 ^\d{n}$ 3.至少n位的数字 ^\d{n,}$ 4.m-n位的数字 ^\ ...

  6. Django中常用的那些模块路径

    Django中常用的那些模块路径 from django.shortcuts import HttpResponse, render, redirect from django import temp ...

  7. Python第十一章-常用的核心模块01-collections模块

    python 自称 "Batteries included"(自带电池, 自备干粮?), 就是因为他提供了很多内置的模块, 使用这些模块无需安装和配置即可使用. 本章主要介绍 py ...

  8. Python第十一章-常用的核心模块03-json模块

    python 自称 "Batteries included"(自带电池, 自备干粮?), 就是因为他提供了很多内置的模块, 使用这些模块无需安装和配置即可使用. 本章主要介绍 py ...

  9. Python第十一章-常用的核心模块04-datetime模块

    python 自称 "Batteries included"(自带电池, 自备干粮?), 就是因为他提供了很多内置的模块, 使用这些模块无需安装和配置即可使用. 本章主要介绍 py ...

随机推荐

  1. 宁波Uber优步司机奖励政策(1月25日~1月31日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  2. hdoj 2717 Catch That Cow【bfs】

    Catch That Cow Time Limit: 5000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

  3. poj 1328贪心

    Description Assume the coasting is an infinite straight line. Land is in one side of coasting, sea i ...

  4. c++ 流基本概念

    前言 在程序经常实现数据的输入和输出,c++通过一种称为流(stream)的机制提供了更为精良的输入和输出方法.流是一种灵活且面向对象的I/o方法. 根据操作对象不同分为文件流.字符串流.控制台流. ...

  5. window7 输入什么命令可以快速打开服务管理?? 虚拟机设置了NAT网络连接方式,还是无法上网?

    window7 输入什么命令可以快速打开服务管理?? 虚拟机设置了NAT网络连接方式,还是无法上网? 1.我遇到的问题? 在虚拟机安装了linux系统,并且把网络连接方式设置为NAT,如图: 意思就是 ...

  6. UML应用:业务内涵的分析抽象&表达

    上一篇,架构设计的UML图形思考 ,简介了图形思考设计.表达设计对于架构师的重要意义,以及简介了使用统一建模语言UML描写叙述类以及类之间的继承关系,这样的描写叙述还停留在写代码,表达的但是说是怎样写 ...

  7. ios的手势操作之UIGestureRecognizer浅析

    转载地址:http://blog.csdn.net/likendsl/article/details/7554150 每一个手势的实现例子,可参考下面网址:http://www.cnblogs.com ...

  8. Android Studio 2.2 External Build

    今天在用studio写Native程序时发现2.2版本引入了一个 External Build来进行Native项目的构建. 最直观的表现就是c/c++的源码文件不用跟java文件在一个项目文件夹下了 ...

  9. frame模型

    #import "CZWeiboFrame.h" #import "CZWeibo.h" @implementation CZWeiboFrame #defin ...

  10. 安装Visual Studio 2013 中文社区版

    Visual Studio 2013 免费了,我收到邮件后,立即从邮件的下载连接安装了 Visual Studio Community 2013 with Update 4 . 安装后几天没打开,今天 ...